1. WrapperUtils 添加 Or 查询

This commit is contained in:
zhaowenyuan 2024-06-18 16:48:38 +08:00
parent 99567ef161
commit b930217312
2 changed files with 29 additions and 3 deletions

View File

@ -19,6 +19,9 @@ public @interface Condition {
in, in,
between, between,
likeLeft, likeLeft,
dataScope dataScope,
or_eq,
or_like,
or_likeLeft
} }
} }

View File

@ -6,10 +6,10 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.chushang.common.mybatis.annotation.Condition; 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.exception.MybatisConditionException;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import lombok.AccessLevel; import lombok.AccessLevel;
@ -28,7 +28,7 @@ public class WrapperUtils {
if (null != columns) { if (null != columns) {
queryWrapper = queryWrapper.select(columns); queryWrapper = queryWrapper.select(columns);
} }
if (null != commonParam){ if (null != commonParam) {
// 构造Wrapper // 构造Wrapper
queryWrapper = queryWrapper queryWrapper = queryWrapper
.orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy()); .orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy());
@ -51,6 +51,7 @@ public class WrapperUtils {
continue; continue;
} }
String name = condition.name(); String name = condition.name();
String[] split = name.split(",");
switch (condition.type()) { switch (condition.type()) {
case eq: case eq:
queryWrapper = queryWrapper.eq(ObjectUtil.isNotEmpty(value), name, value); queryWrapper = queryWrapper.eq(ObjectUtil.isNotEmpty(value), name, value);
@ -86,6 +87,28 @@ public class WrapperUtils {
queryWrapper = queryWrapper.in(CollectionUtil.isNotEmpty(deptIds), name, deptIds); 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(); return queryWrapper.lambda();