From fa29749b22608366f7d53e29e80b36bd609ebb8f Mon Sep 17 00:00:00 2001 From: DongZeLiang <2746733890@qq.com> Date: Mon, 9 Dec 2024 18:40:57 +0800 Subject: [PATCH] =?UTF-8?q?feat():=20=E5=A2=9E=E5=8A=A0=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=EF=BC=8C=E5=A2=9E=E5=8A=A0DDD=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E6=A6=82=E5=BF=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/common/core/utils/PageUtils.java | 32 --------- .../core/web/controller/BaseController.java | 43 ++---------- .../common/core/web/model/QueryModel.java | 69 +++++++++++++++++++ .../page/{PageDomain.java => PageReq.java} | 41 +++-------- .../common/core/web/page/TableDataInfo.java | 14 ++-- .../common/core/web/page/TableSupport.java | 18 ++--- .../controller/SysConfigController.java | 10 +-- .../domain/model/SysConfigPageQueryModel.java | 60 ++++++++++++++++ .../system/domain/rep/SysConfigListReq.java | 43 ++++++++++++ .../muyu/system/service/SysConfigService.java | 6 +- .../service/impl/SysConfigServiceImpl.java | 31 +++++---- 11 files changed, 229 insertions(+), 138 deletions(-) delete mode 100644 cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/PageUtils.java create mode 100644 cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/model/QueryModel.java rename cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/{PageDomain.java => PageReq.java} (64%) create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysConfigPageQueryModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysConfigListReq.java diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/PageUtils.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/PageUtils.java deleted file mode 100644 index d4b0554..0000000 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/utils/PageUtils.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.muyu.common.core.utils; - -import com.github.pagehelper.PageHelper; -import com.muyu.common.core.utils.sql.SqlUtil; -import com.muyu.common.core.web.page.PageDomain; -import com.muyu.common.core.web.page.TableSupport; - -/** - * 分页工具类 - * - * @author muyu - */ -public class PageUtils extends PageHelper { - /** - * 设置请求分页数据 - */ - public static void startPage () { - PageDomain pageDomain = TableSupport.buildPageRequest(); - Integer pageNum = pageDomain.getPageNum(); - Integer pageSize = pageDomain.getPageSize(); - String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); - Boolean reasonable = pageDomain.getReasonable(); - PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable); - } - - /** - * 清理分页的线程变量 - */ - public static void clearPage () { - PageHelper.clearPage(); - } -} diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java index 3789a82..3277f84 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/controller/BaseController.java @@ -1,8 +1,6 @@ package com.muyu.common.core.web.controller; -import com.github.pagehelper.PageInfo; import com.muyu.common.core.utils.DateUtils; -import com.muyu.common.core.utils.PageUtils; import com.muyu.common.core.domain.Result; import com.muyu.common.core.web.page.TableDataInfo; import org.slf4j.Logger; @@ -36,33 +34,6 @@ public class BaseController { }); } - /** - * 设置请求分页数据 - */ - protected void startPage () { - PageUtils.startPage(); - } - - /** - * 清理分页的线程变量 - */ - protected void clearPage () { - PageUtils.clearPage(); - } - - /** - * 响应请求分页数据 - */ - @SuppressWarnings({"rawtypes", "unchecked"}) - protected Result> getDataTable (List list) { - return Result.success( - TableDataInfo.builder() - .total(new PageInfo(list).getTotal()) - .rows(list) - .build() - ); - } - /** * 返回成功 */ @@ -73,35 +44,35 @@ public class BaseController { /** * 返回成功消息 */ - public Result success (String message) { + public Result success (String message) { return Result.success(message); } /** * 返回成功消息 */ - public Result success (Object data) { + public Result success (Object data) { return Result.success(data); } /** * 返回失败消息 */ - public Result error () { + public Result error () { return Result.error(); } /** * 返回失败消息 */ - public Result error (String message) { + public Result error (String message) { return Result.error(message); } /** * 返回警告消息 */ - public Result warn (String message) { + public Result warn (String message) { return Result.warn(message); } @@ -112,7 +83,7 @@ public class BaseController { * * @return 操作结果 */ - protected Result toAjax (int rows) { + protected Result toAjax (int rows) { return rows > 0 ? Result.success() : Result.error(); } @@ -123,7 +94,7 @@ public class BaseController { * * @return 操作结果 */ - protected Result toAjax (boolean result) { + protected Result toAjax (boolean result) { return result ? success() : error(); } } diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/model/QueryModel.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/model/QueryModel.java new file mode 100644 index 0000000..7e1389d --- /dev/null +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/model/QueryModel.java @@ -0,0 +1,69 @@ +package com.muyu.common.core.web.model; + + +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.muyu.common.core.web.page.PageReq; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.List; + +/** + * 列表查询模型 + * + * @author DongZeLiang + * @date 2024-11-20 14:18 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class QueryModel { + + /** + * 当前记录起始索引 + */ + private Integer pageNum; + + /** + * 每页显示记录数 + */ + private Integer pageSize; + + /** + * 排序列 + */ + private String orderByColumn; + + /** + * 排序的方向desc或者asc + */ + private boolean isAsc = true; + + /** + * 构建模型分页对象 + * @param pageReq 分页参数 + * @return 模型分页对象 + */ + public T domainBuild(PageReq pageReq) { + this.pageNum = pageReq.getPageNum(); + this.pageSize = pageReq.getPageSize(); + this.orderByColumn = pageReq.getOrderByColumn(); + this.isAsc = "asc".equals(pageReq.getIsAsc()); + return (T) this; + } + + /** + * 构建查询分页对象 + * @return 查询分页对象 + */ + public Page buildPage(){ + Page page = Page.of(this.getPageNum(), this.getPageSize()); + page.setOrders(List.of(this.isAsc() + ? OrderItem.asc(this.getOrderByColumn()) : OrderItem.desc(this.getOrderByColumn()))); + return page; + } +} diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageDomain.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageReq.java similarity index 64% rename from cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageDomain.java rename to cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageReq.java index b9c5e45..6f16f91 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageDomain.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageReq.java @@ -1,13 +1,21 @@ package com.muyu.common.core.web.page; import com.muyu.common.core.utils.StringUtils; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; /** * 分页数据 * * @author muyu */ -public class PageDomain { +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class PageReq { /** * 当前记录起始索引 */ @@ -40,34 +48,6 @@ public class PageDomain { return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; } - public Integer getPageNum () { - return pageNum; - } - - public void setPageNum (Integer pageNum) { - this.pageNum = pageNum; - } - - public Integer getPageSize () { - return pageSize; - } - - public void setPageSize (Integer pageSize) { - this.pageSize = pageSize; - } - - public String getOrderByColumn () { - return orderByColumn; - } - - public void setOrderByColumn (String orderByColumn) { - this.orderByColumn = orderByColumn; - } - - public String getIsAsc () { - return isAsc; - } - public void setIsAsc (String isAsc) { if (StringUtils.isNotEmpty(isAsc)) { // 兼容前端排序类型 @@ -87,7 +67,4 @@ public class PageDomain { return reasonable; } - public void setReasonable (Boolean reasonable) { - this.reasonable = reasonable; - } } diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/TableDataInfo.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/TableDataInfo.java index d677cce..4092675 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/TableDataInfo.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/TableDataInfo.java @@ -1,5 +1,6 @@ package com.muyu.common.core.web.page; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -32,14 +33,7 @@ public class TableDataInfo implements Serializable { */ private List rows; - /** - * 消息状态码 - */ - private int code; - - /** - * 消息内容 - */ - private String msg; - + public static TableDataInfo of(Page list) { + return new TableDataInfo<>(list.getTotal(), list.getRecords()); + } } diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/TableSupport.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/TableSupport.java index ce0328d..af514d5 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/TableSupport.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/TableSupport.java @@ -37,17 +37,17 @@ public class TableSupport { /** * 封装分页对象 */ - public static PageDomain getPageDomain () { - PageDomain pageDomain = new PageDomain(); - pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1)); - pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); - pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); - pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); - pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); - return pageDomain; + public static PageReq getPageDomain () { + PageReq pageReq = new PageReq(); + pageReq.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1)); + pageReq.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); + pageReq.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); + pageReq.setIsAsc(ServletUtils.getParameter(IS_ASC)); + pageReq.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); + return pageReq; } - public static PageDomain buildPageRequest () { + public static PageReq buildPageRequest () { return getPageDomain(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysConfigController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysConfigController.java index 3bced52..1ce6c93 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysConfigController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysConfigController.java @@ -1,5 +1,6 @@ package com.muyu.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.muyu.common.core.domain.Result; import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.web.controller.BaseController; @@ -9,6 +10,8 @@ import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.system.domain.SysConfig; +import com.muyu.system.domain.model.SysConfigPageQueryModel; +import com.muyu.system.domain.rep.SysConfigListReq; import com.muyu.system.service.SysConfigService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -39,10 +42,9 @@ public class SysConfigController extends BaseController { @RequiresPermissions("system:config:list") @GetMapping("/list") @Operation(summary = "查询集合", description = "更新水果信息") - public Result> list (SysConfig config) { - startPage(); - List list = configService.pageQuery(config); - return getDataTable(list); + public Result> list (SysConfigListReq sysConfigListReq) { + Page list = configService.pageQuery(SysConfigPageQueryModel.reqBuild(sysConfigListReq)); + return Result.success(TableDataInfo.of(list)); } @Log(title = "参数管理", businessType = BusinessType.EXPORT) diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysConfigPageQueryModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysConfigPageQueryModel.java new file mode 100644 index 0000000..e1551e8 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysConfigPageQueryModel.java @@ -0,0 +1,60 @@ +package com.muyu.system.domain.model; + +import com.muyu.common.core.web.model.QueryModel; +import com.muyu.system.domain.rep.SysConfigListReq; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +/** + * 参数配置 分页 模型 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +public class SysConfigPageQueryModel extends QueryModel { + + /** + * 配置名称 + */ + private String configName; + + /** + * 配置Key + */ + private String configKey; + + /** + * 配置类型 + */ + private String configType; + + /** + * 开始时间 + */ + private Date beginTime; + + /** + * 结束时间 + */ + private Date endTime; + + + public static SysConfigPageQueryModel reqBuild(SysConfigListReq sysConfigListReq) { + SysConfigPageQueryModel configPageQueryModel = SysConfigPageQueryModel.builder() + .configName(sysConfigListReq.getConfigName()) + .configType(sysConfigListReq.getConfigType()) + .configKey(sysConfigListReq.getConfigKey()) + .beginTime(sysConfigListReq.getBeginTime()) + .endTime(sysConfigListReq.getEndTime()) + .build(); + configPageQueryModel.domainBuild(sysConfigListReq); + return configPageQueryModel; + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysConfigListReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysConfigListReq.java new file mode 100644 index 0000000..88bd617 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysConfigListReq.java @@ -0,0 +1,43 @@ +package com.muyu.system.domain.rep; + +import com.muyu.common.core.web.page.PageReq; +import lombok.*; +import lombok.experimental.SuperBuilder; + +import java.util.Date; + +/** + * 参数请求列表查询对象 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysConfigListReq extends PageReq { + + /** + * 配置名称 + */ + private String configName; + + /** + * 配置Key + */ + private String configKey; + + /** + * 配置类型 + */ + private String configType; + + /** + * 开始时间 + */ + private Date beginTime; + + /** + * 结束时间 + */ + private Date endTime; +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysConfigService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysConfigService.java index f23d67e..6a85d90 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysConfigService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysConfigService.java @@ -1,7 +1,9 @@ package com.muyu.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.system.domain.SysConfig; +import com.muyu.system.domain.model.SysConfigPageQueryModel; import java.util.List; @@ -11,7 +13,9 @@ import java.util.List; * @Date 2023-11-13 上午 10:06 */ public interface SysConfigService extends IService { - List pageQuery (SysConfig config); + + + Page pageQuery (SysConfigPageQueryModel pageQueryModel); /** * 通过Key进行查询值 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysConfigServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysConfigServiceImpl.java index bc07cc8..3fd6db7 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysConfigServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysConfigServiceImpl.java @@ -1,11 +1,13 @@ package com.muyu.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.redis.service.RedisService; import com.muyu.system.domain.SysConfig; +import com.muyu.system.domain.model.SysConfigPageQueryModel; import com.muyu.system.mapper.SysConfigMapper; import com.muyu.system.service.SysConfigService; import org.springframework.beans.factory.annotation.Autowired; @@ -30,26 +32,27 @@ public class SysConfigServiceImpl extends ServiceImpl pageQuery (SysConfig config) { + public Page pageQuery (SysConfigPageQueryModel pageQueryModel) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.isNotEmpty(config.getConfigName())){ - queryWrapper.like(SysConfig::getConfigName, config.getConfigName()); + if (StringUtils.isNotEmpty(pageQueryModel.getConfigName())){ + queryWrapper.like(SysConfig::getConfigName, pageQueryModel.getConfigName()); } - if (StringUtils.isNotEmpty(config.getConfigType())){ - queryWrapper.like(SysConfig::getConfigType, config.getConfigType()); + if (StringUtils.isNotEmpty(pageQueryModel.getConfigType())){ + queryWrapper.like(SysConfig::getConfigType, pageQueryModel.getConfigType()); } - if (StringUtils.isNotEmpty(config.getConfigKey())){ - queryWrapper.like(SysConfig::getConfigKey, config.getConfigKey()); + if (StringUtils.isNotEmpty(pageQueryModel.getConfigKey())){ + queryWrapper.like(SysConfig::getConfigKey, pageQueryModel.getConfigKey()); } - Object beginTime = config.getParams().get("beginTime"); - if (Objects.nonNull(beginTime) && beginTime instanceof Date beginDate){ - queryWrapper.gt(SysConfig::getCreateTime, beginDate); + Date beginTime = pageQueryModel.getBeginTime(); + if (Objects.nonNull(beginTime)){ + queryWrapper.gt(SysConfig::getCreateTime, beginTime); } - Object endTime = config.getParams().get("endTime"); - if (Objects.nonNull(endTime) && endTime instanceof Date endDate){ - queryWrapper.lt(SysConfig::getCreateTime, endDate); + Date endTime = pageQueryModel.getEndTime(); + if (Objects.nonNull(endTime)){ + queryWrapper.lt(SysConfig::getCreateTime, endTime); } - return this.list(queryWrapper); + Page configPage = this.page(pageQueryModel.buildPage(), queryWrapper); + return configPage; } /**