Ver código fonte

整理数据权限

wangliang 3 anos atrás
pai
commit
f2fed1a196

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

@@ -60,9 +60,10 @@ public class SysPrivilege extends BaseEntity implements Serializable {
     @TableField(value = "property")
     private String property;
 
-    @ApiModelProperty(value = "备注")
-    @TableField(value = "remark")
-    private String remark;
+    @ApiModelProperty(value = "关联属性,type为URL且property为AUTH才有")
+    @TableField(value = "related")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long related;
 
     @ApiModelProperty(value = "是否启用,0:停用,1:启用")
     @TableField(value = "enable")
@@ -136,12 +137,12 @@ public class SysPrivilege extends BaseEntity implements Serializable {
         this.property = property;
     }
 
-    public String getRemark() {
-        return remark;
+    public Long getRelated() {
+        return related;
     }
 
-    public void setRemark(String remark) {
-        this.remark = remark;
+    public void setRelated(Long related) {
+        this.related = related;
     }
 
     public Boolean getEnable() {

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

@@ -3,14 +3,17 @@ package com.qmth.teachcloud.common.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.teachcloud.common.entity.SysPrivilege;
 import com.qmth.teachcloud.common.entity.SysRole;
 import com.qmth.teachcloud.common.entity.SysRolePrivilege;
 import com.qmth.teachcloud.common.mapper.SysRolePrivilegeMapper;
+import com.qmth.teachcloud.common.service.SysPrivilegeService;
 import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -23,6 +26,9 @@ import java.util.List;
 @Service
 public class SysRolePrivilegeServiceImpl extends ServiceImpl<SysRolePrivilegeMapper, SysRolePrivilege> implements SysRolePrivilegeService {
 
+    @Resource
+    SysPrivilegeService sysPrivilegeService;
+
     @Override
     public void removeByRoleId(Long id) {
         UpdateWrapper<SysRolePrivilege> updateWrapper = new UpdateWrapper<>();
@@ -32,8 +38,13 @@ public class SysRolePrivilegeServiceImpl extends ServiceImpl<SysRolePrivilegeMap
 
     @Override
     public void saveBatch(SysRole role) {
+        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()));
         List<SysRolePrivilege> list = new ArrayList<>();
-        for (Long privilegeId : role.getPrivilegeIds()) {
+        for (Long privilegeId : relatedList) {
             SysRolePrivilege sysRolePrivilege = new SysRolePrivilege();
             sysRolePrivilege.setRoleId(role.getId());
             sysRolePrivilege.setPrivilegeId(privilegeId);