Просмотр исходного кода

角色权限设置接口调整

chenw 7 лет назад
Родитель
Сommit
48d54f699d

+ 27 - 27
base-servers/account/account-dto/src/main/java/com/usoftchina/saas/account/dto/PowerDTO.java

@@ -6,15 +6,15 @@ public class PowerDTO {
     private Long groupId;
     private String moduleName;
     private String groupName;
-    private boolean query;
-    private boolean add;
-    private boolean update;
-    private boolean delete;
-    private boolean audit;
-    private boolean unAudit;
-    private boolean print;
-    private boolean fileExport;
-    private boolean fileImport;
+    private Boolean query;
+    private Boolean add;
+    private Boolean update;
+    private Boolean delete;
+    private Boolean audit;
+    private Boolean unAudit;
+    private Boolean print;
+    private Boolean fileExport;
+    private Boolean fileImport;
     private List<OtherPowerDTO> other;
 
     public Long getGroupId() {
@@ -41,75 +41,75 @@ public class PowerDTO {
         this.moduleName = moduleName;
     }
 
-    public boolean getQuery() {
+    public Boolean getQuery() {
         return query;
     }
 
-    public void setQuery(boolean query) {
+    public void setQuery(Boolean query) {
         this.query = query;
     }
 
-    public boolean getAdd() {
+    public Boolean getAdd() {
         return add;
     }
 
-    public void setAdd(boolean add) {
+    public void setAdd(Boolean add) {
         this.add = add;
     }
 
-    public boolean getUpdate() {
+    public Boolean getUpdate() {
         return update;
     }
 
-    public void setUpdate(boolean update) {
+    public void setUpdate(Boolean update) {
         this.update = update;
     }
 
-    public boolean getDelete() {
+    public Boolean getDelete() {
         return delete;
     }
 
-    public void setDelete(boolean delete) {
+    public void setDelete(Boolean delete) {
         this.delete = delete;
     }
 
-    public boolean getAudit() {
+    public Boolean getAudit() {
         return audit;
     }
 
-    public void setAudit(boolean audit) {
+    public void setAudit(Boolean audit) {
         this.audit = audit;
     }
 
-    public boolean getUnAudit() {
+    public Boolean getUnAudit() {
         return unAudit;
     }
 
-    public void setUnAudit(boolean unAudit) {
+    public void setUnAudit(Boolean unAudit) {
         this.unAudit = unAudit;
     }
 
-    public boolean getPrint() {
+    public Boolean getPrint() {
         return print;
     }
 
-    public void setPrint(boolean print) {
+    public void setPrint(Boolean print) {
         this.print = print;
     }
 
-    public boolean getFileExport() {
+    public Boolean getFileExport() {
         return fileExport;
     }
 
-    public void setFileExport(boolean fileExport) {
+    public void setFileExport(Boolean fileExport) {
         this.fileExport = fileExport;
     }
 
-    public boolean getFileImport() {
+    public Boolean getFileImport() {
         return fileImport;
     }
 
-    public void setFileImport(boolean fileImport) {
+    public void setFileImport(Boolean fileImport) {
         this.fileImport = fileImport;
     }
 

+ 7 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/mapper/RoleResourceMapper.java

@@ -1,6 +1,7 @@
 package com.usoftchina.saas.account.mapper;
 
 import com.usoftchina.saas.account.po.OtherPower;
+import com.usoftchina.saas.account.po.PowerInfo;
 import com.usoftchina.saas.account.po.RoleResource;
 import org.apache.ibatis.annotations.Param;
 
@@ -62,6 +63,12 @@ public interface RoleResourceMapper {
      */
     List<Map<String, Object>> selectClassifyByRoleId(@Param("id") Long id);
 
+    /**
+     * 查询所有的ClassIfy
+     * @return
+     */
+    List<PowerInfo> selectPowerInfo();
+
     /**
      * 查询其他权限
      * @return

+ 43 - 0
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/po/PowerInfo.java

@@ -0,0 +1,43 @@
+package com.usoftchina.saas.account.po;
+
+import java.io.Serializable;
+
+public class PowerInfo implements Serializable {
+
+    private String classify;
+    private Long groupId;
+    private String groupName;
+    private String moduleName;
+
+    public String getClassify() {
+        return classify;
+    }
+
+    public void setClassify(String classify) {
+        this.classify = classify;
+    }
+
+    public Long getGrougId() {
+        return groupId;
+    }
+
+    public void setGrougId(Long groupId) {
+        this.groupId = groupId;
+    }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public String getModuleName() {
+        return moduleName;
+    }
+
+    public void setModuleName(String moduleName) {
+        this.moduleName = moduleName;
+    }
+}

+ 34 - 13
base-servers/account/account-server/src/main/java/com/usoftchina/saas/account/service/impl/RoleServiceImpl.java

@@ -92,8 +92,29 @@ public class RoleServiceImpl extends CommonBaseServiceImpl<RoleMapper, Role> imp
     public List<PowerDTO> getResourcePowerById(Long id) {
         List<PowerDTO> powerDTOList = new ArrayList<PowerDTO>();
         List<Map<String, Object>> classifyList = roleResourceMapper.selectClassifyByRoleId(id);
+        List<PowerInfo> powerInfoList = roleResourceMapper.selectPowerInfo();
         List<OtherPower> otherPowerList = roleResourceMapper.selectOthersPower();
-        //查询所有模块
+
+        for (PowerInfo powerInfo : powerInfoList){
+            PowerDTO powerDTO = new PowerDTO();
+            powerDTO.setGroupId(powerInfo.getGrougId());
+            powerDTO.setModuleName(powerInfo.getModuleName());
+            powerDTO.setGroupName(powerInfo.getGroupName());
+            //赋值默认权限,在权限列表中的资源默认置为false
+            setPowerValue(powerDTO, powerInfo.getClassify(), false);
+            //赋值权限
+            for (Map<String, Object> map : classifyList){
+                if (powerInfo.getGrougId().equals(map.get("group_id"))){
+                    String classify = String.valueOf(map.get("classify"));
+                    //角色有权限的,设置为true
+                    setPowerValue(powerDTO, classify, true);
+                    setOtherPower(powerDTO, powerInfo.getGrougId(), id, otherPowerList);
+                }
+            }
+            powerDTOList.add(powerDTO);
+        }
+
+        /*//查询所有模块
         List<ResourceModule> modules = resourceModuleMapper.selectByAppId(BaseContextHolder.getAppId());
         for (ResourceModule module : modules){
             //查询所有分组
@@ -113,7 +134,7 @@ public class RoleServiceImpl extends CommonBaseServiceImpl<RoleMapper, Role> imp
                 }
                 powerDTOList.add(powerDTO);
             }
-        }
+        }*/
         return powerDTOList;
     }
 
@@ -174,37 +195,37 @@ public class RoleServiceImpl extends CommonBaseServiceImpl<RoleMapper, Role> imp
         powerDTO.setOther(otherPowerDTOList);
     }
 
-    private void setPowerValue(PowerDTO powerDTO, String classify) {
+    private void setPowerValue(PowerDTO powerDTO, String classify , boolean status) {
         String[] array = classify.split(",");
         for(int i = 0; i < array.length; i++){
             switch (array[i]){
                 case "QUERY":
-                    powerDTO.setQuery(true);
-                    powerDTO.setFileExport(true);
+                    powerDTO.setQuery(status);
+                    powerDTO.setFileExport(status);
                     break;
                 case "ADD":
-                    powerDTO.setAdd(true);
+                    powerDTO.setAdd(status);
                     break;
                 case "UPDATE":
-                    powerDTO.setUpdate(true);
+                    powerDTO.setUpdate(status);
                     break;
                 case "AUDIT":
-                    powerDTO.setAudit(true);
+                    powerDTO.setAudit(status);
                     break;
                 case "UNAUDIT":
-                    powerDTO.setUnAudit(true);
+                    powerDTO.setUnAudit(status);
                     break;
                 case "DELETE":
-                    powerDTO.setDelete(true);
+                    powerDTO.setDelete(status);
                     break;
                 case "PRINT":
-                    powerDTO.setPrint(true);
+                    powerDTO.setPrint(status);
                     break;
                 case "EXPORT":
-                    powerDTO.setFileExport(true);
+                    powerDTO.setFileExport(status);
                     break;
                 case "IMPORT":
-                    powerDTO.setFileImport(true);
+                    powerDTO.setFileImport(status);
                     break;
                 default:
                     break;

+ 8 - 0
base-servers/account/account-server/src/main/resources/mapper/RoleResourceMapper.xml

@@ -31,6 +31,14 @@
           GROUP BY GROUP_ID,CLASSIFY) A
         GROUP BY GROUP_ID
     </select>
+    <select id="selectPowerInfo" parameterType="java.lang.Long" resultType="com.usoftchina.saas.account.po.PowerInfo">
+        SELECT GROUP_CONCAT(classify) classify,group_id groupId,groupname,modulename FROM (
+          SELECT classify,group_id,s.name groupname,M.NAME modulename FROM AC_RESOURCE R
+				LEFT JOIN AC_RESOURCE_GROUP S ON R.GROUP_ID = S.ID
+				LEFT JOIN AC_RESOURCE_MODULE M ON S.MODULE_ID = M.ID
+          GROUP BY GROUP_ID,CLASSIFY,s.name,M.NAME) A
+        GROUP BY GROUP_ID,groupname,modulename
+    </select>
     <resultMap id="OtherPowerResultMap" type="com.usoftchina.saas.account.po.OtherPower">
         <result column="name" property="name" jdbcType="VARCHAR" />
         <result column="id" property="resourceId" jdbcType="BIGINT" />