解决字符串型字段等值查询条件前端传空字符串不能正常忽略问题

This commit is contained in:
shizhong 2023-03-29 21:19:18 +08:00
parent af4f52a25f
commit 8d2c33e9b0

View File

@ -1,9 +1,7 @@
package cn.iocoder.yudao.framework.mybatis.core.query; package cn.iocoder.yudao.framework.mybatis.core.query;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
import cn.iocoder.yudao.framework.mybatis.core.enums.SqlConstants;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
@ -13,7 +11,7 @@ import java.util.Collection;
/** /**
* 拓展 MyBatis Plus QueryWrapper 主要增加如下功能 * 拓展 MyBatis Plus QueryWrapper 主要增加如下功能
* * <p>
* 1. 拼接条件的方法增加 xxxIfPresent 方法用于判断值不存在的时候不要拼接到条件中 * 1. 拼接条件的方法增加 xxxIfPresent 方法用于判断值不存在的时候不要拼接到条件中
* *
* @param <T> 数据类型 * @param <T> 数据类型
@ -42,14 +40,14 @@ public class LambdaQueryWrapperX<T> extends LambdaQueryWrapper<T> {
} }
public LambdaQueryWrapperX<T> eqIfPresent(SFunction<T, ?> column, Object val) { public LambdaQueryWrapperX<T> eqIfPresent(SFunction<T, ?> column, Object val) {
if (val != null) { if (val instanceof String && StringUtils.hasText((String) val) || !(val instanceof String) && val != null) {
return (LambdaQueryWrapperX<T>) super.eq(column, val); return (LambdaQueryWrapperX<T>) super.eq(column, val);
} }
return this; return this;
} }
public LambdaQueryWrapperX<T> neIfPresent(SFunction<T, ?> column, Object val) { public LambdaQueryWrapperX<T> neIfPresent(SFunction<T, ?> column, Object val) {
if (val != null) { if (val instanceof String && StringUtils.hasText((String) val) || !(val instanceof String) && val != null) {
return (LambdaQueryWrapperX<T>) super.ne(column, val); return (LambdaQueryWrapperX<T>) super.ne(column, val);
} }
return this; return this;