Browse Source

修复菜单问题。

lighter 2 years ago
parent
commit
f925888a95

+ 0 - 8
src/main/java/thyyxxk/webserver/controller/LoginController.java

@@ -6,8 +6,6 @@ import thyyxxk.webserver.config.auth.PassToken;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
-import thyyxxk.webserver.entity.login.VueMenu;
-import thyyxxk.webserver.entity.settings.permissions.MenuItem;
 import thyyxxk.webserver.service.LoginService;
 
 import java.util.List;
@@ -32,12 +30,6 @@ public class LoginController {
         return service.login(userInfo);
     }
 
-    @Deprecated
-    @GetMapping("/fetchMenus")
-    public ResultVo<List<MenuItem>> fetchMenus() {
-        return service.fetchMenus();
-    }
-
     @GetMapping("/getWards")
     public ResultVo<List<CodeName>> getWards() {
         return service.getWards();

+ 0 - 6
src/main/java/thyyxxk/webserver/controller/settings/SettingsController.java

@@ -65,12 +65,6 @@ public class SettingsController {
         return service.addNewRole(name.trim());
     }
 
-    @Deprecated
-    @GetMapping("/getAllMenus")
-    public ResultVo<List<MenuItem>> getAllMenus() {
-        return service.getAllMenus();
-    }
-
     @Deprecated
     @GetMapping("/getRoleMenus")
     public ResultVo<List<Integer>> getRoleMenus(@RequestParam("id") Integer id) {

+ 0 - 10
src/main/java/thyyxxk/webserver/dao/his/LoginDao.java

@@ -7,7 +7,6 @@ import org.apache.ibatis.annotations.Select;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.login.VueMenu;
-import thyyxxk.webserver.entity.settings.permissions.MenuItem;
 
 import java.util.List;
 
@@ -53,15 +52,6 @@ public interface LoginDao {
             "from zd_unit_code where code like '8%' order by code")
     List<CodeName> getAllWards();
 
-    @Select("<script>" +
-            "select * from dj_dict_menu where code in " +
-            "(select menu_code from dj_role_menu where role_id in " +
-            "<foreach collection='roles' item='role' separator=',' open='(' close='))'>" +
-            "#{role}" +
-            "</foreach>" +
-            "</script>")
-    List<MenuItem> selectMenusByRoles(@Param("roles") List<Integer> roles);
-
     @Select("<script>" +
             "select *,path as completeRoute from t_intergration_platform_menu where id in " +
             "(select menu_id from t_intergration_platform_role_menu where role_id in " +

+ 0 - 5
src/main/java/thyyxxk/webserver/dao/his/settings/SettingsDao.java

@@ -3,14 +3,12 @@ package thyyxxk.webserver.dao.his.settings;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
-import org.apache.catalina.User;
 import org.apache.ibatis.annotations.*;
 import thyyxxk.webserver.aop.interfaces.SqlStringIsBlakToNull;
 import thyyxxk.webserver.entity.dictionary.PureCodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.login.VueMenu;
 import thyyxxk.webserver.entity.settings.deptphones.DeptPhones;
-import thyyxxk.webserver.entity.settings.permissions.MenuItem;
 import thyyxxk.webserver.entity.settings.permissions.Role;
 import thyyxxk.webserver.entity.settings.users.WorkIntegrationPlatformAdvice;
 
@@ -118,9 +116,6 @@ public interface SettingsDao {
             "(#{name},getdate(),#{createStaff})")
     void addNewRole(Role role);
 
-    @Select("select * from dj_dict_menu")
-    List<MenuItem> selectAllMenus();
-
     @Select("select code from dj_dict_menu where code in (select menu_code from dj_role_menu where role_id=#{id}) " +
             "and type=2")
     List<Integer> getRoleMenus(@Param("id") Integer id);

+ 0 - 21
src/main/java/thyyxxk/webserver/entity/settings/permissions/MenuItem.java

@@ -1,21 +0,0 @@
-package thyyxxk.webserver.entity.settings.permissions;
-
-import com.alibaba.fastjson.JSONObject;
-import lombok.Data;
-
-import java.util.List;
-
-/**
- * @author dj
- */
-@Data
-public class MenuItem {
-    private Integer code;
-    private String path;
-    private String name;
-    private Integer parent;
-    private Integer type;
-    private String icon;
-    private JSONObject meta;
-    private List<MenuItem> children;
-}

+ 18 - 11
src/main/java/thyyxxk/webserver/service/LoginService.java

@@ -10,7 +10,6 @@ import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.dictionary.CodeName;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.login.VueMenu;
-import thyyxxk.webserver.entity.settings.permissions.MenuItem;
 import thyyxxk.webserver.service.externalhttp.CorpWxSrvc;
 import thyyxxk.webserver.service.redislike.RedisLikeService;
 import thyyxxk.webserver.utils.*;
@@ -64,15 +63,6 @@ public class LoginService {
         return ResultVoUtil.success(tempUserInfo);
     }
 
-    public ResultVo<List<MenuItem>> fetchMenus() {
-        List<Integer> roles = dao.getUserRoles(TokenUtil.getTokenUserId());
-        if (null == roles || roles.isEmpty()) {
-            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "请联系管理员为您分配角色权限。");
-        }
-        List<MenuItem> tempList = dao.selectMenusByRoles(roles);
-        return TreeUtil.getMenuTree(tempList);
-    }
-
     public ResultVo<Map<String, Object>> fetchVueMenus() {
         List<Integer> roles = dao.getUserRoles(TokenUtil.getTokenUserId());
         if (null == roles || roles.isEmpty()) {
@@ -80,7 +70,24 @@ public class LoginService {
         }
         List<VueMenu> temp = dao.selectVueMenusByRoles(roles);
         Map<String, Object> map = new HashMap<>();
-        map.put("routes", TreeUtil.getVueMenuTree(temp).getData());
+        List<VueMenu> list = TreeUtil.getVueMenuTree(temp);
+//        list.forEach(item -> {
+//            if (null != item.getChildren() && item.getChildren().size() == 1) {
+//                VueMenu child = item.getChildren().get(0);
+//                item.setId(child.getId());
+//                item.setPath(child.getPath());
+//                item.setMetaTitle(child.getMetaTitle());
+//                item.setMetaIcon(child.getMetaIcon());
+//                item.setParent(child.getParent());
+//                item.setCompleteRoute(child.getCompleteRoute());
+//                item.setHideTabs(child.getHideTabs());
+//                item.setHideMenu(child.getHideMenu());
+//                item.setRedirect(child.getRedirect());
+//                item.setMeta(child.getMeta());
+//                item.setChildren(child.getChildren());
+//            }
+//        });
+        map.put("routes", list);
         map.put("paths", dao.selectVueMenusPathByRoles(roles));
         return ResultVoUtil.success(map);
     }

+ 1 - 7
src/main/java/thyyxxk/webserver/service/settings/SettingsService.java

@@ -9,7 +9,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import thyyxxk.webserver.aop.interfaces.SqlStringIsBlakToNull;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.constants.Message;
 import thyyxxk.webserver.dao.his.settings.SettingsDao;
@@ -158,11 +157,6 @@ public class SettingsService {
         return ResultVoUtil.success();
     }
 
-    public ResultVo<List<MenuItem>> getAllMenus() {
-        List<MenuItem> tempList = dao.selectAllMenus();
-        return TreeUtil.getMenuTree(tempList);
-    }
-
     public ResultVo<List<Integer>> getRoleMenus(Integer id) {
         return ResultVoUtil.success(dao.getRoleMenus(id));
     }
@@ -236,7 +230,7 @@ public class SettingsService {
 
     public ResultVo<List<VueMenu>> getAllVueMenus() {
         List<VueMenu> tempList = dao.selectAllVueMenus();
-        return TreeUtil.getVueMenuTree(tempList);
+        return ResultVoUtil.success(TreeUtil.getVueMenuTree(tempList));
     }
 
     public ResultVo<List<Integer>> getRoleVueMenus(Integer id) {

+ 8 - 35
src/main/java/thyyxxk/webserver/utils/TreeUtil.java

@@ -2,9 +2,7 @@ package thyyxxk.webserver.utils;
 
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
-import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.login.VueMenu;
-import thyyxxk.webserver.entity.settings.permissions.MenuItem;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -19,34 +17,7 @@ import java.util.Map;
 @Slf4j
 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);
-    }
-
-    public static ResultVo<List<VueMenu>> getVueMenuTree(List<VueMenu> tempList) {
+    public static List<VueMenu> getVueMenuTree(List<VueMenu> tempList) {
         List<VueMenu> resultList = new ArrayList<>();
         Map<Integer, VueMenu> treeMap = new HashMap<>(tempList.size());
         for (VueMenu item : tempList) {
@@ -64,19 +35,21 @@ public class TreeUtil {
                 resultList.add(item);
             }
         }
+//        for (Map.Entry<Integer, VueMenu> entry : treeMap.entrySet()) {
+//            VueMenu menu = entry.getValue();
+//            if (!resultList.contains(menu)) {
+//                menu.setCompleteRoute(treeMap.get(menu.getParent()).getCompleteRoute() + '/' + menu.getCompleteRoute());
+//            }
+//        }
         for (VueMenu item : tempList) {
             VueMenu template = treeMap.get(item.getParent());
             if (null != template) {
-                if (StringUtil.notBlank(item.getPath())) {
-                    item.setCompleteRoute(template.getCompleteRoute() + "/" + item.getCompleteRoute());
-                }
-
                 if (null == template.getChildren()) {
                     template.setChildren(new ArrayList<>());
                 }
                 template.getChildren().add(item);
             }
         }
-        return ResultVoUtil.success(resultList);
+        return resultList;
     }
 }