Parcourir la source

1、增加注册企业设置企业登录密码逻辑
2、增加企业用户绑定修改邮箱
3、增加企业用户重置密码
4、增加手机号登录、邮箱登录区分企业和个人用户逻辑

rayson il y a 10 mois
Parent
commit
2350627ce0
25 fichiers modifiés avec 298 ajouts et 120 suppressions
  1. 7 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  2. 1 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/MdeUserController.java
  3. 7 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/vo/register/AppEnterpriseRegisterReqVO.java
  4. 0 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/AppMdeUserController.java
  5. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/vo/AppMdeUserUpdatePasswordReqVO.java
  6. 18 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/AppRecruitUserController.java
  7. 23 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitEnterpriseUpdatePasswordReqVO.java
  8. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitEnterpriseUserUpdateEmailReqVO.java
  9. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindRespVO.java
  10. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSaveReqVO.java
  11. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSimpleRespVO.java
  12. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/user/MdeUserUpdatePasswordReqVO.java
  13. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseRegisterDO.java
  14. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseUserBindDO.java
  15. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java
  16. 21 19
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthServiceImpl.java
  17. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeEnterpriseAuthService.java
  18. 51 12
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeEnterpriseAuthServiceImpl.java
  19. 36 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindService.java
  20. 83 34
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindServiceImpl.java
  21. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterServiceImpl.java
  22. 1 9
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserService.java
  23. 5 23
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserServiceImpl.java
  24. 4 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties
  25. 4 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties

+ 7 - 1
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -230,7 +230,10 @@ public interface ErrorCodeConstants {
             = new ErrorCode(1_100_021_012, "统一社会信用代码已被注册");
 
 
-    ErrorCode MDE_ENTERPRISE_CONTACT_NAME_NOT_NULL = new ErrorCode(1_100_021_013, "联系人名称不能为空");
+    ErrorCode MDE_ENTERPRISE_REGISTER_CONTACT_NAME_NOT_NULL = new ErrorCode(1_100_021_013, "联系人名称不能为空");
+
+    ErrorCode MDE_ENTERPRISE_REGISTER_PASSWORD_NOT_NULL = new ErrorCode(1_100_021_014, "密码不能为空");
+    ErrorCode MDE_ENTERPRISE_REGISTER_PASSWORD_LENGTH = new ErrorCode(1_100_021_015, "密码长度为 8-16 位");
 
 
     // ========== 企业地址 1_100_022_001 ==========
@@ -241,6 +244,9 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_ENTERPRISE_USER_BIND_NAME_NOT_NULL = new ErrorCode(1_100_023_002, "名称不能为空");
     ErrorCode MDE_ENTERPRISE_USER_BIND_IS_DISABLE = new ErrorCode(1_100_023_003, "该账户已被禁用");
     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 位");
+
 
 
     // ========== 企业岗位信息 1_100_024_000 ==========

+ 1 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/MdeUserController.java

@@ -7,6 +7,7 @@ import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
+import com.citu.module.menduner.system.controller.base.user.MdeUserUpdatePasswordReqVO;
 import com.citu.module.menduner.system.controller.base.user.*;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.service.user.MdeUserService;

+ 7 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/vo/register/AppEnterpriseRegisterReqVO.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
 
 @Schema(description = "menduner - 企业申请注册 Request VO")
 @Data
@@ -24,9 +25,14 @@ public class AppEnterpriseRegisterReqVO {
     private String phone;
 
     @NotBlank(message = "{1_100_021_006}")
-    @Schema(description = "联系邮箱")
+    @Schema(description = "企业邮箱")
     private String email;
 
+    @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
+    @NotEmpty(message = "{1_100_021_014}")
+    @Length(min = 8, max = 16, message = "{1_100_021_015}")
+    private String password;
+
     @Schema(description = "说明")
     private String description;
 

+ 0 - 8
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/AppMdeUserController.java

@@ -59,14 +59,6 @@ public class AppMdeUserController {
         return success(true);
     }
 
-    @PutMapping("/update-email")
-    @Operation(summary = "绑定/修改用户邮箱")
-    @PreAuthenticated
-    public CommonResult<Boolean> updateUserEmail(@RequestBody @Valid AppMdeUserUpdateEmailReqVO reqVO) {
-        mdeUserService.updateUserEmail(LoginUserContext.getUserId(), reqVO);
-        return success(true);
-    }
-
 
     @PutMapping("/update-mobile-by-weixin")
     @Operation(summary = "基于微信小程序的授权码,修改用户手机")

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/vo/AppMdeUserUpdatePasswordReqVO.java

@@ -19,7 +19,7 @@ public class AppMdeUserUpdatePasswordReqVO {
 
     @Schema(description = "新密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
     @NotEmpty(message = "{1_100_016_012}")
-    @Length(min = 4, max = 16, message = "{1_100_016_017}")
+    @Length(min = 8, max = 16, message = "{1_100_016_017}")
     private String password;
 
     @Schema(description = "手机验证码", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")

+ 18 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/AppRecruitUserController.java

@@ -4,10 +4,8 @@ import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.string.StrUtils;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
-import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitAccountRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitUserPageReqVO;
-import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitUserRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitUserSaveReqVO;
+import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.app.recruit.user.vo.*;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.user.UserAccountService;
@@ -92,4 +90,20 @@ public class AppRecruitUserController {
     public CommonResult<Boolean> checkPost(@RequestParam("postId") Long postId) {
         return success(service.checkPost(postId));
     }
+
+    @PutMapping("/update-email")
+    @Operation(summary = "绑定/修改用户邮箱")
+    @PreAuthenticated
+    public CommonResult<Boolean> updateUserEmail(@RequestBody @Valid AppRecruitEnterpriseUserUpdateEmailReqVO reqVO) {
+        service.updateUserEmail(LoginUserContext.getEnterpriseId(), LoginUserContext.getUserId(), reqVO);
+        return success(true);
+    }
+
+    @PutMapping("/update-password")
+    @Operation(summary = "重置用户密码")
+    public CommonResult<Boolean> updateUserPassword(@Valid @RequestBody AppRecruitEnterpriseUpdatePasswordReqVO reqVO) {
+        service.updatePassword(reqVO.getId(), reqVO.getPassword());
+        return success(true);
+    }
+
 }

+ 23 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitEnterpriseUpdatePasswordReqVO.java

@@ -0,0 +1,23 @@
+package com.citu.module.menduner.system.controller.app.recruit.user.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+@Schema(description = "用户重置密码 Request VO")
+@Data
+public class AppRecruitEnterpriseUpdatePasswordReqVO {
+
+
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    @NotNull(message = "{1_099_000_006}")
+    private Long id;
+
+    @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456")
+    @NotEmpty(message = "{1_100_023_005}")
+    @Length(min = 4, max = 16, message = "{1_100_023_006}")
+    private String password;
+}

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/vo/AppMdeUserUpdateEmailReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/user/vo/AppRecruitEnterpriseUserUpdateEmailReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.system.controller.app.jobhunt.user.vo;
+package com.citu.module.menduner.system.controller.app.recruit.user.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -7,9 +7,9 @@ import javax.validation.constraints.Email;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Size;
 
-@Schema(description = "用户 - 绑定修改邮箱 Request VO")
+@Schema(description = "企业用户 - 绑定修改邮箱 Request VO")
 @Data
-public class AppMdeUserUpdateEmailReqVO {
+public class AppRecruitEnterpriseUserUpdateEmailReqVO {
 
     @Schema(description = "邮箱", example = "123456789@qq.com")
     @Email(message = "{1_100_016_022}")

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindRespVO.java

@@ -54,6 +54,9 @@ public class EnterpriseUserBindRespVO {
     @ExcelProperty("用户邮箱")
     private String email;
 
+    @Schema(description = "密码")
+    private String password;
+
     @Schema(description = "帐号状态(0正常 1停用 2 等待审核 3不通过)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
     @ExcelProperty(value = "帐号状态(0正常 1停用 2 等待审核 3不通过)", converter = DictConvert.class)
     @DictFormat(MENDUNER_STATUS)

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSaveReqVO.java

@@ -46,6 +46,9 @@ public class EnterpriseUserBindSaveReqVO {
     @NotBlank(message = "{1_099_000_001}")
     private String status;
 
+    @Schema(description = "密码")
+    private String password;
+
     @Schema(description = "最后登录IP")
     private String loginIp;
 

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/enterprise/bind/EnterpriseUserBindSimpleRespVO.java

@@ -33,6 +33,9 @@ public class EnterpriseUserBindSimpleRespVO {
     @Schema(description = "头像地址")
     private String avatar;
 
+    @Schema(description = "密码")
+    private String password;
+
     @Schema(description = "帐号状态(0正常 1停用)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
     private String status;
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/user/MdeUserUpdatePasswordReqVO.java

@@ -7,7 +7,7 @@ import org.hibernate.validator.constraints.Length;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
 
-@Schema(description = "用户更新密码 Request VO")
+@Schema(description = "用户修改密码 Request VO")
 @Data
 public class MdeUserUpdatePasswordReqVO {
 

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseRegisterDO.java

@@ -48,6 +48,10 @@ public class EnterpriseRegisterDO extends TenantBaseDO {
      * 联系邮箱
      */
     private String email;
+    /**
+     * 登录密码
+     */
+    private String password;
     /**
      * 是否筹备
      */

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseUserBindDO.java

@@ -62,6 +62,10 @@ public class EnterpriseUserBindDO extends TenantBaseDO {
      * 用户邮箱
      */
     private String email;
+    /**
+     * 密码
+     */
+    private String password;
     /**
      * 帐号状态(0正常 1停用 2 等待审核 3不通过)
      * <p>

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java

@@ -44,6 +44,11 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
                 .orderByDesc(EnterpriseUserBindDO::getId));
     }
 
+    default EnterpriseUserBindDO selectByEmail(String email) {
+        return selectOne(new LambdaQueryWrapperX<EnterpriseUserBindDO>()
+                .eq(EnterpriseUserBindDO::getEmail, email));
+    }
+
     /** 根据查询条件查询企业用户列表 **/
     default List<EnterpriseUserBindDO> list(EnterpriseUserBindReqVO reqVO) {
         return selectList(new LambdaQueryWrapperX<EnterpriseUserBindDO>()

+ 21 - 19
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthServiceImpl.java

@@ -67,6 +67,8 @@ public class MdeAuthServiceImpl implements MdeAuthService {
     protected SocialClientApi socialClientApi;
     @Resource
     protected OAuth2TokenApi oauth2TokenApi;
+    @Resource
+    protected MdeEnterpriseAuthService enterpriseAuthService;
 
     /**
      * 验证码的开关,默认为 true
@@ -103,30 +105,29 @@ public class MdeAuthServiceImpl implements MdeAuthService {
         // 校验验证码
         validateCaptcha(reqVO);
         LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_MOBILE;
-        // 使用手机 + 密码,进行登录。
-        MdeUserDO user = check(logTypeEnum, reqVO.getAccount(), reqVO.getPassword());
-
-        // 如果 socialType 非空,说明需要绑定社交用户
-        String openid = null;
-        if (reqVO.getSocialType() != null) {
-            openid = socialUserApi.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
-                    reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState())).getCheckedData();
+        // TODO 求职端用户 手机号+密码,招聘端用户 邮箱+密码
+        if(ValidationUtils.isMobile(reqVO.getAccount())) {
+            // 使用手机 + 密码,进行登录。
+            MdeUserDO user = check(logTypeEnum, reqVO.getAccount(), reqVO.getPassword());
+
+            // 如果 socialType 非空,说明需要绑定社交用户
+            String openid = null;
+            if (reqVO.getSocialType() != null) {
+                openid = socialUserApi.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
+                        reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState())).getCheckedData();
+            }
+            // 创建 Token 令牌,记录登录日志
+            return createTokenAfterLoginSuccess(user, reqVO.getAccount(), logTypeEnum, openid);
+        }else if (ValidationUtils.isEmail(reqVO.getAccount())) {
+            // 企业邮箱登录
+            return enterpriseAuthService.login(reqVO.getAccount(), reqVO.getPassword());
         }
-
-        // 创建 Token 令牌,记录登录日志
-        return createTokenAfterLoginSuccess(user, reqVO.getAccount(), logTypeEnum, openid);
+        return null;
     }
 
     protected MdeUserDO check(LoginLogTypeEnum logTypeEnum, String account, String password) {
         // 校验账号是否存在
-        MdeUserDO user = null;
-        if (ValidationUtils.isMobile(account)) {
-            user = userService.getUserByPhone(account);
-        } else if (ValidationUtils.isEmail(account)) {
-            user = userService.getUserByEmail(account);
-        } else {
-            throw exception(MDE_USER_NOT_EXISTS);
-        }
+        MdeUserDO user = userService.getUserByPhone(account);
         if (null == user) {
             createLoginLog(null, account, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
             throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
@@ -141,6 +142,7 @@ public class MdeAuthServiceImpl implements MdeAuthService {
             throw exception(MDE_AUTH_LOGIN_USER_DISABLED);
         }
         return user;
+
     }
 
     @Override

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeEnterpriseAuthService.java

@@ -15,6 +15,15 @@ import javax.validation.Valid;
  */
 public interface MdeEnterpriseAuthService {
 
+
+    /**
+     * 邮箱 + 密码登录
+     * @param email 邮箱
+     * @param password 密码
+     * @return 登录结果
+     */
+    AppMdeAuthLoginRespVO login(String email,String password);
+
     /**
      * 切换登录
      *

+ 51 - 12
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeEnterpriseAuthServiceImpl.java

@@ -54,19 +54,37 @@ public class MdeEnterpriseAuthServiceImpl implements MdeEnterpriseAuthService {
     @Resource
     private EnterpriseUserBindService userBindService;
 
+
+    @Override
+    @DSTransactional
+    public AppMdeAuthLoginRespVO login(String email, String password) {
+        // 使用邮箱 + 密码,进行登录。
+        EnterpriseUserBindDO bindUser = check(email, password);
+
+        // 创建 Token 令牌,记录登录日志
+        return createTokenAfterLoginSuccess(
+                bindUser,
+                bindUser.getUserId(),
+                email,
+                LoginLogTypeEnum.LOGIN_EMAIL,
+                null,
+                bindUser.getEnterpriseId()
+        );
+    }
+
     @Override
     @DSTransactional
     public AppMdeAuthLoginRespVO switchLogin(AppEnterpriseAuthSwitchLoginReqVO reqVO) {
         LoginUser loginUser = LoginUserContext.get();
         // 查询用户
         MdeUserDO user = userService.getMdeUser(loginUser.getId());
-        EnterpriseUserBindDO bindUser = check(reqVO.getEnterpriseId(), user.getId(), user.getPhone(),
+        EnterpriseUserBindDO bindUser = check2(reqVO.getEnterpriseId(), user.getId(), user.getPhone(),
                 LoginLogTypeEnum.LOGIN_SWITCH);
 
         // 创建 Token 令牌,记录登录日志
         AppMdeAuthLoginRespVO resp = createTokenAfterLoginSuccess(
                 bindUser,
-                user,
+                user.getId(),
                 user.getPhone(),
                 LoginLogTypeEnum.LOGIN_SWITCH,
                 null,
@@ -76,10 +94,31 @@ public class MdeEnterpriseAuthServiceImpl implements MdeEnterpriseAuthService {
         return resp;
     }
 
-    protected EnterpriseUserBindDO check(Long enterpriseId,
-                                         Long userId,
-                                         String phone,
-                                         LoginLogTypeEnum logTypeEnum) {
+    protected EnterpriseUserBindDO check(String email, String password) {
+        final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_EMAIL;
+        // 校验账号是否存在
+        EnterpriseUserBindDO user = userBindService.getByEmail(email);
+        if (null == user) {
+            createLoginLog(null, email, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
+            throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
+        }
+        if (!userBindService.isPasswordMatch(password, user.getPassword())) {
+            createLoginLog(user.getId(), email, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
+            throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
+        }
+        // 校验是否禁用
+        if (ObjectUtil.notEqual(user.getStatus(), MendunerStatusEnum.ENABLE.getStatus())) {
+            createLoginLog(user.getId(), email, logTypeEnum, LoginResultEnum.USER_DISABLED);
+            throw exception(MDE_AUTH_LOGIN_USER_DISABLED);
+        }
+
+        return user;
+    }
+
+    protected EnterpriseUserBindDO check2(Long enterpriseId,
+                                          Long userId,
+                                          String phone,
+                                          LoginLogTypeEnum logTypeEnum) {
         // 查询绑定用户
         EnterpriseUserBindDO bind = userBindService.selectByEnterpriseIdAndUserId(
                 enterpriseId,
@@ -104,15 +143,15 @@ public class MdeEnterpriseAuthServiceImpl implements MdeEnterpriseAuthService {
 
 
     protected AppMdeAuthLoginRespVO createTokenAfterLoginSuccess(EnterpriseUserBindDO bindUser,
-                                                                 MdeUserDO user,
-                                                                 String phone,
+                                                                 Long userId,
+                                                                 String account,
                                                                  LoginLogTypeEnum logType,
                                                                  String openid, Long enterpriseId) {
         // 插入登陆日志
-        createLoginLog(bindUser.getId(), phone, logType, LoginResultEnum.SUCCESS);
+        createLoginLog(bindUser.getId(), account, logType, LoginResultEnum.SUCCESS);
         // 创建 Token 令牌
         OAuth2AccessTokenRespDTO accessTokenRespDTO = oauth2TokenApi.createAccessToken(new OAuth2AccessTokenCreateReqDTO()
-                .setUserId(user.getId()).setUserType(getUserType().getValue())
+                .setUserId(userId).setUserType(getUserType().getValue())
                 .setClientId(OAuth2ClientConstants.CLIENT_ID_MENDUNER_ADMIN)
                 .setUserInfo(MapUtil.builder(LoginUser.INFO_KEY_DATA_ID, enterpriseId.toString()).build())
         ).getCheckedData();
@@ -120,14 +159,14 @@ public class MdeEnterpriseAuthServiceImpl implements MdeEnterpriseAuthService {
         return MdeAuthConvert.INSTANCE.convert(accessTokenRespDTO, openid);
     }
 
-    protected void createLoginLog(Long bindUserId, String phone, LoginLogTypeEnum logType, LoginResultEnum loginResult) {
+    protected void createLoginLog(Long bindUserId, String account, LoginLogTypeEnum logType, LoginResultEnum loginResult) {
         // 插入登录日志
         LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
         reqDTO.setLogType(logType.getType());
         reqDTO.setTraceId(TracerUtils.getTraceId());
         reqDTO.setUserId(bindUserId);
         reqDTO.setUserType(getUserType().getValue());
-        reqDTO.setUsername(phone);
+        reqDTO.setUsername(account);
         reqDTO.setUserAgent(ServletUtils.getUserAgent());
         reqDTO.setUserIp(getClientIP());
         reqDTO.setResult(loginResult.getResult());

+ 36 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/bind/EnterpriseUserBindService.java

@@ -2,6 +2,7 @@ package com.citu.module.menduner.system.service.enterprise.bind;
 
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.system.controller.app.jobhunt.enterprise.vo.AppEnterpriseUserBindRespVO;
+import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitEnterpriseUserUpdateEmailReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitEnterpriseUserRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitUserRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitUserPageReqVO;
@@ -79,7 +80,6 @@ public interface EnterpriseUserBindService {
     EnterpriseUserBindDetailRespVO get(Long id);
 
 
-
     /**
      * 更新用户的最后登陆信息
      *
@@ -88,6 +88,14 @@ public interface EnterpriseUserBindService {
      */
     void updateUserLogin(Long id, String loginIp);
 
+    /**
+     * 更新用户邮箱
+     * @param enterpriseId
+     * @param userId
+     * @param reqVO
+     **/
+    void updateUserEmail(Long enterpriseId,Long userId, AppRecruitEnterpriseUserUpdateEmailReqVO reqVO);
+
     /**
      * 根据企业id和用户id查询用户绑定数据
      *
@@ -117,6 +125,31 @@ public interface EnterpriseUserBindService {
      **/
     List<EnterpriseUserBindDO> list(EnterpriseUserBindReqVO reqVO);
 
+    /**
+     * 根据邮箱查询用户
+     *
+     * @param email 邮箱
+     * @return 企业用户信息
+     **/
+    EnterpriseUserBindDO getByEmail(String email);
+
+    /**
+     * 判断密码是否匹配
+     *
+     * @param rawPassword     未加密的密码
+     * @param encodedPassword 加密后的密码
+     * @return 是否匹配
+     */
+    boolean isPasswordMatch(String rawPassword, String encodedPassword);
+
+    /**
+     * 修改密码
+     *
+     * @param id       用户编号
+     * @param password 密码
+     */
+    void updatePassword(Long id, String password);
+
     // ========== 求职端 ==========
     /**
      * 根据联系人id,获取联系人基本信息
@@ -188,8 +221,8 @@ public interface EnterpriseUserBindService {
 
     /**
      * 根据企业id和用户id查询用户信息
-     * @param enterpriseId
-     * @param userId
+     * @param enterpriseId 企业用户id
+     * @param userId 用户id
      * @return
      **/
     AppRecruitEnterpriseUserRespVO getEnterpriseUser(Long enterpriseId, Long userId);

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

@@ -7,10 +7,7 @@ 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.jobhunt.enterprise.vo.AppEnterpriseUserBindRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitEnterpriseUserRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitUserPageReqVO;
-import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitUserRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitUserSaveReqVO;
+import com.citu.module.menduner.system.controller.app.recruit.user.vo.*;
 import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
 import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserSummaryRespVO;
 import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindDetailRespVO;
@@ -30,7 +27,9 @@ import com.citu.module.menduner.system.enums.permission.MdeDefaultRoleEnum;
 import com.citu.module.menduner.system.service.enterprise.post.EnterprisePostService;
 import com.citu.module.menduner.system.service.permission.MdePermissionService;
 import com.citu.module.menduner.system.service.user.MdeUserService;
+import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
@@ -53,7 +52,7 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
 public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService {
 
     @Resource
-    private EnterpriseUserBindMapper enterpriseUserBindMapper;
+    private EnterpriseUserBindMapper mapper;
 
     @Resource
     private EnterprisePostService enterprisePostService;
@@ -67,11 +66,14 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Resource
     private MdeUserService mdeUserService;
 
+    @Resource
+    private PasswordEncoder passwordEncoder;
+
     @Override
     public Long createEnterpriseUserBind(EnterpriseUserBindSaveReqVO createReqVO) {
         // 插入
         EnterpriseUserBindDO enterpriseUserBind = BeanUtils.toBean(createReqVO, EnterpriseUserBindDO.class);
-        enterpriseUserBindMapper.insert(enterpriseUserBind);
+        mapper.insert(enterpriseUserBind);
         // 返回
         return enterpriseUserBind.getId();
     }
@@ -82,7 +84,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         validateEnterpriseUserBindExists(updateReqVO.getId());
         // 更新
         EnterpriseUserBindDO updateObj = BeanUtils.toBean(updateReqVO, EnterpriseUserBindDO.class);
-        enterpriseUserBindMapper.updateById(updateObj);
+        mapper.updateById(updateObj);
     }
 
     @Override
@@ -90,47 +92,64 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         // 校验存在
         validateEnterpriseUserBindExists(id);
         // 删除
-        enterpriseUserBindMapper.deleteById(id);
+        mapper.deleteById(id);
     }
 
-    private void validateEnterpriseUserBindExists(Long id) {
-        if (enterpriseUserBindMapper.selectById(id) == null) {
+    private EnterpriseUserBindDO validateEnterpriseUserBindExists(Long id) {
+        EnterpriseUserBindDO userBindDO = mapper.selectById(id);
+        if (null == userBindDO) {
             throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
         }
+        return userBindDO;
     }
 
     @Override
     public EnterpriseUserBindDO getEnterpriseUserBind(Long id) {
-        return enterpriseUserBindMapper.selectById(id);
+        return mapper.selectById(id);
     }
 
     @Override
     public PageResult<EnterpriseUserBindDO> getEnterpriseUserBindPage(EnterpriseUserBindPageReqVO pageReqVO) {
-        return enterpriseUserBindMapper.selectPage(pageReqVO);
+        return mapper.selectPage(pageReqVO);
     }
 
     @Override
     public PageResult<EnterpriseUserBindDetailRespVO> page(EnterpriseUserBindPageReqVO pageReqVO) {
-        return enterpriseUserBindMapper.page(pageReqVO);
+        return mapper.page(pageReqVO);
     }
 
     @Override
     public EnterpriseUserBindDetailRespVO get(Long id) {
-        return enterpriseUserBindMapper.get(id);
+        return mapper.get(id);
     }
 
 
-
     @Override
     @DSTransactional // 单机+多数据源方案,使用 @DSTransactional 保证本地事务,以及数据源的切换
     public void updateUserLogin(Long id, String loginIp) {
-        enterpriseUserBindMapper.updateById(new EnterpriseUserBindDO().setId(id)
+        mapper.updateById(new EnterpriseUserBindDO().setId(id)
                 .setLoginIp(loginIp).setLoginDate(LocalDateTime.now()));
     }
 
+    @Override
+    @DSTransactional
+    public void updateUserEmail(Long enterpriseId, Long userId, AppRecruitEnterpriseUserUpdateEmailReqVO reqVO) {
+        // 检测用户是否存在
+        EnterpriseUserBindDO user = mapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
+        if (!StringUtils.hasText(user.getEmail())) {
+            throw exception(MDE_USER_EMAIL_EXISTS);
+        }
+        // 效验邮箱是否被占用
+        EnterpriseUserBindDO emailUser = mapper.selectByEmail(reqVO.getEmail());
+        if (null != emailUser && !emailUser.getUserId().equals(userId)) {
+            throw exception(MDE_USER_EMAIL_EXISTS_OTHER);
+        }
+        mapper.updateById(EnterpriseUserBindDO.builder().id(userId).email(reqVO.getEmail()).build());
+    }
+
     @Override
     public EnterpriseUserBindDO selectByEnterpriseIdAndUserId(Long enterpriseId, Long userId) {
-        return enterpriseUserBindMapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
+        return mapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
     }
 
     @Override
@@ -145,19 +164,49 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Override
     @DSTransactional
     public void createUser(EnterpriseUserBindDO userBindDO) {
-        enterpriseUserBindMapper.insert(userBindDO);
+        if (StringUtils.hasText(userBindDO.getPassword())) {
+            userBindDO.setPassword(encodePassword(userBindDO.getPassword()));
+        }
+        mapper.insert(userBindDO);
         // 设置用户绑定企业角色
         mdePermissionService.assignUserRoleByDefault(userBindDO.getUserId(), MdeDefaultRoleEnum.MENDUNER_ENTERPRISE_ROLE);
     }
 
     @Override
     public List<EnterpriseUserBindDO> list(EnterpriseUserBindReqVO reqVO) {
-        return enterpriseUserBindMapper.list(reqVO);
+        return mapper.list(reqVO);
+    }
+
+    @Override
+    public EnterpriseUserBindDO getByEmail(String email) {
+        return mapper.selectByEmail(email);
+    }
+
+    /**
+     * 对密码进行加密
+     *
+     * @param password 密码
+     * @return 加密后的密码
+     */
+    private String encodePassword(String password) {
+        return passwordEncoder.encode(password);
+    }
+
+    @Override
+    public boolean isPasswordMatch(String rawPassword, String encodedPassword) {
+        return passwordEncoder.matches(rawPassword, encodedPassword);
+    }
+
+    @Override
+    public void updatePassword(Long id, String password) {
+        EnterpriseUserBindDO userBindDO = validateEnterpriseUserBindExists(id);
+        mapper.updateById(EnterpriseUserBindDO.builder().id(userBindDO.getId())
+                .password(passwordEncoder.encode(password)).build());
     }
 
     @Override
     public EnterpriseUserContactRespVO getContact(Long enterpriseId, Long userId) {
-        EnterpriseUserBindDO userBindDO = enterpriseUserBindMapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
+        EnterpriseUserBindDO userBindDO = mapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
         if (null == userBindDO) {
             throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
         }
@@ -180,7 +229,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
 
     @Override
     public EnterpriseUserSummaryRespVO getContactSummary(Long enterpriseId, Long userId) {
-        EnterpriseUserSummaryRespVO resp = enterpriseUserBindMapper.selectUserSummary(enterpriseId, userId);
+        EnterpriseUserSummaryRespVO resp = mapper.selectUserSummary(enterpriseId, userId);
         if (null != resp) {
             //TODO 缓存获取在线状态
             resp.getContact().setStatus("0");
@@ -190,7 +239,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
 
     @Override
     public List<AppEnterpriseUserBindRespVO> getBindList() {
-        List<EnterpriseUserBindDO> list = enterpriseUserBindMapper.selectListByUserId(LoginUserContext.getUserId());
+        List<EnterpriseUserBindDO> list = mapper.selectListByUserId(LoginUserContext.getUserId());
         if (null == list) {
             return Collections.emptyList();
         }
@@ -215,7 +264,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
             return Collections.emptyList();
         }
         // 获取用户绑定企业信息
-        List<EnterpriseUserBindDO> list = enterpriseUserBindMapper.selectListByUserId(user.getId());
+        List<EnterpriseUserBindDO> list = mapper.selectListByUserId(user.getId());
         if (null == list) {
             return Collections.emptyList();
         }
@@ -236,7 +285,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     public AppRecruitUserRespVO getBindEnterprise() {
         LoginUser loginUser = checkUserTypeIsAdmin();
 
-        EnterpriseUserBindDO userBindDO = enterpriseUserBindMapper
+        EnterpriseUserBindDO userBindDO = mapper
                 .selectByEnterpriseIdAndUserId(
                         LoginUserContext.getEnterpriseId(loginUser), loginUser.getId());
         if (null == userBindDO) {
@@ -258,7 +307,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
     @Override
     @DSTransactional
     public boolean save(AppRecruitUserSaveReqVO reqVO) {
-        EnterpriseUserBindDO userBindDO = enterpriseUserBindMapper.selectById(reqVO.getId());
+        EnterpriseUserBindDO userBindDO = mapper.selectById(reqVO.getId());
         if (null == userBindDO) {
             throw exception(MDE_ENTERPRISE_USER_BIND_NOT_EXISTS);
         }
@@ -267,7 +316,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         userBindDO.setPhone(reqVO.getPhone());
         userBindDO.setAvatar(reqVO.getAvatar());
         userBindDO.setEmail(reqVO.getEmail());
-        return enterpriseUserBindMapper.updateById(userBindDO) > 1;
+        return mapper.updateById(userBindDO) > 1;
     }
 
     @Override
@@ -279,7 +328,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
                 throw exception(MDE_ENTERPRISE_USER_BIND_IS_DISABLE);
             }
             userBindDO.setStatus(MendunerStatusEnum.DISABLE.getStatus());
-            enterpriseUserBindMapper.updateById(userBindDO);
+            mapper.updateById(userBindDO);
         }
         return true;
     }
@@ -293,7 +342,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
                 return true;
             }
             userBindDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
-            enterpriseUserBindMapper.updateById(userBindDO);
+            mapper.updateById(userBindDO);
         }
         return true;
     }
@@ -302,7 +351,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         LoginUser loginUser = checkUserTypeIsAdmin();
 
         // 查找操作的目标用户
-        EnterpriseUserBindDO userBindDO = enterpriseUserBindMapper
+        EnterpriseUserBindDO userBindDO = mapper
                 .selectByEnterpriseIdAndId(
                         LoginUserContext.getEnterpriseId(loginUser), id);
 
@@ -323,7 +372,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         if (null != reqVO.getEnterpriseId()) {
             enterpriseId = reqVO.getEnterpriseId();
         }
-        return enterpriseUserBindMapper.selectPage(reqVO, enterpriseId);
+        return mapper.selectPage(reqVO, enterpriseId);
     }
 
     @Override
@@ -332,7 +381,7 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
         LoginUser loginUser = checkUserTypeIsAdmin();
 
         // 查找操作的目标用户
-        EnterpriseUserBindDO userBindDO = enterpriseUserBindMapper
+        EnterpriseUserBindDO userBindDO = mapper
                 .selectByEnterpriseIdAndId(
                         LoginUserContext.getEnterpriseId(loginUser), id);
 
@@ -344,19 +393,19 @@ public class EnterpriseUserBindServiceImpl implements EnterpriseUserBindService
             return true;
         }
         userBindDO.setPostId(postId);
-        return enterpriseUserBindMapper.updateById(userBindDO) == 1;
+        return mapper.updateById(userBindDO) == 1;
     }
 
     @Override
     public Boolean checkPost(Long postId) {
         LoginUser loginUser = checkUserTypeIsAdmin();
-        return !enterpriseUserBindMapper
+        return !mapper
                 .selectByEnterpriseIdAndPostId(
                         LoginUserContext.getEnterpriseId(loginUser), postId).isEmpty();
     }
 
     @Override
     public AppRecruitEnterpriseUserRespVO getEnterpriseUser(Long enterpriseId, Long userId) {
-        return enterpriseUserBindMapper.selectEnterpriseUser(enterpriseId, userId);
+        return mapper.selectEnterpriseUser(enterpriseId, userId);
     }
 }

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/enterprise/register/EnterpriseRegisterServiceImpl.java

@@ -153,6 +153,7 @@ public class EnterpriseRegisterServiceImpl implements EnterpriseRegisterService
                 .phone(enterpriseRegister.getPhone())
                 .email(enterpriseRegister.getEmail())
                 .userType(EnterpriseUserTypeEnum.ADMIN.getType())
+                .password(enterpriseRegister.getPassword())
                 .build();
         userBindService.createUser(userBindDO);
     }
@@ -182,7 +183,6 @@ public class EnterpriseRegisterServiceImpl implements EnterpriseRegisterService
     @Override
     @DSTransactional
     public void apply(AppEnterpriseRegisterReqVO reqVO) {
-
         validateApply(reqVO);
         EnterpriseRegisterDO register = EnterpriseConvert.INSTANCE.convert6(reqVO);
         register.setStatus(EnterpriseRegisterAuditStatusEnum.AUDITING.getStatus());

+ 1 - 9
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserService.java

@@ -5,12 +5,12 @@ import com.citu.framework.common.enums.TerminalEnum;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.validation.Mobile;
 import com.citu.module.menduner.system.controller.app.jobhunt.user.vo.*;
+import com.citu.module.menduner.system.controller.app.recruit.user.vo.AppRecruitEnterpriseUserUpdateEmailReqVO;
 import com.citu.module.menduner.system.controller.base.user.MdeUserPageReqVO;
 import com.citu.module.menduner.system.controller.base.user.MdeUserSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 
 import javax.validation.Valid;
-import java.util.List;
 
 /**
  * 用户登录 Service 接口
@@ -131,14 +131,6 @@ public interface MdeUserService {
      */
     void updateUserPhone(Long userId, AppMdeUserUpdatePhoneReqVO reqVO);
 
-    /**
-     * 绑定/修改邮箱
-     * @param userId 用户编号
-     * @param reqVO 请求信息
-     */
-    void updateUserEmail(Long userId,AppMdeUserUpdateEmailReqVO reqVO);
-
-
     /**
      * 修改手机,基于微信小程序的授权码
      *

+ 5 - 23
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserServiceImpl.java

@@ -5,17 +5,17 @@ import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
-import com.citu.module.menduner.system.controller.app.jobhunt.user.vo.*;
-import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.framework.common.enums.TerminalEnum;
 import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.datapermission.core.util.DataPermissionUtils;
+import com.citu.module.menduner.system.controller.app.jobhunt.user.vo.*;
 import com.citu.module.menduner.system.controller.base.user.MdeUserPageReqVO;
 import com.citu.module.menduner.system.controller.base.user.MdeUserSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.dal.mysql.user.MdeUserMapper;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.permission.MdeDefaultRoleEnum;
 import com.citu.module.menduner.system.service.permission.MdePermissionService;
 import com.citu.module.system.api.sms.SmsCodeApi;
@@ -29,12 +29,10 @@ import com.mzt.logapi.service.impl.DiffParseFunction;
 import com.mzt.logapi.starter.annotation.LogRecord;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.List;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.framework.common.util.servlet.ServletUtils.getClientIP;
@@ -81,7 +79,7 @@ public class MdeUserServiceImpl implements MdeUserService {
         user.setPassword(encodePassword(createReqVO.getPassword())); // 加密密码
         mdeUserMapper.insert(user);
         // 2.2 绑定默认角色
-        mdePermissionService.assignUserRoleByDefault(user.getId(),MdeDefaultRoleEnum.MENDUNER_ENTERPRISE_ROLE);
+        mdePermissionService.assignUserRoleByDefault(user.getId(), MdeDefaultRoleEnum.MENDUNER_ENTERPRISE_ROLE);
         // 3. 记录操作日志上下文
         LogRecordContext.putVariable("mde-user", user);
         return user.getId();
@@ -233,7 +231,7 @@ public class MdeUserServiceImpl implements MdeUserService {
 
 
     public MdeUserDO createUser(String phone, String avtar,
-                                 String registerIp, String terminal) {
+                                String registerIp, String terminal) {
         // 生成密码
         String password = IdUtil.fastSimpleUUID();
         // 插入用户
@@ -247,7 +245,7 @@ public class MdeUserServiceImpl implements MdeUserService {
 
         mdeUserMapper.insert(user);
         // 绑定默认角色
-        mdePermissionService.assignUserRoleByDefault(user.getId(),MdeDefaultRoleEnum.MENDUNER_DEFAULT_ROLE);
+        mdePermissionService.assignUserRoleByDefault(user.getId(), MdeDefaultRoleEnum.MENDUNER_DEFAULT_ROLE);
         return user;
     }
 
@@ -329,22 +327,6 @@ public class MdeUserServiceImpl implements MdeUserService {
         mdeUserMapper.updateById(MdeUserDO.builder().id(userId).phone(reqVO.getPhone()).build());
     }
 
-    @Override
-    @DSTransactional
-    public void updateUserEmail(Long userId, AppMdeUserUpdateEmailReqVO reqVO) {
-        // 检测用户是否存在
-        MdeUserDO user = validateUserExists(userId);
-        if(!StringUtils.hasText(user.getEmail())) {
-            throw exception(MDE_USER_EMAIL_EXISTS);
-        }
-        // 效验邮箱是否被占用
-        MdeUserDO emailUser = mdeUserMapper.selectByEmail(reqVO.getEmail());
-        if (null != emailUser && !emailUser.getId().equals(userId)) {
-            throw exception(MDE_USER_EMAIL_EXISTS_OTHER);
-        }
-        mdeUserMapper.updateById(MdeUserDO.builder().id(userId).email(reqVO.getEmail()).build());
-    }
-
 
     @Override
     public void updateUserMobileByWeixin(Long userId, AppMdeUserUpdatePhoneByWeixinReqVO reqVO) {

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

@@ -176,6 +176,8 @@
 1_100_021_011=Incorrect format of unified social credit code
 1_100_021_012=Unified Social Credit Code has been registered
 1_100_021_013=Contact name cannot be empty
+1_100_021_014=Password cannot be empty
+1_100_021_015=Password length is 8-16 digits
 # ========== 企业地址 1_100_022_001 ==========
 1_100_022_001=The company address does not exist
 # ========== 企业登录用户 1_100_023_000 ==========
@@ -183,6 +185,8 @@
 1_100_023_002=Name cannot be empty
 1_100_023_003=The account has been disabled
 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_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

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

@@ -176,6 +176,8 @@
 1_100_021_011=统一社会信用代码格式不正确
 1_100_021_012=统一社会信用代码已被注册
 1_100_021_013=联系人名称不能为空
+1_100_021_014=密码不能为空
+1_100_021_015=密码长度为 8-16 位
 # ========== 企业地址 1_100_022_001 ==========
 1_100_022_001=企业地址不存在
 # ========== 企业登录用户 1_100_023_000 ==========
@@ -183,6 +185,8 @@
 1_100_023_002=名称不能为空
 1_100_023_003=该账户已被禁用
 1_100_023_004=该账户为管理员账户,无法操作
+1_100_023_005=新密码不能为空
+1_100_023_006=新密码长度为 4-16 位
 # ========== 企业岗位信息 1_100_024_000 ==========
 1_100_024_001=企业岗位信息不存在
 1_100_024_002=岗位中文名称不能为空