Ver Fonte

机构类型

TRX há 1 ano atrás
pai
commit
8361560c1d

+ 7 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/RoleAddParam.java

@@ -1,6 +1,8 @@
 package com.zhongshu.card.client.model.org;
 
 import com.zhongshu.card.client.model.base.SuperParam;
+import com.zhongshu.card.client.utils.type.RoleType;
+import com.zhongshu.card.client.utils.type.school.RoleDefaultType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -15,4 +17,9 @@ public class RoleAddParam extends SuperParam {
 
     @Schema(description = "角色编码")
     private String code;
+
+    RoleType roleType = RoleType.Custom;
+
+    @Schema(description = "默认角色的类型")
+    RoleDefaultType roleDefaultType;
 }

+ 31 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/school/RoleDefaultType.java

@@ -0,0 +1,31 @@
+package com.zhongshu.card.client.utils.type.school;
+
+import com.github.microservice.auth.security.type.AuthType;
+import lombok.Getter;
+
+/**
+ * 默认角色配置
+ */
+public enum RoleDefaultType {
+    Teacher("老师", "Teacher", AuthType.School),
+    Student("学生", "Student", AuthType.School),
+    ;
+
+    // 备注
+    @Getter
+    private String remark;
+
+    // 角色的身份标识
+    @Getter
+    private String identity;
+
+    // 所属机构类型
+    @Getter
+    private AuthType authType;
+
+    RoleDefaultType(String remark, String identity, AuthType authType) {
+        this.remark = remark;
+        this.identity = identity;
+        this.authType = authType;
+    }
+}

+ 2 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/RegionDao.java

@@ -12,6 +12,8 @@ public interface RegionDao extends MongoDao<Region>, RegionDaoExtend {
 
     List<Region> findByCodeIn(List<String> codes);
 
+    List<Region> findByCodeInOrderByIndexAsc(List<String> codes);
+
     List<Region> findByParentIdOrderByIndexAsc(String parentId);
 
     Region findByCode(String code);

+ 4 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/Role.java

@@ -1,6 +1,7 @@
 package com.zhongshu.card.server.core.domain.org;
 
 import com.zhongshu.card.client.utils.type.RoleType;
+import com.zhongshu.card.client.utils.type.school.RoleDefaultType;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
@@ -31,6 +32,9 @@ public class Role extends SuperMain {
     @Schema(description = "角色类型")
     RoleType roleType;
 
+    @Schema(description = "默认角色的类型")
+    RoleDefaultType roleDefaultType;
+
     @Schema(description = "是否管理角色")
     @Indexed
     private Boolean isAdmin = Boolean.FALSE;

+ 8 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationServiceImpl.java

@@ -218,6 +218,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
             organizationRelation.setMainName(main.getName());
             organizationRelation.setRelOrganization(organization);
             organizationRelation.setRelName(organization.getName());
+            organizationRelation.setRelationType(OrganizationRelationType.SchoolToProject);
             organizationRelationDao.save(organizationRelation);
         } else {
             return ResultContent.buildFail(resultContent.getMsg());
@@ -382,6 +383,11 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
                         return it.getOid();
                     }).collect(Collectors.toList());
                     param.setOids(oids);
+                } else {
+                    // 如果项目没关联学校,那就查不出来
+                    List<String> oids = new ArrayList<>();
+                    oids.add("UnKnow");
+                    param.setOids(oids);
                 }
             }
         }
@@ -682,6 +688,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
         OrganizationModel model = new OrganizationModel();
         if (ObjectUtils.isNotEmpty(entity)) {
             BeanUtils.copyProperties(entity, model);
+
             // 判断不同的类型
             if (entity.getAuthType() == AuthType.School) {
                 // 学校:查询出关联的项目信息
@@ -695,7 +702,7 @@ public class OrganizationServiceImpl extends SuperService implements Organizatio
             String adminDivisionItemCode = entity.getAdminDivisionItemCode();
             if (StringUtils.isNotEmpty(adminDivisionItemCode)) {
                 List<String> codes = List.of(adminDivisionItemCode.split(","));
-                List<Region> regions = regionDao.findByCodeIn(codes);
+                List<Region> regions = regionDao.findByCodeInOrderByIndexAsc(codes);
                 List<RegionModel> regionList = regions.stream().map(it -> {
                     RegionModel regionModel = new RegionModel();
                     BeanUtils.copyProperties(it, regionModel);

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/RoleServiceImpl.java

@@ -141,6 +141,9 @@ public class RoleServiceImpl extends SuperService {
         if (role.getIsAdmin() != null && role.getIsAdmin()) {
             return ResultContent.buildFail(String.format("管理员角色不能删除"));
         }
+        if (role.getRoleType() == RoleType.BuildIn) {
+            return ResultContent.buildFail(String.format("内置角色不能删除"));
+        }
         // 删除本地角色
         roleDao.delete(role);
         // 删除权限中心角色