From 4314791e7cd4c7c159df2d4afd14eace59a09877 Mon Sep 17 00:00:00 2001 From: yangchaoshun <2919058172@qq.com> Date: Sun, 23 Feb 2025 22:39:45 +0800 Subject: [PATCH 1/7] =?UTF-8?q?fit():=E4=BF=AE=E6=94=B9SysLoginfor?= =?UTF-8?q?=E5=92=8CSysMenu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/system/domain/SysLogininfor.java | 5 +- .../factory/RemoteLogFallbackFactory.java | 2 +- .../controller/SysLogininforController.java | 22 ++- .../system/controller/SysMenuController.java | 19 ++- .../java/com/muyu/system/domain/SysMenu.java | 42 +++++ .../domain/model/SysLogininforAddModel.java | 75 +++++++++ .../domain/model/SysLogininforListModel.java | 26 ++++ .../system/domain/model/SysMenuListModel.java | 146 ++++++++++++++++++ .../domain/model/SysMenuPageQueryModel.java | 1 + .../domain/rep/SysLogininforAddReq.java | 52 +++++++ .../domain/rep/SysLogininforListReq.java | 3 + .../muyu/system/domain/rep/SysMenuAddReq.java | 103 ++++++++++++ .../system/domain/rep/SysMenuListReq.java | 76 +++++++++ .../domain/resp/SysLogininforListResp.java | 64 ++++++++ .../system/domain/resp/SysMenuListResp.java | 127 +++++++++++++++ .../system/service/SysLogininforService.java | 7 +- .../muyu/system/service/SysMenuService.java | 9 +- .../impl/SysLogininforServiceImpl.java | 25 +-- .../service/impl/SysMenuServiceImpl.java | 25 +-- .../src/main/resources/bootstrap.yml | 1 + 20 files changed, 787 insertions(+), 43 deletions(-) create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysLogininforAddModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuListModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysLogininforAddReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuAddReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysLogininforListResp.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysMenuListResp.java diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysLogininfor.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysLogininfor.java index a931f13..4b429d3 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysLogininfor.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysLogininfor.java @@ -3,10 +3,8 @@ package com.muyu.common.system.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.annotation.Excel.ColumnType; -import com.muyu.common.core.web.domain.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; -import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @@ -57,7 +55,8 @@ public class SysLogininfor { /** * 访问时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date accessTime; + } diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteLogFallbackFactory.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteLogFallbackFactory.java index 1fc0491..1decb18 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteLogFallbackFactory.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteLogFallbackFactory.java @@ -1,8 +1,8 @@ package com.muyu.common.system.remote.factory; import com.muyu.common.core.domain.Result; -import com.muyu.common.system.remote.RemoteLogService; import com.muyu.common.system.domain.SysLogininfor; +import com.muyu.common.system.remote.RemoteLogService; import com.muyu.common.system.domain.SysOperLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java index a4f2916..bf861f2 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java @@ -12,9 +12,12 @@ import com.muyu.common.redis.service.RedisService; import com.muyu.common.security.annotation.InnerAuth; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.system.domain.SysLogininfor; +import com.muyu.system.domain.model.SysLogininforAddModel; import com.muyu.system.domain.model.SysLogininforExportModel; import com.muyu.system.domain.model.SysLogininforListModel; +import com.muyu.system.domain.rep.SysLogininforAddReq; import com.muyu.system.domain.rep.SysLogininforListReq; +import com.muyu.system.domain.resp.SysLogininforListResp; import com.muyu.system.service.SysLogininforService; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -36,12 +39,19 @@ public class SysLogininforController extends BaseController { @Autowired private RedisService redisService; - @RequiresPermissions("system:logininfor:list") + /*@RequiresPermissions("system:logininfor:list")*/ @PostMapping("/list") - public Result> list (@RequestBody SysLogininforListReq sysLogininforListReq) { - PageQueryModel pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq)); + public Result> list (@RequestBody SysLogininforListReq sysLogininforListReq) { + PageQueryModel pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq)); + DataPageResp sysLogininforListModelDataPageResp = DataPageResp.of(pageQueryModel); return Result.success( - DataPageResp.of(pageQueryModel) + DataPageResp.builder() + .rows(sysLogininforListModelDataPageResp.getRows() + .stream() + .map(SysLogininforListResp::buildSysLogininforResp) + .toList()) + .total(sysLogininforListModelDataPageResp.getTotal()) + .build() ); } @@ -80,8 +90,8 @@ public class SysLogininforController extends BaseController { @InnerAuth @PostMapping - public Result add (@RequestBody SysLogininfor logininfor) { - logininforService.insertLogininfor(logininfor); + public Result add (@RequestBody SysLogininforAddReq logininforAddReq) { + logininforService.insertLogininfor(SysLogininforAddModel.of(logininforAddReq)); return Result.success(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java index bca363d..f5d6fd7 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java @@ -9,7 +9,10 @@ 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.SysMenu; +import com.muyu.system.domain.model.SysMenuListModel; +import com.muyu.system.domain.rep.SysMenuListReq; import com.muyu.system.domain.resp.RoleMenuTreeResp; +import com.muyu.system.domain.resp.SysMenuListResp; import com.muyu.system.service.SysMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -33,10 +36,12 @@ public class SysMenuController extends BaseController { */ @RequiresPermissions("system:menu:list") @PostMapping("/list") - public Result list (@RequestBody SysMenu menu) { + public Result> list (@RequestBody SysMenuListReq sysMenuListReq) { Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuList(menu, userId); - return success(menus); + List menus = menuService.selectMenuList(SysMenuListModel.of(sysMenuListReq), userId); + return success(menus.stream() + .map(SysMenuListResp::buildSysMenuListResp) + .toList()); } /** @@ -52,10 +57,10 @@ public class SysMenuController extends BaseController { * 获取菜单下拉树列表 */ @GetMapping("/treeselect") - public Result treeselect (SysMenu menu) { + public Result treeselect (SysMenuListReq sysMenuListReq) { Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuList(menu, userId); - return success(menuService.buildMenuTreeSelect(menus)); + List sysMenus = menuService.selectMenuList(SysMenuListModel.of(sysMenuListReq), userId); + return success(menuService.buildMenuTreeSelect(sysMenus)); } /** @@ -64,7 +69,7 @@ public class SysMenuController extends BaseController { @GetMapping(value = "/roleMenuTreeselect/{roleId}") public Result roleMenuTreeselect (@PathVariable("roleId") Long roleId) { Long userId = SecurityUtils.getUserId(); - List menus = menuService.selectMenuList(userId); + List menus = menuService.selectMenuList(userId); return Result.success( RoleMenuTreeResp.builder() .menus(menuService.buildMenuTreeSelect(menus)) diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysMenu.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysMenu.java index 736e81b..5a2f09f 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysMenu.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysMenu.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.system.domain.model.SysMenuListModel; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; @@ -155,4 +156,45 @@ public class SysMenu extends BaseEntity { return perms; } + public static SysMenu of(SysMenuListModel sysMenuListModel) { + return SysMenu.builder() + .menuId(sysMenuListModel.getMenuId()) + .menuName(sysMenuListModel.getMenuName()) + .parentName(sysMenuListModel.getParentName()) + .parentId(sysMenuListModel.getParentId()) + .orderNum(sysMenuListModel.getOrderNum()) + .path(sysMenuListModel.getPath()) + .component(sysMenuListModel.getComponent()) + .query(sysMenuListModel.getQuery()) + .isFrame(sysMenuListModel.getIsFrame()) + .isCache(sysMenuListModel.getIsCache()) + .menuType(sysMenuListModel.getMenuType()) + .visible(sysMenuListModel.getVisible()) + .status(sysMenuListModel.getStatus()) + .perms(sysMenuListModel.getPerms()) + .icon(sysMenuListModel.getIcon()) + .children(sysMenuListModel.getChildren()) + .build(); + } + + public static SysMenu buildSysMenu(SysMenuListModel sysMenuListModel) { + return SysMenu.builder() + .menuId(sysMenuListModel.getMenuId()) + .menuName(sysMenuListModel.getMenuName()) + .parentName(sysMenuListModel.getParentName()) + .parentId(sysMenuListModel.getParentId()) + .orderNum(sysMenuListModel.getOrderNum()) + .path(sysMenuListModel.getPath()) + .component(sysMenuListModel.getComponent()) + .query(sysMenuListModel.getQuery()) + .isFrame(sysMenuListModel.getIsFrame()) + .isCache(sysMenuListModel.getIsCache()) + .menuType(sysMenuListModel.getMenuType()) + .visible(sysMenuListModel.getVisible()) + .status(sysMenuListModel.getStatus()) + .perms(sysMenuListModel.getPerms()) + .icon(sysMenuListModel.getIcon()) + .children(sysMenuListModel.getChildren()) + .build(); + } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysLogininforAddModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysLogininforAddModel.java new file mode 100644 index 0000000..3538822 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysLogininforAddModel.java @@ -0,0 +1,75 @@ +package com.muyu.system.domain.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.system.domain.SysLogininfor; +import com.muyu.system.domain.rep.SysLogininforAddReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: 登录添加模型 + * @author yangchoashun + * @date 2025/2/23 17:24 + * @version 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysLogininforAddModel { + /** + * 访问ID + */ + private Long infoId; + /** + * 用户账号 + */ + private String userName; + + /** + * 状态 0成功 1失败 + */ + private String status; + + /** + * 地址 + */ + private String ipaddr; + + /** + * 描述 + */ + private String msg; + + /** + * 访问时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date accessTime; + + public static SysLogininforAddModel of(SysLogininforAddReq sysLogininforAddReq) { + return SysLogininforAddModel.builder() + .infoId(sysLogininforAddReq.getInfoId()) + .userName(sysLogininforAddReq.getUserName()) + .status(sysLogininforAddReq.getStatus()) + .ipaddr(sysLogininforAddReq.getIpaddr()) + .msg(sysLogininforAddReq.getMsg()) + .accessTime(sysLogininforAddReq.getAccessTime()) + .build(); + } + + public static SysLogininfor of(SysLogininforAddModel sysLogininforAddModel) { + return SysLogininfor.builder() + .infoId(sysLogininforAddModel.getInfoId()) + .userName(sysLogininforAddModel.getUserName()) + .status(sysLogininforAddModel.getStatus()) + .ipaddr(sysLogininforAddModel.getIpaddr()) + .msg(sysLogininforAddModel.getMsg()) + .accessTime(sysLogininforAddModel.getAccessTime()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysLogininforListModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysLogininforListModel.java index eb86184..50748c4 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysLogininforListModel.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysLogininforListModel.java @@ -1,6 +1,8 @@ package com.muyu.system.domain.model; +import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.web.model.QueryModel; +import com.muyu.common.system.domain.SysLogininfor; import com.muyu.system.domain.rep.SysLogininforListReq; import lombok.AllArgsConstructor; import lombok.Data; @@ -17,6 +19,10 @@ import java.util.Date; @NoArgsConstructor @AllArgsConstructor public class SysLogininforListModel extends QueryModel { + /** + * 访问ID + */ + private Long infoId; /** * IP地址 */ @@ -42,6 +48,16 @@ public class SysLogininforListModel extends QueryModel { */ private Date endTime; + /** + * 描述 + */ + private String msg; + + /** + * 访问时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date accessTime; public static SysLogininforListModel reqBuild(SysLogininforListReq req){ return SysLogininforListModel.builder() .ipaddr(req.getIpaddr()) @@ -51,4 +67,14 @@ public class SysLogininforListModel extends QueryModel { .build() .domainBuild(req); } + + public static SysLogininforListModel buildSysLogininforListModel(SysLogininfor sysLogininfor) { + return SysLogininforListModel.builder() + .ipaddr(sysLogininfor.getIpaddr()) + .userName(sysLogininfor.getUserName()) + .status(sysLogininfor.getStatus()) + .msg(sysLogininfor.getMsg()) + .accessTime(sysLogininfor.getAccessTime()) + .build(); + } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuListModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuListModel.java new file mode 100644 index 0000000..4e4d7d8 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuListModel.java @@ -0,0 +1,146 @@ +package com.muyu.system.domain.model; + +import com.muyu.system.domain.SysMenu; +import com.muyu.system.domain.rep.SysMenuAddReq; +import com.muyu.system.domain.rep.SysMenuListReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 菜单添加模型 + * @author yangchoashun + * @date 2025/2/23 17:24 + * @version 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysMenuListModel { + private Long menuId; + + /** + * 菜单名称 + */ + private String menuName; + + /** + * 父菜单名称 + */ + private String parentName; + + /** + * 父菜单ID + */ + + private Long parentId; + + /** + * 显示顺序 + */ + + private Integer orderNum; + + /** + * 路由地址 + */ + + private String path; + + /** + * 组件路径 + */ + + private String component; + + /** + * 路由参数 + */ + private String query; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 子菜单 + */ + private List children = new ArrayList(); + public static SysMenuListModel of(SysMenuListReq sysMenuListReq) { + return SysMenuListModel.builder() + .menuId(sysMenuListReq.getMenuId()) + .menuName(sysMenuListReq.getMenuName()) + .parentName(sysMenuListReq.getParentName()) + .parentId(sysMenuListReq.getParentId()) + .orderNum(sysMenuListReq.getOrderNum()) + .path(sysMenuListReq.getPath()) + .component(sysMenuListReq.getComponent()) + .query(sysMenuListReq.getQuery()) + .isFrame(sysMenuListReq.getIsFrame()) + .isCache(sysMenuListReq.getIsCache()) + .menuType(sysMenuListReq.getMenuType()) + .visible(sysMenuListReq.getVisible()) + .status(sysMenuListReq.getStatus()) + .perms(sysMenuListReq.getPerms()) + .icon(sysMenuListReq.getIcon()) + .children(sysMenuListReq.getChildren()) + .build(); + } + + public static SysMenuListModel buildSysMenuListModel(SysMenu sysMenu) { + return SysMenuListModel.builder() + .menuId(sysMenu.getMenuId()) + .menuName(sysMenu.getMenuName()) + .parentName(sysMenu.getParentName()) + .parentId(sysMenu.getParentId()) + .orderNum(sysMenu.getOrderNum()) + .path(sysMenu.getPath()) + .component(sysMenu.getComponent()) + .query(sysMenu.getQuery()) + .isFrame(sysMenu.getIsFrame()) + .isCache(sysMenu.getIsCache()) + .menuType(sysMenu.getMenuType()) + .visible(sysMenu.getVisible()) + .status(sysMenu.getStatus()) + .perms(sysMenu.getPerms()) + .icon(sysMenu.getIcon()) + .children(sysMenu.getChildren()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuPageQueryModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuPageQueryModel.java index cbc9860..4f49885 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuPageQueryModel.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuPageQueryModel.java @@ -1,6 +1,7 @@ package com.muyu.system.domain.model; import com.muyu.common.core.web.model.QueryModel; +import com.muyu.system.domain.rep.SysMenuAddReq; import com.muyu.system.domain.rep.SysMenuListReq; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysLogininforAddReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysLogininforAddReq.java new file mode 100644 index 0000000..8de33b5 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysLogininforAddReq.java @@ -0,0 +1,52 @@ +package com.muyu.system.domain.rep; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @description: 登录添加请求 + * @author yangchoashun + * @date 2025/2/23 17:24 + * @version 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysLogininforAddReq { + /** + * 访问ID + */ + private Long infoId; + /** + * 用户账号 + */ + private String userName; + + /** + * 状态 0成功 1失败 + */ + private String status; + + /** + * 地址 + */ + private String ipaddr; + + /** + * 描述 + */ + private String msg; + + /** + * 访问时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date accessTime; +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysLogininforListReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysLogininforListReq.java index da808f9..11f03f7 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysLogininforListReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysLogininforListReq.java @@ -1,5 +1,6 @@ package com.muyu.system.domain.rep; +import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.web.page.PageReq; import lombok.AllArgsConstructor; import lombok.Data; @@ -34,10 +35,12 @@ public class SysLogininforListReq extends PageReq { /** * 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date beginTime; /** * 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuAddReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuAddReq.java new file mode 100644 index 0000000..89f951c --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuAddReq.java @@ -0,0 +1,103 @@ +package com.muyu.system.domain.rep; + +import com.muyu.system.domain.SysMenu; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 菜单添加请求 + * @author yangchoashun + * @date 2025/2/23 17:24 + * @version 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysMenuAddReq { + private Long menuId; + + /** + * 菜单名称 + */ + private String menuName; + + /** + * 父菜单名称 + */ + private String parentName; + + /** + * 父菜单ID + */ + + private Long parentId; + + /** + * 显示顺序 + */ + + private Integer orderNum; + + /** + * 路由地址 + */ + + private String path; + + /** + * 组件路径 + */ + + private String component; + + /** + * 路由参数 + */ + private String query; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 子菜单 + */ + private List children = new ArrayList(); +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuListReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuListReq.java index 7cf9817..513e34f 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuListReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuListReq.java @@ -1,12 +1,16 @@ package com.muyu.system.domain.rep; import com.muyu.common.core.web.page.PageReq; +import com.muyu.system.domain.SysMenu; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.util.ArrayList; +import java.util.List; + /** * 菜单信息请求列表查询对象 * @@ -21,12 +25,84 @@ import lombok.experimental.SuperBuilder; @AllArgsConstructor @EqualsAndHashCode(callSuper = true) public class SysMenuListReq extends PageReq { + private Long menuId; + /** * 菜单名称 */ private String menuName; + + /** + * 父菜单名称 + */ + private String parentName; + + /** + * 父菜单ID + */ + + private Long parentId; + + /** + * 显示顺序 + */ + + private Integer orderNum; + + /** + * 路由地址 + */ + + private String path; + + /** + * 组件路径 + */ + + private String component; + + /** + * 路由参数 + */ + private String query; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + /** * 菜单状态(0正常 1停用) */ private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 子菜单 + */ + private List children = new ArrayList(); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysLogininforListResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysLogininforListResp.java new file mode 100644 index 0000000..5565723 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysLogininforListResp.java @@ -0,0 +1,64 @@ +package com.muyu.system.domain.resp; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.muyu.system.domain.model.SysLogininforListModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +/** + * @author yangchaoshun + * @version 1.0 + * @description: 登录信息返回对象 + * @date 2025/2/23 18:18 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysLogininforListResp { + /** + * ID + */ + private Long infoId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 状态 0成功 1失败 + */ + private String status; + + /** + * 地址 + */ + private String ipaddr; + + /** + * 描述 + */ + private String msg; + + /** + * 访问时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date accessTime; + + public static SysLogininforListResp buildSysLogininforResp(SysLogininforListModel sysLogininforListModel) { + return SysLogininforListResp.builder() + .infoId(sysLogininforListModel.getInfoId()) + .userName(sysLogininforListModel.getUserName()) + .status(sysLogininforListModel.getStatus()) + .ipaddr(sysLogininforListModel.getIpaddr()) + .msg(sysLogininforListModel.getMsg()) + .accessTime(sysLogininforListModel.getAccessTime()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysMenuListResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysMenuListResp.java new file mode 100644 index 0000000..f7cdb17 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysMenuListResp.java @@ -0,0 +1,127 @@ +package com.muyu.system.domain.resp; + +import com.muyu.system.domain.SysMenu; +import com.muyu.system.domain.model.SysMenuListModel; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.util.ArrayList; +import java.util.List; + +/** + * 菜单信息请求列表查询对象 + * + * @ClassName SysMenuListReq + * @Author AnNan.Wang + * @Date 2024/12/16 10:55 + */ + +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class SysMenuListResp { + private Long menuId; + + /** + * 菜单名称 + */ + private String menuName; + + /** + * 父菜单名称 + */ + private String parentName; + + /** + * 父菜单ID + */ + + private Long parentId; + + /** + * 显示顺序 + */ + + private Integer orderNum; + + /** + * 路由地址 + */ + + private String path; + + /** + * 组件路径 + */ + + private String component; + + /** + * 路由参数 + */ + private String query; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 子菜单 + */ + private List children = new ArrayList(); + + public static SysMenuListResp buildSysMenuListResp(SysMenuListModel sysMenuListModel){ + return SysMenuListResp.builder() + .menuId(sysMenuListModel.getMenuId()) + .menuName(sysMenuListModel.getMenuName()) + .parentName(sysMenuListModel.getParentName()) + .parentId(sysMenuListModel.getParentId()) + .orderNum(sysMenuListModel.getOrderNum()) + .path(sysMenuListModel.getPath()) + .component(sysMenuListModel.getComponent()) + .query(sysMenuListModel.getQuery()) + .isFrame(sysMenuListModel.getIsFrame()) + .isCache(sysMenuListModel.getIsCache()) + .menuType(sysMenuListModel.getMenuType()) + .visible(sysMenuListModel.getVisible()) + .status(sysMenuListModel.getStatus()) + .perms(sysMenuListModel.getPerms()) + .icon(sysMenuListModel.getIcon()) + .children(sysMenuListModel.getChildren()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysLogininforService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysLogininforService.java index cedc60f..c0de73d 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysLogininforService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysLogininforService.java @@ -3,6 +3,7 @@ package com.muyu.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.system.domain.SysLogininfor; +import com.muyu.system.domain.model.SysLogininforAddModel; import com.muyu.system.domain.model.SysLogininforExportModel; import com.muyu.system.domain.model.SysLogininforListModel; @@ -17,9 +18,9 @@ public interface SysLogininforService extends IService { /** * 新增系统登录日志 * - * @param logininfor 访问日志对象 + * @param logininforAddModel 访问日志对象 */ - public void insertLogininfor (SysLogininfor logininfor); + public void insertLogininfor (SysLogininforAddModel logininforAddModel); /** * 查询系统登录日志集合 @@ -28,7 +29,7 @@ public interface SysLogininforService extends IService { * * @return 登录记录集合 */ - public PageQueryModel pageQuery(SysLogininforListModel sysLogininforListModel); + public PageQueryModel pageQuery(SysLogininforListModel sysLogininforListModel); /** * 批量删除系统登录日志 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java index b6aaec4..cc0a9ef 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java @@ -2,6 +2,7 @@ package com.muyu.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.system.domain.SysMenu; +import com.muyu.system.domain.model.SysMenuListModel; import com.muyu.system.domain.vo.RouterVo; import com.muyu.system.domain.vo.TreeSelect; @@ -21,17 +22,17 @@ public interface SysMenuService extends IService { * * @return 菜单列表 */ - public List selectMenuList (Long userId); + public List selectMenuList (Long userId); /** * 根据用户查询系统菜单列表 * - * @param menu 菜单信息 + * @param sysMenuListModel 菜单信息 * @param userId 用户ID * * @return 菜单列表 */ - public List selectMenuList (SysMenu menu, Long userId); + public List selectMenuList (SysMenuListModel sysMenuListModel, Long userId); /** * 根据用户ID查询权限 @@ -94,7 +95,7 @@ public interface SysMenuService extends IService { * * @return 下拉树结构列表 */ - public List buildMenuTreeSelect (List menus); + public List buildMenuTreeSelect (List menus); /** * 根据菜单ID查询信息 diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java index c5a14e7..ed8580f 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.system.domain.SysLogininfor; +import com.muyu.system.domain.model.SysLogininforAddModel; import com.muyu.system.domain.model.SysLogininforExportModel; import com.muyu.system.domain.model.SysLogininforListModel; import com.muyu.system.mapper.SysLogininforMapper; @@ -30,10 +31,11 @@ public class SysLogininforServiceImpl extends ServiceImpl pageQuery(SysLogininforListModel pageQueryModel) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr()); - queryWrapper.eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus()); - queryWrapper.like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName()); - queryWrapper.between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime()); + public PageQueryModel pageQuery(SysLogininforListModel pageQueryModel) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + .like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr()) + .eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus()) + .like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName()) + .between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime()); Page page = this.page(pageQueryModel.buildPage(), queryWrapper); - return PageQueryModel.of(page); + return new PageQueryModel(){{ + setDataList(page.getRecords().stream() + .map(SysLogininforListModel::buildSysLogininforListModel) + .toList()); + setTotal(page.getTotal()); + }}; } /** diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index 1cf8411..35e11a0 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -9,6 +9,7 @@ import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.system.domain.SysRole; import com.muyu.common.system.domain.SysUser; import com.muyu.system.domain.SysMenu; +import com.muyu.system.domain.model.SysMenuListModel; import com.muyu.system.domain.vo.MetaVo; import com.muyu.system.domain.vo.RouterVo; import com.muyu.system.domain.vo.TreeSelect; @@ -48,35 +49,39 @@ public class SysMenuServiceImpl extends ServiceImpl impl * @return 菜单列表 */ @Override - public List selectMenuList (Long userId) { - return selectMenuList(new SysMenu(), userId); + public List selectMenuList (Long userId) { + return selectMenuList(new SysMenuListModel(), userId); } /** * 查询系统菜单列表 * - * @param menu 菜单信息 + * @param sysMenuListModel 菜单信息 * * @return 菜单列表 */ @Override - public List selectMenuList (SysMenu menu, Long userId) { + public List selectMenuList (SysMenuListModel sysMenuListModel, Long userId) { List menuList = null; // 管理员显示所有菜单信息 if (SysUser.isAdmin(userId)) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName()); - lambdaQueryWrapper.eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible()); - lambdaQueryWrapper.eq(StringUtils.isNotEmpty(menu.getStatus()), SysMenu::getStatus, menu.getStatus()); + lambdaQueryWrapper.like(StringUtils.isNotBlank(sysMenuListModel.getMenuName()), SysMenu::getMenuName, sysMenuListModel.getMenuName()); + lambdaQueryWrapper.eq(StringUtils.isNotBlank(sysMenuListModel.getVisible()), SysMenu::getVisible, sysMenuListModel.getVisible()); + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(sysMenuListModel.getStatus()), SysMenu::getStatus, sysMenuListModel.getStatus()); lambdaQueryWrapper.orderByAsc( SysMenu::getParentId, SysMenu::getOrderNum ); menuList = this.list(lambdaQueryWrapper); } else { + SysMenu menu = SysMenu.of(sysMenuListModel); menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } - return menuList; + + return menuList.stream() + .map(SysMenuListModel::buildSysMenuListModel) + .toList(); } /** @@ -247,8 +252,8 @@ public class SysMenuServiceImpl extends ServiceImpl impl * @return 下拉树结构列表 */ @Override - public List buildMenuTreeSelect (List menus) { - List menuTrees = buildMenuTree(menus); + public List buildMenuTreeSelect (List menus) { + List menuTrees = buildMenuTree(menus.stream().map(SysMenu::buildSysMenu).collect(Collectors.toList())); return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); } diff --git a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml index ebdfaa2..b59c945 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml +++ b/cloud-modules/cloud-modules-system/src/main/resources/bootstrap.yml @@ -12,6 +12,7 @@ nacos: spring: main: allow-bean-definition-overriding: true + allow-circular-references: true application: # 应用名称 name: cloud-system From 2b2adcea040a2ac54209e728e01062fea0578a9f Mon Sep 17 00:00:00 2001 From: yangchaoshun <2919058172@qq.com> Date: Sun, 23 Feb 2025 22:40:37 +0800 Subject: [PATCH 2/7] =?UTF-8?q?fit():=E4=BF=AE=E6=94=B9SysLoginfor?= =?UTF-8?q?=E5=92=8CSysMenu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/muyu/system/controller/SysLogininforController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java index bf861f2..45181b9 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java @@ -39,7 +39,7 @@ public class SysLogininforController extends BaseController { @Autowired private RedisService redisService; - /*@RequiresPermissions("system:logininfor:list")*/ + @RequiresPermissions("system:logininfor:list") @PostMapping("/list") public Result> list (@RequestBody SysLogininforListReq sysLogininforListReq) { PageQueryModel pageQueryModel = logininforService.pageQuery(SysLogininforListModel.reqBuild(sysLogininforListReq)); From 79f5c7284a7d275124e92ce898b74cf8aa2e7348 Mon Sep 17 00:00:00 2001 From: 21407 <2140709953@qq.com> Date: Sun, 23 Feb 2025 22:41:16 +0800 Subject: [PATCH 3/7] =?UTF-8?q?feat():=E5=B2=97=E4=BD=8D=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E4=B8=9A=E5=8A=A1=E4=BD=BF=E7=94=A8mybatis-p?= =?UTF-8?q?lus=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/web/page/DataPageResp.java | 3 + .../common/core/web/page/PageQueryModel.java | 9 +++ .../system/controller/SysPostController.java | 52 +++++++------ .../java/com/muyu/system/domain/SysPost.java | 26 +++++++ .../system/domain/model/SysPostEditModel.java | 73 ++++++++++++++++++ .../system/domain/model/SysPostListModel.java | 64 ++++++++++++++++ .../domain/model/SysPostMyInfoModel.java | 66 ++++++++++++++++ .../system/domain/model/SysPostSaveModel.java | 73 ++++++++++++++++++ .../system/domain/rep/SysPostEditReq.java | 72 ++++++++++++++++++ .../system/domain/rep/SysPostSaveReq.java | 75 +++++++++++++++++++ .../system/domain/resp/SysPostListResp.java | 71 ++++++++++++++++++ .../muyu/system/service/SysPostService.java | 40 ++++++++-- .../service/impl/SysPostServiceImpl.java | 55 +++++++++++--- 13 files changed, 634 insertions(+), 45 deletions(-) create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostEditModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostListModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostMyInfoModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostSaveModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostEditReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostSaveReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostListResp.java diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/DataPageResp.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/DataPageResp.java index f05fe81..12dc288 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/DataPageResp.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/DataPageResp.java @@ -34,4 +34,7 @@ public class DataPageResp implements Serializable { public static DataPageResp of(PageQueryModel pageQueryModel) { return new DataPageResp<>(pageQueryModel.getTotal(), pageQueryModel.getDataList()); } + public static DataPageResp of(Long total, List rows) { + return new DataPageResp<>(total,rows); + } } diff --git a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageQueryModel.java b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageQueryModel.java index 383cc75..e2b41c0 100644 --- a/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageQueryModel.java +++ b/cloud-common/cloud-common-core/src/main/java/com/muyu/common/core/web/page/PageQueryModel.java @@ -36,4 +36,13 @@ public class PageQueryModel { public static PageQueryModel of(Page page) { return new PageQueryModel<>(page.getTotal(), page.getRecords()); } + /** + * 构建分页查询模型对象 + * @param total,list 分页对象 + * @return 分页模型对象 + * @param 入参 + */ + public static PageQueryModel of(Long total,List list) { + return new PageQueryModel<>(total, list); + } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java index 9121c77..e230ee9 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java @@ -10,9 +10,11 @@ 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.SysPost; -import com.muyu.system.domain.model.SysPostPageQueryModel; +import com.muyu.system.domain.model.*; +import com.muyu.system.domain.rep.SysPostEditReq; import com.muyu.system.domain.rep.SysPostListReq; -import com.muyu.system.service.SysPostService; +import com.muyu.system.domain.rep.SysPostSaveReq; +import com.muyu.system.domain.resp.SysPostListResp;import com.muyu.system.service.SysPostService; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -36,11 +38,9 @@ public class SysPostController extends BaseController { */ @RequiresPermissions("system:post:list") @PostMapping("/list") - public Result> list (@RequestBody SysPostListReq postListReq) { - PageQueryModel sysPostPageQueryModel = postService.pageQuery( - SysPostPageQueryModel.reqBuild(postListReq) - ); - return Result.success(DataPageResp.of(sysPostPageQueryModel)); + public Result> list (@RequestBody SysPostListReq postListReq) { + PageQueryModel sysPostPageQueryModel = postService.getList(SysPostPageQueryModel.reqBuild(postListReq)); + return Result.success(DataPageResp.of(sysPostPageQueryModel.getTotal(),sysPostPageQueryModel.getDataList().stream().map(SysPostListResp::listBuild).toList())); } @Log(title = "岗位管理", businessType = BusinessType.EXPORT) @@ -48,11 +48,9 @@ public class SysPostController extends BaseController { @PostMapping("/export") public void export (HttpServletResponse response, SysPostListReq postListReq) { // TODO 导出重写 - PageQueryModel sysPostPageQueryModel = postService.pageQuery( - SysPostPageQueryModel.reqBuild(postListReq) - ); - ExcelUtil util = new ExcelUtil(SysPost.class); - util.exportExcel(response, sysPostPageQueryModel.getDataList(), "岗位数据"); + PageQueryModel sysPostPageQueryModel = postService.getList(SysPostPageQueryModel.reqBuild(postListReq)); + ExcelUtil util = new ExcelUtil(SysPostListResp.class); + util.exportExcel(response, sysPostPageQueryModel.getDataList().stream().map(SysPostListResp::listBuild).toList(), "岗位数据"); } /** @@ -60,7 +58,7 @@ public class SysPostController extends BaseController { */ @RequiresPermissions("system:post:query") @GetMapping(value = "/{postId}") - public Result getInfo (@PathVariable("postId") Long postId) { + public Result getInfo (@PathVariable("postId") Long postId) { return success(postService.selectPostById(postId)); } @@ -70,14 +68,14 @@ public class SysPostController extends BaseController { @RequiresPermissions("system:post:add") @Log(title = "岗位管理", businessType = BusinessType.INSERT) @PostMapping - public Result add (@Validated @RequestBody SysPost post) { - if (!postService.checkPostNameUnique(post)) { - return error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); - } else if (!postService.checkPostCodeUnique(post)) { - return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + public Result add (@Validated @RequestBody SysPostSaveReq sysPostSaveReq) { + if (!postService.checkPostNameUnique(SysPostSaveModel.saveBuild(sysPostSaveReq))) { + return error("新增岗位'" + sysPostSaveReq.getPostName() + "'失败,岗位名称已存在"); + } else if (!postService.checkPostCodeUnique(SysPostSaveModel.saveBuild(sysPostSaveReq))) { + return error("新增岗位'" + sysPostSaveReq.getPostName() + "'失败,岗位编码已存在"); } - post.setCreateBy(SecurityUtils.getUsername()); - postService.insertPost(post); + sysPostSaveReq.setCreateBy(SecurityUtils.getUsername()); + postService.insertPost(SysPost.saveBuild(SysPostSaveModel.saveBuild(sysPostSaveReq))); return Result.success(); } @@ -87,14 +85,14 @@ public class SysPostController extends BaseController { @RequiresPermissions("system:post:edit") @Log(title = "岗位管理", businessType = BusinessType.UPDATE) @PutMapping - public Result edit (@Validated @RequestBody SysPost post) { - if (!postService.checkPostNameUnique(post)) { - return error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); - } else if (!postService.checkPostCodeUnique(post)) { - return error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在"); + public Result edit (@Validated @RequestBody SysPostEditReq sysPostEditReq) { + if (!postService.checkEditPostNameUnique(SysPostEditModel.editBuild(sysPostEditReq))) { + return error("修改岗位'" + sysPostEditReq.getPostName() + "'失败,岗位名称已存在"); + } else if (!postService.checkEditPostCodeUnique(SysPostEditModel.editBuild(sysPostEditReq))) { + return error("修改岗位'" + sysPostEditReq.getPostName() + "'失败,岗位编码已存在"); } - post.setUpdateBy(SecurityUtils.getUsername()); - postService.updatePost(post); + sysPostEditReq.setUpdateBy(SecurityUtils.getUsername()); + postService.updatePost(SysPost.editBuild(SysPostEditModel.editBuild(sysPostEditReq))); return Result.success(); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysPost.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysPost.java index 8b6f665..f3e14e6 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysPost.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysPost.java @@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.annotation.Excel.ColumnType; import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.system.domain.model.SysPostEditModel; +import com.muyu.system.domain.model.SysPostSaveModel; +import com.muyu.system.domain.rep.SysPostSaveReq; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; @@ -79,4 +82,27 @@ public class SysPost extends BaseEntity { public Integer getPostSort () { return postSort; } + + public static SysPost saveBuild(SysPostSaveModel sysPostSaveModel) { + return SysPost.builder() + .postId(sysPostSaveModel.getPostId()) + .postCode(sysPostSaveModel.getPostCode()) + .postName(sysPostSaveModel.getPostName()) + .postSort(sysPostSaveModel.getPostSort()) + .status(sysPostSaveModel.getStatus()) + .flag(sysPostSaveModel.isFlag()) + .createBy(sysPostSaveModel.getCreateBy()) + .build(); + } + public static SysPost editBuild(SysPostEditModel sysPostEditModel) { + return SysPost.builder() + .postId(sysPostEditModel.getPostId()) + .postCode(sysPostEditModel.getPostCode()) + .postName(sysPostEditModel.getPostName()) + .postSort(sysPostEditModel.getPostSort()) + .status(sysPostEditModel.getStatus()) + .flag(sysPostEditModel.isFlag()) + .createBy(sysPostEditModel.getUpdateBy()) + .build(); + } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostEditModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostEditModel.java new file mode 100644 index 0000000..671ebf0 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostEditModel.java @@ -0,0 +1,73 @@ +package com.muyu.system.domain.model; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.system.domain.rep.SysPostEditReq; +import com.muyu.system.domain.rep.SysPostSaveReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** + * 岗位信息列表模型 + * @author: AoCi Tian + * @create: 2025-02-23 19:31 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysPostEditModel { + private static final long serialVersionUID = 1L; + + /** + * 岗位序号 + */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** + * 岗位编码 + */ + @Excel(name = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @Excel(name = "岗位名称") + private String postName; + + /** + * 岗位排序 + */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 用户是否存在此岗位标识 默认不存在 + */ + @Builder.Default + private boolean flag = false; + + /** + * 创建者 + */ + private String updateBy; + + public static SysPostEditModel editBuild(SysPostEditReq sysPostEditReq) { + return SysPostEditModel.builder() + .postId(sysPostEditReq.getPostId()) + .postCode(sysPostEditReq.getPostCode()) + .postName(sysPostEditReq.getPostName()) + .postSort(sysPostEditReq.getPostSort()) + .status(sysPostEditReq.getStatus()) + .flag(sysPostEditReq.isFlag()) + .updateBy(sysPostEditReq.getUpdateBy()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostListModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostListModel.java new file mode 100644 index 0000000..9fa28f5 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostListModel.java @@ -0,0 +1,64 @@ +package com.muyu.system.domain.model; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.system.domain.SysPost; +import lombok.*; +import lombok.experimental.SuperBuilder; /** + * 岗位信息列表模型 + * @author: AoCi Tian + * @create: 2025-02-23 19:31 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysPostListModel { + private static final long serialVersionUID = 1L; + + /** + * 岗位序号 + */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** + * 岗位编码 + */ + @Excel(name = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @Excel(name = "岗位名称") + private String postName; + + /** + * 岗位排序 + */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 用户是否存在此岗位标识 默认不存在 + */ + @Builder.Default + private boolean flag = false; + + public static SysPostListModel listBuild(SysPost sysPost) { + return SysPostListModel.builder() + .postId(sysPost.getPostId()) + .postCode(sysPost.getPostCode()) + .postName(sysPost.getPostName()) + .postSort(sysPost.getPostSort()) + .status(sysPost.getStatus()) + .flag(sysPost.isFlag()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostMyInfoModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostMyInfoModel.java new file mode 100644 index 0000000..12c42f0 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostMyInfoModel.java @@ -0,0 +1,66 @@ +package com.muyu.system.domain.model; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.system.domain.SysPost; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** + * 个人岗位信息 + * @author: AoCi Tian + * @create: 2025-02-23 20:52 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysPostMyInfoModel { + private static final long serialVersionUID = 1L; + + /** + * 岗位序号 + */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** + * 岗位编码 + */ + @Excel(name = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @Excel(name = "岗位名称") + private String postName; + + /** + * 岗位排序 + */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 用户是否存在此岗位标识 默认不存在 + */ + @Builder.Default + private boolean flag = false; + + public static SysPostMyInfoModel build(SysPost sysPost) { + return SysPostMyInfoModel.builder() + .postId(sysPost.getPostId()) + .postCode(sysPost.getPostCode()) + .postName(sysPost.getPostName()) + .postSort(sysPost.getPostSort()) + .status(sysPost.getStatus()) + .flag(sysPost.isFlag()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostSaveModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostSaveModel.java new file mode 100644 index 0000000..c57938e --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostSaveModel.java @@ -0,0 +1,73 @@ +package com.muyu.system.domain.model; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.system.domain.SysPost; +import com.muyu.system.domain.rep.SysPostSaveReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** + * 岗位信息列表模型 + * @author: AoCi Tian + * @create: 2025-02-23 19:31 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysPostSaveModel { + private static final long serialVersionUID = 1L; + + /** + * 岗位序号 + */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** + * 岗位编码 + */ + @Excel(name = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @Excel(name = "岗位名称") + private String postName; + + /** + * 岗位排序 + */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 用户是否存在此岗位标识 默认不存在 + */ + @Builder.Default + private boolean flag = false; + + /** + * 创建者 + */ + private String createBy; + + public static SysPostSaveModel saveBuild(SysPostSaveReq sysPostSaveReq) { + return SysPostSaveModel.builder() + .postId(sysPostSaveReq.getPostId()) + .postCode(sysPostSaveReq.getPostCode()) + .postName(sysPostSaveReq.getPostName()) + .postSort(sysPostSaveReq.getPostSort()) + .status(sysPostSaveReq.getStatus()) + .flag(sysPostSaveReq.isFlag()) + .createBy(sysPostSaveReq.getCreateBy()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostEditReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostEditReq.java new file mode 100644 index 0000000..05c9e04 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostEditReq.java @@ -0,0 +1,72 @@ +package com.muyu.system.domain.rep; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.system.domain.SysPost; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** + * 岗位信息列表模型 + * @author: AoCi Tian + * @create: 2025-02-23 19:31 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysPostEditReq { + private static final long serialVersionUID = 1L; + + /** + * 岗位序号 + */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** + * 岗位编码 + */ + @Excel(name = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @Excel(name = "岗位名称") + private String postName; + + /** + * 岗位排序 + */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 用户是否存在此岗位标识 默认不存在 + */ + @Builder.Default + private boolean flag = false; + + /** + * 创建者 + */ + private String updateBy; + + public static SysPostEditReq editBuild(SysPost sysPost) { + return SysPostEditReq.builder() + .postId(sysPost.getPostId()) + .postCode(sysPost.getPostCode()) + .postName(sysPost.getPostName()) + .postSort(sysPost.getPostSort()) + .status(sysPost.getStatus()) + .flag(sysPost.isFlag()) + .updateBy(sysPost.getUpdateBy()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostSaveReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostSaveReq.java new file mode 100644 index 0000000..8116a6d --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostSaveReq.java @@ -0,0 +1,75 @@ +package com.muyu.system.domain.rep; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.system.domain.SysPost; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** + * 岗位信息列表模型 + * @author: AoCi Tian + * @create: 2025-02-23 19:31 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysPostSaveReq { + private static final long serialVersionUID = 1L; + + /** + * 岗位序号 + */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** + * 岗位编码 + */ + @Excel(name = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @Excel(name = "岗位名称") + private String postName; + + /** + * 岗位排序 + */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 用户是否存在此岗位标识 默认不存在 + */ + @Builder.Default + private boolean flag = false; + + /** + * 创建者 + */ + private String createBy; + + public static SysPostSaveReq saveBuild(SysPost sysPost) { + return SysPostSaveReq.builder() + .postId(sysPost.getPostId()) + .postCode(sysPost.getPostCode()) + .postName(sysPost.getPostName()) + .postSort(sysPost.getPostSort()) + .status(sysPost.getStatus()) + .flag(sysPost.isFlag()) + .createBy(sysPost.getCreateBy()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostListResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostListResp.java new file mode 100644 index 0000000..e92872b --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostListResp.java @@ -0,0 +1,71 @@ +package com.muyu.system.domain.resp; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.page.PageQueryModel; +import com.muyu.system.domain.SysPost; +import com.muyu.system.domain.model.SysPostListModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; /** + + * 岗位信息响应列表 + * @author: AoCi Tian + * @create: 2025-02-23 19:37 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysPostListResp { + private static final long serialVersionUID = 1L; + + /** + * 岗位序号 + */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** + * 岗位编码 + */ + @Excel(name = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @Excel(name = "岗位名称") + private String postName; + + /** + * 岗位排序 + */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 用户是否存在此岗位标识 默认不存在 + */ + @Builder.Default + private boolean flag = false; + + public static SysPostListResp listBuild(SysPostListModel sysPostListModel) { + return SysPostListResp.builder() + .postId(sysPostListModel.getPostId()) + .postCode(sysPostListModel.getPostCode()) + .postName(sysPostListModel.getPostName()) + .postSort(sysPostListModel.getPostSort()) + .status(sysPostListModel.getStatus()) + .flag(sysPostListModel.isFlag()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysPostService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysPostService.java index 63194df..48fcbd3 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysPostService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysPostService.java @@ -1,9 +1,11 @@ package com.muyu.system.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.core.web.page.DataPageResp; import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.system.domain.SysPost; -import com.muyu.system.domain.model.SysPostPageQueryModel; +import com.muyu.system.domain.model.*; +import com.muyu.system.domain.resp.SysPostListResp; import java.util.List; @@ -27,7 +29,7 @@ public interface SysPostService extends IService { * * @return 角色对象信息 */ - public SysPost selectPostById (Long postId); + public SysPostMyInfoModel selectPostById (Long postId); /** * 根据用户ID获取岗位选择框列表 @@ -41,20 +43,40 @@ public interface SysPostService extends IService { /** * 校验岗位名称 * - * @param post 岗位信息 + * @param sysPostSaveModel 岗位信息 * * @return 结果 */ - public boolean checkPostNameUnique (SysPost post); + public boolean checkPostNameUnique (SysPostSaveModel sysPostSaveModel);/** + + + * 校验岗位名称 + * + * @param sysPostEditModel 岗位信息 + * + * @return 结果 + */ + public boolean checkEditPostNameUnique (SysPostEditModel sysPostEditModel); + /** * 校验岗位编码 * - * @param post 岗位信息 + * @param sysPostSaveModel 岗位信息 * * @return 结果 */ - public boolean checkPostCodeUnique (SysPost post); + public boolean checkPostCodeUnique (SysPostSaveModel sysPostSaveModel); + + + /** + * 校验岗位编码 + * + * @param sysPostEditModel 岗位信息 + * + * @return 结果 + */ + public boolean checkEditPostCodeUnique (SysPostEditModel sysPostEditModel); /** * 通过岗位ID查询岗位使用数量 @@ -103,4 +125,10 @@ public interface SysPostService extends IService { PageQueryModel pageQuery(SysPostPageQueryModel sysPostPageQueryModel); + /** + * 岗位信息列表 + * @param sysPostPageQueryModel 分页信息 + * @return 结果 + */ + PageQueryModel getList(SysPostPageQueryModel sysPostPageQueryModel); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java index 7588de5..10aa4a3 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java @@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.common.core.constant.UserConstants; import com.muyu.common.core.exception.ServiceException; import com.muyu.common.core.utils.StringUtils; +import com.muyu.common.core.web.page.DataPageResp; import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.system.domain.SysPost; -import com.muyu.system.domain.model.SysPostPageQueryModel; +import com.muyu.system.domain.model.*; +import com.muyu.system.domain.resp.SysPostListResp; import com.muyu.system.mapper.SysPostMapper; import com.muyu.system.mapper.SysUserPostMapper; import com.muyu.system.service.SysPostService; @@ -52,8 +54,8 @@ public class SysPostServiceImpl extends ServiceImpl impl * @return 角色对象信息 */ @Override - public SysPost selectPostById (Long postId) { - return getById(postId); + public SysPostMyInfoModel selectPostById (Long postId) { + return SysPostMyInfoModel.build(getById(postId)); } /** @@ -71,15 +73,25 @@ public class SysPostServiceImpl extends ServiceImpl impl /** * 校验岗位名称是否唯一 * - * @param post 岗位信息 + * @param sysPostSaveModel 岗位信息 * * @return 结果 */ @Override - public boolean checkPostNameUnique (SysPost post) { + public boolean checkPostNameUnique (SysPostSaveModel sysPostSaveModel) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(SysPost::getPostName, post.getPostName()); - lambdaQueryWrapper.eq(post.getPostId() != null, SysPost::getPostId, post.getPostId()); + lambdaQueryWrapper.eq(SysPost::getPostName, sysPostSaveModel.getPostName()); + lambdaQueryWrapper.eq(sysPostSaveModel.getPostId() != null, SysPost::getPostId, sysPostSaveModel.getPostId()); + if (this.count(lambdaQueryWrapper) != 0) { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + @Override + public boolean checkEditPostNameUnique (SysPostEditModel sysPostEditModel) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(SysPost::getPostName, sysPostEditModel.getPostName()); + lambdaQueryWrapper.eq(sysPostEditModel.getPostId() != null, SysPost::getPostId, sysPostEditModel.getPostId()); if (this.count(lambdaQueryWrapper) != 0) { return UserConstants.NOT_UNIQUE; } @@ -89,16 +101,25 @@ public class SysPostServiceImpl extends ServiceImpl impl /** * 校验岗位编码是否唯一 * - * @param post 岗位信息 + * @param sysPostSaveModel 岗位信息 * * @return 结果 */ @Override - public boolean checkPostCodeUnique (SysPost post) { - + public boolean checkPostCodeUnique(SysPostSaveModel sysPostSaveModel) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(SysPost::getPostCode, post.getPostCode()); - lambdaQueryWrapper.eq(post.getPostId() != null, SysPost::getPostId, post.getPostId()); + lambdaQueryWrapper.eq(SysPost::getPostCode, sysPostSaveModel.getPostCode()); + lambdaQueryWrapper.eq(sysPostSaveModel.getPostId() != null, SysPost::getPostId, sysPostSaveModel.getPostId()); + if (this.count(lambdaQueryWrapper) != 0) { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + @Override + public boolean checkEditPostCodeUnique(SysPostEditModel sysPostEditModel) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(SysPost::getPostCode, sysPostEditModel.getPostCode()); + lambdaQueryWrapper.eq(sysPostEditModel.getPostId() != null, SysPost::getPostId, sysPostEditModel.getPostId()); if (this.count(lambdaQueryWrapper) != 0) { return UserConstants.NOT_UNIQUE; } @@ -178,6 +199,16 @@ public class SysPostServiceImpl extends ServiceImpl impl queryWrapper.like(StringUtils.isNotEmpty(sysPostPageQueryModel.getPostName()),SysPost::getPostName, sysPostPageQueryModel.getPostName()); queryWrapper.eq(StringUtils.isNotEmpty(sysPostPageQueryModel.getStatus()),SysPost::getStatus, sysPostPageQueryModel.getStatus()); Page page = this.page(sysPostPageQueryModel.buildPage(), queryWrapper); + return PageQueryModel.of(page); } + @Override + public PageQueryModel getList(SysPostPageQueryModel sysPostPageQueryModel) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(StringUtils.isNotEmpty(sysPostPageQueryModel.getPostCode()),SysPost::getPostCode, sysPostPageQueryModel.getPostCode()); + queryWrapper.like(StringUtils.isNotEmpty(sysPostPageQueryModel.getPostName()),SysPost::getPostName, sysPostPageQueryModel.getPostName()); + queryWrapper.eq(StringUtils.isNotEmpty(sysPostPageQueryModel.getStatus()),SysPost::getStatus, sysPostPageQueryModel.getStatus()); + Page page = this.page(sysPostPageQueryModel.buildPage(), queryWrapper); + return PageQueryModel.of(page.getTotal(),page.getRecords().stream().map(SysPostListModel::listBuild).toList()); + } } From 9f89f3afa62b2cbc0efe0987f0375345936ed060 Mon Sep 17 00:00:00 2001 From: sunluy <381896475@qq.com> Date: Mon, 24 Feb 2025 02:09:12 +0800 Subject: [PATCH 4/7] =?UTF-8?q?feat():=E6=95=B0=E6=8D=AE=E5=AD=97=E5=85=B8?= =?UTF-8?q?=E5=92=8C=E6=95=B0=E6=8D=AE=E5=AD=97=E5=85=B8=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?DDD=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/system/domain/SysDictData.java | 1 + .../controller/SysDictDataController.java | 42 +++++-- .../controller/SysDictTypeController.java | 49 +++++--- .../domain/model/SysDictDataAddModel.java | 85 +++++++++++++ .../domain/model/SysDictDataListModel.java | 69 +++++++++++ .../model/SysDictDataPageQueryModel.java | 3 + .../domain/model/SysDictDataUpdModel.java | 113 ++++++++++++++++++ .../domain/model/SysDictTypeAddModel.java | 58 +++++++++ .../domain/model/SysDictTypeListModel.java | 59 +++++++++ .../model/SysDictTypePageQueryModel.java | 22 ++++ .../domain/model/SysDictTypeUpdModel.java | 58 +++++++++ .../system/domain/rep/SysConfigAddReq.java | 2 + .../system/domain/rep/SysDictDataAddReq.java | 96 +++++++++++++++ .../system/domain/rep/SysDictDataUpdReq.java | 98 +++++++++++++++ .../system/domain/rep/SysDictTypeAddReq.java | 62 ++++++++++ .../system/domain/rep/SysDictTypeUpdReq.java | 60 ++++++++++ .../domain/resp/SysDictDataListResp.java | 88 ++++++++++++++ .../domain/resp/SysDictTypeListResp.java | 68 +++++++++++ .../system/service/SysDictDataService.java | 11 +- .../system/service/SysDictTypeService.java | 28 +++-- .../service/impl/SysDictDataServiceImpl.java | 49 +++++--- .../service/impl/SysDictTypeServiceImpl.java | 80 +++++++++---- .../service/impl/SysPostServiceImpl.java | 4 +- 23 files changed, 1129 insertions(+), 76 deletions(-) create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataAddModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataListModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataUpdModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictTypeAddModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictTypeListModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictTypeUpdModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictDataAddReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictDataUpdReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictTypeAddReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictTypeUpdReq.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysDictDataListResp.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysDictTypeListResp.java diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysDictData.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysDictData.java index 365ac59..f0ad1b6 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysDictData.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/domain/SysDictData.java @@ -102,4 +102,5 @@ public class SysDictData extends BaseEntity { public boolean getDefault () { return SysWhetherEnum.isYes(this.isDefault); } + } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictDataController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictDataController.java index ebfc821..60a2c25 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictDataController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictDataController.java @@ -11,8 +11,13 @@ import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.system.domain.SysDictData; +import com.muyu.system.domain.model.SysDictDataAddModel; import com.muyu.system.domain.model.SysDictDataPageQueryModel; +import com.muyu.system.domain.model.SysDictDataUpdModel; +import com.muyu.system.domain.rep.SysDictDataAddReq; import com.muyu.system.domain.rep.SysDictDataListReq; +import com.muyu.system.domain.rep.SysDictDataUpdReq; +import com.muyu.system.domain.resp.SysDictDataListResp; import com.muyu.system.service.SysDictDataService; import com.muyu.system.service.SysDictTypeService; import jakarta.servlet.http.HttpServletResponse; @@ -22,6 +27,7 @@ import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * 数据字典信息 @@ -37,15 +43,31 @@ public class SysDictDataController extends BaseController { @Autowired private SysDictTypeService dictTypeService; + /** + * 查询字典数据列表 + * @param sysDictDataListReq + * @return + */ @RequiresPermissions("system:dict:list") @PostMapping("/list") - public Result> list (@RequestBody SysDictDataListReq sysDictDataListReq) { - PageQueryModel sysDictDataPageQueryModel = dictDataService.selectDictDataList(SysDictDataPageQueryModel.reqBuild(sysDictDataListReq)); + public Result> list (@RequestBody SysDictDataListReq sysDictDataListReq) { + List sysDictDataList = dictDataService.selectDictDataList(SysDictDataPageQueryModel.reqBuild(sysDictDataListReq)).getDataList(); + List sysDictDataListRespList = sysDictDataList.stream().map( + sysDictData -> SysDictDataListResp.buildResp(sysDictData) + ).distinct().collect(Collectors.toList()); + PageQueryModel sysDictDataListRespPageQueryModel = new PageQueryModel<>(); + sysDictDataListRespPageQueryModel.setTotal(sysDictDataListRespList.size()); + sysDictDataListRespPageQueryModel.setDataList(sysDictDataListRespList); return Result.success( - DataPageResp.of(sysDictDataPageQueryModel) + DataPageResp.of(sysDictDataListRespPageQueryModel) ); } + /** + * 导出字典数据列表 + * @param response + * @param sysDictDataListReq + */ @Log(title = "字典数据", businessType = BusinessType.EXPORT) @RequiresPermissions("system:dict:export") @PostMapping("/export") @@ -83,21 +105,21 @@ public class SysDictDataController extends BaseController { @RequiresPermissions("system:dict:add") @Log(title = "字典数据", businessType = BusinessType.INSERT) @PostMapping - public Result add (@Validated @RequestBody SysDictData dict) { - dict.setCreateBy(SecurityUtils.getUsername()); - dictDataService.insertDictData(dict); + public Result add (@Validated @RequestBody SysDictDataAddReq sysDictDataAddReq) { + sysDictDataAddReq.setCreateBy(SecurityUtils.getUsername()); + dictDataService.insertDictData(SysDictDataAddModel.buildAddModel(sysDictDataAddReq)); return Result.success(); } /** * 修改保存字典类型 */ - @RequiresPermissions("system:dict:edit") + //@RequiresPermissions("system:dict:edit") @Log(title = "字典数据", businessType = BusinessType.UPDATE) @PutMapping - public Result edit (@Validated @RequestBody SysDictData dict) { - dict.setUpdateBy(SecurityUtils.getUsername()); - dictDataService.updateDictData(dict); + public Result edit (@Validated @RequestBody SysDictDataUpdReq sysDictDataUpdReq) { + sysDictDataUpdReq.setUpdateBy(SecurityUtils.getUsername()); + dictDataService.updateDictData(SysDictDataUpdModel.buildUpdModel(sysDictDataUpdReq)); return Result.success(); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictTypeController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictTypeController.java index a5b08f5..96fe43a 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictTypeController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysDictTypeController.java @@ -9,6 +9,14 @@ import com.muyu.common.log.enums.BusinessType; import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.system.domain.SysDictType; +import com.muyu.system.domain.model.SysDictTypeAddModel; +import com.muyu.system.domain.model.SysDictTypeListModel; +import com.muyu.system.domain.model.SysDictTypePageQueryModel; +import com.muyu.system.domain.model.SysDictTypeUpdModel; +import com.muyu.system.domain.rep.SysDictTypeAddReq; +import com.muyu.system.domain.rep.SysDictTypeListReq; +import com.muyu.system.domain.rep.SysDictTypeUpdReq; +import com.muyu.system.domain.resp.SysDictTypeListResp; import com.muyu.system.service.SysDictTypeService; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +24,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.stream.Collectors; /** * 数据字典信息 @@ -30,18 +39,24 @@ public class SysDictTypeController extends BaseController { @RequiresPermissions("system:dict:list") @PostMapping("/list") - public Result> list (@RequestBody SysDictType dictType) { - List list = dictTypeService.selectDictTypeList(dictType); - return Result.success(new DataPageResp<>(0,list)); + public Result> list (@RequestBody SysDictTypeListReq sysDictTypeListReq) { + List dictTypeListResps = dictTypeService.selectDictTypeList(SysDictTypePageQueryModel.reqBuild(sysDictTypeListReq)) + .stream() + .map(SysDictTypeListResp::buildResp) + .collect(Collectors.toList()); + return Result.success(new DataPageResp<>(dictTypeListResps.size(), dictTypeListResps)); } @Log(title = "字典类型", businessType = BusinessType.EXPORT) @RequiresPermissions("system:dict:export") @PostMapping("/export") - public void export (HttpServletResponse response, SysDictType dictType) { - List list = dictTypeService.selectDictTypeList(dictType); - ExcelUtil util = new ExcelUtil(SysDictType.class); - util.exportExcel(response, list, "字典类型"); + public void export (HttpServletResponse response, SysDictTypeListReq sysDictTypeListReq) { + List dictTypeListResps = dictTypeService.selectDictTypeList(SysDictTypePageQueryModel.reqBuild(sysDictTypeListReq)) + .stream() + .map(SysDictTypeListResp::buildResp) + .collect(Collectors.toList()); + ExcelUtil util = new ExcelUtil(SysDictTypeListResp.class); + util.exportExcel(response, dictTypeListResps, "字典类型"); } /** @@ -59,12 +74,12 @@ public class SysDictTypeController extends BaseController { @RequiresPermissions("system:dict:add") @Log(title = "字典类型", businessType = BusinessType.INSERT) @PostMapping - public Result add (@Validated @RequestBody SysDictType dict) { - if (!dictTypeService.checkDictTypeUnique(dict)) { - return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + public Result add (@Validated @RequestBody SysDictTypeAddReq sysDictTypeAddReq) { + if (!dictTypeService.checkDictTypeUnique(SysDictTypeAddModel.buildModel(sysDictTypeAddReq))) { + return error("新增字典'" + sysDictTypeAddReq.getDictName() + "'失败,字典类型已存在"); } - dict.setCreateBy(SecurityUtils.getUsername()); - dictTypeService.insertDictType(dict); + sysDictTypeAddReq.setCreateBy(SecurityUtils.getUsername()); + dictTypeService.insertDictType(SysDictTypeAddModel.buildModel(sysDictTypeAddReq)); return Result.success(); } @@ -74,12 +89,12 @@ public class SysDictTypeController extends BaseController { @RequiresPermissions("system:dict:edit") @Log(title = "字典类型", businessType = BusinessType.UPDATE) @PutMapping - public Result edit (@Validated @RequestBody SysDictType dict) { - if (!dictTypeService.checkDictTypeUnique(dict)) { - return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + public Result edit (@Validated @RequestBody SysDictTypeUpdReq sysDictTypeUpdReq) { + if (!dictTypeService.checkDictTypeUnique(SysDictTypeUpdModel.buildUpdModel(sysDictTypeUpdReq))) { + return error("修改字典'" + sysDictTypeUpdReq.getDictName() + "'失败,字典类型已存在"); } - dict.setUpdateBy(SecurityUtils.getUsername()); - dictTypeService.updateDictType(dict); + sysDictTypeUpdReq.setUpdateBy(SecurityUtils.getUsername()); + dictTypeService.updateDictType(SysDictTypeUpdModel.buildUpdModel(sysDictTypeUpdReq)); return Result.success(); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataAddModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataAddModel.java new file mode 100644 index 0000000..cfe7fcb --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataAddModel.java @@ -0,0 +1,85 @@ +package com.muyu.system.domain.model; + +import com.muyu.system.domain.rep.SysDictDataAddReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据字典添加模型 + * + * @author + * @version 1.0 + * @date 2025/2/23 19:29 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysDictDataAddModel { + /** + * 字典编码 + */ + private Long dictCode; + + /** + * 字典排序 + */ + private Long dictSort; + + /** + * 字典标签 + */ + private String dictLabel; + + /** + * 字典键值 + */ + private String dictValue; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 样式属性(其他样式扩展) + */ + private String cssClass; + + /** + * 表格字典样式 + */ + private String listClass; + + /** + * 是否默认(Y是 N否) + */ + private String isDefault; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 构建模型 + * + * @param sysDictDataAddReq 请求对象 + * @return 添加对象 + */ + public static SysDictDataAddModel buildAddModel(SysDictDataAddReq sysDictDataAddReq) { + return SysDictDataAddModel.builder() + .dictCode(sysDictDataAddReq.getDictCode()) + .dictSort(sysDictDataAddReq.getDictSort()) + .dictLabel(sysDictDataAddReq.getDictLabel()) + .dictValue(sysDictDataAddReq.getDictValue()) + .dictType(sysDictDataAddReq.getDictType()) + .cssClass(sysDictDataAddReq.getCssClass()) + .listClass(sysDictDataAddReq.getListClass()) + .isDefault(sysDictDataAddReq.getIsDefault()) + .status(sysDictDataAddReq.getStatus()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataListModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataListModel.java new file mode 100644 index 0000000..6932049 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataListModel.java @@ -0,0 +1,69 @@ +package com.muyu.system.domain.model; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * + * 字典数据返回列表模型 + * @author SunLY + * @version 1.0 + * @date 2025/2/23 21:24 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysDictDataListModel extends BaseEntity { + /** + * 字典编码 + */ + @Excel(name = "字典编码", cellType = Excel.ColumnType.NUMERIC) + private Long dictCode; + + /** + * 字典排序 + */ + @Excel(name = "字典排序", cellType = Excel.ColumnType.NUMERIC) + private Long dictSort; + + /** + * 字典标签 + */ + @Excel(name = "字典标签") + private String dictLabel; + + /** + * 字典键值 + */ + @Excel(name = "字典键值") + private String dictValue; + + /** + * 字典类型 + */ + @Excel(name = "字典类型") + private String dictType; + + /** + * 样式属性(其他样式扩展) + */ + private String cssClass; + + /** + * 表格字典样式 + */ + private String listClass; + + /** + * 是否默认(Y是 N否) + */ + @Excel(name = "是否默认", readConverterExp = "Y=是,N=否") + private String isDefault; +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataPageQueryModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataPageQueryModel.java index e3ac07b..abdfa93 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataPageQueryModel.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictDataPageQueryModel.java @@ -31,6 +31,9 @@ public class SysDictDataPageQueryModel extends QueryModel params; + + public Map getParams () { + if (params == null) { + params = new HashMap<>(); + } + return params; + } + + public void setParams (Map params) { + this.params = params; + } + public static SysDictTypePageQueryModel reqBuild(SysDictTypeListReq sysDictTypeListReq) { SysDictTypePageQueryModel sysDictTypePageQueryModel = SysDictTypePageQueryModel.builder() .dictName(sysDictTypeListReq.getDictName()) diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictTypeUpdModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictTypeUpdModel.java new file mode 100644 index 0000000..4b4f26b --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysDictTypeUpdModel.java @@ -0,0 +1,58 @@ +package com.muyu.system.domain.model; + +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.system.domain.rep.SysDictTypeUpdReq; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * + * 数据字典类型修改模型 + * @author + * @version 1.0 + * @date 2025/2/24 1:35 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysDictTypeUpdModel extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 字典主键 + */ + private Long dictId; + + /** + * 字典名称 + */ + private String dictName; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 状态(0正常 1停用) + */ + + private String status; + + public static SysDictTypeUpdModel buildUpdModel(SysDictTypeUpdReq sysDictTypeUpdReq) { + return SysDictTypeUpdModel.builder() + .dictId(sysDictTypeUpdReq.getDictId()) + .dictName(sysDictTypeUpdReq.getDictName()) + .dictType(sysDictTypeUpdReq.getDictType()) + .status(sysDictTypeUpdReq.getStatus()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysConfigAddReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysConfigAddReq.java index 482aae0..c505b31 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysConfigAddReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysConfigAddReq.java @@ -41,4 +41,6 @@ public class SysConfigAddReq { * 备注 */ private String remark; + + } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictDataAddReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictDataAddReq.java new file mode 100644 index 0000000..9242e2b --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictDataAddReq.java @@ -0,0 +1,96 @@ +package com.muyu.system.domain.rep; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.enums.SysWhetherEnum; +import com.muyu.common.core.web.domain.BaseEntity; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.*; +import lombok.experimental.SuperBuilder; + +/** + * 数据字典添加对象 + * + * @author + * @version 1.0 + * @date 2025/2/23 19:29 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysDictDataAddReq extends BaseEntity { + /** + * 字典编码 + */ + private Long dictCode; + + /** + * 字典排序 + */ + private Long dictSort; + + /** + * 字典标签 + */ + private String dictLabel; + + /** + * 字典键值 + */ + private String dictValue; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 样式属性(其他样式扩展) + */ + private String cssClass; + + /** + * 表格字典样式 + */ + private String listClass; + + /** + * 是否默认(Y是 N否) + */ + private String isDefault; + + /** + * 状态(0正常 1停用) + */ + private String status; + + @NotBlank(message = "字典标签不能为空") + @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符") + public String getDictLabel () { + return dictLabel; + } + + @NotBlank(message = "字典键值不能为空") + @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符") + public String getDictValue () { + return dictValue; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") + public String getDictType () { + return dictType; + } + + @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") + public String getCssClass () { + return cssClass; + } + + public boolean getDefault () { + return SysWhetherEnum.isYes(this.isDefault); + } + +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictDataUpdReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictDataUpdReq.java new file mode 100644 index 0000000..5a8b61d --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictDataUpdReq.java @@ -0,0 +1,98 @@ +package com.muyu.system.domain.rep; + +import com.muyu.common.core.enums.SysWhetherEnum; +import com.muyu.common.core.web.domain.BaseEntity; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 数据字典修改对象 + * + * @author + * @version 1.0 + * @date 2025/2/23 19:29 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysDictDataUpdReq extends BaseEntity { + /** + * 字典编码 + */ + private Long dictCode; + + /** + * 字典排序 + */ + private Long dictSort; + + /** + * 字典标签 + */ + private String dictLabel; + + /** + * 字典键值 + */ + private String dictValue; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 样式属性(其他样式扩展) + */ + private String cssClass; + + /** + * 表格字典样式 + */ + private String listClass; + + /** + * 是否默认(Y是 N否) + */ + private String isDefault; + + /** + * 状态(0正常 1停用) + */ + private String status; + + @NotBlank(message = "字典标签不能为空") + @Size(min = 0, max = 100, message = "字典标签长度不能超过100个字符") + public String getDictLabel () { + return dictLabel; + } + + @NotBlank(message = "字典键值不能为空") + @Size(min = 0, max = 100, message = "字典键值长度不能超过100个字符") + public String getDictValue () { + return dictValue; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型长度不能超过100个字符") + public String getDictType () { + return dictType; + } + + @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符") + public String getCssClass () { + return cssClass; + } + + public boolean getDefault () { + return SysWhetherEnum.isYes(this.isDefault); + } + +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictTypeAddReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictTypeAddReq.java new file mode 100644 index 0000000..00f86b3 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictTypeAddReq.java @@ -0,0 +1,62 @@ +package com.muyu.system.domain.rep; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * + * 数据字典类型添加对象 + * @author + * @version 1.0 + * @date 2025/2/24 1:35 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysDictTypeAddReq extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 字典主键 + */ + private Long dictId; + + /** + * 字典名称 + */ + private String dictName; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 状态(0正常 1停用) + */ + + private String status; + + @NotBlank(message = "字典名称不能为空") + @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") + public String getDictName () { + return dictName; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") + @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)") + public String getDictType () { + return dictType; + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictTypeUpdReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictTypeUpdReq.java new file mode 100644 index 0000000..3d43925 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysDictTypeUpdReq.java @@ -0,0 +1,60 @@ +package com.muyu.system.domain.rep; + +import com.muyu.common.core.web.domain.BaseEntity; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * + * 数据字典类型修改对象 + * @author + * @version 1.0 + * @date 2025/2/24 1:35 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysDictTypeUpdReq extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 字典主键 + */ + private Long dictId; + + /** + * 字典名称 + */ + private String dictName; + + /** + * 字典类型 + */ + private String dictType; + + /** + * 状态(0正常 1停用) + */ + private String status; + + @NotBlank(message = "字典名称不能为空") + @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") + public String getDictName () { + return dictName; + } + + @NotBlank(message = "字典类型不能为空") + @Size(min = 0, max = 100, message = "字典类型类型长度不能超过100个字符") + @Pattern(regexp = "^[a-z][a-z0-9_]*$", message = "字典类型必须以字母开头,且只能为(小写字母,数字,下滑线)") + public String getDictType () { + return dictType; + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysDictDataListResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysDictDataListResp.java new file mode 100644 index 0000000..2954d49 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysDictDataListResp.java @@ -0,0 +1,88 @@ +package com.muyu.system.domain.resp; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.common.system.domain.SysDictData; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * @author SunLY + * @version 1.0 + * @date 2025/2/23 21:24 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysDictDataListResp extends BaseEntity { + /** + * 字典编码 + */ + @Excel(name = "字典编码", cellType = Excel.ColumnType.NUMERIC) + private Long dictCode; + + /** + * 字典排序 + */ + @Excel(name = "字典排序", cellType = Excel.ColumnType.NUMERIC) + private Long dictSort; + + /** + * 字典标签 + */ + @Excel(name = "字典标签") + private String dictLabel; + + /** + * 字典键值 + */ + @Excel(name = "字典键值") + private String dictValue; + + /** + * 字典类型 + */ + @Excel(name = "字典类型") + private String dictType; + + /** + * 样式属性(其他样式扩展) + */ + private String cssClass; + + /** + * 表格字典样式 + */ + private String listClass; + + /** + * 是否默认(Y是 N否) + */ + @Excel(name = "是否默认", readConverterExp = "Y=是,N=否") + private String isDefault; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + public static SysDictDataListResp buildResp(SysDictData sysDictData){ + return SysDictDataListResp.builder() + .dictCode(sysDictData.getDictCode()) + .dictSort(sysDictData.getDictSort()) + .dictLabel(sysDictData.getDictLabel()) + .dictValue(sysDictData.getDictValue()) + .dictType(sysDictData.getDictType()) + .cssClass(sysDictData.getCssClass()) + .listClass(sysDictData.getListClass()) + .isDefault(sysDictData.getIsDefault()) + .status(sysDictData.getStatus()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysDictTypeListResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysDictTypeListResp.java new file mode 100644 index 0000000..02ba1c5 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysDictTypeListResp.java @@ -0,0 +1,68 @@ +package com.muyu.system.domain.resp; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.common.core.annotation.Excel.ColumnType; +import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.system.domain.model.SysDictTypeListModel; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * 字典类型列表 + * + * @author + */ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysDictTypeListResp extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 字典主键 + */ + @Excel(name = "字典主键", cellType = ColumnType.NUMERIC) + private Long dictId; + + /** + * 字典名称 + */ + @Excel(name = "字典名称") + private String dictName; + + /** + * 字典类型 + */ + @Excel(name = "字典类型") + private String dictType; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + @NotBlank(message = "字典名称不能为空") + @Size(min = 0, max = 100, message = "字典类型名称长度不能超过100个字符") + public String getDictName () { + return dictName; + } + + + public static SysDictTypeListResp buildResp(SysDictTypeListModel sysDictTypeListModel) { + return SysDictTypeListResp.builder() + .dictId(sysDictTypeListModel.getDictId()) + .dictName(sysDictTypeListModel.getDictName()) + .dictType(sysDictTypeListModel.getDictType()) + .status(sysDictTypeListModel.getStatus()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysDictDataService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysDictDataService.java index 259357f..d009ac3 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysDictDataService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysDictDataService.java @@ -3,7 +3,10 @@ package com.muyu.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.system.domain.SysDictData; +import com.muyu.system.domain.model.SysDictDataAddModel; import com.muyu.system.domain.model.SysDictDataPageQueryModel; +import com.muyu.system.domain.model.SysDictDataUpdModel; +import com.muyu.system.domain.rep.SysDictDataUpdReq; import java.util.List; @@ -51,16 +54,16 @@ public interface SysDictDataService extends IService { /** * 新增保存字典数据信息 * - * @param dictData 字典数据信息 + * @param sysDictDataAddModel 字典数据信息 */ - public void insertDictData (SysDictData dictData); + public void insertDictData (SysDictDataAddModel sysDictDataAddModel); /** * 修改保存字典数据信息 * - * @param dictData 字典数据信息 + * @param sysDictDataUpdModel 字典数据信息 */ - public void updateDictData (SysDictData dictData); + public void updateDictData (SysDictDataUpdModel sysDictDataUpdModel); PageQueryModel pageQuery(SysDictDataPageQueryModel sysDictDataPageQueryModel); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysDictTypeService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysDictTypeService.java index 283fdd1..23b64f9 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysDictTypeService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysDictTypeService.java @@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.system.domain.SysDictData; import com.muyu.common.system.domain.SysDictType; +import com.muyu.system.domain.model.SysDictTypeAddModel; +import com.muyu.system.domain.model.SysDictTypeListModel; import com.muyu.system.domain.model.SysDictTypePageQueryModel; +import com.muyu.system.domain.model.SysDictTypeUpdModel; import java.util.List; @@ -17,11 +20,11 @@ public interface SysDictTypeService extends IService { /** * 根据条件分页查询字典类型 * - * @param dictType 字典类型信息 + * @param sysDictTypePageQueryModel 字典类型信息 * * @return 字典类型集合信息 */ - public List selectDictTypeList (SysDictType dictType); + public List selectDictTypeList (SysDictTypePageQueryModel sysDictTypePageQueryModel); /** * 根据所有字典类型 @@ -82,27 +85,36 @@ public interface SysDictTypeService extends IService { /** * 新增保存字典类型信息 * - * @param dictType 字典类型信息 + * @param sysDictTypeAddModel 字典类型信息 * * @return 结果 */ - public void insertDictType (SysDictType dictType); + public void insertDictType (SysDictTypeAddModel sysDictTypeAddModel); /** * 修改保存字典类型信息 * - * @param dictType 字典类型信息 + * @param sysDictTypeUpdModel 字典类型信息 */ - public void updateDictType (SysDictType dictType); + public void updateDictType (SysDictTypeUpdModel sysDictTypeUpdModel); /** * 校验字典类型称是否唯一 * - * @param dictType 字典类型 + * @param sysDictTypeAddModel 字典类型 * * @return 结果 */ - public boolean checkDictTypeUnique (SysDictType dictType); + public boolean checkDictTypeUnique (SysDictTypeAddModel sysDictTypeAddModel); + + /** + * 校验字典类型称是否唯一 + * + * @param sysDictTypeUpdModel 字典类型 + * + * @return 结果 + */ + public boolean checkDictTypeUnique (SysDictTypeUpdModel sysDictTypeUpdModel); PageQueryModel pageQuery(SysDictTypePageQueryModel sysDictTypePageQueryModel); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysDictDataServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysDictDataServiceImpl.java index c4114e3..ca088b7 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysDictDataServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysDictDataServiceImpl.java @@ -9,7 +9,9 @@ import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.security.utils.DictUtils; import com.muyu.common.system.domain.SysDictData; +import com.muyu.system.domain.model.SysDictDataAddModel; import com.muyu.system.domain.model.SysDictDataPageQueryModel; +import com.muyu.system.domain.model.SysDictDataUpdModel; import com.muyu.system.mapper.SysDictDataMapper; import com.muyu.system.service.SysDictDataService; import org.springframework.beans.factory.annotation.Autowired; @@ -25,15 +27,12 @@ import java.util.List; */ @Service public class SysDictDataServiceImpl extends ServiceImpl implements SysDictDataService { - @Autowired - private SysDictDataMapper dictDataMapper; - /** * 根据条件分页查询字典数据 * - * @param dictData 字典数据信息 + * @param pageQueryModel 字典数据信息 * * @return 字典数据集合信息 */ @@ -101,26 +100,48 @@ public class SysDictDataServiceImpl extends ServiceImpl dictDataList = this.selectDictDataByType(data.getDictType()); - DictUtils.setDictCache(data.getDictType(), dictDataList); + public void insertDictData (SysDictDataAddModel sysDictDataAddModel) { + SysDictData sysDictData = SysDictData.builder() + .dictCode(sysDictDataAddModel.getDictCode()) + .dictSort(sysDictDataAddModel.getDictSort()) + .dictLabel(sysDictDataAddModel.getDictLabel()) + .dictValue(sysDictDataAddModel.getDictValue()) + .dictType(sysDictDataAddModel.getDictType()) + .cssClass(sysDictDataAddModel.getCssClass()) + .listClass(sysDictDataAddModel.getListClass()) + .isDefault(sysDictDataAddModel.getIsDefault()) + .status(sysDictDataAddModel.getStatus()) + .build(); + if (this.save(sysDictData)) { + List dictDataList = this.selectDictDataByType(sysDictData.getDictType()); + DictUtils.setDictCache(sysDictData.getDictType(), dictDataList); } } /** * 修改保存字典数据信息 * - * @param data 字典数据信息 + * @param sysDictDataUpdModel 字典数据信息 */ @Override - public void updateDictData (SysDictData data) { - if (this.updateById(data)) { - List dictDataList = this.selectDictDataByType(data.getDictType()); - DictUtils.setDictCache(data.getDictType(), dictDataList); + public void updateDictData (SysDictDataUpdModel sysDictDataUpdModel) { + SysDictData sysDictData = SysDictData.builder() + .dictCode(sysDictDataUpdModel.getDictCode()) + .dictSort(sysDictDataUpdModel.getDictSort()) + .dictLabel(sysDictDataUpdModel.getDictLabel()) + .dictValue(sysDictDataUpdModel.getDictValue()) + .dictType(sysDictDataUpdModel.getDictType()) + .cssClass(sysDictDataUpdModel.getCssClass()) + .listClass(sysDictDataUpdModel.getListClass()) + .isDefault(sysDictDataUpdModel.getIsDefault()) + .status(sysDictDataUpdModel.getStatus()) + .build(); + if (this.updateById(sysDictData)) { + List dictDataList = this.selectDictDataByType(sysDictData.getDictType()); + DictUtils.setDictCache(sysDictData.getDictType(), dictDataList); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysDictTypeServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysDictTypeServiceImpl.java index 2fbe343..2e47be0 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysDictTypeServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysDictTypeServiceImpl.java @@ -10,7 +10,10 @@ import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.common.security.utils.DictUtils; import com.muyu.common.system.domain.SysDictData; import com.muyu.common.system.domain.SysDictType; +import com.muyu.system.domain.model.SysDictTypeAddModel; +import com.muyu.system.domain.model.SysDictTypeListModel; import com.muyu.system.domain.model.SysDictTypePageQueryModel; +import com.muyu.system.domain.model.SysDictTypeUpdModel; import com.muyu.system.mapper.SysDictTypeMapper; import com.muyu.system.service.SysDictDataService; import com.muyu.system.service.SysDictTypeService; @@ -30,8 +33,7 @@ import java.util.stream.Collectors; */ @Service public class SysDictTypeServiceImpl extends ServiceImpl implements SysDictTypeService { - @Autowired - private SysDictTypeMapper dictTypeMapper; + @Autowired private SysDictDataService sysDictDataService; @@ -59,24 +61,34 @@ public class SysDictTypeServiceImpl extends ServiceImpl selectDictTypeList (SysDictType dictType) { + public List selectDictTypeList (SysDictTypePageQueryModel sysDictTypePageQueryModel) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.like(StringUtils.isNotEmpty(dictType.getDictName()),SysDictType::getDictName, dictType.getDictName()); - lambdaQueryWrapper.eq(StringUtils.isNotEmpty(dictType.getStatus()),SysDictType::getStatus, dictType.getStatus()); - lambdaQueryWrapper.like(StringUtils.isNotEmpty(dictType.getDictType()),SysDictType::getDictType, dictType.getDictType()); - Map params = dictType.getParams(); + lambdaQueryWrapper.like(StringUtils.isNotEmpty(sysDictTypePageQueryModel.getDictName()),SysDictType::getDictName, sysDictTypePageQueryModel.getDictName()); + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(sysDictTypePageQueryModel.getStatus()),SysDictType::getStatus, sysDictTypePageQueryModel.getStatus()); + lambdaQueryWrapper.like(StringUtils.isNotEmpty(sysDictTypePageQueryModel.getDictType()),SysDictType::getDictType, sysDictTypePageQueryModel.getDictType()); + Map params = sysDictTypePageQueryModel.getParams(); Date beginTime = (Date) params.get("beginTime"); Date endTime = (Date) params.get("endTime"); lambdaQueryWrapper.between( beginTime != null && endTime != null, SysDictType::getCreateTime, beginTime, endTime ); - return this.list(lambdaQueryWrapper); + List sysDictTypeList = this.list(lambdaQueryWrapper); + List sysDictTypeListModelList = sysDictTypeList.stream().map( + sysDictType -> SysDictTypeListModel.builder() + .dictId(sysDictType.getDictId()) + .dictName(sysDictType.getDictName()) + .dictType(sysDictType.getDictType()) + .status(sysDictType.getStatus()) + .remark(sysDictType.getRemark()) + .build() + ).distinct().collect(Collectors.toList()); + return sysDictTypeListModelList; } /** @@ -191,25 +203,38 @@ public class SysDictTypeServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(SysDictType::getDictType, dict.getDictType()); - lambdaQueryWrapper.ne(dict.getDictId() != null, SysDictType::getDictId, dictId); + lambdaQueryWrapper.eq(SysDictType::getDictType, sysDictTypeAddModel.getDictType()); + lambdaQueryWrapper.ne(sysDictTypeAddModel.getDictId() != null, SysDictType::getDictId, dictId); + if (this.count(lambdaQueryWrapper) > 0) { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + + @Override + public boolean checkDictTypeUnique(SysDictTypeUpdModel sysDictTypeUpdModel) { + Assert.notNull(sysDictTypeUpdModel.getDictType(), "字典类型不可为空"); + Long dictId = StringUtils.isNull(sysDictTypeUpdModel.getDictId()) ? -1L : sysDictTypeUpdModel.getDictId(); + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(SysDictType::getDictType, sysDictTypeUpdModel.getDictType()); + lambdaQueryWrapper.ne(sysDictTypeUpdModel.getDictId() != null, SysDictType::getDictId, dictId); if (this.count(lambdaQueryWrapper) > 0) { return UserConstants.NOT_UNIQUE; } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java index 10aa4a3..89829a0 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java @@ -160,9 +160,9 @@ public class SysPostServiceImpl extends ServiceImpl impl @Override public void deletePostByIds (List postIds) { for (Long postId : postIds) { - SysPost post = selectPostById(postId); + SysPostMyInfoModel sysPostMyInfoModel = selectPostById(postId); if (countUserPostById(postId) > 0) { - throw new ServiceException(String.format("%1$s已分配,不能删除", post.getPostName())); + throw new ServiceException(String.format("%1$s已分配,不能删除", sysPostMyInfoModel.getPostName())); } } this.removeByIds(postIds); From 0720b476c5295e6abaf161afbe11842a7e3eb547 Mon Sep 17 00:00:00 2001 From: 21407 <2140709953@qq.com> Date: Mon, 24 Feb 2025 11:52:23 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix():=E5=B2=97=E4=BD=8D=E4=BF=A1=E6=81=AFb?= =?UTF-8?q?ug=E4=BF=AE=E5=A4=8D-=E5=B7=B2=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysPostController.java | 8 +- .../java/com/muyu/system/domain/SysPost.java | 8 +- .../system/domain/model/SysPostEditModel.java | 6 ++ .../system/domain/model/SysPostListModel.java | 12 ++- .../domain/model/SysPostMyInfoModel.java | 7 ++ .../system/domain/model/SysPostSaveModel.java | 6 ++ .../system/domain/rep/SysPostEditReq.java | 16 ++-- .../system/domain/rep/SysPostSaveReq.java | 16 ++-- .../system/domain/resp/SysPostListResp.java | 9 +++ .../system/domain/resp/SysPostMyInfoResp.java | 73 +++++++++++++++++++ .../service/impl/SysPostServiceImpl.java | 2 +- 11 files changed, 134 insertions(+), 29 deletions(-) create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostMyInfoResp.java diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java index e230ee9..d1fe290 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysPostController.java @@ -14,7 +14,9 @@ import com.muyu.system.domain.model.*; import com.muyu.system.domain.rep.SysPostEditReq; import com.muyu.system.domain.rep.SysPostListReq; import com.muyu.system.domain.rep.SysPostSaveReq; -import com.muyu.system.domain.resp.SysPostListResp;import com.muyu.system.service.SysPostService; +import com.muyu.system.domain.resp.SysPostListResp; +import com.muyu.system.domain.resp.SysPostMyInfoResp; +import com.muyu.system.service.SysPostService; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -58,8 +60,8 @@ public class SysPostController extends BaseController { */ @RequiresPermissions("system:post:query") @GetMapping(value = "/{postId}") - public Result getInfo (@PathVariable("postId") Long postId) { - return success(postService.selectPostById(postId)); + public Result getInfo (@PathVariable("postId") Long postId) { + return success(SysPostMyInfoResp.messageBuild(postService.selectPostById(postId))); } /** diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysPost.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysPost.java index f3e14e6..763c550 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysPost.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysPost.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.*; -import lombok.experimental.SuperBuilder; +import lombok.experimental.SuperBuilder;import java.util.Date; /** * 岗位表 sys_post @@ -92,6 +92,8 @@ public class SysPost extends BaseEntity { .status(sysPostSaveModel.getStatus()) .flag(sysPostSaveModel.isFlag()) .createBy(sysPostSaveModel.getCreateBy()) + .createTime(new Date()) + .remark(sysPostSaveModel.getRemark()) .build(); } public static SysPost editBuild(SysPostEditModel sysPostEditModel) { @@ -102,7 +104,9 @@ public class SysPost extends BaseEntity { .postSort(sysPostEditModel.getPostSort()) .status(sysPostEditModel.getStatus()) .flag(sysPostEditModel.isFlag()) - .createBy(sysPostEditModel.getUpdateBy()) + .updateBy(sysPostEditModel.getUpdateBy()) + .updateTime(new Date()) + .remark(sysPostEditModel.getRemark()) .build(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostEditModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostEditModel.java index 671ebf0..60f114d 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostEditModel.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostEditModel.java @@ -59,6 +59,11 @@ public class SysPostEditModel { */ private String updateBy; + /** + * 备注 + */ + private String remark; + public static SysPostEditModel editBuild(SysPostEditReq sysPostEditReq) { return SysPostEditModel.builder() .postId(sysPostEditReq.getPostId()) @@ -68,6 +73,7 @@ public class SysPostEditModel { .status(sysPostEditReq.getStatus()) .flag(sysPostEditReq.isFlag()) .updateBy(sysPostEditReq.getUpdateBy()) + .remark(sysPostEditReq.getRemark()) .build(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostListModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostListModel.java index 9fa28f5..50b91f3 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostListModel.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostListModel.java @@ -1,9 +1,12 @@ package com.muyu.system.domain.model; +import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.annotation.Excel; import com.muyu.system.domain.SysPost; import lombok.*; -import lombok.experimental.SuperBuilder; /** +import lombok.experimental.SuperBuilder; + +import java.util.Date; /** * 岗位信息列表模型 * @author: AoCi Tian * @create: 2025-02-23 19:31 @@ -51,6 +54,12 @@ public class SysPostListModel { @Builder.Default private boolean flag = false; + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + public static SysPostListModel listBuild(SysPost sysPost) { return SysPostListModel.builder() .postId(sysPost.getPostId()) @@ -59,6 +68,7 @@ public class SysPostListModel { .postSort(sysPost.getPostSort()) .status(sysPost.getStatus()) .flag(sysPost.isFlag()) + .createTime(sysPost.getCreateTime()) .build(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostMyInfoModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostMyInfoModel.java index 12c42f0..dc2a618 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostMyInfoModel.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostMyInfoModel.java @@ -53,6 +53,12 @@ public class SysPostMyInfoModel { @Builder.Default private boolean flag = false; + /** + * 备注 + */ + @Excel(name = "备注") + private String remark; + public static SysPostMyInfoModel build(SysPost sysPost) { return SysPostMyInfoModel.builder() .postId(sysPost.getPostId()) @@ -60,6 +66,7 @@ public class SysPostMyInfoModel { .postName(sysPost.getPostName()) .postSort(sysPost.getPostSort()) .status(sysPost.getStatus()) + .remark(sysPost.getRemark()) .flag(sysPost.isFlag()) .build(); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostSaveModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostSaveModel.java index c57938e..1d727b4 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostSaveModel.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysPostSaveModel.java @@ -59,6 +59,11 @@ public class SysPostSaveModel { */ private String createBy; + /** + * 备注 + */ + private String remark; + public static SysPostSaveModel saveBuild(SysPostSaveReq sysPostSaveReq) { return SysPostSaveModel.builder() .postId(sysPostSaveReq.getPostId()) @@ -68,6 +73,7 @@ public class SysPostSaveModel { .status(sysPostSaveReq.getStatus()) .flag(sysPostSaveReq.isFlag()) .createBy(sysPostSaveReq.getCreateBy()) + .remark(sysPostSaveReq.getRemark()) .build(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostEditReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostEditReq.java index 05c9e04..e09a8dc 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostEditReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostEditReq.java @@ -58,15 +58,9 @@ public class SysPostEditReq { */ private String updateBy; - public static SysPostEditReq editBuild(SysPost sysPost) { - return SysPostEditReq.builder() - .postId(sysPost.getPostId()) - .postCode(sysPost.getPostCode()) - .postName(sysPost.getPostName()) - .postSort(sysPost.getPostSort()) - .status(sysPost.getStatus()) - .flag(sysPost.isFlag()) - .updateBy(sysPost.getUpdateBy()) - .build(); - } + /** + * 备注 + */ + private String remark; + } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostSaveReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostSaveReq.java index 8116a6d..7f6adab 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostSaveReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysPostSaveReq.java @@ -61,15 +61,9 @@ public class SysPostSaveReq { */ private String createBy; - public static SysPostSaveReq saveBuild(SysPost sysPost) { - return SysPostSaveReq.builder() - .postId(sysPost.getPostId()) - .postCode(sysPost.getPostCode()) - .postName(sysPost.getPostName()) - .postSort(sysPost.getPostSort()) - .status(sysPost.getStatus()) - .flag(sysPost.isFlag()) - .createBy(sysPost.getCreateBy()) - .build(); - } + /** + * 备注 + */ + private String remark; + } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostListResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostListResp.java index e92872b..c70abdc 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostListResp.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostListResp.java @@ -1,5 +1,6 @@ package com.muyu.system.domain.resp; +import com.fasterxml.jackson.annotation.JsonFormat; import com.muyu.common.core.annotation.Excel; import com.muyu.common.core.web.page.PageQueryModel; import com.muyu.system.domain.SysPost; @@ -9,6 +10,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; import java.util.List; /** * 岗位信息响应列表 @@ -58,6 +60,12 @@ public class SysPostListResp { @Builder.Default private boolean flag = false; + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + public static SysPostListResp listBuild(SysPostListModel sysPostListModel) { return SysPostListResp.builder() .postId(sysPostListModel.getPostId()) @@ -66,6 +74,7 @@ public class SysPostListResp { .postSort(sysPostListModel.getPostSort()) .status(sysPostListModel.getStatus()) .flag(sysPostListModel.isFlag()) + .createTime(sysPostListModel.getCreateTime()) .build(); } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostMyInfoResp.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostMyInfoResp.java new file mode 100644 index 0000000..e66ca11 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/resp/SysPostMyInfoResp.java @@ -0,0 +1,73 @@ +package com.muyu.system.domain.resp; + +import com.muyu.common.core.annotation.Excel; +import com.muyu.system.domain.model.SysPostMyInfoModel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; /** + * 个人岗位信息 + * @author: AoCi Tian + * @create: 2025-02-23 20:52 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysPostMyInfoResp { + private static final long serialVersionUID = 1L; + + /** + * 岗位序号 + */ + @Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC) + private Long postId; + + /** + * 岗位编码 + */ + @Excel(name = "岗位编码") + private String postCode; + + /** + * 岗位名称 + */ + @Excel(name = "岗位名称") + private String postName; + + /** + * 岗位排序 + */ + @Excel(name = "岗位排序") + private Integer postSort; + + /** + * 状态(0正常 1停用) + */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** + * 用户是否存在此岗位标识 默认不存在 + */ + @Builder.Default + private boolean flag = false; + + /** + * 备注 + */ + @Excel(name = "备注") + private String remark; + + public static SysPostMyInfoResp messageBuild(SysPostMyInfoModel sysPostMyInfoModel) { + return SysPostMyInfoResp.builder() + .postId(sysPostMyInfoModel.getPostId()) + .postCode(sysPostMyInfoModel.getPostCode()) + .postName(sysPostMyInfoModel.getPostName()) + .postSort(sysPostMyInfoModel.getPostSort()) + .status(sysPostMyInfoModel.getStatus()) + .remark(sysPostMyInfoModel.getRemark()) + .flag(sysPostMyInfoModel.isFlag()) + .build(); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java index 10aa4a3..804d5a6 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysPostServiceImpl.java @@ -160,7 +160,7 @@ public class SysPostServiceImpl extends ServiceImpl impl @Override public void deletePostByIds (List postIds) { for (Long postId : postIds) { - SysPost post = selectPostById(postId); + SysPostMyInfoModel post = selectPostById (postId); if (countUserPostById(postId) > 0) { throw new ServiceException(String.format("%1$s已分配,不能删除", post.getPostName())); } From b813bf2c6ee299d9f4eb968ddc82a3d58a4ac697 Mon Sep 17 00:00:00 2001 From: yangchaoshun <2919058172@qq.com> Date: Mon, 24 Feb 2025 12:20:11 +0800 Subject: [PATCH 6/7] =?UTF-8?q?fit():=E4=BF=AE=E6=94=B9sysMenu=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=96=B0=E5=A2=9E,=E4=BF=AE=E6=94=B9ddd=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SysLogininforController.java | 2 +- .../system/controller/SysMenuController.java | 35 +++-- .../java/com/muyu/system/domain/SysMenu.java | 65 ++++++++ .../system/domain/model/SysMenuAddModel.java | 140 ++++++++++++++++++ .../system/domain/model/SysMenuUpdModel.java | 119 +++++++++++++++ .../muyu/system/domain/rep/SysMenuAddReq.java | 16 +- .../muyu/system/domain/rep/SysMenuUpdReq.java | 113 ++++++++++++++ .../muyu/system/service/SysMenuService.java | 14 +- .../impl/SysLogininforServiceImpl.java | 2 + .../service/impl/SysMenuServiceImpl.java | 18 ++- 10 files changed, 493 insertions(+), 31 deletions(-) create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuAddModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuUpdModel.java create mode 100644 cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuUpdReq.java diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java index 45181b9..148dba2 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysLogininforController.java @@ -88,7 +88,7 @@ public class SysLogininforController extends BaseController { return success(); } - @InnerAuth + /*@InnerAuth*/ @PostMapping public Result add (@RequestBody SysLogininforAddReq logininforAddReq) { logininforService.insertLogininfor(SysLogininforAddModel.of(logininforAddReq)); diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java index f5d6fd7..dddce6a 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysMenuController.java @@ -9,8 +9,12 @@ 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.SysMenu; +import com.muyu.system.domain.model.SysMenuAddModel; import com.muyu.system.domain.model.SysMenuListModel; +import com.muyu.system.domain.model.SysMenuUpdModel; +import com.muyu.system.domain.rep.SysMenuAddReq; import com.muyu.system.domain.rep.SysMenuListReq; +import com.muyu.system.domain.rep.SysMenuUpdReq; import com.muyu.system.domain.resp.RoleMenuTreeResp; import com.muyu.system.domain.resp.SysMenuListResp; import com.muyu.system.service.SysMenuService; @@ -84,14 +88,16 @@ public class SysMenuController extends BaseController { @RequiresPermissions("system:menu:add") @Log(title = "菜单管理", businessType = BusinessType.INSERT) @PostMapping - public Result add (@Validated @RequestBody SysMenu menu) { - if (!menuService.checkMenuNameUnique(menu)) { - return error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); - } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { - return error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); + public Result add (@Validated @RequestBody SysMenuAddReq sysMenuAddReq) { + SysMenuAddModel sysMenuAddModel = SysMenuAddModel.of(sysMenuAddReq); + if (!menuService.checkMenuNameUnique(sysMenuAddModel)) { + return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在"); + } else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) { + return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,地址必须以http(s)://开头"); } + SysMenu menu = SysMenu.buildSysMenu(sysMenuAddReq); menu.setCreateBy(SecurityUtils.getUsername()); - menuService.insertMenu(menu); + menuService.insertMenu(SysMenuAddModel.of(sysMenuAddReq)); return Result.success(); } @@ -101,16 +107,17 @@ public class SysMenuController extends BaseController { @RequiresPermissions("system:menu:edit") @Log(title = "菜单管理", businessType = BusinessType.UPDATE) @PutMapping - public Result edit (@Validated @RequestBody SysMenu menu) { - if (!menuService.checkMenuNameUnique(menu)) { - return error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在"); - } else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath())) { - return error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头"); - } else if (menu.getMenuId().equals(menu.getParentId())) { - return error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己"); + public Result edit (@Validated @RequestBody SysMenuUpdReq sysMenuUpdReq) { + SysMenuAddModel sysMenuAddModel = SysMenuAddModel.buildSysMenuAddModel(sysMenuUpdReq); + if (!menuService.checkMenuNameUnique(sysMenuAddModel)) { + return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,菜单名称已存在"); + } else if (UserConstants.YES_FRAME.equals(sysMenuAddModel.getIsFrame()) && !StringUtils.ishttp(sysMenuAddModel.getPath())) { + return error("新增菜单'" + sysMenuAddModel.getMenuName() + "'失败,地址必须以http(s)://开头"); } + SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel); + menu.setCreateBy(SecurityUtils.getUsername()); menu.setUpdateBy(SecurityUtils.getUsername()); - menuService.updateMenu(menu); + menuService.updateMenu(SysMenuUpdModel.of(sysMenuUpdReq)); return Result.success(); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysMenu.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysMenu.java index 5a2f09f..6c5a2b5 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysMenu.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/SysMenu.java @@ -5,7 +5,10 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.system.domain.model.SysMenuAddModel; import com.muyu.system.domain.model.SysMenuListModel; +import com.muyu.system.domain.model.SysMenuUpdModel; +import com.muyu.system.domain.rep.SysMenuAddReq; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; @@ -123,6 +126,7 @@ public class SysMenu extends BaseEntity { * 子菜单 */ @Builder.Default + @TableField(exist = false) private List children = new ArrayList(); @NotBlank(message = "菜单名称不能为空") @@ -197,4 +201,65 @@ public class SysMenu extends BaseEntity { .children(sysMenuListModel.getChildren()) .build(); } + + public static SysMenu buildSysMenu(SysMenuAddReq sysMenuAddReq) { + return SysMenu.builder() + .menuId(sysMenuAddReq.getMenuId()) + .menuName(sysMenuAddReq.getMenuName()) + .parentName(sysMenuAddReq.getParentName()) + .parentId(sysMenuAddReq.getParentId()) + .orderNum(sysMenuAddReq.getOrderNum()) + .path(sysMenuAddReq.getPath()) + .component(sysMenuAddReq.getComponent()) + .query(sysMenuAddReq.getQuery()) + .isFrame(sysMenuAddReq.getIsFrame()) + .isCache(sysMenuAddReq.getIsCache()) + .menuType(sysMenuAddReq.getMenuType()) + .visible(sysMenuAddReq.getVisible()) + .status(sysMenuAddReq.getStatus()) + .perms(sysMenuAddReq.getPerms()) + .icon(sysMenuAddReq.getIcon()) + .children(sysMenuAddReq.getChildren()) + .build(); + } + + public static SysMenu buildSysMenu(SysMenuAddModel sysMenuAddModel) { + return SysMenu.builder() + .menuName(sysMenuAddModel.getMenuName()) + .parentId(sysMenuAddModel.getParentId()) + .orderNum(sysMenuAddModel.getOrderNum()) + .path(sysMenuAddModel.getPath()) + .component(sysMenuAddModel.getComponent()) + .query(sysMenuAddModel.getQuery()) + .isFrame(sysMenuAddModel.getIsFrame()) + .isCache(sysMenuAddModel.getIsCache()) + .menuType(sysMenuAddModel.getMenuType()) + .visible(sysMenuAddModel.getVisible()) + .status(sysMenuAddModel.getStatus()) + .perms(sysMenuAddModel.getPerms()) + .icon(sysMenuAddModel.getIcon()) + .children(sysMenuAddModel.getChildren()) + .build(); + } + + public static SysMenu buildSysMenu(SysMenuUpdModel sysMenuUpdModel) { + return SysMenu.builder() + .menuId(sysMenuUpdModel.getMenuId()) + .menuName(sysMenuUpdModel.getMenuName()) + .parentId(sysMenuUpdModel.getParentId()) + .orderNum(sysMenuUpdModel.getOrderNum()) + .path(sysMenuUpdModel.getPath()) + .component(sysMenuUpdModel.getComponent()) + .query(sysMenuUpdModel.getQuery()) + .isFrame(sysMenuUpdModel.getIsFrame()) + .isCache(sysMenuUpdModel.getIsCache()) + .menuType(sysMenuUpdModel.getMenuType()) + .visible(sysMenuUpdModel.getVisible()) + .status(sysMenuUpdModel.getStatus()) + .perms(sysMenuUpdModel.getPerms()) + .icon(sysMenuUpdModel.getIcon()) + .children(sysMenuUpdModel.getChildren()) + .build(); + } + } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuAddModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuAddModel.java new file mode 100644 index 0000000..e2303c7 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuAddModel.java @@ -0,0 +1,140 @@ +package com.muyu.system.domain.model; + +import com.muyu.system.domain.SysMenu; +import com.muyu.system.domain.rep.SysMenuAddReq; +import com.muyu.system.domain.rep.SysMenuUpdReq; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 菜单添加模型 + * @author yangchoashun + * @date 2025/2/23 17:24 + * @version 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysMenuAddModel { + /** + * 菜单ID + */ + private Long menuId; + /** + * 菜单名称 + */ + private String menuName; + + /** + * 父菜单ID + */ + + private Long parentId; + + /** + * 显示顺序 + */ + private Integer orderNum; + + /** + * 路由地址 + */ + private String path; + + /** + * 组件路径 + */ + private String component; + + /** + * 路由参数 + */ + private String query; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 子菜单 + */ + private List children = new ArrayList(); + + public static SysMenuAddModel of(SysMenuAddReq sysMenuAddReq) { + return SysMenuAddModel.builder() + .menuName(sysMenuAddReq.getMenuName()) + .parentId(sysMenuAddReq.getParentId()) + .orderNum(sysMenuAddReq.getOrderNum()) + .path(sysMenuAddReq.getPath()) + .component(sysMenuAddReq.getComponent()) + .query(sysMenuAddReq.getQuery()) + .isFrame(sysMenuAddReq.getIsFrame()) + .isCache(sysMenuAddReq.getIsCache()) + .menuType(sysMenuAddReq.getMenuType()) + .visible(sysMenuAddReq.getVisible()) + .status(sysMenuAddReq.getStatus()) + .perms(sysMenuAddReq.getPerms()) + .icon(sysMenuAddReq.getIcon()) + .children(sysMenuAddReq.getChildren()) + .build(); + } + + public static SysMenuAddModel buildSysMenuAddModel(SysMenuUpdReq sysMenuUpdReq){ + return SysMenuAddModel.builder() + .menuName(sysMenuUpdReq.getMenuName()) + .parentId(sysMenuUpdReq.getParentId()) + .orderNum(sysMenuUpdReq.getOrderNum()) + .path(sysMenuUpdReq.getPath()) + .component(sysMenuUpdReq.getComponent()) + .query(sysMenuUpdReq.getQuery()) + .isFrame(sysMenuUpdReq.getIsFrame()) + .isCache(sysMenuUpdReq.getIsCache()) + .menuType(sysMenuUpdReq.getMenuType()) + .visible(sysMenuUpdReq.getVisible()) + .status(sysMenuUpdReq.getStatus()) + .perms(sysMenuUpdReq.getPerms()) + .icon(sysMenuUpdReq.getIcon()) + .children(sysMenuUpdReq.getChildren()) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuUpdModel.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuUpdModel.java new file mode 100644 index 0000000..36a8866 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/model/SysMenuUpdModel.java @@ -0,0 +1,119 @@ +package com.muyu.system.domain.model; + +import com.muyu.system.domain.SysMenu; +import com.muyu.system.domain.rep.SysMenuAddReq; +import com.muyu.system.domain.rep.SysMenuUpdReq; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 菜单修改模型 + * @author yangchoashun + * @date 2025/2/23 17:24 + * @version 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysMenuUpdModel { + /** + * 菜单ID + */ + private Long menuId; + /** + * 菜单名称 + */ + private String menuName; + + /** + * 父菜单ID + */ + + private Long parentId; + + /** + * 显示顺序 + */ + private Integer orderNum; + + /** + * 路由地址 + */ + private String path; + + /** + * 组件路径 + */ + private String component; + + /** + * 路由参数 + */ + private String query; + + /** + * 是否为外链(0是 1否) + */ + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + private String icon; + + /** + * 子菜单 + */ + private List children = new ArrayList(); + + public static SysMenuUpdModel of(SysMenuUpdReq sysMenuUpdReq) { + return SysMenuUpdModel.builder() + .menuName(sysMenuUpdReq.getMenuName()) + .parentId(sysMenuUpdReq.getParentId()) + .orderNum(sysMenuUpdReq.getOrderNum()) + .path(sysMenuUpdReq.getPath()) + .component(sysMenuUpdReq.getComponent()) + .query(sysMenuUpdReq.getQuery()) + .isFrame(sysMenuUpdReq.getIsFrame()) + .isCache(sysMenuUpdReq.getIsCache()) + .menuType(sysMenuUpdReq.getMenuType()) + .visible(sysMenuUpdReq.getVisible()) + .status(sysMenuUpdReq.getStatus()) + .perms(sysMenuUpdReq.getPerms()) + .icon(sysMenuUpdReq.getIcon()) + .children(sysMenuUpdReq.getChildren()) + .build(); + } + +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuAddReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuAddReq.java index 89f951c..10ebbc5 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuAddReq.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuAddReq.java @@ -1,6 +1,8 @@ package com.muyu.system.domain.rep; import com.muyu.system.domain.SysMenu; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -25,6 +27,7 @@ public class SysMenuAddReq { /** * 菜单名称 */ + @NotBlank(message = "菜单名称不能为空") private String menuName; /** @@ -41,19 +44,19 @@ public class SysMenuAddReq { /** * 显示顺序 */ - + @NotNull(message = "显示顺序不能为空") private Integer orderNum; /** * 路由地址 */ - + @NotBlank(message = "路由地址不能为空") private String path; /** * 组件路径 */ - + @NotBlank(message = "组件路径不能为空") private String component; /** @@ -64,26 +67,31 @@ public class SysMenuAddReq { /** * 是否为外链(0是 1否) */ + @NotBlank(message = "是否为外链不能为空") private String isFrame; /** * 是否缓存(0缓存 1不缓存) */ + @NotBlank(message = "是否缓存不能为空") private String isCache; /** * 类型(M目录 C菜单 F按钮) */ + @NotBlank(message = "类型不能为空") private String menuType; /** * 显示状态(0显示 1隐藏) */ + @NotBlank(message = "显示状态不能为空") private String visible; /** * 菜单状态(0正常 1停用) */ + @NotBlank(message = "菜单状态不能为空") private String status; /** @@ -94,10 +102,12 @@ public class SysMenuAddReq { /** * 菜单图标 */ + @NotBlank(message = "菜单图标不能为空") private String icon; /** * 子菜单 */ private List children = new ArrayList(); + } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuUpdReq.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuUpdReq.java new file mode 100644 index 0000000..9b70a58 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/rep/SysMenuUpdReq.java @@ -0,0 +1,113 @@ +package com.muyu.system.domain.rep; + +import com.muyu.system.domain.SysMenu; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 菜单添加请求 + * @author yangchoashun + * @date 2025/2/23 17:24 + * @version 1.0 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SysMenuUpdReq { + private Long menuId; + + /** + * 菜单名称 + */ + @NotBlank(message = "菜单名称不能为空") + private String menuName; + + /** + * 父菜单名称 + */ + private String parentName; + + /** + * 父菜单ID + */ + + private Long parentId; + + /** + * 显示顺序 + */ + @NotNull(message = "显示顺序不能为空") + private Integer orderNum; + + /** + * 路由地址 + */ + @NotBlank(message = "路由地址不能为空") + private String path; + + /** + * 组件路径 + */ + @NotBlank(message = "组件路径不能为空") + private String component; + + /** + * 路由参数 + */ + private String query; + + /** + * 是否为外链(0是 1否) + */ + @NotBlank(message = "是否为外链不能为空") + private String isFrame; + + /** + * 是否缓存(0缓存 1不缓存) + */ + @NotBlank(message = "是否缓存不能为空") + private String isCache; + + /** + * 类型(M目录 C菜单 F按钮) + */ + @NotBlank(message = "类型不能为空") + private String menuType; + + /** + * 显示状态(0显示 1隐藏) + */ + @NotBlank(message = "显示状态不能为空") + private String visible; + + /** + * 菜单状态(0正常 1停用) + */ + @NotBlank(message = "菜单状态不能为空") + private String status; + + /** + * 权限字符串 + */ + private String perms; + + /** + * 菜单图标 + */ + @NotBlank(message = "菜单图标不能为空") + private String icon; + + /** + * 子菜单 + */ + private List children = new ArrayList(); + +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java index cc0a9ef..a99bace 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysMenuService.java @@ -2,7 +2,9 @@ package com.muyu.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.system.domain.SysMenu; +import com.muyu.system.domain.model.SysMenuAddModel; import com.muyu.system.domain.model.SysMenuListModel; +import com.muyu.system.domain.model.SysMenuUpdModel; import com.muyu.system.domain.vo.RouterVo; import com.muyu.system.domain.vo.TreeSelect; @@ -127,16 +129,16 @@ public interface SysMenuService extends IService { /** * 新增保存菜单信息 * - * @param menu 菜单信息 + * @param sysMenuAddModel 菜单信息 */ - public void insertMenu (SysMenu menu); + public void insertMenu (SysMenuAddModel sysMenuAddModel); /** * 修改保存菜单信息 * - * @param menu 菜单信息 + * @param sysMenuUpdModel 菜单信息 */ - public void updateMenu (SysMenu menu); + public void updateMenu (SysMenuUpdModel sysMenuUpdModel); /** * 删除菜单管理信息 @@ -148,10 +150,10 @@ public interface SysMenuService extends IService { /** * 校验菜单名称是否唯一 * - * @param menu 菜单信息 + * @param sysMenuAddModel 菜单信息 * * @return 结果 */ - public boolean checkMenuNameUnique (SysMenu menu); + public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel); } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java index ed8580f..a5bd0c4 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java @@ -15,6 +15,7 @@ import com.muyu.system.service.SysLogininforService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; /** @@ -36,6 +37,7 @@ public class SysLogininforServiceImpl extends ServiceImpl impl /** * 新增保存菜单信息 * - * @param menu 菜单信息 + * @param sysMenuAddModel 菜单信息 * * @return 结果 */ @Override - public void insertMenu (SysMenu menu) { + public void insertMenu (SysMenuAddModel sysMenuAddModel) { + SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel); this.save(menu); } /** * 修改保存菜单信息 * - * @param menu 菜单信息 + * @param sysMenuUpdModel 菜单信息 * * @return 结果 */ @Override - public void updateMenu (SysMenu menu) { - this.updateById(menu); + public void updateMenu (SysMenuUpdModel sysMenuUpdModel) { + this.updateById(SysMenu.buildSysMenu(sysMenuUpdModel)); } /** @@ -337,12 +340,13 @@ public class SysMenuServiceImpl extends ServiceImpl impl /** * 校验菜单名称是否唯一 * - * @param menu 菜单信息 + * @param sysMenuAddModel 菜单信息 * * @return 结果 */ @Override - public boolean checkMenuNameUnique (SysMenu menu) { + public boolean checkMenuNameUnique (SysMenuAddModel sysMenuAddModel) { + SysMenu menu = SysMenu.buildSysMenu(sysMenuAddModel); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(SysMenu::getMenuName, menu.getMenuName()); lambdaQueryWrapper.ne(menu.getMenuId() != null, SysMenu::getParentId, menu.getParentId()); From 4b0aa2f64d51cda51612a75a19a7057b3007ac79 Mon Sep 17 00:00:00 2001 From: yangchaoshun <2919058172@qq.com> Date: Mon, 24 Feb 2025 12:28:10 +0800 Subject: [PATCH 7/7] =?UTF-8?q?fit():=E4=BF=AE=E6=94=B9SysLoginfor?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E4=B8=BAddd=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/system/service/impl/SysLogininforServiceImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java index a5bd0c4..fea5959 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysLogininforServiceImpl.java @@ -50,12 +50,11 @@ public class SysLogininforServiceImpl extends ServiceImpl pageQuery(SysLogininforListModel pageQueryModel) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper() + Page page = this.page(pageQueryModel.buildPage(), new LambdaQueryWrapper() .like(StringUtils.isNotEmpty(pageQueryModel.getIpaddr()), SysLogininfor::getIpaddr, pageQueryModel.getIpaddr()) .eq(StringUtils.isNotEmpty(pageQueryModel.getStatus()), SysLogininfor::getStatus, pageQueryModel.getStatus()) .like(StringUtils.isNotEmpty(pageQueryModel.getUserName()), SysLogininfor::getUserName, pageQueryModel.getUserName()) - .between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime()); - Page page = this.page(pageQueryModel.buildPage(), queryWrapper); + .between(!ObjectUtil.hasNull(pageQueryModel.getBeginTime(),pageQueryModel.getEndTime()), SysLogininfor::getAccessTime, pageQueryModel.getBeginTime(), pageQueryModel.getEndTime())); return new PageQueryModel(){{ setDataList(page.getRecords().stream() .map(SysLogininforListModel::buildSysLogininforListModel)