|
@@ -13,6 +13,7 @@ import thyyxxk.webserver.entity.settings.permissions.MenuItem;
|
|
|
import thyyxxk.webserver.utils.ResultVoUtil;
|
|
|
import thyyxxk.webserver.utils.SnowFlakeId;
|
|
|
import thyyxxk.webserver.utils.TokenUtil;
|
|
|
+import thyyxxk.webserver.utils.TreeUtil;
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
@@ -55,72 +56,12 @@ public class LoginService {
|
|
|
}
|
|
|
|
|
|
public ResultVo<List<MenuItem>> fetchMenus() {
|
|
|
- Map<Integer, MenuItem> finalMap = new HashMap<>(Capacity.DEFAULT);
|
|
|
List<Integer> roles = dao.getUserRoles(TokenUtil.getTokenUserId());
|
|
|
if (null == roles || roles.isEmpty()) {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请联系管理员为您分配角色权限。");
|
|
|
}
|
|
|
- List<MenuItem> userMenus = dao.selectMenusByRoles(roles);
|
|
|
- List<MenuItem> doubleLevelMenus = new ArrayList<>();
|
|
|
- List<MenuItem> tripleLevelMenus = new ArrayList<>();
|
|
|
- userMenus.forEach(item -> {
|
|
|
- if (item.getParent() > DOUBLE_LEVEL_MAX) {
|
|
|
- tripleLevelMenus.add(item);
|
|
|
- } else {
|
|
|
- doubleLevelMenus.add(item);
|
|
|
- }
|
|
|
- });
|
|
|
- if (!doubleLevelMenus.isEmpty()) {
|
|
|
- Map<Integer, List<MenuItem>> doubleLevelMap = new HashMap<>(Capacity.DEFAULT);
|
|
|
- doubleLevelMenus.forEach(item -> {
|
|
|
- if (doubleLevelMap.containsKey(item.getParent())) {
|
|
|
- doubleLevelMap.get(item.getParent()).add(item);
|
|
|
- } else {
|
|
|
- List<MenuItem> tempList = new ArrayList<>();
|
|
|
- tempList.add(item);
|
|
|
- doubleLevelMap.put(item.getParent(), tempList);
|
|
|
- }
|
|
|
- });
|
|
|
- for (Map.Entry<Integer, List<MenuItem>> entry : doubleLevelMap.entrySet()) {
|
|
|
- MenuItem item = dao.selectMenuByCode(entry.getKey());
|
|
|
- item.setChildren(entry.getValue());
|
|
|
- finalMap.put(item.getCode(), item);
|
|
|
- }
|
|
|
- }
|
|
|
- if (!tripleLevelMenus.isEmpty()) {
|
|
|
- Map<Integer, List<MenuItem>> tripleLevelMap = new HashMap<>(Capacity.DEFAULT);
|
|
|
- tripleLevelMenus.forEach(item -> {
|
|
|
- if (tripleLevelMap.containsKey(item.getParent())) {
|
|
|
- tripleLevelMap.get(item.getParent()).add(item);
|
|
|
- } else {
|
|
|
- List<MenuItem> tempList = new ArrayList<>();
|
|
|
- tempList.add(item);
|
|
|
- tripleLevelMap.put(item.getParent(), tempList);
|
|
|
- }
|
|
|
- });
|
|
|
- for (Map.Entry<Integer, List<MenuItem>> entry : tripleLevelMap.entrySet()) {
|
|
|
- MenuItem item = dao.selectMenuByCode(entry.getKey());
|
|
|
- item.setChildren(entry.getValue());
|
|
|
- if (null == finalMap.get(item.getParent())) {
|
|
|
- finalMap.put(item.getParent(), item);
|
|
|
- } else {
|
|
|
- finalMap.get(item.getParent()).getChildren().add(item);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- List<MenuItem> list = new ArrayList<>();
|
|
|
- MenuItem settings = null;
|
|
|
- for (Map.Entry<Integer, MenuItem> entry : finalMap.entrySet()) {
|
|
|
- if (entry.getValue().getCode() == SETTINGS_CODE) {
|
|
|
- settings = entry.getValue();
|
|
|
- } else {
|
|
|
- list.add(entry.getValue());
|
|
|
- }
|
|
|
- }
|
|
|
- if (null != settings) {
|
|
|
- list.add(settings);
|
|
|
- }
|
|
|
- return ResultVoUtil.success(list);
|
|
|
+ List<MenuItem> tempList = dao.selectMenusByRoles(roles);
|
|
|
+ return TreeUtil.getMenuTree(tempList);
|
|
|
}
|
|
|
|
|
|
public ResultVo<List<CodeName>> getWards() {
|