refactor(framework): 优化 MyBatis Plus 查询工具类代码

This commit is contained in:
2026-01-15 09:30:07 +08:00
parent 85e4557376
commit 4684b8ea5e
2 changed files with 14 additions and 12 deletions
@@ -15,7 +15,7 @@
*/ */
package cn.odboy.framework.mybatisplus.core; package cn.odboy.framework.mybatisplus.core;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.odboy.base.KitBaseUserTimeTb; import cn.odboy.base.KitBaseUserTimeTb;
@@ -26,6 +26,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@@ -33,8 +35,7 @@ import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import jakarta.validation.constraints.NotBlank; import lombok.Data;
import jakarta.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
/** /**
@@ -131,7 +132,7 @@ public class KitMpQUtil {
private static <R> void handleInOrNotQuery(boolean b, QueryWrapper<R> queryWrapper, String attributeName, private static <R> void handleInOrNotQuery(boolean b, QueryWrapper<R> queryWrapper, String attributeName,
Object fieldVal) { Object fieldVal) {
Collection<?> wrapNotInVal = (Collection<?>) fieldVal; Collection<?> wrapNotInVal = (Collection<?>) fieldVal;
if (CollectionUtil.isNotEmpty(wrapNotInVal)) { if (CollUtil.isNotEmpty(wrapNotInVal)) {
Optional<?> anyValOptional = wrapNotInVal.stream().findAny(); Optional<?> anyValOptional = wrapNotInVal.stream().findAny();
if (anyValOptional.isPresent()) { if (anyValOptional.isPresent()) {
Object o = anyValOptional.get(); Object o = anyValOptional.get();
@@ -159,7 +160,7 @@ public class KitMpQUtil {
if (fieldVal instanceof List) { if (fieldVal instanceof List) {
List<Object> between = new ArrayList<>((List<?>) fieldVal); List<Object> between = new ArrayList<>((List<?>) fieldVal);
int minLength = 2; int minLength = 2;
if (CollectionUtil.isNotEmpty(between) && between.size() >= minLength) { if (CollUtil.isNotEmpty(between) && between.size() >= minLength) {
queryWrapper.between(finalAttributeName, between.get(0), between.get(1)); queryWrapper.between(finalAttributeName, between.get(0), between.get(1));
} else { } else {
throw new BadRequestException("BETWEEN类型的对象列表长度必须 >= 2"); throw new BadRequestException("BETWEEN类型的对象列表长度必须 >= 2");
@@ -179,7 +180,7 @@ public class KitMpQUtil {
*/ */
private static <R> void handleBlurryQuery(QueryWrapper<R> queryWrapper, String blurry, Object fieldVal) { private static <R> void handleBlurryQuery(QueryWrapper<R> queryWrapper, String blurry, Object fieldVal) {
List<String> blurryList = List<String> blurryList =
Arrays.stream(blurry.split(",")).filter(StrUtil::isNotBlank).distinct().toList(); Arrays.stream(blurry.split(",")).filter(StrUtil::isNotBlank).distinct().collect(Collectors.toList());
queryWrapper.and(wrapper -> { queryWrapper.and(wrapper -> {
for (String blurryItem : blurryList) { for (String blurryItem : blurryList) {
String column = StrUtil.toUnderlineCase(blurryItem); String column = StrUtil.toUnderlineCase(blurryItem);
@@ -198,7 +199,7 @@ public class KitMpQUtil {
} }
public static void main(String[] args) { public static void main(String[] args) {
QueryWrapper<TestDomain> query = new QueryWrapper<TestDomain>(); QueryWrapper<TestDomain> query = new QueryWrapper<>();
query.or(wrapper -> wrapper.eq("username", 1).or().eq("nickname", 2)); query.or(wrapper -> wrapper.eq("username", 1).or().eq("nickname", 2));
query.eq("id", 1); query.eq("id", 1);
query.orderByDesc("id"); query.orderByDesc("id");
@@ -214,13 +215,13 @@ public class KitMpQUtil {
System.err.println(query.getTargetSql()); System.err.println(query.getTargetSql());
} }
@Data
@TableName("test_domain") @TableName("test_domain")
private static class TestDomain { private static class TestDomain {
@NotNull(groups = KitBaseUserTimeTb.Update.class) @NotNull(groups = KitBaseUserTimeTb.Update.class)
@TableId(value = "user_id", type = IdType.AUTO) @TableId(value = "user_id", type = IdType.AUTO)
private Long private Long id;
id;
@TableField(value = "dept_id") @TableField(value = "dept_id")
private Long deptId; private Long deptId;
@NotBlank @NotBlank
@@ -35,6 +35,7 @@ import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
/** /**
@@ -198,7 +199,7 @@ public class KitMpQUtil {
} }
public static void main(String[] args) { public static void main(String[] args) {
QueryWrapper<TestDomain> query = new QueryWrapper<TestDomain>(); QueryWrapper<TestDomain> query = new QueryWrapper<>();
query.or(wrapper -> wrapper.eq("username", 1).or().eq("nickname", 2)); query.or(wrapper -> wrapper.eq("username", 1).or().eq("nickname", 2));
query.eq("id", 1); query.eq("id", 1);
query.orderByDesc("id"); query.orderByDesc("id");
@@ -214,13 +215,13 @@ public class KitMpQUtil {
System.err.println(query.getTargetSql()); System.err.println(query.getTargetSql());
} }
@Data
@TableName("test_domain") @TableName("test_domain")
private static class TestDomain { private static class TestDomain {
@NotNull(groups = KitBaseUserTimeTb.Update.class) @NotNull(groups = KitBaseUserTimeTb.Update.class)
@TableId(value = "user_id", type = IdType.AUTO) @TableId(value = "user_id", type = IdType.AUTO)
private Long private Long id;
id;
@TableField(value = "dept_id") @TableField(value = "dept_id")
private Long deptId; private Long deptId;
@NotBlank @NotBlank