Browse Source

修改 展示权限名的bug

david 2 years ago
parent
commit
439172b024

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


+ 1 - 1
src/main/java/com/roma/romaapi/controller/ApiController.java

@@ -93,7 +93,7 @@ public class ApiController {
         Map maps = commonUtil.analysisRequestParams(request, data); // 参数
         Map<String, Object> ret = new HashMap<>();
 
-        apiService.addPermissions(maps);
+        ret = apiService.addPermissions(maps);
 
         return CustomResponse.formatResponse(ret);
     }

+ 26 - 0
src/main/java/com/roma/romaapi/dao/ApiDao.java

@@ -339,4 +339,30 @@ public class ApiDao {
             }
         }
     }
+
+    // 添加数据到roma_permission表
+    public Integer savePermission(Map bindValue, String id) {
+        try {
+            if (id.length() > 0) {
+                String updateSql = " UPDATE `roma_permissions` SET `parent_id`=:parentId,`object_type`=:objectType," +
+                        "`object_id`=:objectId,`is_menu`=:isMenu,`permission_sort`=:permissionSort," +
+                        "`permissions_icon`=:permissionsIcon,`is_enable`=:isEnable,`created_at`=:createdAt," +
+                        "`menu_name`=:menuName,`is_visible`=:isVisible,`permission_describe`=:permissionDescribe ";
+                Integer updateRet = namedParameterJdbcTemplate.update(updateSql, bindValue);
+                return updateRet;
+            } else {
+                String insertAql = " INSERT INTO `roma_permissions` (`parent_id`,`object_type`,`object_id`,`is_menu`," +
+                        "`permission_sort`,`permissions_icon`,`is_enable`,`created_at`,`menu_name`,`is_visible`,`permission_describe`)" +
+                        " VALUES (:parentId,:objectType,:objectId,:isMenu,:permissionSort,:permissionsIcon,:isEnable,:createdAt," +
+                        ":menuName,:isVisible,:permissionDescribe)  ";
+                KeyHolder keyHolder = new GeneratedKeyHolder();
+                Integer row = namedParameterJdbcTemplate.update(insertAql, new MapSqlParameterSource(bindValue), keyHolder);
+                int k = keyHolder.getKey().intValue();
+
+                return k;
+            }
+        }catch (Exception e){
+            return 0;
+        }
+    }
 }

+ 93 - 29
src/main/java/com/roma/romaapi/service/ApiService.java

@@ -322,20 +322,98 @@ public class ApiService {
     }
 
     // 新建权限
-    public void addPermissions(Map maps) {
-        String objectType = maps.get("object_type").toString();
-        String menuName = "";
-        if (maps.containsKey("object_type")) {
-            menuName = maps.get("menu_name").toString();
+    public Map addPermissions(Map maps) {
+        Map ret = new HashMap<>();
+        if (!maps.containsKey("object_type")) {
+            // 如果不存在类型,返回错误
+            ret.put("sysErrorCode", "51000");
+
+            return ret;
+        }
+
+        ret = this.handlePagePermission(maps);
+
+
+        return ret;
+    }
+
+    // 整理page的添加和编辑权限项目
+    private Map handlePagePermission(Map params) {
+        // 肯定存在的参数字段
+        String isEnable = params.get("is_enable").toString();
+        String objectType = params.get("object_type").toString();
+        // 以下参数可能不存在
+        String isVisible = "0"; // 当是菜单的时候,是否可见
+        String isMenu = "0"; // 是否为菜单
+        String menuName = ""; // 菜单名称,page_details表有数据,则此字段可能不存在
+        String objectId = "0"; // 关联的基础details表id
+        String parentId = "0";// 上级id,顶级菜单,此字段可能不传
+        String permissionDescribe = ""; // 描述非必填
+        String permissionSort = "0";
+        String permissionsIcon = "";
+        String id = ""; // 编辑的id
+        if (params.containsKey("id")) {
+            id = params.get("id").toString();
+        }
+        if (params.containsKey("is_visible")) {
+            isVisible = params.get("is_visible").toString();
+        }
+        if (params.containsKey("is_menu")) {
+            isMenu = params.get("is_menu").toString();
+        }
+        if(params.containsKey("menu_name")) {
+            menuName = params.get("menu_name").toString();
         }
-        // 通过是否有菜单名称,判断是否是菜单.
         if (objectType.equals("page")) {
-            // 如果没有父级id,则应该有菜单名称.因为没有页面,是菜单目录,要展示菜单名称
-            // 如果不是菜单,则应该选择页面,启用. 父级权限可选或不选
-            // 如果是菜单,则可以不选择页面,也可以选择页面. 可以选择父级菜单,即自己是子菜单. 或者不选择父级菜单,自己是顶级菜单.可以输入icon
+            if(params.containsKey("page_id")) {
+                objectId = params.get("page_id").toString();
+            }
+        } else if (objectType.equals("sql")) {
+            if(params.containsKey("sql_id")) {
+                objectId = params.get("sql_id").toString();
+            }
+        } else if (objectType.equals("api")) {
+            if(params.containsKey("api_id")) {
+                objectId = params.get("api_id").toString();
+            }
+        } else if (objectType.equals("item")) {
+            if(params.containsKey("item_id")) {
+                objectId = params.get("item_id").toString();
+            }
+        }
+
+        if(params.containsKey("parent_id")) {
+            parentId = params.get("parent_id").toString();
+        }
+        if(params.containsKey("permission_describe")) {
+            permissionDescribe = params.get("permission_describe").toString();
         }
-        System.out.println("权限数据----------------"+objectType);
-        System.out.println("权限数据----------------"+menuName);
+        if(params.containsKey("permission_sort")) {
+            permissionSort = params.get("permission_sort").toString();
+        }
+        if(params.containsKey("permissions_icon")) {
+            permissionsIcon = params.get("permissions_icon").toString();
+        }
+        String createdAt = commonUtil.getNowYYMMDDHHIISS();
+        Map<String, Object> bindVal = new HashMap<>();
+        bindVal.put("isEnable", isEnable);
+        bindVal.put("isMenu", isMenu);
+        bindVal.put("isVisible", isVisible);
+        bindVal.put("objectType", objectType);
+        bindVal.put("menuName", menuName);
+        bindVal.put("objectId", objectId);
+        bindVal.put("parentId", parentId);
+        bindVal.put("permissionDescribe", permissionDescribe);
+        bindVal.put("permissionSort", permissionSort);
+        bindVal.put("permissionsIcon", permissionsIcon);
+        bindVal.put("createdAt", createdAt);
+        Integer savePermission = apiDao.savePermission(bindVal, id);
+        Map ret = new HashMap<>();
+        if(savePermission < 1) {
+            ret.put("sysErrorCode", "51000");
+        }
+
+        return ret;
     }
 
     // 添加角色
@@ -743,21 +821,7 @@ public class ApiService {
 
     private Map getPermissionDetails(String stringObjectType, String stringObjectId, String stringMenuName) {
         String separator = " / ";
-         Map map = new HashMap<>();
-        // 如果是page,且object_id=0.则代表是菜单目录,没有路径(即不需要打开页面)
-
-//        String showNamePageCode = ""; // 权限管理-page类型使用
-//        if (tmp.containsKey("page_code") && tmp.containsKey("menu_name")) {
-//            if (tmp.get("page_code") != null) {
-//                showNamePageCode = tmp.get("page_code").toString() + "-";
-//            }
-//            if (tmp.get("page_name") != null) {
-//                showNamePageCode = showNamePageCode + tmp.get("page_name").toString();
-//            } else {
-//                showNamePageCode = showNamePageCode + tmp.get("menu_name").toString();
-//            }
-//        }
-//        tmp.put("show_name", showNamePageCode);
+        Map map = new HashMap<>();
         if (stringObjectType.equals("page")) {
             if(stringObjectId.equals("0")) {
                 // 如果是菜单目录,则无路径,无权限名称只有菜单名称
@@ -770,17 +834,17 @@ public class ApiService {
                 map.put("permission_name", pageInfo.get("page_name"));
                 map.put("show_name", pageInfo.get("page_code").toString() + separator + pageInfo.get("page_name"));
             }
-        } else if (stringObjectType.equals("sql")) {
+        } else if (stringObjectType.equals("sql") && !stringObjectId.equals("0")) {
             Map pageInfo = apiDao.getDetailsInfoByIdAndType("sql_details", stringObjectId);
             map.put("permission_path", "/dbapi/"+pageInfo.get("sql_code"));
             map.put("permission_name", pageInfo.get("sql_name"));
             map.put("show_name", pageInfo.get("sql_code").toString() + separator + pageInfo.get("sql_name"));
-        } else if (stringObjectType.equals("api")) {
+        } else if (stringObjectType.equals("api") && !stringObjectId.equals("0")) {
             Map pageInfo = apiDao.getDetailsInfoByIdAndType("api_details", stringObjectId);
             map.put("permission_path", "/api/"+pageInfo.get("api_code"));
             map.put("permission_name", pageInfo.get("api_name"));
             map.put("show_name", pageInfo.get("api_code").toString() + separator + pageInfo.get("api_name"));
-        }else if (stringObjectType.equals("item")) {
+        } else if (stringObjectType.equals("item") && !stringObjectId.equals("0")) {
             Map pageInfo = apiDao.getDetailsInfoByIdAndType("item_details", stringObjectId);
             map.put("permission_path", "/api/"+pageInfo.get("item_code"));
             map.put("permission_name", pageInfo.get("item_name"));