From b0c473cbca029fe58c5c10c2e10aaf58d177f52a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E6=98=B1=E6=81=92?= Date: Tue, 5 Sep 2023 21:12:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/menu/dto/MenuInsertReqDTO.java | 40 +++++++++++++++- .../controller/menu/dto/MenuRespDTO.java | 5 ++ .../controller/menu/dto/MenuUpdateReqDTO.java | 40 ++++++++++++++++ .../java/org/oswh/sherly/model/MenuDO.java | 47 +++++++++++++++++-- 4 files changed, 126 insertions(+), 6 deletions(-) diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuInsertReqDTO.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuInsertReqDTO.java index 1ff8d50..e79fd89 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuInsertReqDTO.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuInsertReqDTO.java @@ -1,7 +1,9 @@ package org.oswh.sherly.controller.menu.dto; +import com.alibaba.excel.enums.BooleanEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.oswh.sherly.common.enums.UsableEnum; import org.oswh.sherly.controller.menu.enums.MenuTypeEnum; import javax.validation.constraints.NotBlank; @@ -33,10 +35,18 @@ public class MenuInsertReqDTO { @NotNull private String parentId; - /** 菜单路径 */ + /** 菜单路由地址 */ @Schema(description = "菜单路径") private String path; + /** 菜单组件地址 */ + @Schema(description = "组件地址") + private String componentPath; + + /** 菜单组件名称 */ + @Schema(description = "路由地址") + private String componentName; + /** 菜单图标 */ @Schema(description = "菜单图标") private String icon; @@ -46,4 +56,32 @@ public class MenuInsertReqDTO { @NotNull private Integer sort; + /** 类目状态 */ + @Schema(description = "类目状态") + @NotNull + private UsableEnum usable; + + /** + * 显示状态 + * 只有目录和菜单使用 + * 当设置为 true,该菜单不会展示在侧边栏,但是路由还是存在。例如说,一些独立的编辑页面 /edit/1024 等等 + */ + @Schema(description = "显示状态") + private BooleanEnum visible; + + /** + * 总是显示 + * 如果为 false,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单 + */ + @Schema(description = "总是显示") + private BooleanEnum alwaysShow; + + /** + * 缓存状态 + * 只有目录和菜单使用,否使用 Vue 路由的 keep-alive 特性 + * 注意:如果开启缓存,则必须填写 componentName,否则无法缓存 + */ + @Schema(description = "缓存状态") + private BooleanEnum keepAlive; + } diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuRespDTO.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuRespDTO.java index e95609e..c57fd5b 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuRespDTO.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuRespDTO.java @@ -2,6 +2,7 @@ package org.oswh.sherly.controller.menu.dto; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.oswh.sherly.common.enums.UsableEnum; import org.oswh.sherly.controller.menu.enums.MenuTypeEnum; import java.util.Date; @@ -49,5 +50,9 @@ public class MenuRespDTO { @Schema(description = "创建时间") private Date createTime; + /** 类目状态 */ + @Schema(description = "类目状态") + private UsableEnum usable; + private List children; } diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuUpdateReqDTO.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuUpdateReqDTO.java index dd5bb0f..f3d6772 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuUpdateReqDTO.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuUpdateReqDTO.java @@ -1,7 +1,9 @@ package org.oswh.sherly.controller.menu.dto; +import com.alibaba.excel.enums.BooleanEnum; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import org.oswh.sherly.common.enums.UsableEnum; import org.oswh.sherly.controller.menu.enums.MenuTypeEnum; import javax.validation.constraints.NotBlank; @@ -42,6 +44,14 @@ public class MenuUpdateReqDTO { @Schema(description = "菜单路径") private String path; + /** 菜单组件地址 */ + @Schema(description = "组件地址") + private String componentPath; + + /** 菜单组件名称 */ + @Schema(description = "路由地址") + private String componentName; + /** 菜单图标 */ @Schema(description = "菜单图标") private String icon; @@ -50,4 +60,34 @@ public class MenuUpdateReqDTO { @Schema(description = "排序") @NotNull private Integer sort; + + /** + * 类目状态 + * 等价理解为可用性 + */ + @Schema(description = "类目状态") + private UsableEnum usable; + + /** + * 显示状态 + * 只有目录和菜单使用 + * 当设置为 true,该菜单不会展示在侧边栏,但是路由还是存在。例如说,一些独立的编辑页面 /edit/1024 等等 + */ + @Schema(description = "显示状态") + private BooleanEnum visible; + + /** + * 总是显示 + * 如果为 false,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单 + */ + @Schema(description = "总是显示") + private BooleanEnum alwaysShow; + + /** + * 缓存状态 + * 只有目录和菜单使用,否使用 Vue 路由的 keep-alive 特性 + * 注意:如果开启缓存,则必须填写 componentName,否则无法缓存 + */ + @Schema(description = "缓存状态") + private BooleanEnum keepAlive; } diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/model/MenuDO.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/model/MenuDO.java index bc8c17d..c3acf95 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/model/MenuDO.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/model/MenuDO.java @@ -1,10 +1,12 @@ package org.oswh.sherly.model; +import com.alibaba.excel.enums.BooleanEnum; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.oswh.sherly.common.enums.UsableEnum; import org.oswh.sherly.common.model.BaseModel; import org.oswh.sherly.controller.menu.enums.MenuTypeEnum; @@ -16,6 +18,12 @@ import org.oswh.sherly.controller.menu.enums.MenuTypeEnum; @TableName("sys_menu") @EqualsAndHashCode(callSuper = true) public class MenuDO extends BaseModel { + + public static final String ROOT_PARENT_ID = "0"; + + /** 父菜单编号 */ + private String parentId; + /** 菜单编号 */ @TableId(type = IdType.ASSIGN_ID) private String menuId; @@ -26,18 +34,47 @@ public class MenuDO extends BaseModel { /** 菜单类型 */ private MenuTypeEnum menuType; - /** 权限 */ + /** 权限标识 */ private String permission; - /** 父菜单编号 */ - private String parentId; - - /** 菜单路径 */ + /** 菜单路由地址 */ private String path; /** 菜单图标 */ private String icon; + /** 菜单组件地址 */ + private String componentPath; + + /** 菜单组件名称 */ + private String componentName; + /** 排序 */ private Integer sort; + + /** + * 类目状态 + * 等价理解为可用性 + */ + private UsableEnum usable; + + /** + * 显示状态 + * 只有目录和菜单使用 + * 当设置为 true,该菜单不会展示在侧边栏,但是路由还是存在。例如说,一些独立的编辑页面 /edit/1024 等等 + */ + private BooleanEnum visible; + + /** + * 总是显示 + * 如果为 false,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单 + */ + private BooleanEnum alwaysShow; + + /** + * 缓存状态 + * 只有目录和菜单使用,否使用 Vue 路由的 keep-alive 特性 + * 注意:如果开启缓存,则必须填写 componentName,否则无法缓存 + */ + private BooleanEnum keepAlive; } -- Gitee From 534d571e246613d164f83d605cef346d74142f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=9C=E6=98=B1=E6=81=92?= Date: Tue, 5 Sep 2023 23:27:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=87=8D=E6=9E=84Menu=E6=9D=BF=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/menu/MenuController.java | 15 ++-- .../controller/menu/dto/MenuDeleteReqDTO.java | 12 +++ .../controller/menu/dto/MenuDetailReqDTO.java | 15 ++++ .../menu/dto/MenuDetailRespDTO.java | 77 +++++++++++++++++++ .../sherly/convertor/menu/MenuConvertor.java | 3 + .../oswh/sherly/mapper/menu/MenuMapper.java | 3 +- .../sherly/mapper/role/RoleMenuMapper.java | 2 +- .../java/org/oswh/sherly/model/MenuDO.java | 2 - .../oswh/sherly/service/menu/MenuService.java | 30 +++++--- 9 files changed, 140 insertions(+), 19 deletions(-) create mode 100644 sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDeleteReqDTO.java create mode 100644 sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDetailReqDTO.java create mode 100644 sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDetailRespDTO.java diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/MenuController.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/MenuController.java index 97da97b..19563f1 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/MenuController.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/MenuController.java @@ -3,10 +3,9 @@ package org.oswh.sherly.controller.menu; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.oswh.sherly.common.model.Result; -import org.oswh.sherly.controller.menu.dto.MenuInsertReqDTO; -import org.oswh.sherly.controller.menu.dto.MenuRespDTO; -import org.oswh.sherly.controller.menu.dto.MenuUpdateReqDTO; +import org.oswh.sherly.controller.menu.dto.*; import org.oswh.sherly.service.menu.MenuService; +import org.springdoc.api.annotations.ParameterObject; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -45,8 +44,8 @@ public class MenuController { @DeleteMapping("/remove_one") @PreAuthorize("hasAnyAuthority('menu:remove_one')") @Operation(summary = "菜单删除") - public Result removeOne(@RequestParam Long menuId) { - menuService.removeOne(menuId); + public Result removeOne(@RequestBody @Valid MenuDeleteReqDTO reqDTO) { + menuService.removeOne(reqDTO); return Result.success(); } @@ -57,4 +56,10 @@ public class MenuController { menuService.updateOne(dto); return Result.success(); } + + @GetMapping("/detail") + @Operation(summary = "菜单详情") + public Result detail(@ParameterObject MenuDetailReqDTO reqDTO) { + return Result.success(menuService.detail(reqDTO)); + } } diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDeleteReqDTO.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDeleteReqDTO.java new file mode 100644 index 0000000..b2bfce0 --- /dev/null +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDeleteReqDTO.java @@ -0,0 +1,12 @@ +package org.oswh.sherly.controller.menu.dto; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class MenuDeleteReqDTO { + /** 菜单编号 */ + @Schema(description = "菜单编号") + private String menuId; +} diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDetailReqDTO.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDetailReqDTO.java new file mode 100644 index 0000000..6eec7f7 --- /dev/null +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDetailReqDTO.java @@ -0,0 +1,15 @@ +package org.oswh.sherly.controller.menu.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +public class MenuDetailReqDTO { + + /** 菜单id */ + @NotBlank + @Schema(description = "菜单id") + private String menuId; +} diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDetailRespDTO.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDetailRespDTO.java new file mode 100644 index 0000000..cedd6a2 --- /dev/null +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/controller/menu/dto/MenuDetailRespDTO.java @@ -0,0 +1,77 @@ +package org.oswh.sherly.controller.menu.dto; + +import com.alibaba.excel.enums.BooleanEnum; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.oswh.sherly.common.enums.UsableEnum; +import org.oswh.sherly.controller.menu.enums.MenuTypeEnum; + +@Data +public class MenuDetailRespDTO { + /** 菜单id */ + @Schema(description = "菜单id") + private String menuId; + + /** 菜单名称 */ + @Schema(description = "菜单名称") + private String menuName; + + /** 菜单类型 */ + @Schema(description = "菜单类型") + private MenuTypeEnum menuType; + + /** 权限 */ + @Schema(description = "权限") + private String permission; + + /** 父菜单编号 */ + @Schema(description = "父菜单编号") + private String parentId; + + /** 菜单路由地址 */ + @Schema(description = "菜单路径") + private String path; + + /** 菜单组件地址 */ + @Schema(description = "组件地址") + private String componentPath; + + /** 菜单组件名称 */ + @Schema(description = "路由地址") + private String componentName; + + /** 菜单图标 */ + @Schema(description = "菜单图标") + private String icon; + + /** 排序 */ + @Schema(description = "排序") + private Integer sort; + + /** 类目状态 */ + @Schema(description = "类目状态") + private UsableEnum usable; + + /** + * 显示状态 + * 只有目录和菜单使用 + * 当设置为 true,该菜单不会展示在侧边栏,但是路由还是存在。例如说,一些独立的编辑页面 /edit/1024 等等 + */ + @Schema(description = "显示状态") + private BooleanEnum visible; + + /** + * 总是显示 + * 如果为 false,当该菜单只有一个子菜单时,不展示自己,直接展示子菜单 + */ + @Schema(description = "总是显示") + private BooleanEnum alwaysShow; + + /** + * 缓存状态 + * 只有目录和菜单使用,否使用 Vue 路由的 keep-alive 特性 + * 注意:如果开启缓存,则必须填写 componentName,否则无法缓存 + */ + @Schema(description = "缓存状态") + private BooleanEnum keepAlive; +} diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/convertor/menu/MenuConvertor.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/convertor/menu/MenuConvertor.java index 88e9e4b..c10ad0f 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/convertor/menu/MenuConvertor.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/convertor/menu/MenuConvertor.java @@ -3,6 +3,7 @@ package org.oswh.sherly.convertor.menu; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import org.oswh.sherly.controller.generic.dto.BasicMenuInfoRespDTO; +import org.oswh.sherly.controller.menu.dto.MenuDetailRespDTO; import org.oswh.sherly.controller.menu.dto.MenuInsertReqDTO; import org.oswh.sherly.controller.menu.dto.MenuRespDTO; import org.oswh.sherly.controller.menu.dto.MenuUpdateReqDTO; @@ -20,4 +21,6 @@ public interface MenuConvertor { MenuDO convertToDO (MenuUpdateReqDTO reqDTO); BasicMenuInfoRespDTO convertToInfoRespDTO(MenuDO menuDO); + + MenuDetailRespDTO convertToDetailRespDTO(MenuDO menuDO); } diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/mapper/menu/MenuMapper.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/mapper/menu/MenuMapper.java index 007d665..4e16945 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/mapper/menu/MenuMapper.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/mapper/menu/MenuMapper.java @@ -17,7 +17,7 @@ public interface MenuMapper extends SherlyMapper { * @param menuId * @return */ - default Long countChildrenByMenuId(Long menuId) { + default Long countChildrenByMenuId(String menuId) { return selectCount(new SherlyLambdaQueryWrapper() .eqIfExist(MenuDO::getParentId, menuId)); } @@ -29,4 +29,5 @@ public interface MenuMapper extends SherlyMapper { void removeAll(); + } diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/mapper/role/RoleMenuMapper.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/mapper/role/RoleMenuMapper.java index cec6603..6546dee 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/mapper/role/RoleMenuMapper.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/mapper/role/RoleMenuMapper.java @@ -64,7 +64,7 @@ public interface RoleMenuMapper extends SherlyMapper { * @param menuId * @return */ - default Long countByMenuId(Long menuId) { + default Long countByMenuId(String menuId) { return selectCount(RoleMenuDO::getMenuId, menuId); } } diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/model/MenuDO.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/model/MenuDO.java index c3acf95..d3232f2 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/model/MenuDO.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/model/MenuDO.java @@ -19,8 +19,6 @@ import org.oswh.sherly.controller.menu.enums.MenuTypeEnum; @EqualsAndHashCode(callSuper = true) public class MenuDO extends BaseModel { - public static final String ROOT_PARENT_ID = "0"; - /** 父菜单编号 */ private String parentId; diff --git a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/service/menu/MenuService.java b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/service/menu/MenuService.java index 28b4d14..2edbe48 100644 --- a/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/service/menu/MenuService.java +++ b/sherly-boot-services/sherly-boot-system/sherly-boot-system-biz/src/main/java/org/oswh/sherly/service/menu/MenuService.java @@ -1,9 +1,7 @@ package org.oswh.sherly.service.menu; import org.oswh.sherly.common.modules.exception.BizException; -import org.oswh.sherly.controller.menu.dto.MenuInsertReqDTO; -import org.oswh.sherly.controller.menu.dto.MenuRespDTO; -import org.oswh.sherly.controller.menu.dto.MenuUpdateReqDTO; +import org.oswh.sherly.controller.menu.dto.*; import org.oswh.sherly.mapper.menu.MenuMapper; import org.oswh.sherly.mapper.role.RoleMenuMapper; import org.oswh.sherly.model.MenuDO; @@ -48,7 +46,6 @@ public class MenuService { .collect(Collectors.toList()); } - /** * 递归拼装子结点 * @param parent @@ -62,6 +59,7 @@ public class MenuService { .collect(Collectors.toList()); } + /** * 菜单新增 * @param dto @@ -71,11 +69,14 @@ public class MenuService { menuMapper.insert(menuDO); } + + /** * 菜单删除 - * @param menuId + * @param reqDTO */ - public void removeOne(Long menuId) { + public void removeOne(MenuDeleteReqDTO reqDTO) { + String menuId = reqDTO.getMenuId(); if (roleMenuMapper.countByMenuId(menuId) > 0) { throw new BizException(MENU_BOUND_ROLE); } @@ -87,14 +88,23 @@ public class MenuService { /** * 菜单更新 - * @param dto + * @param reqDTO */ - public void updateOne(MenuUpdateReqDTO dto) { - if (Objects.equals(dto.getParentId(), dto.getMenuId())) { + public void updateOne(MenuUpdateReqDTO reqDTO) { + if (Objects.equals(reqDTO.getParentId(), reqDTO.getMenuId())) { throw new BizException(MENU_PARENT_SELF); } - MenuDO menuDO = MenuConvertor.convertToDO(dto); + MenuDO menuDO = MenuConvertor.convertToDO(reqDTO); menuMapper.updateById(menuDO); } + /** + * 菜单详情 + * @param reqDTO + */ + public MenuDetailRespDTO detail(MenuDetailReqDTO reqDTO) { + MenuDO menu = menuMapper.selectById(reqDTO.getMenuId()); + + return MenuConvertor.convertToDetailRespDTO(menu); + } } -- Gitee