| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.zy.asrs.framework.common.Cools; |
| | | import com.zy.asrs.framework.common.DateUtils; |
| | | import com.zy.asrs.wcs.utils.Utils; |
| | | |
| | | import java.lang.reflect.Field; |
| | | import java.lang.reflect.Modifier; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | |
| | | */ |
| | | private final boolean isToUnderlineCase; |
| | | |
| | | private final Class<T> cls; |
| | | |
| | | public PageParam() { |
| | | this(null); |
| | | } |
| | |
| | | this(where, true); |
| | | } |
| | | |
| | | public PageParam(U where, Class<T> cls) { |
| | | this(where, true, cls); |
| | | } |
| | | |
| | | public PageParam(U where, boolean isToUnderlineCase) { |
| | | this(where, isToUnderlineCase, null); |
| | | } |
| | | |
| | | |
| | | public PageParam(U where, boolean isToUnderlineCase, Class<T> cls) { |
| | | super(); |
| | | this.where = where; |
| | | this.isToUnderlineCase = isToUnderlineCase; |
| | | this.cls = cls; |
| | | if (where != null) { |
| | | if (where.getCurrent() != null) { |
| | | setCurrent(where.getCurrent()); |
| | |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | if (!Cools.isEmpty(where.getCondition()) && !Cools.isEmpty(cls)) { |
| | | List<String> columns = new ArrayList<>(); |
| | | for (Field field :Cools.getAllFields(cls)){ |
| | | if (Modifier.isFinal(field.getModifiers()) |
| | | || Modifier.isStatic(field.getModifiers()) |
| | | || Modifier.isTransient(field.getModifiers())){ |
| | | continue; |
| | | } |
| | | |
| | | // switch (queryType) { |
| | | // case EQ: |
| | | // queryWrapper.eq(fieldName, fieldValue); |
| | | // break; |
| | | // case NE: |
| | | // queryWrapper.ne(fieldName, fieldValue); |
| | | // break; |
| | | // case GT: |
| | | // queryWrapper.gt(fieldName, fieldValue); |
| | | // break; |
| | | // case GE: |
| | | // queryWrapper.ge(fieldName, fieldValue); |
| | | // break; |
| | | // case LT: |
| | | // queryWrapper.lt(fieldName, fieldValue); |
| | | // break; |
| | | // case LE: |
| | | // queryWrapper.le(fieldName, fieldValue); |
| | | // break; |
| | | // case LIKE: |
| | | // queryWrapper.like(fieldName, fieldValue); |
| | | // break; |
| | | // case NOT_LIKE: |
| | | // queryWrapper.notLike(fieldName, fieldValue); |
| | | // break; |
| | | // case LIKE_LEFT: |
| | | // queryWrapper.likeLeft(fieldName, fieldValue); |
| | | // break; |
| | | // case LIKE_RIGHT: |
| | | // queryWrapper.likeRight(fieldName, fieldValue); |
| | | // break; |
| | | // case IS_NULL: |
| | | // queryWrapper.isNull(fieldName); |
| | | // break; |
| | | // case IS_NOT_NULL: |
| | | // queryWrapper.isNotNull(fieldName); |
| | | // break; |
| | | // case IN: |
| | | // queryWrapper.in(fieldName, fieldValue); |
| | | // break; |
| | | // case NOT_IN: |
| | | // queryWrapper.notIn(fieldName, fieldValue); |
| | | // break; |
| | | // case IN_STR: |
| | | // if (fieldValue instanceof String) { |
| | | // queryWrapper.in(fieldName, Arrays.asList(((String) fieldValue).split(","))); |
| | | // } |
| | | // break; |
| | | // case NOT_IN_STR: |
| | | // if (fieldValue instanceof String) { |
| | | // queryWrapper.notIn(fieldName, Arrays.asList(((String) fieldValue).split(","))); |
| | | // } |
| | | // break; |
| | | // } |
| | | String column = Utils.toSymbolCase(field.getName(), '_'); |
| | | columns.add(column); |
| | | } |
| | | if (!columns.isEmpty()) { |
| | | for (int i=0;i<columns.size();i++){ |
| | | String column = columns.get(i); |
| | | String condition = where.getCondition(); |
| | | |
| | | if (i == 0) { |
| | | queryWrapper.and(wrapper -> wrapper.like(column, condition)); |
| | | } else { |
| | | queryWrapper.or().like(column, condition); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return queryWrapper; |
| | | } |