Browse Source

整理数据权限

wangliang 3 years ago
parent
commit
b85dc387a8

+ 19 - 3
teachcloud-common/src/main/java/com/qmth/teachcloud/common/bean/dto/OrgDto.java

@@ -2,7 +2,10 @@ package com.qmth.teachcloud.common.bean.dto;
 
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.enums.OrgTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
 
 
+import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
@@ -11,7 +14,8 @@ import java.util.List;
  */
  */
 public class OrgDto {
 public class OrgDto {
 
 
-    private String id;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
     private String schoolId;
     private String schoolId;
     private String code;
     private String code;
     private String name;
     private String name;
@@ -19,16 +23,28 @@ public class OrgDto {
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     private Long parentId;
     private Long parentId;
     private Boolean enable;
     private Boolean enable;
+
+    @ApiModelProperty(value = "类型,COLLEGE:学院,FACULTY:院系,TEACHING_ROOM:教研室,PRINTING_HOUSE:印刷厂")
+    private OrgTypeEnum type;
+
     private List<OrgDto> children = new ArrayList<>();
     private List<OrgDto> children = new ArrayList<>();
 
 
-    public String getId() {
+    public Long getId() {
         return id;
         return id;
     }
     }
 
 
-    public void setId(String id) {
+    public void setId(Long id) {
         this.id = id;
         this.id = id;
     }
     }
 
 
+    public OrgTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(OrgTypeEnum type) {
+        this.type = type;
+    }
+
     public String getSchoolId() {
     public String getSchoolId() {
         return schoolId;
         return schoolId;
     }
     }

+ 11 - 8
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -52,17 +52,18 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     public List<OrgDto> listOrgTree() {
     public List<OrgDto> listOrgTree() {
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
         QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().eq(SysOrg::getSchoolId, schoolId).orderByAsc(SysOrg::getParentId, SysOrg::getCode);
+        queryWrapper.lambda().eq(SysOrg::getSchoolId, schoolId).orderByAsc(SysOrg::getParentId);
         List<SysOrg> orgList = this.list(queryWrapper);
         List<SysOrg> orgList = this.list(queryWrapper);
         Map<Long, OrgDto> map = new LinkedHashMap<>();
         Map<Long, OrgDto> map = new LinkedHashMap<>();
         for (SysOrg sysOrg : orgList) {
         for (SysOrg sysOrg : orgList) {
             OrgDto orgDto = new OrgDto();
             OrgDto orgDto = new OrgDto();
-            orgDto.setId(String.valueOf(sysOrg.getId()));
+            orgDto.setId(sysOrg.getId());
             orgDto.setSchoolId(String.valueOf(sysOrg.getSchoolId()));
             orgDto.setSchoolId(String.valueOf(sysOrg.getSchoolId()));
             orgDto.setCode(sysOrg.getCode());
             orgDto.setCode(sysOrg.getCode());
             orgDto.setName(sysOrg.getName());
             orgDto.setName(sysOrg.getName());
             orgDto.setParentId(sysOrg.getParentId());
             orgDto.setParentId(sysOrg.getParentId());
             orgDto.setEnable(sysOrg.getEnable());
             orgDto.setEnable(sysOrg.getEnable());
+            orgDto.setType(sysOrg.getType());
             map.put(sysOrg.getId(), orgDto);
             map.put(sysOrg.getId(), orgDto);
         }
         }
 
 
@@ -71,8 +72,10 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         while (iterator.hasNext()) {
         while (iterator.hasNext()) {
             Long parentId = iterator.next();
             Long parentId = iterator.next();
             if (map.get(parentId).getParentId() != null) {
             if (map.get(parentId).getParentId() != null) {
-                map.get(map.get(parentId).getParentId()).getChildren().add(map.get(parentId));
-                deleteKeys.add(parentId);
+                if (Objects.nonNull(map.get(map.get(parentId).getParentId()))) {
+                    map.get(map.get(parentId).getParentId()).getChildren().add(map.get(parentId));
+                    deleteKeys.add(parentId);
+                }
             }
             }
         }
         }
         for (Long key : deleteKeys) {
         for (Long key : deleteKeys) {
@@ -129,17 +132,17 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
         // 印刷厂不能设置子机构
         // 印刷厂不能设置子机构
         if (Objects.nonNull(org.getParentId())) {
         if (Objects.nonNull(org.getParentId())) {
             SysOrg parentOrg = this.getById(org.getParentId());
             SysOrg parentOrg = this.getById(org.getParentId());
-            if (OrgTypeEnum.COLLEGE.equals(parentOrg.getType())) {
+            if (Objects.nonNull(parentOrg) && OrgTypeEnum.COLLEGE.equals(parentOrg.getType())) {
                 if (!OrgTypeEnum.FACULTY.equals(org.getType()) && !OrgTypeEnum.TEACHING_ROOM.equals(org.getType())) {
                 if (!OrgTypeEnum.FACULTY.equals(org.getType()) && !OrgTypeEnum.TEACHING_ROOM.equals(org.getType())) {
                     throw ExceptionResultEnum.ERROR.exception("学院下只能设置院系或者教研室");
                     throw ExceptionResultEnum.ERROR.exception("学院下只能设置院系或者教研室");
                 }
                 }
-            } else if (OrgTypeEnum.FACULTY.equals(parentOrg.getType())) {
+            } else if (Objects.nonNull(parentOrg) && OrgTypeEnum.FACULTY.equals(parentOrg.getType())) {
                 if (!OrgTypeEnum.TEACHING_ROOM.equals(org.getType())) {
                 if (!OrgTypeEnum.TEACHING_ROOM.equals(org.getType())) {
                     throw ExceptionResultEnum.ERROR.exception("院系下只能设置教研室");
                     throw ExceptionResultEnum.ERROR.exception("院系下只能设置教研室");
                 }
                 }
-            } else if (OrgTypeEnum.TEACHING_ROOM.equals(parentOrg.getType())) {
+            } else if (Objects.nonNull(parentOrg) && OrgTypeEnum.TEACHING_ROOM.equals(parentOrg.getType())) {
                 throw ExceptionResultEnum.ERROR.exception("教研室下不能设置子机构");
                 throw ExceptionResultEnum.ERROR.exception("教研室下不能设置子机构");
-            } else if (OrgTypeEnum.PRINTING_HOUSE.equals(parentOrg.getType())) {
+            } else if (Objects.nonNull(parentOrg) && OrgTypeEnum.PRINTING_HOUSE.equals(parentOrg.getType())) {
                 throw ExceptionResultEnum.ERROR.exception("印刷厂不能设置子机构");
                 throw ExceptionResultEnum.ERROR.exception("印刷厂不能设置子机构");
             }
             }
         } else {
         } else {

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

@@ -47,7 +47,7 @@ public class SysRolePrivilegeServiceImpl extends ServiceImpl<SysRolePrivilegeMap
             if (s.contains(",")) {
             if (s.contains(",")) {
                 String[] arrays = s.split(",");
                 String[] arrays = s.split(",");
                 for (int i = 0; i < arrays.length; i++) {
                 for (int i = 0; i < arrays.length; i++) {
-                    finalRelatedSet.add(Long.parseLong(arrays[i]));
+                    finalRelatedSet.add(Long.parseLong(arrays[i].trim()));
                 }
                 }
             } else {
             } else {
                 finalRelatedSet.add(Long.parseLong(s));
                 finalRelatedSet.add(Long.parseLong(s));