|
|
@@ -1,13 +1,19 @@
|
|
|
package com.middle.platform.system.biz.service;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.middle.platform.common.constant.Global;
|
|
|
import com.middle.platform.system.biz.entity.SysMenu;
|
|
|
import com.middle.platform.system.biz.mapper.SysMenuMapper;
|
|
|
+import com.middle.platform.system.biz.pojo.res.MenuTree;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author xucaiqin
|
|
|
@@ -21,4 +27,24 @@ public class SysMenuService {
|
|
|
public List<SysMenu> list() {
|
|
|
return sysMenuMapper.selectList(new LambdaQueryWrapper<SysMenu>().eq(SysMenu::getDelFlag, Global.UN_DEL));
|
|
|
}
|
|
|
+
|
|
|
+ public List<MenuTree> tree() {
|
|
|
+ List<SysMenu> sysMenus = sysMenuMapper.selectList(new LambdaQueryWrapper<SysMenu>().eq(SysMenu::getDelFlag, Global.UN_DEL));
|
|
|
+ if (CollUtil.isEmpty(sysMenus)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ return sysMenus.stream().filter(d -> Objects.equals(0L, d.getPid())).map(d -> {
|
|
|
+ MenuTree menuTree = BeanUtil.toBean(d, MenuTree.class);
|
|
|
+ menuTree.setChildren(findChild(sysMenus, menuTree));
|
|
|
+ return menuTree;
|
|
|
+ }).toList();
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<MenuTree> findChild(List<SysMenu> all, MenuTree item) {
|
|
|
+ return all.stream().filter(d -> Objects.equals(d.getPid(), item.getId())).map(d -> {
|
|
|
+ MenuTree bean = BeanUtil.toBean(d, MenuTree.class);
|
|
|
+ bean.setChildren(findChild(all, bean));
|
|
|
+ return bean;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|