浏览代码

1、增加邮箱登录逻辑
2、增加绑定解绑邮箱
3、增加企业人才库逻辑

rayson 10 月之前
父节点
当前提交
d3c0fcd195
共有 29 个文件被更改,包括 422 次插入203 次删除
  1. 10 0
      citu-framework/citu-common/src/main/java/com/citu/framework/common/util/validation/ValidationUtils.java
  2. 3 0
      citu-module-system/citu-module-system-api/src/main/java/com/citu/module/system/enums/logger/LoginLogTypeEnum.java
  3. 0 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/DictTypeConstants.java
  4. 5 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  5. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/auth/AppMdeAuthController.java
  6. 3 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/auth/vo/AppMdeAuthLoginReqVO.java
  7. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/enterprise/vo/AppEnterpriseSearchPageReqVO.java
  8. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/vo/AppJobAdvertisedSearchPageReqVO.java
  9. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/AppMdeUserController.java
  10. 22 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/vo/AppMdeUserUpdateEmailReqVO.java
  11. 3 17
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/auth/AppRecruitEnterpriseAuthController.java
  12. 59 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/enterprise/AppRecruitEnterpriseTalentPoolController.java
  13. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/interview/vo/AppRecruitInterviewInviteRespVO.java
  14. 0 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseBusinessDO.java
  15. 38 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/enterprise/EnterpriseTalentPoolDO.java
  16. 22 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseTalentPoolMapper.java
  17. 12 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/interview/InterviewInviteMapper.java
  18. 50 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java
  19. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/old/a.java
  20. 24 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/old/dataobject/BaseEntity.java
  21. 21 14
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeAuthServiceImpl.java
  22. 0 16
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeEnterpriseAuthService.java
  23. 8 122
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/auth/MdeEnterpriseAuthServiceImpl.java
  24. 28 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationService.java
  25. 43 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java
  26. 16 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserService.java
  27. 23 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/user/MdeUserServiceImpl.java
  28. 4 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties
  29. 4 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties

+ 10 - 0
citu-framework/citu-common/src/main/java/com/citu/framework/common/util/validation/ValidationUtils.java

@@ -2,6 +2,7 @@ package com.citu.framework.common.util.validation;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.lang.Assert;
+import cn.hutool.core.util.StrUtil;
 import org.springframework.util.StringUtils;
 import org.springframework.util.StringUtils;
 
 
 import javax.validation.ConstraintViolation;
 import javax.validation.ConstraintViolation;
@@ -24,6 +25,10 @@ public class ValidationUtils {
 
 
     private static final Pattern PATTERN_XML_NCNAME = Pattern.compile("[a-zA-Z_][\\-_.0-9_a-zA-Z$]*");
     private static final Pattern PATTERN_XML_NCNAME = Pattern.compile("[a-zA-Z_][\\-_.0-9_a-zA-Z$]*");
 
 
+    private static final Pattern PATTERN_EMAIL = Pattern.compile(
+            "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@"
+                    + "[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"
+    );
     public static boolean isMobile(String mobile) {
     public static boolean isMobile(String mobile) {
         return StringUtils.hasText(mobile)
         return StringUtils.hasText(mobile)
                 && PATTERN_MOBILE.matcher(mobile).matches();
                 && PATTERN_MOBILE.matcher(mobile).matches();
@@ -39,6 +44,11 @@ public class ValidationUtils {
                 && PATTERN_XML_NCNAME.matcher(str).matches();
                 && PATTERN_XML_NCNAME.matcher(str).matches();
     }
     }
 
 
+    public static boolean isEmail(String email) {
+        return StringUtils.hasText(email)
+                && PATTERN_EMAIL.matcher(email).matches();
+    }
+
     public static void validate(Object object, Class<?>... groups) {
     public static void validate(Object object, Class<?>... groups) {
         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
         Assert.notNull(validator);
         Assert.notNull(validator);

+ 3 - 0
citu-module-system/citu-module-system-api/src/main/java/com/citu/module/system/enums/logger/LoginLogTypeEnum.java

@@ -14,6 +14,9 @@ public enum LoginLogTypeEnum {
     LOGIN_SOCIAL(101), // 使用社交登录
     LOGIN_SOCIAL(101), // 使用社交登录
     LOGIN_MOBILE(103), // 使用手机登陆
     LOGIN_MOBILE(103), // 使用手机登陆
     LOGIN_SMS(104), // 使用短信登陆
     LOGIN_SMS(104), // 使用短信登陆
+    LOGIN_EMAIL(105), // 使用邮箱登录
+
+    LOGIN_SWITCH(106), // 切换登录
 
 
     LOGOUT_SELF(200),  // 自己主动登出
     LOGOUT_SELF(200),  // 自己主动登出
     LOGOUT_DELETE(202), // 强制退出
     LOGOUT_DELETE(202), // 强制退出

+ 0 - 1
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/DictTypeConstants.java

@@ -16,7 +16,6 @@ public interface DictTypeConstants {
     String MENDUNER_PAY_UNIT = "menduner_pay_unit"; // 薪酬单位
     String MENDUNER_PAY_UNIT = "menduner_pay_unit"; // 薪酬单位
     String MENDUNER_SCALE = "menduner_scale"; // 人员规模
     String MENDUNER_SCALE = "menduner_scale"; // 人员规模
     String MENDUNER_FINANCING_STATUS = "menduner_financing_status"; // 融资阶段
     String MENDUNER_FINANCING_STATUS = "menduner_financing_status"; // 融资阶段
-    String MENDUNER_ENTERPRISE_TYPE = "menduner_enterprise_type"; // 企业类型
     String MENDUNER_BUSINESS_STATUS = "menduner_business_status"; // 经营状态
     String MENDUNER_BUSINESS_STATUS = "menduner_business_status"; // 经营状态
     String MENDUNER_EDUCATION_TYPE = "menduner_education_type"; // 学历
     String MENDUNER_EDUCATION_TYPE = "menduner_education_type"; // 学历
     String MENDUNER_EDUCATION_SYSTEM_TYPE = "menduner_education_system_type"; // 学制类型
     String MENDUNER_EDUCATION_SYSTEM_TYPE = "menduner_education_system_type"; // 学制类型

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

@@ -137,6 +137,11 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_USER_PASSWORD_NOT_NULL = new ErrorCode(1_100_016_019, "密码不能为空");
     ErrorCode MDE_USER_PASSWORD_NOT_NULL = new ErrorCode(1_100_016_019, "密码不能为空");
     ErrorCode MDE_USER_USERNAME_NOT_NULL = new ErrorCode(1_100_016_020, "用户账号不能为空");
     ErrorCode MDE_USER_USERNAME_NOT_NULL = new ErrorCode(1_100_016_020, "用户账号不能为空");
 
 
+    ErrorCode MDE_USER_EMAIL_EXISTS_OTHER = new ErrorCode(1_100_016_021, "该邮箱已被其他用户使用");
+    ErrorCode MDE_USER_EMAIL_FORMAT_ERROR = new ErrorCode(1_100_016_022, "邮箱格式不正确");
+    ErrorCode MDE_USER_EMAIL_LENGTH = new ErrorCode(1_100_016_023, "邮箱长度不能超过 255 个字符");
+    ErrorCode MDE_USER_EMAIL_NOT_NULL = new ErrorCode(1_100_016_024, "邮箱不能为空");
+
 
 
     // ========== AUTH 模块 1_100_017_000 ==========
     // ========== AUTH 模块 1_100_017_000 ==========
     ErrorCode MDE_AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1_100_017_001, "登录失败,账号密码不正确");
     ErrorCode MDE_AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1_100_017_001, "登录失败,账号密码不正确");

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/auth/AppMdeAuthController.java

@@ -44,7 +44,7 @@ public class AppMdeAuthController {
 
 
 
 
     @PostMapping("/login")
     @PostMapping("/login")
-    @Operation(summary = "使用手机 + 密码登录")
+    @Operation(summary = "使用手机/邮箱 + 密码登录")
     public CommonResult<AppMdeAuthLoginRespVO> login(@RequestBody @Valid AppMdeAuthLoginReqVO reqVO) {
     public CommonResult<AppMdeAuthLoginRespVO> login(@RequestBody @Valid AppMdeAuthLoginReqVO reqVO) {
         return success(authService.login(reqVO));
         return success(authService.login(reqVO));
     }
     }

+ 3 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/auth/vo/AppMdeAuthLoginReqVO.java

@@ -15,10 +15,9 @@ import javax.validation.constraints.NotEmpty;
 @Data
 @Data
 public class AppMdeAuthLoginReqVO {
 public class AppMdeAuthLoginReqVO {
 
 
-    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300")
-    @NotEmpty(message = "{1_100_016_007}")
-    @Mobile
-    private String phone;
+    @Schema(description = "账户,手机号/邮箱", requiredMode = Schema.RequiredMode.REQUIRED, example = "15601691300")
+    @NotEmpty(message = "{1_100_016_020}")
+    private String account;
 
 
     @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
     @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao")
     @NotEmpty(message = "{1_100_016_019}")
     @NotEmpty(message = "{1_100_016_019}")

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

@@ -20,7 +20,7 @@ public class AppEnterpriseSearchPageReqVO extends PageParam {
     @Schema(description = "企业地点", example = "[]")
     @Schema(description = "企业地点", example = "[]")
     private List<Long> areaIds;
     private List<Long> areaIds;
 
 
-    @Schema(description = "企业类型(menduner_enterprise_type)", example = "[]")
+    @Schema(description = "企业类型", example = "[]")
     private String enterpriseType;
     private String enterpriseType;
 
 
     @Schema(description = "行业信息id集合", example = "[]")
     @Schema(description = "行业信息id集合", example = "[]")

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

@@ -47,7 +47,7 @@ public class AppJobAdvertisedSearchPageReqVO extends PageParam {
     private Long enterpriseId;
     private Long enterpriseId;
 
 
     @Deprecated
     @Deprecated
-    @Schema(description = "企业类型(menduner_enterprise_type)", example = "[]")
+    @Schema(description = "企业类型", example = "[]")
     private List<String> enterpriseType;
     private List<String> enterpriseType;
 
 
     @Schema(description = "行业信息id集合", example = "[]")
     @Schema(description = "行业信息id集合", example = "[]")

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

@@ -59,6 +59,15 @@ public class AppMdeUserController {
         return success(true);
         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")
     @PutMapping("/update-mobile-by-weixin")
     @Operation(summary = "基于微信小程序的授权码,修改用户手机")
     @Operation(summary = "基于微信小程序的授权码,修改用户手机")
     @PreAuthenticated
     @PreAuthenticated

+ 22 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/user/vo/AppMdeUserUpdateEmailReqVO.java

@@ -0,0 +1,22 @@
+package com.citu.module.menduner.system.controller.app.jobhunt.user.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+@Schema(description = "用户 - 绑定修改邮箱 Request VO")
+@Data
+public class AppMdeUserUpdateEmailReqVO {
+
+    @Schema(description = "邮箱", example = "123456789@qq.com")
+    @Email(message = "{1_100_016_022}")
+    @NotBlank(message = "{1_100_016_024}")
+    @Size(max = 255, message = "{1_100_016_023}")
+    private String email;
+
+    // TODO 后续加邮箱验证码
+
+}

+ 3 - 17
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/auth/AppRecruitEnterpriseAuthController.java

@@ -26,6 +26,9 @@ import java.util.Objects;
 
 
 import static com.citu.framework.common.pojo.CommonResult.success;
 import static com.citu.framework.common.pojo.CommonResult.success;
 
 
+/**
+ * TODO 企业登录,目前只能先登录求职者个人用户后,再调用switchLogin登录企业用户
+ **/
 @Tag(name = "招聘端 - 企业用户登录")
 @Tag(name = "招聘端 - 企业用户登录")
 @RestController
 @RestController
 @RequestMapping("/menduner/system/recruit/enterprise/auth")
 @RequestMapping("/menduner/system/recruit/enterprise/auth")
@@ -67,23 +70,6 @@ public class AppRecruitEnterpriseAuthController {
         return success(enterpriseAuthService.refreshToken(accessToken,refreshToken));
         return success(enterpriseAuthService.refreshToken(accessToken,refreshToken));
     }
     }
 
 
-    // ========== 企业登录相关 ==========
-    @PermitAll
-    @PostMapping("/login")
-    @Operation(summary = "企业-使用手机 + 密码登录")
-    public CommonResult<AppMdeAuthLoginRespVO> login(@RequestBody @Valid AppEnterpriseAuthLoginReqVO reqVO) {
-        return success(enterpriseAuthService.login(reqVO));
-    }
-
-    // ========== 短信登录相关 ==========
-
-    @PermitAll
-    @PostMapping("/sms-login")
-    @Operation(summary = "企业-使用手机 + 验证码登录")
-    public CommonResult<AppMdeAuthLoginRespVO> smsLogin(@RequestBody @Valid AppEnterpriseAuthSmsLoginReqVO reqVO) {
-        return success(enterpriseAuthService.smsLogin(reqVO));
-    }
-
     // ========== 自动登录相关 ==========
     // ========== 自动登录相关 ==========
     @PreAuthenticated
     @PreAuthenticated
     @PostMapping("/switch-login")
     @PostMapping("/switch-login")

+ 59 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/enterprise/AppRecruitEnterpriseTalentPoolController.java

@@ -0,0 +1,59 @@
+package com.citu.module.menduner.system.controller.app.recruit.enterprise;
+
+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.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.app.recruit.enterprise.post.AppRecruitEnterprisePostSaveReqVO;
+import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
+import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
+import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
+import com.citu.module.menduner.system.service.person.PersonIntegrationService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static com.citu.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "招聘端 - 企业人才库")
+@RestController
+@RequestMapping("/menduner/system/enterprise-talent-pool")
+@Validated
+@Slf4j
+public class AppRecruitEnterpriseTalentPoolController {
+
+    @Resource
+    private PersonIntegrationService personIntegrationService;
+
+    @PreAuthenticated
+    @GetMapping("/page")
+    @Operation(summary = "分页查询企业人才库信息")
+    public CommonResult<PageResult<PersonInfoRespVO>> page(@Valid PersonInfoPageReqVO reqVO) {
+        return success(personIntegrationService.selectEnterpriseTalentPoolPage(reqVO));
+    }
+
+    @PostMapping("/add")
+    @Operation(summary = "加入人才库")
+    @PreAuthenticated
+    public CommonResult<Boolean> add(@RequestParam("userId") Long userId) {
+        personIntegrationService.addEnterpriseTalentPool(LoginUserContext.getEnterpriseId(),userId);
+        return success(true);
+    }
+
+
+    @PostMapping("/remove")
+    @Operation(summary = "移出人才库")
+    @PreAuthenticated
+    public CommonResult<Boolean> remove(@RequestParam("userId") Long userId) {
+        personIntegrationService.removeEnterpriseTalentPool(LoginUserContext.getEnterpriseId(),userId);
+        return success(true);
+    }
+
+
+
+}

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/interview/vo/AppRecruitInterviewInviteRespVO.java

@@ -22,4 +22,7 @@ public class AppRecruitInterviewInviteRespVO extends InterviewInviteRespVO {
     @Schema(description = "招聘职位信息")
     @Schema(description = "招聘职位信息")
     private AppRecruitJobSimpleRespVO job;
     private AppRecruitJobSimpleRespVO job;
 
 
+    @Schema(description = "是否在企业人才库中")
+    private Boolean inTalentPool;
+
 }
 }

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

@@ -43,8 +43,6 @@ public class EnterpriseBusinessDO extends TenantBaseDO {
     private String name;
     private String name;
     /**
     /**
      * 企业类型
      * 企业类型
-     * <p>
-     * 枚举 {@link TODO menduner_enterprise_type 对应的类}
      */
      */
     private String type;
     private String type;
     /**
     /**

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

@@ -0,0 +1,38 @@
+package com.citu.module.menduner.system.dal.dataobject.enterprise;
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.citu.framework.mybatis.core.dataobject.BaseDO;
+import lombok.*;
+
+/**
+ * 企业人才库 DO
+ *
+ * @author Rayson
+ */
+@TableName("mde_enterprise_talent_pool")
+@KeySequence("mde_enterprise_talent_pool_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EnterpriseTalentPoolDO extends BaseDO {
+
+    /**
+     * id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 所属企业id
+     */
+    private Long enterpriseId;
+    /**
+     * 人才id
+     */
+    private Long userId;
+
+}

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

@@ -0,0 +1,22 @@
+package com.citu.module.menduner.system.dal.mysql.enterprise;
+
+
+import com.citu.framework.mybatis.core.mapper.BaseMapperX;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 企业人才库 Mapper
+ *
+ * @author Rayson
+ */
+@Mapper
+public interface EnterpriseTalentPoolMapper extends BaseMapperX<EnterpriseTalentPoolDO> {
+
+
+    /** 根据企业id和用户id查询是否存在于人才库 */
+    default EnterpriseTalentPoolDO selectByEnterpriseIdAndUserId( Long enterpriseId, Long userId) {
+        return selectOne(EnterpriseTalentPoolDO::getEnterpriseId, enterpriseId, EnterpriseTalentPoolDO::getUserId, userId);
+    }
+
+}

+ 12 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/interview/InterviewInviteMapper.java

@@ -14,6 +14,7 @@ import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisR
 import com.citu.module.menduner.system.controller.base.analysis.RecruitInterviewInviteAnalysisRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitInterviewInviteAnalysisRespVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInvitePageReqVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInvitePageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
 import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
 import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
@@ -108,6 +109,10 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
         query.selectAll(InterviewInviteDO.class);
         query.selectAll(InterviewInviteDO.class);
         query.selectAssociation(PersonInfoDO.class, AppRecruitInterviewInviteRespVO::getPerson);
         query.selectAssociation(PersonInfoDO.class, AppRecruitInterviewInviteRespVO::getPerson);
         query.selectAssociation(JobAdvertisedDO.class, AppRecruitInterviewInviteRespVO::getJob);
         query.selectAssociation(JobAdvertisedDO.class, AppRecruitInterviewInviteRespVO::getJob);
+        // 判断是否加入人才库并设置字段值
+        query.selectFunc("IF(%s IS NOT NULL, TRUE, FALSE)",
+                arg -> arg.accept(EnterpriseTalentPoolDO::getUserId),
+                AppRecruitInterviewInviteRespVO::getInTalentPool);
 
 
         query.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, InterviewInviteDO::getUserId);
         query.innerJoin(PersonInfoDO.class, PersonInfoDO::getUserId, InterviewInviteDO::getUserId);
         // 人才相关的条件
         // 人才相关的条件
@@ -117,6 +122,7 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
         query.likeIfExists(PersonInfoDO::getName, reqVO.getName());
         query.likeIfExists(PersonInfoDO::getName, reqVO.getName());
         query.likeIfExists(PersonInfoDO::getUserId, reqVO.getUserId());
         query.likeIfExists(PersonInfoDO::getUserId, reqVO.getUserId());
 
 
+        // 发布的职位
         query.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, InterviewInviteDO::getJobId);
         query.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, InterviewInviteDO::getJobId);
         query.eq(InterviewInviteDO::getEnterpriseId, enterpriseId);
         query.eq(InterviewInviteDO::getEnterpriseId, enterpriseId);
         query.eq(InterviewInviteDO::getInviteUserId, userId);
         query.eq(InterviewInviteDO::getInviteUserId, userId);
@@ -128,8 +134,14 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
                 .eqIfPresent(InterviewInviteDO::getStatus, reqVO.getStatus())
                 .eqIfPresent(InterviewInviteDO::getStatus, reqVO.getStatus())
                 .eqIfPresent(InterviewInviteDO::getConversationStatus, reqVO.getConversationStatus());
                 .eqIfPresent(InterviewInviteDO::getConversationStatus, reqVO.getConversationStatus());
 
 
+        // 过滤不合适
         setUnfitCandidate(query);
         setUnfitCandidate(query);
 
 
+        query.leftJoin(EnterpriseTalentPoolDO.class,on->
+                on.eq(EnterpriseTalentPoolDO::getUserId, InterviewInviteDO::getUserId)
+                        .eq(EnterpriseTalentPoolDO::getEnterpriseId, enterpriseId)
+                );
+
         query.orderByDesc(InterviewInviteDO::getUpdateTime);
         query.orderByDesc(InterviewInviteDO::getUpdateTime);
 
 
         return selectJoinPage(reqVO, AppRecruitInterviewInviteRespVO.class, query);
         return selectJoinPage(reqVO, AppRecruitInterviewInviteRespVO.class, query);

+ 50 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java

@@ -7,6 +7,7 @@ import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
@@ -40,6 +41,40 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
                 .orderByDesc(PersonInfoDO::getId));
                 .orderByDesc(PersonInfoDO::getId));
     }
     }
 
 
+
+    /** 根据企业id和查询条件获取企业人才库数据分页 **/
+    default PageResult<PersonInfoRespVO> selectEnterpriseTalentPoolPage(Long enterpriseId,PersonInfoPageReqVO reqVO) {
+        MPJLambdaWrapperX<PersonInfoDO> query = new MPJLambdaWrapperX<>();
+        query.selectAsClass(PersonInfoDO.class, PersonInfoRespVO.class);
+
+        // 连接企业人才库表
+        query.innerJoin(EnterpriseTalentPoolDO.class, on->
+                on.eq(EnterpriseTalentPoolDO::getEnterpriseId, enterpriseId)
+                        .eq(EnterpriseTalentPoolDO::getUserId, PersonInfoDO::getUserId)
+                );
+
+        query
+         .likeIfPresent(PersonInfoDO::getName, reqVO.getName())
+                .eqIfPresent(PersonInfoDO::getSex, reqVO.getSex())
+                .likeIfPresent(PersonInfoDO::getPhone, reqVO.getPhone())
+                .likeIfPresent(PersonInfoDO::getEmail, reqVO.getEmail())
+                .eqIfPresent(PersonInfoDO::getWxCode, reqVO.getWxCode())
+                .eqIfPresent(PersonInfoDO::getMaritalStatus, reqVO.getMaritalStatus())
+                .eqIfPresent(PersonInfoDO::getAreaId, reqVO.getAreaId())
+                .eqIfPresent(PersonInfoDO::getJobType, reqVO.getJobType())
+                .eqIfPresent(PersonInfoDO::getJobStatus, reqVO.getJobStatus())
+                .eqIfPresent(PersonInfoDO::getEduType, reqVO.getEduType())
+                .eqIfPresent(PersonInfoDO::getExpType, reqVO.getExpType());
+
+        query.between(null != reqVO.getCreateTime()&& reqVO.getCreateTime().length==2,
+                EnterpriseTalentPoolDO::getCreateTime, reqVO.getCreateTime()[0], reqVO.getCreateTime()[1]);
+
+
+        return selectJoinPage(reqVO, PersonInfoRespVO.class, query);
+
+    }
+
+    /** 根据 userId 获取人才信息 **/
     default PersonInfoDO getByUserId(Long userId) {
     default PersonInfoDO getByUserId(Long userId) {
         return selectOne(PersonInfoDO::getUserId, userId);
         return selectOne(PersonInfoDO::getUserId, userId);
     }
     }
@@ -55,11 +90,15 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
 
 
         if (null != reqVO.getAge()) {
         if (null != reqVO.getAge()) {
             LocalDate now = LocalDate.now(ZoneId.systemDefault());
             LocalDate now = LocalDate.now(ZoneId.systemDefault());
-            // 最大年龄加一天,包含最后一天
-            LocalDate min = now.minusYears(reqVO.getAge()[0]).plusDays(1);
-            LocalDate max = now.minusYears(reqVO.getAge()[1]);
-            query.ge(PersonInfoDO::getBirthday, min);
-            query.le(PersonInfoDO::getBirthday, max);
+            if (reqVO.getAge().length >= 1) {
+                // 最大年龄加一天,包含最后一天
+                LocalDate min = now.minusYears(reqVO.getAge()[0]).plusDays(1);
+                query.ge(PersonInfoDO::getBirthday, min);
+            }
+            if (reqVO.getAge().length == 2) {
+                LocalDate max = now.minusYears(reqVO.getAge()[1]);
+                query.le(PersonInfoDO::getBirthday, max);
+            }
         }
         }
         query.eqIfPresent(PersonInfoDO::getMaritalStatus, reqVO.getMaritalStatus());
         query.eqIfPresent(PersonInfoDO::getMaritalStatus, reqVO.getMaritalStatus());
         query.inIfPresent(PersonInfoDO::getAreaId, reqVO.getAreaIds());
         query.inIfPresent(PersonInfoDO::getAreaId, reqVO.getAreaIds());
@@ -72,8 +111,12 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
 
 
         if (null != reqVO.getPay()) {
         if (null != reqVO.getPay()) {
             query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, PersonInfoDO::getUserId);
             query.leftJoin(JobInterestedDO.class, JobInterestedDO::getUserId, PersonInfoDO::getUserId);
-            query.ge(JobInterestedDO::getPayTo, reqVO.getPay()[0]);
-            query.le(JobInterestedDO::getPayTo, reqVO.getPay()[1]);
+            if (reqVO.getPay().length >= 1) {
+                query.ge(JobInterestedDO::getPayTo, reqVO.getPay()[0]);
+            }
+            if (reqVO.getPay().length == 2) {
+                query.le(JobInterestedDO::getPayTo, reqVO.getPay()[1]);
+            }
         }
         }
         return selectJoinPage(reqVO, PersonInfoRespVO.class, query);
         return selectJoinPage(reqVO, PersonInfoRespVO.class, query);
     }
     }

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/old/a.java

@@ -0,0 +1,9 @@
+package com.citu.module.menduner.system.old;
+
+/**
+ * @author rayson
+ * @description a
+ * @create 2024/9/21 下午3:57
+ **/
+public class a {
+}

+ 24 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/old/dataobject/BaseEntity.java

@@ -0,0 +1,24 @@
+package com.citu.module.menduner.system.old.dataobject;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class BaseEntity implements Serializable, Cloneable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer versionNo;
+
+    private String remarks;
+
+    private String createBy;
+
+    private Integer delFlag;
+
+    private Date createDate;
+
+    private String updateBy;
+
+    private Date updateDate;
+}

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

@@ -93,7 +93,7 @@ public class MdeAuthServiceImpl implements MdeAuthService {
         // 验证不通过
         // 验证不通过
         if (!response.isSuccess()) {
         if (!response.isSuccess()) {
             // 创建登录失败日志(验证码不正确)
             // 创建登录失败日志(验证码不正确)
-            createLoginLog(null, reqVO.getPhone(), LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.CAPTCHA_CODE_ERROR);
+            createLoginLog(null, reqVO.getAccount(), LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.CAPTCHA_CODE_ERROR);
             throw exception(MDE_AUTH_LOGIN_CAPTCHA_CODE_ERROR, response.getRepMsg());
             throw exception(MDE_AUTH_LOGIN_CAPTCHA_CODE_ERROR, response.getRepMsg());
         }
         }
     }
     }
@@ -102,8 +102,9 @@ public class MdeAuthServiceImpl implements MdeAuthService {
     public AppMdeAuthLoginRespVO login(AppMdeAuthLoginReqVO reqVO) {
     public AppMdeAuthLoginRespVO login(AppMdeAuthLoginReqVO reqVO) {
         // 校验验证码
         // 校验验证码
         validateCaptcha(reqVO);
         validateCaptcha(reqVO);
+        LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_MOBILE;
         // 使用手机 + 密码,进行登录。
         // 使用手机 + 密码,进行登录。
-        MdeUserDO user = check(reqVO.getPhone(), reqVO.getPassword());
+        MdeUserDO user = check(logTypeEnum, reqVO.getAccount(), reqVO.getPassword());
 
 
         // 如果 socialType 非空,说明需要绑定社交用户
         // 如果 socialType 非空,说明需要绑定社交用户
         String openid = null;
         String openid = null;
@@ -113,24 +114,30 @@ public class MdeAuthServiceImpl implements MdeAuthService {
         }
         }
 
 
         // 创建 Token 令牌,记录登录日志
         // 创建 Token 令牌,记录登录日志
-        return createTokenAfterLoginSuccess(user, reqVO.getPhone(), LoginLogTypeEnum.LOGIN_MOBILE, openid);
+        return createTokenAfterLoginSuccess(user, reqVO.getAccount(), logTypeEnum, openid);
     }
     }
 
 
-    protected MdeUserDO check(String mobile, String password) {
-        final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_MOBILE;
+    protected MdeUserDO check(LoginLogTypeEnum logTypeEnum, String account, String password) {
         // 校验账号是否存在
         // 校验账号是否存在
-        MdeUserDO user = userService.getUserByPhone(mobile);
-        if (user == null) {
-            createLoginLog(null, mobile, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
+        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);
+        }
+        if (null == user) {
+            createLoginLog(null, account, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
             throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
             throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
         }
         }
         if (!userService.isPasswordMatch(password, user.getPassword())) {
         if (!userService.isPasswordMatch(password, user.getPassword())) {
-            createLoginLog(user.getId(), mobile, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
+            createLoginLog(user.getId(), account, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
             throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
             throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
         }
         }
         // 校验是否禁用
         // 校验是否禁用
         if (ObjectUtil.notEqual(user.getStatus(), MendunerStatusEnum.ENABLE.getStatus())) {
         if (ObjectUtil.notEqual(user.getStatus(), MendunerStatusEnum.ENABLE.getStatus())) {
-            createLoginLog(user.getId(), mobile, logTypeEnum, LoginResultEnum.USER_DISABLED);
+            createLoginLog(user.getId(), account, logTypeEnum, LoginResultEnum.USER_DISABLED);
             throw exception(MDE_AUTH_LOGIN_USER_DISABLED);
             throw exception(MDE_AUTH_LOGIN_USER_DISABLED);
         }
         }
         return user;
         return user;
@@ -283,14 +290,14 @@ public class MdeAuthServiceImpl implements MdeAuthService {
         return user != null ? user.getPhone() : null;
         return user != null ? user.getPhone() : null;
     }
     }
 
 
-    protected void createLoginLog(Long userId, String mobile, LoginLogTypeEnum logType, LoginResultEnum loginResult) {
+    protected void createLoginLog(Long userId, String account, LoginLogTypeEnum logType, LoginResultEnum loginResult) {
         // 插入登录日志
         // 插入登录日志
         LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
         LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
         reqDTO.setLogType(logType.getType());
         reqDTO.setLogType(logType.getType());
         reqDTO.setTraceId(TracerUtils.getTraceId());
         reqDTO.setTraceId(TracerUtils.getTraceId());
         reqDTO.setUserId(userId);
         reqDTO.setUserId(userId);
         reqDTO.setUserType(getUserType().getValue());
         reqDTO.setUserType(getUserType().getValue());
-        reqDTO.setUsername(mobile);
+        reqDTO.setUsername(account);
         reqDTO.setUserAgent(ServletUtils.getUserAgent());
         reqDTO.setUserAgent(ServletUtils.getUserAgent());
         reqDTO.setUserIp(getClientIP());
         reqDTO.setUserIp(getClientIP());
         reqDTO.setResult(loginResult.getResult());
         reqDTO.setResult(loginResult.getResult());
@@ -305,10 +312,10 @@ public class MdeAuthServiceImpl implements MdeAuthService {
         return UserTypeEnum.MEMBER;
         return UserTypeEnum.MEMBER;
     }
     }
 
 
-    protected AppMdeAuthLoginRespVO createTokenAfterLoginSuccess(MdeUserDO user, String phone,
+    protected AppMdeAuthLoginRespVO createTokenAfterLoginSuccess(MdeUserDO user, String userName,
                                                                  LoginLogTypeEnum logType, String openid) {
                                                                  LoginLogTypeEnum logType, String openid) {
         // 插入登陆日志
         // 插入登陆日志
-        createLoginLog(user.getId(), phone, logType, LoginResultEnum.SUCCESS);
+        createLoginLog(user.getId(), userName, logType, LoginResultEnum.SUCCESS);
         // 创建 Token 令牌
         // 创建 Token 令牌
         OAuth2AccessTokenRespDTO accessTokenRespDTO = oauth2TokenApi.createAccessToken(
         OAuth2AccessTokenRespDTO accessTokenRespDTO = oauth2TokenApi.createAccessToken(
                         new OAuth2AccessTokenCreateReqDTO()
                         new OAuth2AccessTokenCreateReqDTO()

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

@@ -15,22 +15,6 @@ import javax.validation.Valid;
  */
  */
 public interface MdeEnterpriseAuthService {
 public interface MdeEnterpriseAuthService {
 
 
-    /**
-     * 手机 + 密码登录
-     *
-     * @param reqVO 登录信息
-     * @return 登录结果
-     */
-    AppMdeAuthLoginRespVO login(@Valid AppEnterpriseAuthLoginReqVO reqVO);
-
-    /**
-     * 手机 + 验证码登陆
-     *
-     * @param reqVO 登陆信息
-     * @return 登录结果
-     */
-    AppMdeAuthLoginRespVO smsLogin(@Valid AppEnterpriseAuthSmsLoginReqVO reqVO);
-
     /**
     /**
      * 切换登录
      * 切换登录
      *
      *

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

@@ -1,18 +1,14 @@
 package com.citu.module.menduner.system.service.auth;
 package com.citu.module.menduner.system.service.auth;
 
 
-import cn.hutool.core.lang.Assert;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.common.enums.UserTypeEnum;
 import com.citu.framework.common.util.monitor.TracerUtils;
 import com.citu.framework.common.util.monitor.TracerUtils;
 import com.citu.framework.common.util.servlet.ServletUtils;
 import com.citu.framework.common.util.servlet.ServletUtils;
-import com.citu.framework.common.util.validation.ValidationUtils;
 import com.citu.framework.security.core.LoginUser;
 import com.citu.framework.security.core.LoginUser;
-import com.citu.module.menduner.system.controller.app.jobhunt.auth.enterprise.AppEnterpriseAuthLoginReqVO;
-import com.citu.module.menduner.system.controller.app.jobhunt.auth.enterprise.AppEnterpriseAuthSmsLoginReqVO;
+import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.controller.app.jobhunt.auth.enterprise.AppEnterpriseAuthSwitchLoginReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.auth.enterprise.AppEnterpriseAuthSwitchLoginReqVO;
-import com.citu.module.menduner.system.controller.app.jobhunt.auth.vo.AppMdeAuthLoginReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.auth.vo.AppMdeAuthLoginRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.auth.vo.AppMdeAuthLoginRespVO;
 import com.citu.module.menduner.system.convert.MdeAuthConvert;
 import com.citu.module.menduner.system.convert.MdeAuthConvert;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
@@ -20,33 +16,23 @@ import com.citu.module.menduner.system.dal.dataobject.user.MdeUserDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.user.MdeUserService;
 import com.citu.module.menduner.system.service.user.MdeUserService;
-import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.system.api.logger.LoginLogApi;
 import com.citu.module.system.api.logger.LoginLogApi;
 import com.citu.module.system.api.logger.dto.LoginLogCreateReqDTO;
 import com.citu.module.system.api.logger.dto.LoginLogCreateReqDTO;
 import com.citu.module.system.api.oauth2.OAuth2TokenApi;
 import com.citu.module.system.api.oauth2.OAuth2TokenApi;
 import com.citu.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
 import com.citu.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
 import com.citu.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO;
 import com.citu.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO;
 import com.citu.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO;
 import com.citu.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO;
-import com.citu.module.system.api.social.SocialUserApi;
-import com.citu.module.system.api.social.dto.SocialUserBindReqDTO;
 import com.citu.module.system.enums.logger.LoginLogTypeEnum;
 import com.citu.module.system.enums.logger.LoginLogTypeEnum;
 import com.citu.module.system.enums.logger.LoginResultEnum;
 import com.citu.module.system.enums.logger.LoginResultEnum;
 import com.citu.module.system.enums.oauth2.OAuth2ClientConstants;
 import com.citu.module.system.enums.oauth2.OAuth2ClientConstants;
-import com.google.common.annotations.VisibleForTesting;
-import com.xingyuv.captcha.model.common.ResponseModel;
-import com.xingyuv.captcha.model.vo.CaptchaVO;
-import com.xingyuv.captcha.service.CaptchaService;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
-import javax.validation.Validator;
 import java.util.Objects;
 import java.util.Objects;
 
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.framework.common.util.servlet.ServletUtils.getClientIP;
 import static com.citu.framework.common.util.servlet.ServletUtils.getClientIP;
-import static com.citu.framework.web.core.util.WebFrameworkUtils.getTerminal;
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
 import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
 
 
 /**
 /**
@@ -64,109 +50,25 @@ public class MdeEnterpriseAuthServiceImpl implements MdeEnterpriseAuthService {
     @Resource
     @Resource
     protected LoginLogApi loginLogApi;
     protected LoginLogApi loginLogApi;
     @Resource
     @Resource
-    protected SocialUserApi socialUserApi;
-    @Resource
     protected OAuth2TokenApi oauth2TokenApi;
     protected OAuth2TokenApi oauth2TokenApi;
-    /**
-     * 验证码的开关,默认为 true
-     */
-    @Value("${citu.captcha.enable:true}")
-    protected Boolean captchaEnable;
-    @Resource
-    protected Validator validator;
-    @Resource
-    protected CaptchaService captchaService;
     @Resource
     @Resource
     private EnterpriseUserBindService userBindService;
     private EnterpriseUserBindService userBindService;
 
 
-    @VisibleForTesting
-    protected void validateCaptcha(AppMdeAuthLoginReqVO reqVO) {
-        // 如果验证码关闭,则不进行校验
-        if (!captchaEnable) {
-            return;
-        }
-        // 校验验证码
-        ValidationUtils.validate(validator, reqVO, AppMdeAuthLoginReqVO.CodeEnableGroup.class);
-        CaptchaVO captchaVO = new CaptchaVO();
-        captchaVO.setCaptchaVerification(reqVO.getCaptchaVerification());
-        ResponseModel response = captchaService.verification(captchaVO);
-        // 验证不通过
-        if (!response.isSuccess()) {
-            // 创建登录失败日志(验证码不正确)
-            createLoginLog(null, reqVO.getPhone(), LoginLogTypeEnum.LOGIN_USERNAME, LoginResultEnum.CAPTCHA_CODE_ERROR);
-            throw exception(MDE_AUTH_LOGIN_CAPTCHA_CODE_ERROR, response.getRepMsg());
-        }
-    }
-
-    @Override
-    @DSTransactional
-    public AppMdeAuthLoginRespVO login(AppEnterpriseAuthLoginReqVO reqVO) {
-        // 校验验证码
-        validateCaptcha(reqVO);
-        // 使用手机 + 密码,进行登录。
-        MdeUserDO user = check(reqVO.getPhone(), reqVO.getPassword());
-        EnterpriseUserBindDO bindUser = check2(reqVO.getEnterpriseId(), user.getId(), reqVO.getPhone(),
-                LoginLogTypeEnum.LOGIN_MOBILE);
-
-        // 如果 socialType 非空,说明需要绑定社交用户
-        String openid = null;
-        if (null != reqVO.getSocialType()) {
-            openid = socialUserApi.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
-                    reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState())).getCheckedData();
-        }
-
-        // 创建 Token 令牌,记录登录日志
-        return createTokenAfterLoginSuccess(
-                bindUser,
-                user,
-                reqVO.getPhone(),
-                LoginLogTypeEnum.LOGIN_MOBILE,
-                openid,
-                reqVO.getEnterpriseId()
-        );
-    }
-
-    @Override
-    @DSTransactional
-    public AppMdeAuthLoginRespVO smsLogin(AppEnterpriseAuthSmsLoginReqVO reqVO) {
-        // 校验验证码
-        String userIp = getClientIP();
-//        smsCodeApi.useSmsCode(MdeAuthConvert.INSTANCE.convert(reqVO, SmsSceneEnum.MENDUNER_LOGIN.getScene(), userIp).setphone(reqVO.getPhone())).getCheckedData();
-
-        // 获得获得注册用户
-        MdeUserDO user = userService.createUserIfAbsent(reqVO.getPhone(), userIp, getTerminal().toString());
-        Assert.notNull(user, "获取用户失败,结果为空");
-        EnterpriseUserBindDO bindUser = check2(reqVO.getEnterpriseId(), user.getId(),
-                null, LoginLogTypeEnum.LOGIN_SMS);
-
-
-        // 如果 socialType 非空,说明需要绑定社交用户
-        String openid = null;
-        if (null != reqVO.getSocialType()) {
-            openid = socialUserApi.bindSocialUser(new SocialUserBindReqDTO(user.getId(), getUserType().getValue(),
-                    reqVO.getSocialType(), reqVO.getSocialCode(), reqVO.getSocialState())).getCheckedData();
-        }
-
-        // 创建 Token 令牌,记录登录日志
-        return createTokenAfterLoginSuccess(bindUser, user, reqVO.getPhone(),
-                LoginLogTypeEnum.LOGIN_SMS, openid, reqVO.getEnterpriseId());
-    }
-
     @Override
     @Override
     @DSTransactional
     @DSTransactional
     public AppMdeAuthLoginRespVO switchLogin(AppEnterpriseAuthSwitchLoginReqVO reqVO) {
     public AppMdeAuthLoginRespVO switchLogin(AppEnterpriseAuthSwitchLoginReqVO reqVO) {
         LoginUser loginUser = LoginUserContext.get();
         LoginUser loginUser = LoginUserContext.get();
         // 查询用户
         // 查询用户
         MdeUserDO user = userService.getMdeUser(loginUser.getId());
         MdeUserDO user = userService.getMdeUser(loginUser.getId());
-        EnterpriseUserBindDO bindUser = check2(reqVO.getEnterpriseId(), user.getId(), user.getPhone(),
-                LoginLogTypeEnum.LOGIN_MOBILE);
+        EnterpriseUserBindDO bindUser = check(reqVO.getEnterpriseId(), user.getId(), user.getPhone(),
+                LoginLogTypeEnum.LOGIN_SWITCH);
 
 
         // 创建 Token 令牌,记录登录日志
         // 创建 Token 令牌,记录登录日志
         AppMdeAuthLoginRespVO resp = createTokenAfterLoginSuccess(
         AppMdeAuthLoginRespVO resp = createTokenAfterLoginSuccess(
                 bindUser,
                 bindUser,
                 user,
                 user,
                 user.getPhone(),
                 user.getPhone(),
-                LoginLogTypeEnum.LOGIN_MOBILE,
+                LoginLogTypeEnum.LOGIN_SWITCH,
                 null,
                 null,
                 reqVO.getEnterpriseId()
                 reqVO.getEnterpriseId()
         );
         );
@@ -174,26 +76,10 @@ public class MdeEnterpriseAuthServiceImpl implements MdeEnterpriseAuthService {
         return resp;
         return resp;
     }
     }
 
 
-    protected MdeUserDO check(String phone, String password) {
-        final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_MOBILE;
-        // 校验账号是否存在
-        MdeUserDO user = userService.getUserByPhone(phone);
-        if (null == user) {
-            createLoginLog(null, phone, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
-            throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
-        }
-        if (!userService.isPasswordMatch(password, user.getPassword())) {
-            createLoginLog(user.getId(), phone, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
-            throw exception(MDE_AUTH_LOGIN_BAD_CREDENTIALS);
-        }
-
-        return user;
-    }
-
-    protected EnterpriseUserBindDO check2(Long enterpriseId,
-                                          Long userId,
-                                          String phone,
-                                          LoginLogTypeEnum logTypeEnum) {
+    protected EnterpriseUserBindDO check(Long enterpriseId,
+                                         Long userId,
+                                         String phone,
+                                         LoginLogTypeEnum logTypeEnum) {
         // 查询绑定用户
         // 查询绑定用户
         EnterpriseUserBindDO bind = userBindService.selectByEnterpriseIdAndUserId(
         EnterpriseUserBindDO bind = userBindService.selectByEnterpriseIdAndUserId(
                 enterpriseId,
                 enterpriseId,

+ 28 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationService.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.service.person;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
+import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
 
 
 /**
 /**
@@ -14,6 +15,7 @@ public interface PersonIntegrationService {
 
 
     /**
     /**
      * 根据id获取人才在线简历详情
      * 根据id获取人才在线简历详情
+     *
      * @param userId 用户id
      * @param userId 用户id
      * @return AppRecruitPersonDetailRespVO
      * @return AppRecruitPersonDetailRespVO
      **/
      **/
@@ -27,8 +29,34 @@ public interface PersonIntegrationService {
 
 
     /**
     /**
      * 人才地图-根据条件查询人才
      * 人才地图-根据条件查询人才
+     *
      * @param reqVO 查询条件
      * @param reqVO 查询条件
      * @return PageResult<PersonInfoRespVO>
      * @return PageResult<PersonInfoRespVO>
      **/
      **/
     PageResult<PersonInfoRespVO> queryPage(PersonMapQueryReqVO reqVO);
     PageResult<PersonInfoRespVO> queryPage(PersonMapQueryReqVO reqVO);
+
+
+    /**
+     * 企业人才库-根据条件查询人才
+     *
+     * @param reqVO 查询条件
+     * @return PageResult<PersonInfoRespVO>
+     **/
+    PageResult<PersonInfoRespVO> selectEnterpriseTalentPoolPage(PersonInfoPageReqVO reqVO);
+
+    /**
+     * 添加人才到企业人才库
+     *
+     * @param enterpriseId 企业id
+     * @param userId       人才id
+     **/
+    void addEnterpriseTalentPool(Long enterpriseId, Long userId);
+
+    /**
+     * 从企业人才库移除人才
+     *
+     * @param enterpriseId 企业id
+     * @param userId       人才id
+     **/
+    void removeEnterpriseTalentPool(Long enterpriseId, Long userId);
 }
 }

+ 43 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/PersonIntegrationServiceImpl.java

@@ -2,15 +2,18 @@ package com.citu.module.menduner.system.service.person;
 
 
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.dict.core.DictFrameworkUtils;
 import com.citu.framework.dict.core.DictFrameworkUtils;
+import com.citu.module.menduner.common.util.LoginUserContext;
 import com.citu.module.menduner.system.api.python.GraphApi;
 import com.citu.module.menduner.system.api.python.GraphApi;
 import com.citu.module.menduner.system.api.python.GraphQueryDTO;
 import com.citu.module.menduner.system.api.python.GraphQueryDTO;
 import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.api.python.GraphSendDTO;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonDetailRespVO;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.PersonMapQueryReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonDetailRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonDetailRespVO;
+import com.citu.module.menduner.system.controller.base.person.info.PersonInfoPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
 import com.citu.module.menduner.system.controller.base.person.info.PersonInfoRespVO;
 import com.citu.module.menduner.system.convert.*;
 import com.citu.module.menduner.system.convert.*;
 import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
 import com.citu.module.menduner.system.dal.dataobject.eduexp.EduExpDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseTalentPoolDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobInterestedDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonSkillDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonSkillDO;
@@ -18,6 +21,7 @@ import com.citu.module.menduner.system.dal.dataobject.projectexp.ProjectExpDO;
 import com.citu.module.menduner.system.dal.dataobject.trainexp.TrainExpDO;
 import com.citu.module.menduner.system.dal.dataobject.trainexp.TrainExpDO;
 import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
 import com.citu.module.menduner.system.dal.dataobject.workexp.WorkExpDO;
 import com.citu.module.menduner.system.dal.mysql.eduexp.EduExpMapper;
 import com.citu.module.menduner.system.dal.mysql.eduexp.EduExpMapper;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseTalentPoolMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobInterestedMapper;
 import com.citu.module.menduner.system.dal.mysql.person.PersonInfoMapper;
 import com.citu.module.menduner.system.dal.mysql.person.PersonInfoMapper;
 import com.citu.module.menduner.system.dal.mysql.person.PersonSkillMapper;
 import com.citu.module.menduner.system.dal.mysql.person.PersonSkillMapper;
@@ -62,6 +66,9 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
     @Resource
     @Resource
     private GraphApi graphApi;
     private GraphApi graphApi;
 
 
+    @Resource
+    private EnterpriseTalentPoolMapper talentPoolMapper;
+
 
 
     @Override
     @Override
     public AppRecruitPersonDetailRespVO detail(Long userId) {
     public AppRecruitPersonDetailRespVO detail(Long userId) {
@@ -188,11 +195,42 @@ public class PersonIntegrationServiceImpl implements PersonIntegrationService {
 
 
     @Override
     @Override
     public PageResult<PersonInfoRespVO> queryPage(PersonMapQueryReqVO reqVO) {
     public PageResult<PersonInfoRespVO> queryPage(PersonMapQueryReqVO reqVO) {
-        Long[] ids = graphApi.query(
-                GraphQueryDTO.builder()
-                        .label(reqVO.getLabels()).type(SyncConstants.PERSON)
-                        .build()
-        ).getCheckedData();
+        Long[] ids = null;
+        if (null != reqVO.getLabels()) {
+            ids = graphApi.query(
+                    GraphQueryDTO.builder()
+                            .label(reqVO.getLabels()).type(SyncConstants.PERSON)
+                            .build()
+            ).getCheckedData();
+        }
         return personInfoMapper.queryPage(reqVO, ids);
         return personInfoMapper.queryPage(reqVO, ids);
     }
     }
+
+    @Override
+    public PageResult<PersonInfoRespVO> selectEnterpriseTalentPoolPage(PersonInfoPageReqVO reqVO) {
+        return personInfoMapper.selectEnterpriseTalentPoolPage(LoginUserContext.getEnterpriseId(), reqVO);
+    }
+
+    @Override
+    public void addEnterpriseTalentPool(Long enterpriseId, Long userId) {
+        EnterpriseTalentPoolDO talentPool = talentPoolMapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
+        if (null != talentPool) {
+            return;
+        }
+        talentPoolMapper.insert(
+                EnterpriseTalentPoolDO.builder()
+                        .enterpriseId(enterpriseId)
+                        .userId(userId)
+                        .build()
+        );
+    }
+
+    @Override
+    public void removeEnterpriseTalentPool(Long enterpriseId, Long userId) {
+        EnterpriseTalentPoolDO talentPool = talentPoolMapper.selectByEnterpriseIdAndUserId(enterpriseId, userId);
+        if (null == talentPool) {
+            return;
+        }
+        talentPoolMapper.deleteById(talentPool.getId());
+    }
 }
 }

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

@@ -73,6 +73,14 @@ public interface MdeUserService {
      */
      */
     MdeUserDO getUserByPhone(String phone);
     MdeUserDO getUserByPhone(String phone);
 
 
+    /**
+     * 通过邮箱查询用户
+     *
+     * @param email 邮箱
+     * @return 用户对象
+     */
+    MdeUserDO getUserByEmail(String email);
+
     /**
     /**
      * 基于手机号创建用户。
      * 基于手机号创建用户。
      * 如果用户已经存在,则直接进行返回
      * 如果用户已经存在,则直接进行返回
@@ -123,6 +131,14 @@ public interface MdeUserService {
      */
      */
     void updateUserPhone(Long userId, AppMdeUserUpdatePhoneReqVO reqVO);
     void updateUserPhone(Long userId, AppMdeUserUpdatePhoneReqVO reqVO);
 
 
+    /**
+     * 绑定/修改邮箱
+     * @param userId 用户编号
+     * @param reqVO 请求信息
+     */
+    void updateUserEmail(Long userId,AppMdeUserUpdateEmailReqVO reqVO);
+
+
     /**
     /**
      * 修改手机,基于微信小程序的授权码
      * 修改手机,基于微信小程序的授权码
      *
      *
@@ -160,12 +176,4 @@ public interface MdeUserService {
      * @param reqVO 请求信息
      * @param reqVO 请求信息
      */
      */
     void resetUserPassword(AppMdeUserResetPasswordReqVO reqVO);
     void resetUserPassword(AppMdeUserResetPasswordReqVO reqVO);
-
-    /**
-     * 获得指定状态的用户们
-     *
-     * @param status 状态
-     * @return 用户们
-     */
-    List<MdeUserDO> getUserListByStatus(String status);
 }
 }

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

@@ -29,6 +29,7 @@ import com.mzt.logapi.service.impl.DiffParseFunction;
 import com.mzt.logapi.starter.annotation.LogRecord;
 import com.mzt.logapi.starter.annotation.LogRecord;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -206,6 +207,11 @@ public class MdeUserServiceImpl implements MdeUserService {
         return mdeUserMapper.selectByPhone(phone);
         return mdeUserMapper.selectByPhone(phone);
     }
     }
 
 
+    @Override
+    public MdeUserDO getUserByEmail(String email) {
+        return mdeUserMapper.selectByEmail(email);
+    }
+
     @Override
     @Override
     @DSTransactional // 单机+多数据源方案,使用 @DSTransactional 保证本地事务,以及数据源的切换
     @DSTransactional // 单机+多数据源方案,使用 @DSTransactional 保证本地事务,以及数据源的切换
     public MdeUserDO createUserIfAbsent(String phone, String registerIp, String terminal) {
     public MdeUserDO createUserIfAbsent(String phone, String registerIp, String terminal) {
@@ -323,6 +329,23 @@ public class MdeUserServiceImpl implements MdeUserService {
         mdeUserMapper.updateById(MdeUserDO.builder().id(userId).phone(reqVO.getPhone()).build());
         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
     @Override
     public void updateUserMobileByWeixin(Long userId, AppMdeUserUpdatePhoneByWeixinReqVO reqVO) {
     public void updateUserMobileByWeixin(Long userId, AppMdeUserUpdatePhoneByWeixinReqVO reqVO) {
         // 1.1 获得对应的手机号信息
         // 1.1 获得对应的手机号信息
@@ -400,8 +423,4 @@ public class MdeUserServiceImpl implements MdeUserService {
         LogRecordContext.putVariable("mde-newPassword", updateObj.getPassword());
         LogRecordContext.putVariable("mde-newPassword", updateObj.getPassword());
     }
     }
 
 
-    @Override
-    public List<MdeUserDO> getUserListByStatus(String status) {
-        return mdeUserMapper.selectListByStatus(status);
-    }
 }
 }

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

@@ -111,6 +111,10 @@
 1_100_016_018=User ID cannot be empty
 1_100_016_018=User ID cannot be empty
 1_100_016_019=Password cannot be empty
 1_100_016_019=Password cannot be empty
 1_100_016_020=User account cannot be empty
 1_100_016_020=User account cannot be empty
+1_100_016_021=This email has been used by another user
+1_100_016_022=Email format incorrect
+1_100_016_023=Email length cannot exceed 255 characters
+1_100_016_024=Email cannot be empty
 # ========== AUTH 模块 1_100_017_000 ==========
 # ========== AUTH 模块 1_100_017_000 ==========
 1_100_017_001=Login failed, incorrect account and password
 1_100_017_001=Login failed, incorrect account and password
 1_100_017_002=Login failed, account disabled
 1_100_017_002=Login failed, account disabled

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

@@ -111,6 +111,10 @@
 1_100_016_018=用户编号不能为空
 1_100_016_018=用户编号不能为空
 1_100_016_019=密码不能为空
 1_100_016_019=密码不能为空
 1_100_016_020=用户账号不能为空
 1_100_016_020=用户账号不能为空
+1_100_016_021=该邮箱已被其他用户使用
+1_100_016_022=邮箱格式不正确
+1_100_016_023=邮箱长度不能超过 255 个字符
+1_100_016_024=邮箱不能为空
 # ========== AUTH 模块 1_100_017_000 ==========
 # ========== AUTH 模块 1_100_017_000 ==========
 1_100_017_001=登录失败,账号密码不正确
 1_100_017_001=登录失败,账号密码不正确
 1_100_017_002=登录失败,账号被禁用
 1_100_017_002=登录失败,账号被禁用