You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

92 lines
4.8 KiB

package com.spring.modules.code.utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
import com.spring.modules.code.entity.CodeDrawing;
import org.springframework.util.StringUtils;
public class WrapperGenerate<T>{
public LambdaQueryChainWrapper<T> generateChainLambdaLike(String column, SFunction<T,?> sqlColumn, LambdaQueryChainWrapper<T> wrapper){
if (StringUtils.hasText(column)){
StringBuilder str = new StringBuilder(column);
if (column.length() > 2 && column.charAt(0) == '%' && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(0);
str.deleteCharAt(str.length() - 1);
wrapper.like(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(0) == '%'){
str.deleteCharAt(0);
wrapper.likeLeft(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(str.length() - 1);
wrapper.likeRight(StringUtils.hasText(column), sqlColumn, str.toString());
}else {
wrapper.eq(StringUtils.hasText(column), sqlColumn, column);
}
}
return wrapper;
}
public LambdaQueryWrapper<T> generateLambdaLike(String column, SFunction<T,?> sqlColumn, LambdaQueryWrapper<T> wrapper){
if (StringUtils.hasText(column)){
StringBuilder str = new StringBuilder(column);
if (column.length() > 2 && column.charAt(0) == '%' && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(0);
str.deleteCharAt(str.length() - 1);
wrapper.like(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(0) == '%'){
str.deleteCharAt(0);
wrapper.likeLeft(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(str.length() - 1);
wrapper.likeRight(StringUtils.hasText(column), sqlColumn, str.toString());
}else {
wrapper.eq(StringUtils.hasText(column), sqlColumn, column);
}
}
return wrapper;
}
public QueryChainWrapper<T> generateChainLike(String column, String sqlColumn, QueryChainWrapper<T> wrapper){
if (StringUtils.hasText(column)){
StringBuilder str = new StringBuilder(column);
if (column.length() > 2 && column.charAt(0) == '%' && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(0);
str.deleteCharAt(str.length() - 1);
wrapper.like(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(0) == '%'){
str.deleteCharAt(0);
wrapper.likeLeft(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(str.length() - 1);
wrapper.likeRight(StringUtils.hasText(column), sqlColumn, str.toString());
}else {
wrapper.eq(StringUtils.hasText(column), sqlColumn, column);
}
}
return wrapper;
}
public QueryWrapper<T> generateLike(String column, String sqlColumn, QueryWrapper<T> wrapper){
if (StringUtils.hasText(column)){
StringBuilder str = new StringBuilder(column);
if (column.length() > 2 && column.charAt(0) == '%' && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(0);
str.deleteCharAt(str.length() - 1);
wrapper.like(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(0) == '%'){
str.deleteCharAt(0);
wrapper.likeLeft(StringUtils.hasText(column), sqlColumn, str.toString());
}else if (column.length() > 1 && column.charAt(column.length() - 1) == '%'){
str.deleteCharAt(str.length() - 1);
wrapper.likeRight(StringUtils.hasText(column), sqlColumn, str.toString());
}else {
wrapper.eq(StringUtils.hasText(column), sqlColumn, column);
}
}
return wrapper;
}
}