Files
nuttyreading-java/src/main/java/com/peanut/common/utils/ExcludeEmptyQueryWrapper.java
2023-09-19 18:24:19 +08:00

105 lines
3.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.peanut.common.utils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.Objects;
/**
* 继承QueryWrapper重写其构造条件方法使条件为null的查询条件不再执行。
* @since Mybatis+ version: 3.x.x
* @author firewolf
*/
public class ExcludeEmptyQueryWrapper<T> extends QueryWrapper<T> {
@Override
public QueryWrapper<T> eq(boolean condition, String column, Object val) {
if("".equals(val) || Objects.isNull(val)){
condition = false;
}else{
condition = true;
}
return super.eq(condition, column, val);
}
@Override
public QueryWrapper<T> ne(boolean condition, String column, Object val) {
condition = !Objects.isNull(val);
return super.ne(condition, column, val);
}
@Override
public QueryWrapper<T> gt(boolean condition, String column, Object val) {
condition = !Objects.isNull(val);
return super.gt(condition, column, val);
}
@Override
public QueryWrapper<T> ge(boolean condition, String column, Object val) {
condition = !Objects.isNull(val);
return super.ge(condition, column, val);
}
@Override
public QueryWrapper<T> lt(boolean condition, String column, Object val) {
condition = !Objects.isNull(val);
return super.lt(condition, column, val);
}
@Override
public QueryWrapper<T> le(boolean condition, String column, Object val) {
condition = !Objects.isNull(val);
return super.le(condition, column, val);
}
@Override
public QueryWrapper<T> like(boolean condition, String column, Object val) {
if("".equals(val) || Objects.isNull(val)){
condition = false;
}else{
condition = true;
}
return super.like(condition, column, val);
}
@Override
public QueryWrapper<T> notLike(boolean condition, String column, Object val) {
condition = !Objects.isNull(val);
return super.notLike(condition, column, val);
}
@Override
public QueryWrapper<T> likeLeft(boolean condition, String column, Object val) {
condition = !Objects.isNull(val);
return super.likeLeft(condition, column, val);
}
@Override
public QueryWrapper<T> likeRight(boolean condition, String column, Object val) {
condition = !Objects.isNull(val);
return super.likeRight(condition, column, val);
}
@Override
public QueryWrapper<T> between(boolean condition, String column, Object val1, Object val2) {
if(Objects.isNull(val1) && Objects.isNull(val2)){
condition = false;
}else if(Objects.isNull(val1)){
return super.lt(true,column,val2);
}else if(Objects.isNull(val2)){
return super.ge(true,column,val1);
}
return super.between(condition, column, val1, val2);
}
@Override
public QueryWrapper<T> notBetween(boolean condition, String column, Object val1, Object val2) {
if(Objects.isNull(val1) && Objects.isNull(val2)){
condition = false;
}else if(Objects.isNull(val1)){
return super.lt(true,column,val2);
}else if(Objects.isNull(val2)){
return super.ge(true,column,val1);
}
return super.notBetween(condition, column, val1, val2);
}
}