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; 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.DateUtils;
import com.muyu.common.core.utils.PageUtils;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.core.web.page.TableDataInfo;
import org.slf4j.Logger; 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); return Result.success(message);
} }
/** /**
* *
*/ */
public Result success (Object data) { public Result success (Object data) {
return Result.success(data); return Result.success(data);
} }
/** /**
* *
*/ */
public Result error () { public Result<String> error () {
return Result.error(); return Result.error();
} }
/** /**
* *
*/ */
public Result error (String message) { public Result<String> error (String message) {
return Result.error(message); return Result.error(message);
} }
/** /**
* *
*/ */
public Result warn (String message) { public Result<String> warn (String message) {
return Result.warn(message); return Result.warn(message);
} }
@ -112,7 +83,7 @@ public class BaseController {
* *
* @return * @return
*/ */
protected Result toAjax (int rows) { protected Result<String> toAjax (int rows) {
return rows > 0 ? Result.success() : Result.error(); return rows > 0 ? Result.success() : Result.error();
} }
@ -123,7 +94,7 @@ public class BaseController {
* *
* @return * @return
*/ */
protected Result toAjax (boolean result) { protected Result<String> toAjax (boolean result) {
return result ? success() : error(); 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; package com.muyu.common.core.web.page;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/** /**
* *
* *
* @author muyu * @author muyu
*/ */
public class PageDomain { @Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class PageReq {
/** /**
* *
*/ */
@ -40,34 +48,6 @@ public class PageDomain {
return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc; 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) { public void setIsAsc (String isAsc) {
if (StringUtils.isNotEmpty(isAsc)) { if (StringUtils.isNotEmpty(isAsc)) {
// 兼容前端排序类型 // 兼容前端排序类型
@ -87,7 +67,4 @@ public class PageDomain {
return reasonable; return reasonable;
} }
public void setReasonable (Boolean reasonable) {
this.reasonable = reasonable;
}
} }

View File

@ -1,5 +1,6 @@
package com.muyu.common.core.web.page; package com.muyu.common.core.web.page;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
@ -32,14 +33,7 @@ public class TableDataInfo<T> implements Serializable {
*/ */
private List<T> rows; private List<T> rows;
/** public static <T> TableDataInfo<T> of(Page<T> list) {
* return new TableDataInfo<>(list.getTotal(), list.getRecords());
*/ }
private int code;
/**
*
*/
private String msg;
} }

View File

@ -37,17 +37,17 @@ public class TableSupport {
/** /**
* *
*/ */
public static PageDomain getPageDomain () { public static PageReq getPageDomain () {
PageDomain pageDomain = new PageDomain(); PageReq pageReq = new PageReq();
pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1)); pageReq.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1));
pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); pageReq.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10));
pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); pageReq.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));
pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC)); pageReq.setIsAsc(ServletUtils.getParameter(IS_ASC));
pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE)); pageReq.setReasonable(ServletUtils.getParameterToBool(REASONABLE));
return pageDomain; return pageReq;
} }
public static PageDomain buildPageRequest () { public static PageReq buildPageRequest () {
return getPageDomain(); return getPageDomain();
} }
} }

View File

@ -1,5 +1,6 @@
package com.muyu.system.controller; 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.domain.Result;
import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.utils.poi.ExcelUtil;
import com.muyu.common.core.web.controller.BaseController; 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.annotation.RequiresPermissions;
import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.system.domain.SysConfig; 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 com.muyu.system.service.SysConfigService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@ -39,10 +42,9 @@ public class SysConfigController extends BaseController {
@RequiresPermissions("system:config:list") @RequiresPermissions("system:config:list")
@GetMapping("/list") @GetMapping("/list")
@Operation(summary = "查询集合", description = "更新水果信息") @Operation(summary = "查询集合", description = "更新水果信息")
public Result<TableDataInfo<SysConfig>> list (SysConfig config) { public Result<TableDataInfo<SysConfig>> list (SysConfigListReq sysConfigListReq) {
startPage(); Page<SysConfig> list = configService.pageQuery(SysConfigPageQueryModel.reqBuild(sysConfigListReq));
List<SysConfig> list = configService.pageQuery(config); return Result.success(TableDataInfo.of(list));
return getDataTable(list);
} }
@Log(title = "参数管理", businessType = BusinessType.EXPORT) @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; package com.muyu.system.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.system.domain.SysConfig; import com.muyu.system.domain.SysConfig;
import com.muyu.system.domain.model.SysConfigPageQueryModel;
import java.util.List; import java.util.List;
@ -11,7 +13,9 @@ import java.util.List;
* @Date 2023-11-13 10:06 * @Date 2023-11-13 10:06
*/ */
public interface SysConfigService extends IService<SysConfig> { public interface SysConfigService extends IService<SysConfig> {
List<SysConfig> pageQuery (SysConfig config);
Page<SysConfig> pageQuery (SysConfigPageQueryModel pageQueryModel);
/** /**
* Key * Key

View File

@ -1,11 +1,13 @@
package com.muyu.system.service.impl; package com.muyu.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.constant.CacheConstants;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.redis.service.RedisService; import com.muyu.common.redis.service.RedisService;
import com.muyu.system.domain.SysConfig; import com.muyu.system.domain.SysConfig;
import com.muyu.system.domain.model.SysConfigPageQueryModel;
import com.muyu.system.mapper.SysConfigMapper; import com.muyu.system.mapper.SysConfigMapper;
import com.muyu.system.service.SysConfigService; import com.muyu.system.service.SysConfigService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -30,26 +32,27 @@ public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfig
private RedisService redisService; private RedisService redisService;
@Override @Override
public List<SysConfig> pageQuery (SysConfig config) { public Page<SysConfig> pageQuery (SysConfigPageQueryModel pageQueryModel) {
LambdaQueryWrapper<SysConfig> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SysConfig> queryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isNotEmpty(config.getConfigName())){ if (StringUtils.isNotEmpty(pageQueryModel.getConfigName())){
queryWrapper.like(SysConfig::getConfigName, config.getConfigName()); queryWrapper.like(SysConfig::getConfigName, pageQueryModel.getConfigName());
} }
if (StringUtils.isNotEmpty(config.getConfigType())){ if (StringUtils.isNotEmpty(pageQueryModel.getConfigType())){
queryWrapper.like(SysConfig::getConfigType, config.getConfigType()); queryWrapper.like(SysConfig::getConfigType, pageQueryModel.getConfigType());
} }
if (StringUtils.isNotEmpty(config.getConfigKey())){ if (StringUtils.isNotEmpty(pageQueryModel.getConfigKey())){
queryWrapper.like(SysConfig::getConfigKey, config.getConfigKey()); queryWrapper.like(SysConfig::getConfigKey, pageQueryModel.getConfigKey());
} }
Object beginTime = config.getParams().get("beginTime"); Date beginTime = pageQueryModel.getBeginTime();
if (Objects.nonNull(beginTime) && beginTime instanceof Date beginDate){ if (Objects.nonNull(beginTime)){
queryWrapper.gt(SysConfig::getCreateTime, beginDate); queryWrapper.gt(SysConfig::getCreateTime, beginTime);
} }
Object endTime = config.getParams().get("endTime"); Date endTime = pageQueryModel.getEndTime();
if (Objects.nonNull(endTime) && endTime instanceof Date endDate){ if (Objects.nonNull(endTime)){
queryWrapper.lt(SysConfig::getCreateTime, endDate); queryWrapper.lt(SysConfig::getCreateTime, endTime);
} }
return this.list(queryWrapper); Page<SysConfig> configPage = this.page(pageQueryModel.buildPage(), queryWrapper);
return configPage;
} }
/** /**