TRX 1 vuosi sitten
vanhempi
commit
c2f3d92d5a

+ 10 - 5
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/register/UserCountRegisterParam.java

@@ -1,5 +1,6 @@
 package com.zhongshu.card.client.model.org.register;
 
+import com.zhongshu.card.client.model.base.ProjectOidParam;
 import com.zhongshu.card.client.type.CertificateType;
 import com.zhongshu.card.client.type.OrganizationUserType;
 import com.zhongshu.card.client.type.Sex;
@@ -14,11 +15,19 @@ import java.util.List;
  * @date 2024/5/31
  */
 @Data
-public class UserCountRegisterParam {
+public class UserCountRegisterParam  extends ProjectOidParam {
 
     @Schema(description = "用户手机号")
     private String phone;
 
+    @Schema(description = "角色信息-人员类型")
+    private List<String> roleIds;
+
+    @Schema(description = "密码")
+    private String passWord;
+
+
+
     @Schema(description = "编码")
     private String code;
 
@@ -52,11 +61,7 @@ public class UserCountRegisterParam {
     @Schema(description = "部门信息")
     private String departmentId;
 
-    @Schema(description = "角色信息-人员类型")
-    private List<String> roleIds;
 
-    @Schema(description = "密码")
-    private String passWord;
 
     @Schema(description = "是否是管理员")
     private Boolean isAdmin = Boolean.FALSE;

+ 19 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/type/user/OrgAddType.java

@@ -0,0 +1,19 @@
+package com.zhongshu.card.client.type.user;
+
+import lombok.Getter;
+
+/**
+ * 角色类型
+ */
+public enum OrgAddType {
+    Manager("管理员添加"),
+    Register("注册"),
+    ;
+
+    @Getter
+    private String remark;
+
+    OrgAddType(String remark) {
+        this.remark = remark;
+    }
+}

+ 1 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/type/user/OrgUserState.java

@@ -8,6 +8,7 @@ import lombok.Getter;
 public enum OrgUserState {
     Formal("正式"),
     Unaudited("审核中"),
+    Refusal("已拒绝"),
     ;
 
     @Getter

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

@@ -10,6 +10,7 @@ import com.zhongshu.card.client.model.org.OrgUserDetailParam;
 import com.zhongshu.card.client.model.org.OrganizationUserModel;
 import com.zhongshu.card.client.model.org.OrganizationUserSearch;
 import com.zhongshu.card.client.model.org.UserCountAddParam;
+import com.zhongshu.card.client.model.org.register.UserCountRegisterParam;
 import com.zhongshu.card.client.model.orgModel.OrgBindUserAllParam;
 import com.zhongshu.card.client.model.school.ImportResultModel;
 import com.zhongshu.card.client.service.org.UserAccountService;
@@ -59,6 +60,15 @@ public class OrganizationUserController {
         return organizationUserService.saveOrgUser(param);
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "小程序注册用户", description = "小程序注册用户")
+    @RequestMapping(value = {"registerProjectUser"}, method = {RequestMethod.POST})
+    public ResultContent registerProjectUser(@RequestBody UserCountRegisterParam param) {
+        Assert.hasText(param.getProjectOid(), "projectOid不能为空");
+        Assert.hasText(param.getPhone(), "phone不能为空");
+        return organizationUserService.registerProjectUser(param);
+    }
+
     @ResourceAuth(value = "user", type = AuthType.User)
     @ResourceAuth(value = AuthConstant.SuperAdmin, type = AuthType.Platform)
     @Operation(summary = "机构绑定用户", description = "机构绑定用户,机构已存在 用户已存在")

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

@@ -6,6 +6,7 @@ import com.zhongshu.card.client.type.CertificateType;
 import com.zhongshu.card.client.type.OrganizationUserType;
 import com.zhongshu.card.client.type.Sex;
 import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.client.type.user.OrgAddType;
 import com.zhongshu.card.client.type.user.OrgUserState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import com.zhongshu.card.server.core.domain.school.DictInfo;
@@ -45,9 +46,18 @@ public class OrganizationUser extends SuperMain {
     @DBRef(lazy = true)
     private UserAccount user;
 
+    @Schema(description = "用户添加方式:管理员后台添加、注册")
+    private OrgAddType addType = OrgAddType.Manager;
+
     @Schema(description = "用户状态")
     private OrgUserState orgUserState = OrgUserState.Formal;
 
+    @Schema(description = "审核用户")
+    private String reViewUserId;
+
+    @Schema(description = "审核时间")
+    private Long reViewTime;
+
     //---------------------------用户基础信息 start ----------------------
     @Schema(description = "用户ID")
     private String userId;

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

@@ -14,6 +14,7 @@ import com.zhongshu.card.client.model.org.*;
 import com.zhongshu.card.client.model.org.register.UserCountRegisterParam;
 import com.zhongshu.card.client.model.orgModel.OrgBindUserAllParam;
 import com.zhongshu.card.client.model.paySetting.paySetting.OrgPayShowSettingModel;
+import com.zhongshu.card.client.model.projectAbout.projectCommon.ProjectCommonConfigModel;
 import com.zhongshu.card.client.model.school.ExcelUserParam;
 import com.zhongshu.card.client.model.school.ImportResultModel;
 import com.zhongshu.card.client.model.school.RegisterBindSchoolParam;
@@ -30,6 +31,7 @@ import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.service.devices.permiss.DevicePermissEventService;
 import com.zhongshu.card.server.core.service.orgManager.OrganizationManagerServiceImpl;
 import com.zhongshu.card.server.core.service.paySetting.ProjectPaySettingServiceImpl;
+import com.zhongshu.card.server.core.service.projectAbout.ProjectCommonConfigService;
 import com.zhongshu.card.server.core.service.school.DictInfoServiceImpl;
 import com.zhongshu.card.server.core.service.user.DepartmentServiceImpl;
 import com.zhongshu.card.server.core.service.user.RoleServiceImpl;
@@ -124,6 +126,9 @@ public class OrganizationUserServiceImpl extends SuperService {
     @Autowired
     private UserInfoSyncService userInfoSyncService;
 
+    @Autowired
+    private ProjectCommonConfigService projectCommonConfigService;
+
     /**
      * 添加编辑用户 添加机构用户 (包括角色 部门 职位等信息)
      * 用户可能不存在
@@ -221,7 +226,58 @@ public class OrganizationUserServiceImpl extends SuperService {
         return ResultContent.buildSuccess(organizationUser);
     }
 
+    /**
+     * 注册用户
+     *
+     * @param param
+     * @return
+     */
     public ResultContent registerProjectUser(UserCountRegisterParam param) {
+        String projectOid = param.getProjectOid();
+        if (StringUtils.isEmpty(projectOid)) {
+            projectOid = getCurrentProjectOid();
+        }
+        if (StringUtils.isEmpty(projectOid)) {
+            return ResultContent.buildFail("projectOid 信息为空");
+        }
+        ProjectCommonConfigModel projectCommonConfig = projectCommonConfigService.getInfoByOid(projectOid);
+        if (ObjectUtils.isEmpty(projectCommonConfig)) {
+            return ResultContent.buildFail("项目的通用配置未配置");
+        }
+        if (projectCommonConfig.getIsAllowRegister() == null || !projectCommonConfig.getIsAllowRegister()) {
+            return ResultContent.buildFail("项目部允许注册用户");
+        }
+        if (ObjectUtils.isEmpty(param.getRoleIds())) {
+            return ResultContent.buildFail("roleIds 不能为空");
+        }
+
+
+        String phone = param.getPhone();
+        String loginName = phone;
+        UserAccount userAccount = userCountDao.findTopByLoginName(loginName);
+
+        if (ObjectUtils.isEmpty(userAccount)) {
+            String password = param.getPassWord();
+            String name = "游客";
+            if (phone != null && phone.length() == 11) {
+                name = "游客" + loginName.substring(8, 11);
+            }
+            // 用户基本信息维护 电话号码为登录名
+            RegisterUserAccountParam userAccountParam = new RegisterUserAccountParam();
+            userAccountParam.setLoginName(loginName);
+            userAccountParam.setPassword(password);
+            userAccountParam.setPhone(param.getPhone());
+            userAccountParam.setName(name);
+            userAccountParam.setCardNumber(param.getCardNumber());
+            userAccountParam.setSex(param.getSex());
+            userAccountParam.setProfilePic(param.getProfilePic());
+            ResultContent<String> userAccountContent = userAccountService.registerUserAccount(userAccountParam);
+            if (userAccountContent.isFailed()) {
+                return ResultContent.buildFail(userAccountContent.getMsg());
+            }
+            String userId = userAccountContent.getContent();
+            userAccount = userCountDao.findTopByUserId(userId);
+        }
 
 
         return ResultContent.buildSuccess();

+ 3 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/visitor/VisitorMainService.java

@@ -104,7 +104,9 @@ public class VisitorMainService extends SuperPermissService {
         if (param.getApplyType() == null) {
             return ResultContent.buildFail("applyType 不能为空");
         }
-
+        if (endTime <= System.currentTimeMillis()) {
+            return ResultContent.buildFail("访问结束时间不能小于当前时间");
+        }
 
         // 所属组件信息
         String sceneComponentId = param.getSceneComponentId();