From 9589e0e1bfd14f2297563fa9a9b3bdcbc7723b74 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期五, 16 二月 2024 21:12:52 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java | 94 ++++++++++++++++++++--------------------------- 1 files changed, 40 insertions(+), 54 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java index 82f0a05..bfc76e3 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/common/domain/PageParam.java @@ -2,10 +2,14 @@ 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; /** @@ -22,6 +26,8 @@ */ private final boolean isToUnderlineCase; + private final Class<T> cls; + public PageParam() { this(null); } @@ -30,10 +36,20 @@ 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()); @@ -79,62 +95,32 @@ } } + } + 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; } -- Gitblit v1.9.1