feat(): 增加分页模型,增加DDD模型概念

detached
DongZeLiang 2024-12-09 18:40:57 +08:00
parent 3a875840ad
commit fa29749b22
11 changed files with 229 additions and 138 deletions

View File

@ -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();
}
}

View File

@ -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 <T> Result<TableDataInfo<T>> getDataTable (List<T> list) {
return Result.success(
TableDataInfo.<T>builder()
.total(new PageInfo(list).getTotal())
.rows(list)
.build()
);
}
/**
*
*/
@ -73,35 +44,35 @@ public class BaseController {
/**
*
*/
public Result success (String message) {
public Result<String> 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<String> error () {
return Result.error();
}
/**
*
*/
public Result error (String message) {
public Result<String> error (String message) {
return Result.error(message);
}
/**
*
*/
public Result warn (String message) {
public Result<String> warn (String message) {
return Result.warn(message);
}
@ -112,7 +83,7 @@ public class BaseController {
*
* @return
*/
protected Result toAjax (int rows) {
protected Result<String> 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<String> toAjax (boolean result) {
return result ? success() : error();
}
}

View File

@ -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<T> {
/**
*
*/
private Integer pageNum;
/**
*
*/
private Integer pageSize;
/**
*
*/
private String orderByColumn;
/**
* descasc
*/
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 <I> Page<I> buildPage(){
Page<I> page = Page.of(this.getPageNum(), this.getPageSize());
page.setOrders(List.of(this.isAsc()
? OrderItem.asc(this.getOrderByColumn()) : OrderItem.desc(this.getOrderByColumn())));
return page;
}
}

View File

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

View File

@ -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<T> implements Serializable {
*/
private List<T> rows;
/**
*
*/
private int code;
/**
*
*/
private String msg;
public static <T> TableDataInfo<T> of(Page<T> list) {
return new TableDataInfo<>(list.getTotal(), list.getRecords());
}
}

View File

@ -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();
}
}

View File

@ -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<TableDataInfo<SysConfig>> list (SysConfig config) {
startPage();
List<SysConfig> list = configService.pageQuery(config);
return getDataTable(list);
public Result<TableDataInfo<SysConfig>> list (SysConfigListReq sysConfigListReq) {
Page<SysConfig> list = configService.pageQuery(SysConfigPageQueryModel.reqBuild(sysConfigListReq));
return Result.success(TableDataInfo.of(list));
}
@Log(title = "参数管理", businessType = BusinessType.EXPORT)

View File

@ -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<SysConfigPageQueryModel> {
/**
*
*/
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;
}
}

View File

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

View File

@ -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<SysConfig> {
List<SysConfig> pageQuery (SysConfig config);
Page<SysConfig> pageQuery (SysConfigPageQueryModel pageQueryModel);
/**
* Key

View File

@ -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<SysConfigMapper, SysConfig
private RedisService redisService;
@Override
public List<SysConfig> pageQuery (SysConfig config) {
public Page<SysConfig> pageQuery (SysConfigPageQueryModel pageQueryModel) {
LambdaQueryWrapper<SysConfig> 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<SysConfig> configPage = this.page(pageQueryModel.buildPage(), queryWrapper);
return configPage;
}
/**