david пре 2 година
родитељ
комит
a6ee4f7f08

BIN
out/artifacts/roma_api_jar/roma-api.jar


+ 7 - 6
src/main/java/com/roma/romaapi/controller/PageController.java

@@ -3,10 +3,8 @@ package com.roma.romaapi.controller;
 import com.roma.romaapi.service.PageService;
 import com.roma.romaapi.utils.CustomResponse;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import com.roma.romaapi.service.ApiService;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -19,6 +17,8 @@ public class PageController {
 
     @Autowired
     PageService pageService;
+    @Autowired
+    ApiService apiService;
     // 获取页面的json
     @RequestMapping("/page/{code}")
     public Object pageJson(@PathVariable("code") String pageCode) {
@@ -31,9 +31,10 @@ public class PageController {
 
     // 获取菜单----系统应用请求
     @RequestMapping("/page/menu")
-    public Map menu() {
+    public Map menu(@RequestHeader("Authorization") String authorization) {
+        Map<String, Object> userInfo = apiService.userInfo(authorization);
         Map<String, Object> ret = new HashMap<>();
-        ret.put("children", pageService.menu());
+        ret.put("children", pageService.menu(userInfo.get("id").toString()));
         List<Map<String, Object>> pages = new ArrayList<Map<String, Object>>();
         pages.add(ret);
         Map lastMap = new HashMap<>();

+ 33 - 0
src/main/java/com/roma/romaapi/dao/PageDao.java

@@ -6,6 +6,7 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
 import org.springframework.stereotype.Repository;
 import com.roma.romaapi.utils.CommonUtil;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -47,6 +48,38 @@ public class PageDao {
         return resMap2;
     }
 
+    // 获取指定用户的全部菜单项
+    public List<Map<String, Object>> getAdminMenuByIdForList(String userId){
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("userId", 4);
+        String userPermissionSql = "SELECT `permission_id` FROM `roma_permission_role` AS `pr` " +
+                "JOIN  `roma_role_user` AS `ru` ON `ru`.`role_id`=`pr`.`role_id` " +
+                "WHERE `ru`.`user_id`=:userId GROUP BY `pr`.permission_id ";
+        List<Map<String, Object>> permissIdList = namedParameterJdbcTemplate.queryForList(userPermissionSql, paramMap);
+        System.out.println("全部的权限id==============="+permissIdList);
+        if(permissIdList != null && !permissIdList.isEmpty()){
+            String permissionIdString = "";
+            for (int i = 0; i < permissIdList.size(); i++) {
+                Map map = permissIdList.get(i);
+                String permissionId = map.get("permission_id").toString();
+                permissionIdString+=permissionId+',';
+            }
+            permissionIdString = commonUtil.trimFirstAndLastChar(permissionIdString, ",");
+            // 获取用户权限下的所有菜单相关
+            String sql= " SELECT  `rp`.`is_visible`,`rp`.`id`,`rp`.`parent_id`,`rp`.`permissions_icon` as `icon`,`rp`.`object_type`," +
+                    "`rp`.`object_id`,`pd`.`page_code` AS `path`,`rp`.`menu_name` AS `label` " +
+                    "FROM `roma_permissions` AS `rp` LEFT JOIN `page_details` AS `pd` ON `pd`.`id`=`rp`.`object_id` " +
+                    "WHERE `rp`.`is_enable`=1   and `rp`.`object_type`='page'  " +
+                    " AND `` ORDER BY `rp`.`permission_sort` ASC ";
+            List<Map<String, Object>> resMap2 = namedParameterJdbcTemplate.queryForList(sql, paramMap);
+
+            return resMap2;
+        } else {
+            return new ArrayList<>();
+        }
+
+    }
+
     // 获取全部权限
     public List<Map<String, Object>> getAllMenuForList(){
         Map<String, Object> paramMap = new HashMap<>();

+ 1 - 0
src/main/java/com/roma/romaapi/service/ApiService.java

@@ -87,6 +87,7 @@ public class ApiService {
             Map<String, Object> userInfo = apiDao.userInfoByIdQueryForMap(userId);
             if (userInfo.containsKey("admin_name")) {
                 map.put("userName", userInfo.get("admin_name"));
+                map.put("id", userId);
             }
         }
 

+ 3 - 1
src/main/java/com/roma/romaapi/service/PageService.java

@@ -17,8 +17,10 @@ public class PageService {
     }
 
     // 整理返回菜单
-    public List menu(){
+    public List menu(String userId){
         List<Map<String, Object>> menuData = pageDao.getMenuForList(); // 获取全部菜单数据
+//        getAdminMenuByIdForList // 获取登录用户的菜单数据
+        pageDao.getAdminMenuByIdForList(userId);
 
         List<Map<String, Object>> renderMenu = this.renderMenu(menuData);// 根据选项渲染节点内容