Quellcode durchsuchen

整理数据权限

wangliang vor 3 Jahren
Ursprung
Commit
b5f64ad0b4

+ 3 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysPrivilege.java

@@ -63,7 +63,7 @@ public class SysPrivilege extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "关联属性,type为URL且property为AUTH才有")
     @TableField(value = "related")
     @JsonSerialize(using = ToStringSerializer.class)
-    private Long related;
+    private String related;
 
     @ApiModelProperty(value = "是否启用,0:停用,1:启用")
     @TableField(value = "enable")
@@ -137,11 +137,11 @@ public class SysPrivilege extends BaseEntity implements Serializable {
         this.property = property;
     }
 
-    public Long getRelated() {
+    public String getRelated() {
         return related;
     }
 
-    public void setRelated(Long related) {
+    public void setRelated(String related) {
         this.related = related;
     }
 

+ 14 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysRolePrivilegeServiceImpl.java

@@ -41,10 +41,21 @@ public class SysRolePrivilegeServiceImpl extends ServiceImpl<SysRolePrivilegeMap
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
         sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, role.getPrivilegeIds());
         List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
-        Set<Long> relatedList = sysPrivilegeList.stream().filter(s -> Objects.nonNull(s.getRelated())).map(s -> s.getRelated()).collect(Collectors.toSet());
-        relatedList.addAll(Arrays.asList(role.getPrivilegeIds()));
+        Set<String> relatedSet = sysPrivilegeList.stream().filter(s -> Objects.nonNull(s.getRelated())).map(s -> s.getRelated()).collect(Collectors.toSet());
+        Set<Long> finalRelatedSet = new HashSet<>();
+        for (String s : relatedSet) {
+            if (s.contains(",")) {
+                String[] arrays = s.split(",");
+                for (int i = 0; i < arrays.length; i++) {
+                    finalRelatedSet.add(Long.parseLong(arrays[i]));
+                }
+            } else {
+                finalRelatedSet.add(Long.parseLong(s));
+            }
+        }
+        finalRelatedSet.addAll(Arrays.asList(role.getPrivilegeIds()));
         List<SysRolePrivilege> list = new ArrayList<>();
-        for (Long privilegeId : relatedList) {
+        for (Long privilegeId : finalRelatedSet) {
             SysRolePrivilege sysRolePrivilege = new SysRolePrivilege();
             sysRolePrivilege.setRoleId(role.getId());
             sysRolePrivilege.setPrivilegeId(privilegeId);