Ver Fonte

1、优化邀请同事逻辑

rayson há 8 meses atrás
pai
commit
2437b26971

+ 6 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -267,6 +267,10 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_ENTERPRISE_USER_BIND_IS_ADMIN = new ErrorCode(1_100_023_004, "该账户为管理员账户,无法操作");
     ErrorCode MDE_ENTERPRISE_USER_BIND_PASSWORD_NOT_NULL = new ErrorCode(1_100_023_005, "新密码不能为空");
     ErrorCode MDE_ENTERPRISE_USER_BIND_PASSWORD_LENGTH = new ErrorCode(1_100_023_006, "新密码长度为 8-16 位");
+    ErrorCode MDE_ENTERPRISE_USER_BIND_EMAIL_DUPLICATE = new ErrorCode(1_100_023_007, "该邮箱已被其他企业注册");
+    ErrorCode MDE_ENTERPRISE_USER_BIND_EMAIL_NOT_NULL = new ErrorCode(1_100_023_008, "企业用户登录邮箱不能为空");
+    ErrorCode MDE_ENTERPRISE_USER_BIND_EMAIL_FORMAT_ERROR = new ErrorCode(1_100_023_009, "企业用户登录邮箱格式不正确");
+
 
 
     // ========== 企业岗位信息 1_100_024_000 ==========
@@ -413,6 +417,8 @@ public interface ErrorCodeConstants {
     ErrorCode ENTERPRISE_INVITE_CODE_NOT_NULL = new ErrorCode(1_100_040_005, "邀请码不能为空");
     ErrorCode ENTERPRISE_INVITE_INVALID_DAYS_NOT_NULL = new ErrorCode(1_100_040_006, "失效天数不能为空");
 
+    ErrorCode ENTERPRISE_INVITE_EMAIL_NOT_NULL = new ErrorCode(1_100_040_007, "企业登录邮箱不能为空");
+
     // ========== 企业邀请记录 1_100_041_000 ==========
     ErrorCode ENTERPRISE_INVITE_RECORD_NOT_EXISTS = new ErrorCode(1_100_041_001, "企业邀请记录不存在");
 

+ 3 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/invite/AppRecruitEnterpriseInviteRecordController.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.controller.app.recruit.invite;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteConsentReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteRecordPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteRecordRespVO;
 import com.citu.module.menduner.system.service.invite.EnterpriseInviteRecordService;
@@ -37,8 +38,8 @@ public class AppRecruitEnterpriseInviteRecordController {
     @PreAuthenticated
     @PostMapping("/consent")
     @Operation(summary = "同意加入")
-    public CommonResult<Boolean> consent(@RequestParam("code") String code) {
-        service.consent(code);
+    public CommonResult<Boolean> consent(AppRecruitEnterpriseInviteConsentReqVO reqVO) {
+        service.consent(reqVO);
         return success(true);
     }
 

+ 18 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/invite/vo/AppRecruitEnterpriseInviteConsentReqVO.java

@@ -0,0 +1,18 @@
+package com.citu.module.menduner.system.controller.app.recruit.invite.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+
+@Schema(description = "menduner - 同意加入企业 Request VO")
+@Data
+public class AppRecruitEnterpriseInviteConsentReqVO {
+
+    @NotEmpty(message = "{1_100_040_005}")
+    @Schema(description = "邀请码", requiredMode = Schema.RequiredMode.REQUIRED, example = "y4m4n")
+    private String code;
+
+    @Schema(description = "企业登录邮箱")
+    private String email;
+}

+ 13 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java

@@ -4,6 +4,7 @@ package com.citu.module.menduner.system.service.enterprise.bind;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.common.util.validation.ValidationUtils;
 import com.citu.framework.security.core.LoginUser;
 import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseUserBindRespVO;
@@ -182,9 +183,19 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Override
     @DSTransactional
     public void createUser(EnterpriseUserBindDO userBindDO) {
-        if (StringUtils.hasText(userBindDO.getPassword())) {
-            userBindDO.setPassword(encodePassword(userBindDO.getPassword()));
+        if(!StringUtils.hasText(userBindDO.getEmail())) {
+            throw exception(MDE_ENTERPRISE_USER_BIND_EMAIL_NOT_NULL);
         }
+        if(!ValidationUtils.isEmail(userBindDO.getEmail())) {
+            throw exception(MDE_ENTERPRISE_USER_BIND_EMAIL_FORMAT_ERROR);
+        }
+        if(null != getByEmail(userBindDO.getEmail())) {
+            throw exception(MDE_ENTERPRISE_USER_BIND_EMAIL_DUPLICATE);
+        }
+        if (!StringUtils.hasText(userBindDO.getPassword())) {
+            throw exception(MDE_ENTERPRISE_USER_BIND_PASSWORD_NOT_NULL);
+        }
+        userBindDO.setPassword(encodePassword(userBindDO.getPassword()));
         mapper.insert(userBindDO);
         // 设置用户绑定企业角色
         mdePermissionService.assignUserRoleByDefault(userBindDO.getUserId(), MdeDefaultRoleEnum.MENDUNER_ENTERPRISE_ROLE);

+ 3 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteRecordService.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.service.invite;
 
 
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteConsentReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteRecordPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteRecordRespVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteRecordPageReqVO;
@@ -60,9 +61,9 @@ public interface EnterpriseInviteRecordService {
     /**
      * 同意加入
      *
-     * @param code 邀请码
+     * @param reqVO 邀请对象
      */
-    void consent(String code);
+    void consent(AppRecruitEnterpriseInviteConsentReqVO reqVO);
 
     /**
      * 获得企业邀请记录分页

+ 4 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/invite/EnterpriseInviteRecordServiceImpl.java

@@ -6,6 +6,7 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.security.core.LoginUser;
 import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteConsentReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteRecordPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.invite.vo.AppRecruitEnterpriseInviteRecordRespVO;
 import com.citu.module.menduner.system.controller.base.invite.EnterpriseInviteRecordPageReqVO;
@@ -113,12 +114,12 @@ public class EnterpriseInviteRecordServiceImpl implements EnterpriseInviteRecord
     @CacheEvict(cacheNames = {
             RedisKeyConstants.MDE_ENTERPRISE_TREE
     }, allEntries = true)
-    public void consent(String code) {
+    public void consent(AppRecruitEnterpriseInviteConsentReqVO reqVO) {
         LoginUser loginUser = LoginUserContext.get();
         Long enterpriseId = LoginUserContext.getEnterpriseId2(loginUser);
         Long userId = LoginUserContext.getUserId(loginUser);
 
-        EnterpriseInviteDO invite = inviteService.getByCode(code);
+        EnterpriseInviteDO invite = inviteService.getByCode(reqVO.getCode());
 
         if (EnterpriseInviteTypeEnum.COLLEAGUE.getType()
                 .equals(invite.getType())) {
@@ -152,7 +153,7 @@ public class EnterpriseInviteRecordServiceImpl implements EnterpriseInviteRecord
             userBindDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
             userBindDO.setUserType(EnterpriseUserTypeEnum.NORMAL.getType());
             userBindDO.setPhone(person.getPhone());
-            userBindDO.setEmail(person.getEmail());
+            userBindDO.setEmail(reqVO.getEmail());
 
             userBindService.createUser(userBindDO);
 

+ 3 - 0
menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties

@@ -197,6 +197,9 @@
 1_100_023_004=This account is an administrator account and cannot be operated
 1_100_023_005=New password cannot be empty
 1_100_023_006=The length of the new password is 8-16 digits
+1_100_023_007=This email has been registered by another company
+1_100_023_008=Enterprise user email cannot be empty
+1_100_023_009=Enterprise user login email format incorrect
 # ========== 企业岗位信息 1_100_024_000 ==========
 1_100_024_001=Enterprise position information does not exist
 1_100_024_002=The Chinese name of the position cannot be empty

+ 3 - 0
menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties

@@ -197,6 +197,9 @@
 1_100_023_004=该账户为管理员账户,无法操作
 1_100_023_005=新密码不能为空
 1_100_023_006=新密码长度为 4-16 位
+1_100_023_007=该邮箱已被其他企业注册
+1_100_023_008=企业用户邮箱不能为空
+1_100_023_009=企业用户登录邮箱格式不正确
 # ========== 企业岗位信息 1_100_024_000 ==========
 1_100_024_001=企业岗位信息不存在
 1_100_024_002=岗位中文名称不能为空