Browse Source

del permission

david 2 years ago
parent
commit
de557a8b4c

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


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

@@ -166,6 +166,15 @@ public class ApiController {
         return CustomResponse.formatResponse(ret);
     }
 
+    // 删除权限数据
+    @RequestMapping("/api/deletePermission")
+    public Map deletePermission(HttpServletRequest request, @RequestBody String data) {
+        Map maps = commonUtil.analysisRequestParams(request, data); // 参数
+        Map ret = apiService.deletePermissionById(maps);
+
+        return CustomResponse.formatResponse(ret);
+    }
+
     // sql管理-新增和编辑Sql
     @RequestMapping("/api/sqlSave")
     public Map sqlSave(HttpServletRequest request, @RequestBody String data, @RequestHeader("Authorization") String authorization) {

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

@@ -366,6 +366,25 @@ public class ApiDao {
         }
     }
 
+    // 删除权限,判断权限是否有子权限
+    public Boolean hasSonPermissionById(Map bindValue) {
+        String hasSql = " SELECT * FROM `roma_permissions` WHERE `parent_id`=:id ";
+        List<Map<String, Object>> resMap2 = namedParameterJdbcTemplate.queryForList(hasSql, bindValue);
+        if (resMap2 == null || resMap2.size() < 1) {
+            return true;
+        }
+
+        return false;
+    }
+
+    // 没有被权限使用,则删除基础details表数据
+    public Integer deletePermissionById(Map bindValue) {
+        String sql = " DELETE FROM `roma_permissions` WHERE id=:id ";
+        Integer updateRet = namedParameterJdbcTemplate.update(sql, bindValue);
+
+        return updateRet;
+    }
+
     // 判断基础表数据,是否被权限表引用. 返回true表示没有数据被权限表引用
     public Boolean usedPermissionByObjectId(Map bindValue){
         String hasUserSql = " SELECT * FROM `roma_permissions` WHERE `object_type`=:objectType AND `object_id`=:objectId ";

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

@@ -239,6 +239,31 @@ public class ApiService {
         return ret;
     }
 
+    // 删除具体权限
+    public Map deletePermissionById(Map params) {
+        Map ret = new HashMap<>();
+        String id = params.get("id").toString();
+        // 权限可以删除,删除的时候如果有子节点,则得一个个删除,如果存在子节点,提示请先删除所有子节点。不需要判断权限是否有基础details关联。
+        Map hasParams = new HashMap<>();
+        hasParams.put("id", id);
+        Boolean hasRet = apiDao.hasSonPermissionById(hasParams);
+        // 如果有,则提示先删除下级
+        if(!hasRet) {
+            // 如果有被权限引用,则提示不能删除
+            ret.put("sysErrorCode", "51000");
+            ret.put("sysErrorMessage", "此权限下有子权限,请先删除子权限");
+
+            return ret;
+        }
+        // 删除具体的权限值
+        Integer deleteData = apiDao.deletePermissionById(hasParams);
+        if (deleteData < 1) {
+            ret.put("sysErrorCode", "51000");
+        }
+
+        return ret;
+    }
+
     // 获取全部page_details---配置权限关联page使用,无分页
     public List pageList() {
         Map<String, Object> map = new HashMap<>();