123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package thyyxxk.webserver.utils;
- import com.alibaba.fastjson.JSONObject;
- import thyyxxk.webserver.entity.ResultVo;
- import thyyxxk.webserver.entity.settings.permissions.MenuItem;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * @description: 层级菜单工具
- * @author: DingJie
- * @create: 2021/8/1016:09
- */
- public class TreeUtil {
- public static ResultVo<List<MenuItem>> getMenuTree(List<MenuItem> tempList) {
- List<MenuItem> resultList = new ArrayList<>();
- Map<Integer, MenuItem> treeMap = new HashMap<>(tempList.size());
- for (MenuItem item : tempList) {
- JSONObject meta = new JSONObject();
- if (StringUtil.notBlank(item.getIcon())) {
- meta.put("icon", "iconfont " + item.getIcon());
- }
- meta.put("title", item.getName());
- item.setMeta(meta);
- treeMap.put(item.getCode(), item);
- if (0 == item.getParent()) {
- resultList.add(item);
- }
- }
- for (MenuItem item : tempList) {
- MenuItem template = treeMap.get(item.getParent());
- if (null != template) {
- if (null == template.getChildren()) {
- template.setChildren(new ArrayList<>());
- }
- template.getChildren().add(item);
- }
- }
- return ResultVoUtil.success(resultList);
- }
- }
|