From d36d5672a61d0219c258c8058a594b798d7ff995 Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Mon, 9 Oct 2023 20:42:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E5=99=A8?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8C=BA=E9=97=B4=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/common/core/domain/BaseEntity.java | 33 ++++++++++ .../com/ruoyi/common/core/page/ReqDomain.java | 19 ++++++ .../java/com/ruoyi/common/utils/ObjUtils.java | 65 +++++++++++++++++++ .../resources/vm/java/serviceImpl.java.vm | 44 +++++++++++++ .../service/impl/BookInfoServiceImpl.java | 19 +++++- 5 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/page/ReqDomain.java create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/ObjUtils.java diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java index 378edc1..e1d7b08 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; +import com.ruoyi.common.core.page.ReqDomain; +import com.ruoyi.common.utils.StringUtils; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -77,4 +79,35 @@ public class BaseEntity implements Serializable { public void setParams (Map 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)}; + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/page/ReqDomain.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/ReqDomain.java new file mode 100644 index 0000000..2071a55 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/page/ReqDomain.java @@ -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{}"; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/ObjUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ObjUtils.java new file mode 100644 index 0000000..7bb8ed1 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/ObjUtils.java @@ -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 如果对象具有受支持的类型并且为空或null,则为true,否则为false + */ + public static boolean notNull(Object o){ + return ObjectUtils.isNotEmpty(o); + } + + /** + * 判断long类型不为0 + * @param val 值 + * @return 返回值不为0 + */ + public static boolean notNull(Long val){ + return ObjectUtils.isNotEmpty(val) && val != 0; + } + + /** + * 判断Integer类型不为0 + * @param val 值 + * @return 返回值不为0 + */ + public static boolean notNull(Integer val){ + return ObjectUtils.isNotEmpty(val) && val != 0; + } + /** + * 判断BigDecimal类型不为0 + * @param val 值 + * @return 返回值不为0 + */ + public static boolean notNull(BigDecimal val){ + return ObjectUtils.isNotEmpty(val) && val.doubleValue() == 0.00; + } + /** + * 判断BigDecimal类型不为0 + * @param val 值 + * @return 返回值不为0 + */ + public static boolean notChildNull(Object[] val){ + for (Object o : val) { + if (!notNull(o)){ + return false; + } + } + return true; + } +} diff --git a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm index fc158a2..3513d17 100644 --- a/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm +++ b/ruoyi-generator/src/main/resources/vm/java/serviceImpl.java.vm @@ -1,6 +1,9 @@ package ${packageName}.service.impl; import java.util.List; + +import com.ruoyi.common.utils.ObjUtils; +import com.ruoyi.common.utils.StringUtils; import org.springframework.stereotype.Service; import ${packageName}.mapper.${ClassName}Mapper; import ${packageName}.domain.${ClassName}; @@ -26,6 +29,47 @@ public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${C @Override public List<${ClassName}> list(${ClassName} ${className}) { 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); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/book/service/impl/BookInfoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/book/service/impl/BookInfoServiceImpl.java index 748fbe8..b23768e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/book/service/impl/BookInfoServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/book/service/impl/BookInfoServiceImpl.java @@ -1,13 +1,16 @@ package com.ruoyi.book.service.impl; 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 com.ruoyi.book.mapper.BookInfoMapper; import com.ruoyi.book.domain.BookInfo; import com.ruoyi.book.service.BookInfoService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; /** * 书籍信息Service业务层处理 @@ -27,6 +30,20 @@ public class BookInfoServiceImpl extends ServiceImpl @Override public List list(BookInfo bookInfo) { LambdaQueryWrapper 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); } + + + }