代码生成器优化区间查询

nacos
DongZeLiang 2023-10-09 20:42:38 +08:00
parent 43c4b4c954
commit d36d5672a6
5 changed files with 179 additions and 1 deletions

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.page.ReqDomain;
import com.ruoyi.common.utils.StringUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -77,4 +79,35 @@ public class BaseEntity implements Serializable {
public void setParams (Map<String, Object> params) { public void setParams (Map<String, Object> params) {
this.params = params; this.params = params;
} }
/**
*
* @param key
* @return
*/
public Object getBeginParam(String key){
return getParams().get(
StringUtils.format(ReqDomain.BEGIN_REF, key)
);
}
/**
*
* @param key
* @return
*/
public Object getEndParam(String key){
return getParams().get(
StringUtils.format(ReqDomain.END_REF, key)
);
}
/**
*
* @param key
* @return
*/
public Object[] getBetween(String key){
return new Object[]{getBeginParam(key), getEndParam(key)};
}
} }

View File

@ -0,0 +1,19 @@
package com.ruoyi.common.core.page;
/**
* @author DongZl
* @description:
* @Date 2023-10-9 07:51
*/
public class ReqDomain {
/**
* begin
*/
public final static String BEGIN_REF = "begin{}";
/**
* end
*/
public final static String END_REF = "end{}";
}

View File

@ -0,0 +1,65 @@
package com.ruoyi.common.utils;
import org.apache.commons.lang3.ObjectUtils;
import java.math.BigDecimal;
/**
* @author DongZl
* @description:
* @Date 2023-10-9 04:56
*/
public class ObjUtils {
/**
*
* CharSequence:
* Array:
* Collection:
* Map:
* @param o
* @return nulltruefalse
*/
public static boolean notNull(Object o){
return ObjectUtils.isNotEmpty(o);
}
/**
* long0
* @param val
* @return 0
*/
public static boolean notNull(Long val){
return ObjectUtils.isNotEmpty(val) && val != 0;
}
/**
* Integer0
* @param val
* @return 0
*/
public static boolean notNull(Integer val){
return ObjectUtils.isNotEmpty(val) && val != 0;
}
/**
* BigDecimal0
* @param val
* @return 0
*/
public static boolean notNull(BigDecimal val){
return ObjectUtils.isNotEmpty(val) && val.doubleValue() == 0.00;
}
/**
* BigDecimal0
* @param val
* @return 0
*/
public static boolean notChildNull(Object[] val){
for (Object o : val) {
if (!notNull(o)){
return false;
}
}
return true;
}
}

View File

@ -1,6 +1,9 @@
package ${packageName}.service.impl; package ${packageName}.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.ObjUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import ${packageName}.mapper.${ClassName}Mapper; import ${packageName}.mapper.${ClassName}Mapper;
import ${packageName}.domain.${ClassName}; import ${packageName}.domain.${ClassName};
@ -26,6 +29,47 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C
@Override @Override
public List<${ClassName}> list(${ClassName} ${className}) { public List<${ClassName}> list(${ClassName} ${className}) {
LambdaQueryWrapper<${ClassName}> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<${ClassName}> queryWrapper = new LambdaQueryWrapper<>();
#foreach($column in $columns)
#set($queryType=$column.queryType)
#set($javaField=$column.javaField)
#set($JavaField=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
#if($column.query)
#if($queryType == "EQ")
if (ObjUtils.notNull(${className}.get$JavaField())){
queryWrapper.eq(${ClassName}::get$JavaField, ${className}.get$JavaField());
}
#elseif($queryType == "NE")
if (ObjUtils.notNull(${className}.get$JavaField())){
queryWrapper.ne(${ClassName}::get$JavaField, ${className}.get$JavaField());
}
#elseif($queryType == "GT")
if (ObjUtils.notNull(${className}.get$JavaField())){
queryWrapper.gt(${ClassName}::get$JavaField, ${className}.get$JavaField());
}
#elseif($queryType == "GTE")
if (ObjUtils.notNull(${className}.get$JavaField())){
queryWrapper.ge(${ClassName}::get$JavaField, ${className}.get$JavaField());
}
#elseif($queryType == "LT")
if (ObjUtils.notNull(${className}.get$JavaField())){
queryWrapper.lt()${ClassName}::get$JavaField, ${className}.get$JavaField());
}
#elseif($queryType == "LTE")
if (ObjUtils.notNull(${className}.get$JavaField())){
queryWrapper.le()${ClassName}::get$JavaField, ${className}.get$JavaField());
}
#elseif($queryType == "LIKE")
if (ObjUtils.notNull(${className}.get$JavaField())){
queryWrapper.like(${ClassName}::get$JavaField, ${className}.get$JavaField());
}
#elseif($queryType == "BETWEEN")
if (ObjUtils.notChildNull(${className}.getBetween("$JavaField"))){
queryWrapper.between(${ClassName}::get$JavaField, ${className}.getBeginParam("$JavaField"),${className}.getEndParam("$JavaField"));
}
#end
#end
#end
return list(queryWrapper); return list(queryWrapper);
} }
} }

View File

@ -1,13 +1,16 @@
package com.ruoyi.book.service.impl; package com.ruoyi.book.service.impl;
import java.util.List; import java.util.List;
import java.util.function.Function;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.utils.ObjUtils;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.book.mapper.BookInfoMapper; import com.ruoyi.book.mapper.BookInfoMapper;
import com.ruoyi.book.domain.BookInfo; import com.ruoyi.book.domain.BookInfo;
import com.ruoyi.book.service.BookInfoService; import com.ruoyi.book.service.BookInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
/** /**
* Service * Service
@ -27,6 +30,20 @@ public class BookInfoServiceImpl extends ServiceImpl<BookInfoMapper, BookInfo>
@Override @Override
public List<BookInfo> list(BookInfo bookInfo) { public List<BookInfo> list(BookInfo bookInfo) {
LambdaQueryWrapper<BookInfo> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BookInfo> queryWrapper = new LambdaQueryWrapper<>();
if (ObjUtils.notNull(bookInfo.getName())){
queryWrapper = queryWrapper.like(BookInfo::getName, bookInfo.getName());
}
if (ObjUtils.notNull(bookInfo.getPrice())){
queryWrapper = queryWrapper.between(BookInfo::getPrice, bookInfo.getParams().get("beginPrice"), bookInfo.getParams().get("endPrice"));
}
return list(queryWrapper); return list(queryWrapper);
} }
} }