diff --git a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/annotation/Condition.java b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/annotation/Condition.java index 6e31f62..9d98772 100644 --- a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/annotation/Condition.java +++ b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/annotation/Condition.java @@ -19,6 +19,9 @@ public @interface Condition { in, between, likeLeft, - dataScope + dataScope, + or_eq, + or_like, + or_likeLeft } } diff --git a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/WrapperUtils.java b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/WrapperUtils.java index 4f42ae5..ee40b07 100644 --- a/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/WrapperUtils.java +++ b/chushang-common/chushang-common-mybatis/src/main/java/com/chushang/common/mybatis/utils/WrapperUtils.java @@ -6,10 +6,10 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.chushang.common.mybatis.annotation.Condition; -import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.exception.MybatisConditionException; import com.chushang.common.mybatis.page.CommonParam; import lombok.AccessLevel; @@ -28,7 +28,7 @@ public class WrapperUtils { if (null != columns) { queryWrapper = queryWrapper.select(columns); } - if (null != commonParam){ + if (null != commonParam) { // 构造Wrapper queryWrapper = queryWrapper .orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy()); @@ -51,6 +51,7 @@ public class WrapperUtils { continue; } String name = condition.name(); + String[] split = name.split(","); switch (condition.type()) { case eq: queryWrapper = queryWrapper.eq(ObjectUtil.isNotEmpty(value), name, value); @@ -86,6 +87,28 @@ public class WrapperUtils { queryWrapper = queryWrapper.in(CollectionUtil.isNotEmpty(deptIds), name, deptIds); } } + break; + case or_eq: + queryWrapper.and(q -> { + for (String key : split) { + q.or().eq(ObjectUtil.isNotEmpty(value), key, value); + } + }); + break; + case or_like: + queryWrapper.and(q -> { + for (String key : split) { + q.or().like(ObjectUtil.isNotEmpty(value), key, value); + } + }); + break; + case or_likeLeft: + queryWrapper.and(q -> { + for (String key : split) { + q.or().likeLeft(ObjectUtil.isNotEmpty(value), key, value); + } + }); + break; } } return queryWrapper.lambda();