提交 2b2f2951 编写于 作者: 郝先瑞

feat: 菜单列表返回前端添加菜单类型字段

上级 8ccd7a00
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) {
......
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
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<MenuVO> children;
......
......@@ -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<SysMenuMapper, SysMenu> implements SysMenuService {
private final SysPermissionService permissionService;
private final MenuConverter menuConverter;
/**
* 菜单表格树形列表
......@@ -197,14 +199,13 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
* @param menuList 菜单列表
* @return
*/
private static List<MenuVO> recurTableMenus(Long parentId, List<SysMenu> menuList) {
private List<MenuVO> recurTableMenus(Long parentId, List<SysMenu> menuList) {
List<MenuVO> 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<MenuVO> children = recurTableMenus(menu.getId(), menuList);
.map(entity -> {
MenuVO menuVO = menuConverter.entity2VO(entity);
List<MenuVO> children = recurTableMenus(entity.getId(), menuList);
menuVO.setChildren(children);
return menuVO;
}).collect(Collectors.toList());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册