TRX hai 1 ano
pai
achega
bf8beb0be9
Modificáronse 47 ficheiros con 379 adicións e 102 borrados
  1. 3 3
      FullCardClient/src/main/java/com/zhongshu/card/client/model/base/SuperParam.java
  2. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/DepartmentModel.java
  3. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/DepartmentParam.java
  4. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/DepartmentSearchParam.java
  5. 4 5
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationAddParam.java
  6. 4 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationModel.java
  7. 4 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationSearchParam.java
  8. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationUserSearch.java
  9. 1 3
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/UserCountAddParam.java
  10. 3 3
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/UserCountModel.java
  11. 4 4
      FullCardClient/src/main/java/com/zhongshu/card/client/model/org/UserCountSearchParam.java
  12. 2 0
      FullCardClient/src/main/java/com/zhongshu/card/client/ret/ResultMessage.java
  13. 6 0
      FullCardClient/src/main/java/com/zhongshu/card/client/service/org/OrganizationService.java
  14. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/Channel.java
  15. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/CommonEnum.java
  16. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/DataState.java
  17. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/ErrorCode.java
  18. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/JobFlowMap.java
  19. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/JobFlowType.java
  20. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/OrderStreamType.java
  21. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/OrderType.java
  22. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/OrganizationState.java
  23. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/PicType.java
  24. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/RedisEventType.java
  25. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/Sex.java
  26. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/TransferOwner.java
  27. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/TransferType.java
  28. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/UserLoginType.java
  29. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/UserState.java
  30. 1 1
      FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/UserType.java
  31. 45 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/OrganizationController.java
  32. 8 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/CollectionIdDao.java
  33. 4 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/OrganizationDao.java
  34. 1 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/OrganizationUserDao.java
  35. 1 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/RoleDao.java
  36. 7 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/extend/CollectionIdDaoExtend.java
  37. 41 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/impl/CollectionIdDaoImpl.java
  38. 17 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/CollectionId.java
  39. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/Department.java
  40. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/Organization.java
  41. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/OrganizationUser.java
  42. 4 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/UserAccount.java
  43. 2 3
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/IndexService.java
  44. 125 45
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationServiceImpl.java
  45. 2 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/UserAccountServiceImpl.java
  46. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/util/BeanUtils.java
  47. 66 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/util/NextNoUtil.java

+ 3 - 3
FullCardClient/src/main/java/com/zhongshu/card/client/model/base/SuperParam.java

@@ -13,13 +13,13 @@ import java.io.Serializable;
 @Data
 public class SuperParam implements Serializable {
 
-    @Schema(description = "数据ID")
+    @Schema(description = "数据ID", example = "")
     private String id;
 
     @Schema(description = "排序")
-    private Long sort = 0l;
+    private Long sort = 1l;
 
-    @Schema(description = "所属机构ID")
+    @Schema(description = "所属机构ID", hidden = true)
     private String oid;
 
     @Schema(description = "备注")

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/DepartmentModel.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.client.model.org;
 
 import com.zhongshu.card.client.model.base.SuperModel;
-import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.utils.type.DataState;
 import com.zhongshu.card.client.utils.ITree;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/DepartmentParam.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.client.model.org;
 
 import com.zhongshu.card.client.model.base.SuperParam;
-import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.utils.type.DataState;
 import com.zhongshu.card.client.utils.ITree;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/DepartmentSearchParam.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.client.model.org;
 
 import com.zhongshu.card.client.model.base.SuperSearch;
-import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.utils.type.DataState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 4 - 5
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationAddParam.java

@@ -2,7 +2,6 @@ package com.zhongshu.card.client.model.org;
 
 import com.github.microservice.auth.security.type.AuthType;
 import com.zhongshu.card.client.model.base.SuperParam;
-import com.zhongshu.card.client.type.OrganizationState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -13,9 +12,12 @@ import lombok.Data;
 @Data
 public class OrganizationAddParam extends SuperParam {
 
-    @Schema(description = "机构名称")
+    @Schema(description = "机构名称", required = true)
     private String name;
 
+    @Schema(description = "编码")
+    private String code;
+
     @Schema(description = "统一社会信用代码")
     private String orgCode;
 
@@ -45,7 +47,4 @@ public class OrganizationAddParam extends SuperParam {
 
     @Schema(description = "机构类型")
     private AuthType authType = AuthType.Enterprise;
-
-    @Schema(description = "状态")
-    private OrganizationState state;
 }

+ 4 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationModel.java

@@ -2,7 +2,7 @@ package com.zhongshu.card.client.model.org;
 
 import com.github.microservice.auth.security.type.AuthType;
 import com.zhongshu.card.client.model.base.SuperModel;
-import com.zhongshu.card.client.type.OrganizationState;
+import com.zhongshu.card.client.utils.type.OrganizationState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -15,6 +15,9 @@ public class OrganizationModel extends SuperModel {
     @Schema(description = "机构名称")
     private String name;
 
+    @Schema(description = "编码")
+    private String code;
+
     @Schema(description = "统一社会信用代码")
     private String orgCode;
 

+ 4 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationSearchParam.java

@@ -2,7 +2,7 @@ package com.zhongshu.card.client.model.org;
 
 import com.github.microservice.auth.security.type.AuthType;
 import com.zhongshu.card.client.model.base.SuperSearch;
-import com.zhongshu.card.client.type.OrganizationState;
+import com.zhongshu.card.client.utils.type.OrganizationState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -15,6 +15,9 @@ public class OrganizationSearchParam extends SuperSearch {
     @Schema(description = "机构名称")
     private String name;
 
+    @Schema(description = "编码")
+    private String code;
+
     @Schema(description = "统一社会信用代码")
     private String orgCode;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/OrganizationUserSearch.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.client.model.org;
 
 import com.zhongshu.card.client.model.base.SuperSearch;
-import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.client.utils.type.UserState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 1 - 3
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/UserCountAddParam.java

@@ -1,9 +1,7 @@
 package com.zhongshu.card.client.model.org;
 
 import com.zhongshu.card.client.model.base.SuperParam;
-import com.zhongshu.card.client.type.Sex;
-import com.zhongshu.card.client.type.UserLoginType;
-import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.client.utils.type.Sex;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 3 - 3
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/UserCountModel.java

@@ -1,9 +1,9 @@
 package com.zhongshu.card.client.model.org;
 
 import com.zhongshu.card.client.model.base.SuperModel;
-import com.zhongshu.card.client.type.Sex;
-import com.zhongshu.card.client.type.UserLoginType;
-import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.client.utils.type.Sex;
+import com.zhongshu.card.client.utils.type.UserLoginType;
+import com.zhongshu.card.client.utils.type.UserState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 4 - 4
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/UserCountSearchParam.java

@@ -1,10 +1,10 @@
 package com.zhongshu.card.client.model.org;
 
 import com.zhongshu.card.client.model.base.SuperSearch;
-import com.zhongshu.card.client.type.Sex;
-import com.zhongshu.card.client.type.UserLoginType;
-import com.zhongshu.card.client.type.UserState;
-import com.zhongshu.card.client.type.UserType;
+import com.zhongshu.card.client.utils.type.Sex;
+import com.zhongshu.card.client.utils.type.UserLoginType;
+import com.zhongshu.card.client.utils.type.UserState;
+import com.zhongshu.card.client.utils.type.UserType;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 2 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/ret/ResultMessage.java

@@ -6,4 +6,6 @@ package com.zhongshu.card.client.ret;
  */
 public class ResultMessage {
     public static final String DATA_NOT_EXIST = "数据不存在:%s";
+
+    public static final String NAME_EXIST = "名称已存在:%s";
 }

+ 6 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/service/org/OrganizationService.java

@@ -1,5 +1,6 @@
 package com.zhongshu.card.client.service.org;
 
+import com.zhongshu.card.client.model.org.OrganizationAddParam;
 import com.zhongshu.card.client.model.org.UserCountAddParam;
 import com.zhongshu.card.client.model.org.UserCountModel;
 import com.zhongshu.card.client.model.org.UserCountSearchParam;
@@ -15,5 +16,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
 public interface OrganizationService {
+
+    public ResultContent addOrganization(OrganizationAddParam param);
+
+    public ResultContent update(OrganizationAddParam param);
+
     ResultContent initSuperOrganization();
 }

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/Channel.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/Channel.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 public enum Channel {
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/CommonEnum.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/CommonEnum.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 public interface CommonEnum {
     public String getRemark();

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/DataState.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/DataState.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.Getter;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/ErrorCode.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/ErrorCode.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/JobFlowMap.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/JobFlowMap.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import java.util.Map;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/JobFlowType.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/JobFlowType.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 public enum JobFlowType {
     //创建商品订单

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/OrderStreamType.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/OrderStreamType.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 public enum OrderStreamType {
     OrderStream;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/OrderType.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/OrderType.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.AllArgsConstructor;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/OrganizationState.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/OrganizationState.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.Getter;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/PicType.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/PicType.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/RedisEventType.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/RedisEventType.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 public enum RedisEventType {
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/Sex.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/Sex.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.Getter;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/TransferOwner.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/TransferOwner.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.AllArgsConstructor;
 import lombok.NoArgsConstructor;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/TransferType.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/TransferType.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.AllArgsConstructor;
 import lombok.NoArgsConstructor;

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/UserLoginType.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/UserLoginType.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.Getter;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/UserState.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/UserState.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.Getter;
 

+ 1 - 1
FullCardClient/src/main/java/com/zhongshu/card/client/type/UserType.java → FullCardClient/src/main/java/com/zhongshu/card/client/utils/type/UserType.java

@@ -1,4 +1,4 @@
-package com.zhongshu.card.client.type;
+package com.zhongshu.card.client.utils.type;
 
 import lombok.Getter;
 

+ 45 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/org/OrganizationController.java

@@ -0,0 +1,45 @@
+package com.zhongshu.card.server.core.controller.org;
+
+import com.github.microservice.auth.client.constant.AuthConstant;
+import com.github.microservice.auth.security.annotations.ResourceAuth;
+import com.github.microservice.auth.security.type.AuthType;
+import com.zhongshu.card.client.model.org.DepartmentParam;
+import com.zhongshu.card.client.model.org.OrganizationAddParam;
+import com.zhongshu.card.client.ret.ResultContent;
+import com.zhongshu.card.client.service.org.DepartmentService;
+import com.zhongshu.card.client.service.org.OrganizationService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("organization")
+@Tag(name = "机构管理")
+public class OrganizationController {
+
+    @Autowired
+    private OrganizationService organizationService;
+
+    @ResourceAuth(value = "user",type = AuthType.User)
+    @ResourceAuth(value = AuthConstant.SuperAdmin,type = AuthType.Platform)
+    @Operation(summary = "添加机构", description = "添加机构")
+    @RequestMapping(value = "add", method = {RequestMethod.POST})
+    public ResultContent add(@RequestBody OrganizationAddParam param) {
+        return this.organizationService.addOrganization(param);
+    }
+
+    @ResourceAuth(value = "user",type = AuthType.User)
+    @Operation(summary = "编辑机构-项目-学校", description = "编辑机构")
+    @RequestMapping(value = "update", method = {RequestMethod.POST})
+    public ResultContent update(@RequestBody OrganizationAddParam param) {
+        Assert.hasText(param.getOid(), "oid不能为空");
+        return this.organizationService.update(param);
+    }
+
+
+}

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

@@ -0,0 +1,8 @@
+package com.zhongshu.card.server.core.dao.org;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.card.server.core.dao.org.extend.CollectionIdDaoExtend;
+import com.zhongshu.card.server.core.domain.org.CollectionId;
+
+public interface CollectionIdDao extends MongoDao<CollectionId>, CollectionIdDaoExtend {
+}

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

@@ -15,5 +15,9 @@ public interface OrganizationDao extends MongoDao<Organization>, OrganizationDao
 
     Organization findTopByOid(String oid);
 
+    Organization findTopByName(String name);
+
     Organization findByAuthType(AuthType authType);
+
+    Organization findTopByCode(String code);
 }

+ 1 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/OrganizationUserDao.java

@@ -1,10 +1,8 @@
 package com.zhongshu.card.server.core.dao.org;
 
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
-import com.zhongshu.card.client.type.OrganizationState;
-import com.zhongshu.card.server.core.dao.org.extend.OrganizationDaoExtend;
+import com.zhongshu.card.client.utils.type.OrganizationState;
 import com.zhongshu.card.server.core.dao.org.extend.OrganizationUserDaoExtend;
-import com.zhongshu.card.server.core.dao.org.extend.UserCountDaoExtend;
 import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.org.OrganizationUser;
 import com.zhongshu.card.server.core.domain.org.UserAccount;

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

@@ -14,4 +14,5 @@ public interface RoleDao extends MongoDao<Role>, RoleDaoExtend {
 
     Role findTopById(String id);
 
+    Role findTopByNameAndOid(String name, String oid);
 }

+ 7 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/extend/CollectionIdDaoExtend.java

@@ -0,0 +1,7 @@
+package com.zhongshu.card.server.core.dao.org.extend;
+
+public interface CollectionIdDaoExtend {
+    Long getNextId(String collectionName);
+
+    Long getNextId(String oid, String collectionName);
+}

+ 41 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/org/impl/CollectionIdDaoImpl.java

@@ -0,0 +1,41 @@
+package com.zhongshu.card.server.core.dao.org.impl;
+
+import com.zhongshu.card.server.core.dao.org.extend.CollectionIdDaoExtend;
+import com.zhongshu.card.server.core.domain.org.CollectionId;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.FindAndModifyOptions;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
+
+public class CollectionIdDaoImpl implements CollectionIdDaoExtend {
+
+    @Autowired
+    private MongoTemplate mongoTemplate;
+
+    @Override
+    public Long getNextId(String collectionName) {
+        Query query = new Query(Criteria.where("collectionName").is(collectionName));
+        Update update = new Update();
+        update.inc("aid", 1);
+        FindAndModifyOptions options = new FindAndModifyOptions();
+        options.upsert(true);
+        options.returnNew(true);
+        CollectionId collectionId = mongoTemplate.findAndModify(query, update, options, CollectionId.class);
+        return collectionId.getAid();
+    }
+
+    @Override
+    public Long getNextId(String oid, String collectionName) {
+        Query query = new Query(Criteria.where("collectionName").is(collectionName).and("epId").is(oid));
+        Update update = new Update();
+        update.inc("aid", 1);
+        //update.set("epId",epId);
+        FindAndModifyOptions options = new FindAndModifyOptions();
+        options.upsert(true);
+        options.returnNew(true);
+        CollectionId collectionId = mongoTemplate.findAndModify(query, update, options, CollectionId.class);
+        return collectionId.getAid();
+    }
+}

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

@@ -0,0 +1,17 @@
+package com.zhongshu.card.server.core.domain.org;
+
+import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
+import lombok.Data;
+import org.springframework.data.mongodb.core.mapping.Document;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@Document(collection = "collectionId")
+@Data
+public class CollectionId extends SuperEntity {
+
+    @Field("collectionName")
+    private String collectionName;
+
+    // 自增id
+    private Long aid;
+}

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/Department.java

@@ -1,6 +1,6 @@
 package com.zhongshu.card.server.core.domain.org;
 
-import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.utils.type.DataState;
 import com.zhongshu.card.client.utils.ITree;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/Organization.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.server.core.domain.org;
 
 import com.github.microservice.auth.security.type.AuthType;
-import com.zhongshu.card.client.type.OrganizationState;
+import com.zhongshu.card.client.utils.type.OrganizationState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/org/OrganizationUser.java

@@ -1,7 +1,7 @@
 package com.zhongshu.card.server.core.domain.org;
 
 import com.github.microservice.auth.security.type.AuthType;
-import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.client.utils.type.UserState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;

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

@@ -1,9 +1,9 @@
 package com.zhongshu.card.server.core.domain.org;
 
-import com.zhongshu.card.client.type.Sex;
-import com.zhongshu.card.client.type.UserLoginType;
-import com.zhongshu.card.client.type.UserState;
-import com.zhongshu.card.client.type.UserType;
+import com.zhongshu.card.client.utils.type.Sex;
+import com.zhongshu.card.client.utils.type.UserLoginType;
+import com.zhongshu.card.client.utils.type.UserState;
+import com.zhongshu.card.client.utils.type.UserType;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;

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

@@ -8,8 +8,8 @@ import com.github.microservice.components.data.mongo.mongo.helper.DBHelper;
 import com.github.microservice.core.util.net.IPUtil;
 import com.zhongshu.card.client.model.org.LoginParam;
 import com.zhongshu.card.client.ret.ResultContent;
-import com.zhongshu.card.client.type.OrganizationState;
-import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.client.utils.type.OrganizationState;
+import com.zhongshu.card.client.utils.type.UserState;
 import com.zhongshu.card.server.core.dao.org.OrganizationUserDao;
 import com.zhongshu.card.server.core.dao.org.UserCountDao;
 import com.zhongshu.card.server.core.dao.org.UserLoginFailRecordDao;
@@ -28,7 +28,6 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
-import java.util.Map;
 
 /**
  * @author TRX

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

@@ -14,8 +14,9 @@ import com.github.microservice.auth.security.type.AuthType;
 import com.zhongshu.card.client.model.org.OrganizationAddParam;
 import com.zhongshu.card.client.model.org.OrganizationModel;
 import com.zhongshu.card.client.ret.ResultContent;
+import com.zhongshu.card.client.ret.ResultMessage;
 import com.zhongshu.card.client.service.org.OrganizationService;
-import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.client.utils.type.UserState;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.org.OrganizationUserDao;
 import com.zhongshu.card.server.core.dao.org.RoleDao;
@@ -25,7 +26,9 @@ import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.org.OrganizationUser;
 import com.zhongshu.card.server.core.domain.org.Role;
 import com.zhongshu.card.server.core.domain.org.UserAccount;
+import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.util.BeanUtils;
+import com.zhongshu.card.server.core.util.NextNoUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -43,7 +46,7 @@ import java.util.Set;
  */
 @Slf4j
 @Service
-public class OrganizationServiceImpl implements OrganizationService {
+public class OrganizationServiceImpl extends SuperService implements OrganizationService {
 
     @Autowired
     OrganizationDao organizationDao;
@@ -75,13 +78,86 @@ public class OrganizationServiceImpl implements OrganizationService {
     @Autowired
     DepartmentServiceImpl departmentService;
 
+
+
+    /**
+     * 添加机构
+     *
+     * @param param
+     * @return
+     */
+    @Override
     public ResultContent addOrganization(OrganizationAddParam param) {
+        // 验证数据
+        Organization temp = organizationDao.findTopByName(param.getName());
+        if (ObjectUtils.isNotEmpty(temp)) {
+            return ResultContent.buildFail(String.format(ResultMessage.NAME_EXIST, param.getName()));
+        }
+        AuthType authType = param.getAuthType();
+        if (authType == AuthType.Platform) {
+            return ResultContent.buildFail("机构类型错误");
+        }
+        String code = param.getCode();
+        if (StringUtils.isEmpty(code)) {
+            code = NextNoUtil.getNextNo(authType.getCode().toUpperCase());
+        }
+        temp = organizationDao.findTopByCode(code);
+        if (ObjectUtils.isNotEmpty(temp)) {
+            return ResultContent.buildFail(String.format("编码已存在,请重新再试:%s", code));
+        }
+        param.setCode(code);
+
+        String oid = "";
+        com.github.microservice.auth.client.model.OrganizationModel organizationModel = new com.github.microservice.auth.client.model.OrganizationModel();
+        organizationModel.setName(param.getName());
+        organizationModel.setAuthType(authType);
+        organizationModel.setRemark(param.getRemark());
+        com.github.microservice.auth.client.content.ResultContent<String>
+                resultContent = organizationService.add(organizationModel);
+
+        if (resultContent.getState() == ResultState.Success) {
+            log.info("平台初始成功: {}", resultContent.getContent());
+            oid = resultContent.getContent();
+        } else {
+            String msg = resultContent.getMsg();
+            if (StringUtils.isEmpty(msg) && resultContent.getException() != null) {
+                msg = resultContent.getException().getMessage();
+            }
+            log.info("initSuperOrganization {}", msg);
+            return ResultContent.buildFail(msg);
+        }
+
+        Organization organization = new Organization();
+        BeanUtils.copyProperties(param, organization);
+        organization.setOid(oid);
+        organizationDao.save(organization);
+
+        // 初始机构数据
+        initOrganization(organization);
+
+        return ResultContent.buildSuccess();
+    }
+
+    /**
+     * 编辑机构
+     *
+     * @param param
+     * @return
+     */
+    @Override
+    public ResultContent update(OrganizationAddParam param) {
         Organization organization = new Organization();
 
+
         organizationDao.save(organization);
         return ResultContent.buildSuccess();
     }
 
+    /**
+     * 初始平台信息
+     *
+     * @return
+     */
     @Override
     public ResultContent initSuperOrganization() {
         String oid = "";
@@ -135,6 +211,7 @@ public class OrganizationServiceImpl implements OrganizationService {
      */
     public ResultContent initOrganization(Organization organization) {
         String userId = "";
+        // 查询用户是否存在
         com.github.microservice.auth.client.content.ResultContent<UserModel> userModelResult =
                 userService.queryFromLoginType(LoginType.Phone, organization.getContactPhone());
         if (userModelResult.getState() != ResultState.Success) {
@@ -155,6 +232,7 @@ public class OrganizationServiceImpl implements OrganizationService {
             userAccount = userAccountService.initUserAccountOrg(userId, organization);
         }
 
+        // 用户没在这个企业
         if (!organizationUserDao.existsByOrganizationAndUser(organization, userAccount)) {
             //本地: 绑定机构和用户的关系
             OrganizationUser organizationUser = new OrganizationUser();
@@ -190,50 +268,52 @@ public class OrganizationServiceImpl implements OrganizationService {
      */
     public ResultContent initResource(Organization organization, String userId) {
         UserAccount userAccount = userCountDao.findTopByUserId(userId);
-        Set<String> auth = Set.of(AuthConstant.Admin);
-        if(organization.getAuthType().equals(AuthType.Platform)) {
-            auth = Set.of(AuthConstant.SuperAdmin);
-        }
 
-        String oid = organization.getOid();
-        // 权限中心: 角色组
-        RoleGroupModel admin = new RoleGroupModel();
-        admin.setName(CardDefault.DEFAULT_ROLE_NAME);
-        admin.setRemark(CardDefault.DEFAULT_ROLE_NAME);
-        admin.setOrganizationId(oid);
-        admin.setIdentity(auth);
-        com.github.microservice.auth.client.content.ResultContent<String> updateRoleGroupAdmin = roleService.updateRoleGroup(admin);
-        String groupId = updateRoleGroupAdmin.getContent();
-        log.info("初始权限中心角色组成功:{}", groupId);
-
-        Role adminRole = null;
-        if (!StringUtils.isEmpty(groupId)) {
-
-            // 权限中心: 角色信息
-            RoleModel roleModel = new RoleModel();
-            roleModel.setOrganizationId(oid);
-            roleModel.setName(CardDefault.DEFAULT_ROLE_NAME);
-            roleModel.setRemark(CardDefault.DEFAULT_ROLE_NAME);
-            roleModel.setAuth(auth);
-            com.github.microservice.auth.client.content.ResultContent<String> updateRole =
-                    roleService.updateRole(roleModel);
-            roleService.addRoleToRoleGroup(groupId, new String[]{updateRole.getContent()});
-            log.info("权限中心:初始角色和角色组关系成功");
-
-            // 添加本地角色信息
-            adminRole = new Role();
-            adminRole.setCode("manager");
-            adminRole.setAuth(auth);
-            adminRole.setOid(oid);
-            adminRole.setRoleGroupId(groupId);
-            adminRole.setName(CardDefault.DEFAULT_ROLE_NAME);
-            adminRole.setRemark(CardDefault.DEFAULT_ROLE_NAME);
-            adminRole.setAdmin(true);
-            roleDao.save(adminRole);
-
-            //权限中心: 将用户添加进管理员角色组
-            roleService.addUserToRoleGroup(groupId, new String[]{userId});
-            log.info("权限中心:绑定角色和用户关系成功");
+        Role adminRole = roleDao.findTopByNameAndOid(CardDefault.DEFAULT_ROLE_NAME, organization.getOid());
+        if (ObjectUtils.isEmpty(adminRole)) {
+            Set<String> auth = Set.of(AuthConstant.Admin);
+            if (organization.getAuthType().equals(AuthType.Platform)) {
+                auth = Set.of(AuthConstant.SuperAdmin);
+            }
+
+            String oid = organization.getOid();
+            // 权限中心: 角色组
+            RoleGroupModel admin = new RoleGroupModel();
+            admin.setName(CardDefault.DEFAULT_ROLE_NAME);
+            admin.setRemark(CardDefault.DEFAULT_ROLE_NAME);
+            admin.setOrganizationId(oid);
+            admin.setIdentity(auth);
+            com.github.microservice.auth.client.content.ResultContent<String> updateRoleGroupAdmin = roleService.updateRoleGroup(admin);
+            String groupId = updateRoleGroupAdmin.getContent();
+            log.info("初始权限中心角色组成功:{}", groupId);
+
+            if (!StringUtils.isEmpty(groupId)) {
+                // 权限中心: 角色信息
+                RoleModel roleModel = new RoleModel();
+                roleModel.setOrganizationId(oid);
+                roleModel.setName(CardDefault.DEFAULT_ROLE_NAME);
+                roleModel.setRemark(CardDefault.DEFAULT_ROLE_NAME);
+                roleModel.setAuth(auth);
+                com.github.microservice.auth.client.content.ResultContent<String> updateRole =
+                        roleService.updateRole(roleModel);
+                roleService.addRoleToRoleGroup(groupId, new String[]{updateRole.getContent()});
+                log.info("权限中心:初始角色和角色组关系成功");
+
+                // 添加本地角色信息
+                adminRole = new Role();
+                adminRole.setCode("manager");
+                adminRole.setAuth(auth);
+                adminRole.setOid(oid);
+                adminRole.setRoleGroupId(groupId);
+                adminRole.setName(CardDefault.DEFAULT_ROLE_NAME);
+                adminRole.setRemark(CardDefault.DEFAULT_ROLE_NAME);
+                adminRole.setAdmin(true);
+                roleDao.save(adminRole);
+
+                //权限中心: 将用户添加进管理员角色组
+                roleService.addUserToRoleGroup(groupId, new String[]{userId});
+                log.info("权限中心:绑定角色和用户关系成功");
+            }
         }
 
         // 本地:保存用户角色信息

+ 2 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/UserAccountServiceImpl.java

@@ -7,8 +7,8 @@ import com.zhongshu.card.client.model.org.UserCountSearchParam;
 import com.zhongshu.card.client.ret.ResultContent;
 import com.zhongshu.card.client.ret.ResultMessage;
 import com.zhongshu.card.client.service.org.UserAccountService;
-import com.zhongshu.card.client.type.Sex;
-import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.client.utils.type.Sex;
+import com.zhongshu.card.client.utils.type.UserState;
 import com.zhongshu.card.server.core.dao.org.UserCountDao;
 import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.org.UserAccount;

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/util/BeanUtils.java

@@ -6,7 +6,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.microservice.core.helper.ApplicationContextHolder;
-import com.zhongshu.card.client.type.CommonEnum;
+import com.zhongshu.card.client.utils.type.CommonEnum;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import io.swagger.v3.oas.annotations.media.Schema;
 import org.apache.commons.lang3.ObjectUtils;

+ 66 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/util/NextNoUtil.java

@@ -0,0 +1,66 @@
+package com.zhongshu.card.server.core.util;
+
+import com.github.microservice.core.helper.ApplicationContextHolder;
+import com.zhongshu.card.server.core.dao.org.CollectionIdDao;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @Author TRX
+ * @CreateDate: 2023/3/29
+ * @Version: 1.0
+ */
+public class NextNoUtil {
+
+    private final static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyyMMdd");
+
+    /**
+     * 生成编码 (每天从 0001开始)
+     *
+     * @param sign 开头,如:XS
+     * @return 如:XS202303290001
+     */
+    public static String getNextNo(String sign) {
+        CollectionIdDao collectionIdDao = ApplicationContextHolder.getContext().getBean(CollectionIdDao.class);
+        String collectionName = sign + shortSdf.format(new Date());
+        Long no = collectionIdDao.getNextId(collectionName);
+        if (no != null) {
+            return String.format("%s%s%04d", sign, shortSdf.format(new Date()), no);
+        }
+        return "";
+    }
+
+    /**
+     * 生成编码 (每天从 0001开始)
+     *
+     * @param oid 企业ID
+     * @param sign 开头,如:XS
+     * @return 如:XS202303290001
+     */
+    public static String getNo(String oid, String sign) {
+        CollectionIdDao collectionIdDao = ApplicationContextHolder.getContext().getBean(CollectionIdDao.class);
+        String collectionName = sign + shortSdf.format(new Date());
+        Long no = collectionIdDao.getNextId(oid, collectionName);
+        if (no != null) {
+            return String.format("%s%s%04d", sign, shortSdf.format(new Date()), no);
+        }
+        return "";
+    }
+
+    /**
+     * 生成编码 (一直累加)
+     *
+     * @param oid 企业ID
+     * @param sign 开头,如:XS
+     * @return 如:XS202303290001
+     */
+    public static String getNextNo(String oid, String sign) {
+        CollectionIdDao collectionIdDao = ApplicationContextHolder.getContext().getBean(CollectionIdDao.class);
+        Long no = collectionIdDao.getNextId(oid, sign);
+        if (no != null) {
+            return String.format("%s%s%04d", sign, shortSdf.format(new Date()), no);
+        }
+        return "";
+    }
+}