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
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;
|
|
}
|
|
}
|