From 2b2f2951d1d73492cf09451cb06a8113466c6e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=9D=E5=85=88=E7=91=9E?= <1490493387@qq.com> Date: Sat, 30 Jul 2022 09:12:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=89=8D=E7=AB=AF=E6=B7=BB=E5=8A=A0=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InitPermissionRolesCache.java | 8 ++++---- .../youlai/admin/converter/MenuConverter.java | 18 ++++++++++++++++++ .../com/youlai/admin/pojo/vo/menu/MenuVO.java | 7 +++++++ .../admin/service/impl/SysMenuServiceImpl.java | 11 ++++++----- 4 files changed, 35 insertions(+), 9 deletions(-) rename youlai-admin/admin-boot/src/main/java/com/youlai/admin/{cache => component}/InitPermissionRolesCache.java (74%) create mode 100644 youlai-admin/admin-boot/src/main/java/com/youlai/admin/converter/MenuConverter.java diff --git a/youlai-admin/admin-boot/src/main/java/com/youlai/admin/cache/InitPermissionRolesCache.java b/youlai-admin/admin-boot/src/main/java/com/youlai/admin/component/InitPermissionRolesCache.java similarity index 74% rename from youlai-admin/admin-boot/src/main/java/com/youlai/admin/cache/InitPermissionRolesCache.java rename to youlai-admin/admin-boot/src/main/java/com/youlai/admin/component/InitPermissionRolesCache.java index 89c1bb89..abfc08bd 100644 --- a/youlai-admin/admin-boot/src/main/java/com/youlai/admin/cache/InitPermissionRolesCache.java +++ b/youlai-admin/admin-boot/src/main/java/com/youlai/admin/component/InitPermissionRolesCache.java @@ -1,7 +1,7 @@ -package com.youlai.admin.cache; +package com.youlai.admin.component; import com.youlai.admin.service.SysPermissionService; -import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; @@ -12,10 +12,10 @@ import org.springframework.stereotype.Component; * @date 2021/5/1 */ @Component -@AllArgsConstructor +@RequiredArgsConstructor public class InitPermissionRolesCache implements CommandLineRunner { - private SysPermissionService sysPermissionService; + private final SysPermissionService sysPermissionService; @Override public void run(String... args) { diff --git a/youlai-admin/admin-boot/src/main/java/com/youlai/admin/converter/MenuConverter.java b/youlai-admin/admin-boot/src/main/java/com/youlai/admin/converter/MenuConverter.java new file mode 100644 index 00000000..a6c41804 --- /dev/null +++ b/youlai-admin/admin-boot/src/main/java/com/youlai/admin/converter/MenuConverter.java @@ -0,0 +1,18 @@ +package com.youlai.admin.converter; + +import com.youlai.admin.pojo.entity.SysMenu; +import com.youlai.admin.pojo.vo.menu.MenuVO; +import org.mapstruct.Mapper; + +/** + * 菜单对象转换器 + * + * @author haoxr + * @date 2022/7/29 + */ +@Mapper(componentModel = "spring") +public interface MenuConverter { + + MenuVO entity2VO(SysMenu entity); + +} \ No newline at end of file diff --git a/youlai-admin/admin-boot/src/main/java/com/youlai/admin/pojo/vo/menu/MenuVO.java b/youlai-admin/admin-boot/src/main/java/com/youlai/admin/pojo/vo/menu/MenuVO.java index b0c0957b..ab09b8db 100644 --- a/youlai-admin/admin-boot/src/main/java/com/youlai/admin/pojo/vo/menu/MenuVO.java +++ b/youlai-admin/admin-boot/src/main/java/com/youlai/admin/pojo/vo/menu/MenuVO.java @@ -1,9 +1,13 @@ package com.youlai.admin.pojo.vo.menu; import com.fasterxml.jackson.annotation.JsonInclude; +import com.youlai.common.enums.MenuTypeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; +@ApiModel("菜单视图对象") @Data public class MenuVO { @@ -27,6 +31,9 @@ public class MenuVO { private String redirect; + @ApiModelProperty("菜单类型") + private MenuTypeEnum type; + @JsonInclude(value = JsonInclude.Include.NON_NULL) private List children; diff --git a/youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysMenuServiceImpl.java b/youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysMenuServiceImpl.java index 70e3e8f5..2f5d2c39 100644 --- a/youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysMenuServiceImpl.java +++ b/youlai-admin/admin-boot/src/main/java/com/youlai/admin/service/impl/SysMenuServiceImpl.java @@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.youlai.admin.converter.MenuConverter; import com.youlai.common.constant.SystemConstants; import com.youlai.common.enums.MenuTypeEnum; import com.youlai.admin.mapper.SysMenuMapper; @@ -39,6 +40,7 @@ import java.util.stream.Collectors; public class SysMenuServiceImpl extends ServiceImpl implements SysMenuService { private final SysPermissionService permissionService; + private final MenuConverter menuConverter; /** * 菜单表格树形列表 @@ -197,14 +199,13 @@ public class SysMenuServiceImpl extends ServiceImpl impl * @param menuList 菜单列表 * @return */ - private static List recurTableMenus(Long parentId, List menuList) { + private List recurTableMenus(Long parentId, List menuList) { List tableMenus = Optional.ofNullable(menuList).orElse(new ArrayList<>()) .stream() .filter(menu -> menu.getParentId().equals(parentId)) - .map(menu -> { - MenuVO menuVO = new MenuVO(); - BeanUtil.copyProperties(menu, menuVO); - List children = recurTableMenus(menu.getId(), menuList); + .map(entity -> { + MenuVO menuVO = menuConverter.entity2VO(entity); + List children = recurTableMenus(entity.getId(), menuList); menuVO.setChildren(children); return menuVO; }).collect(Collectors.toList()); -- GitLab