Pārlūkot izejas kodu

1、解决已知bug
2、增加获取用户信息方法

rayson 1 gadu atpakaļ
vecāks
revīzija
15d5011ba3
20 mainītis faili ar 346 papildinājumiem un 27 dzēšanām
  1. 25 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/user/UserApi.java
  2. 22 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/user/UserInfoReqDTO.java
  3. 50 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/user/UserInfoRespDTO.java
  4. 55 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/api/user/UserApiImpl.java
  5. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/interview/AppInterviewInviteController.java
  6. 30 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/interview/vo/AppInterviewInviteRespVO.java
  7. 2 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/person/skill/AppPersonSkillSaveReqVO.java
  8. 0 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/interview/vo/AppAdminInterviewInviteRespVO.java
  9. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/AppAdminPersonCvController.java
  10. 5 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/interview/InterviewInviteRespVO.java
  11. 26 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/enterprise/EnterpriseUserBindMapper.java
  12. 19 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/interview/InterviewInviteMapper.java
  13. 2 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/person/PersonInfoMapper.java
  14. 18 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/unfit/UnfitCandidateMapper.java
  15. 10 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteService.java
  16. 20 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteServiceImpl.java
  17. 2 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/skill/PersonSkillServiceImpl.java
  18. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/unfit/UnfitCandidateService.java
  19. 4 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/unfit/UnfitCandidateServiceImpl.java
  20. 42 0
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/userapi/UserApiTest.java

+ 25 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/user/UserApi.java

@@ -0,0 +1,25 @@
+package com.citu.module.menduner.system.api.user;
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.module.menduner.system.enums.ApiConstants;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Collection;
+import java.util.List;
+
+@FeignClient(name = ApiConstants.NAME)
+@Tag(name = "RPC 服务 - 门墩儿用户url")
+public interface UserApi {
+
+    String PREFIX = ApiConstants.PREFIX + "/user";
+
+
+    @GetMapping(PREFIX + "/get/by/list")
+    @Operation(summary = "获取用户信息")
+    CommonResult<List<UserInfoRespDTO>> getUserInfo(@RequestParam("req") Collection<UserInfoReqDTO> req);
+
+}

+ 22 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/user/UserInfoReqDTO.java

@@ -0,0 +1,22 @@
+package com.citu.module.menduner.system.api.user;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Data
+@Schema(description = "用户信息 REQ DTO VO")
+public class UserInfoReqDTO {
+    // 常量 0 求职端用户 | 1 企业端用户
+    public static final int USER_TYPE_USER = 0;
+    public static final int USER_TYPE_ENTERPRISE = 1;
+
+    @Schema(description = "用户类型(0 求职端用户 | 1 企业端用户)", example = "2")
+    private int userType;
+
+    @Schema(description = "企业id,userType = USER_TYPE_USER 不填", example = "2")
+    private Long enterpriseId;
+
+    @Schema(description = "用户id", example = "2")
+    private Long userId;
+
+}

+ 50 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/user/UserInfoRespDTO.java

@@ -0,0 +1,50 @@
+package com.citu.module.menduner.system.api.user;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@Schema(description = "用户信息 RESP DTO VO")
+public class UserInfoRespDTO {
+
+    // ========== 企业基本信息 ==========
+    @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "616")
+    private Long enterpriseId;
+
+    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "616")
+    private String enterpriseName;
+
+    @Schema(description = "企业简称", requiredMode = Schema.RequiredMode.REQUIRED, example = "616")
+    private String enterpriseAnotherName;
+
+    @Schema(description = "企业logo地址")
+    private String logoUrl;
+
+    // ========== 用户信息 ==========
+
+    @Schema(description = "用户id", example = "23317")
+    private Long userId;
+
+    @Schema(description = "名称", example = "x女士")
+    private String name;
+
+    @Schema(description = "用户性别")
+    private String sex;
+
+    @Schema(description = "头像地址")
+    private String avatar;
+
+    // ========== 企业用户岗位信息 ==========
+
+    @Schema(description = "岗位缩写")
+    private String postCode;
+
+    @Schema(description = "岗位中文名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String postNameCn;
+
+    @Schema(description = "岗位英文", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String postNameEn;
+
+}

+ 55 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/api/user/UserApiImpl.java

@@ -0,0 +1,55 @@
+package com.citu.module.menduner.system.api.user;
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseUserBindMapper;
+import com.citu.module.menduner.system.dal.mysql.person.PersonInfoMapper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+@RestController // 提供 RESTful API 接口,给 Feign 调用
+@Validated
+public class UserApiImpl implements UserApi {
+
+    @Resource
+    private PersonInfoMapper personMapper;
+
+    @Resource
+    private EnterpriseUserBindMapper bindMapper;
+
+
+    @Override
+    public CommonResult<List<UserInfoRespDTO>> getUserInfo(Collection<UserInfoReqDTO> req) {
+        List<UserInfoRespDTO> list = new ArrayList<>();
+        for (UserInfoReqDTO dto : req) {
+            UserInfoRespDTO respDTO = new UserInfoRespDTO();
+            respDTO.setUserId(dto.getUserId());
+            if (UserInfoReqDTO.USER_TYPE_USER == dto.getUserType()) {
+                // 平台用户
+                PersonInfoDO personInfo = personMapper.selectOne(PersonInfoDO::getUserId, dto.getUserId());
+                if (null != personInfo) {
+                    respDTO.setAvatar(personInfo.getAvatar());
+                    respDTO.setName(personInfo.getName());
+                    respDTO.setSex(personInfo.getSex());
+                }
+
+            }
+            if (UserInfoReqDTO.USER_TYPE_ENTERPRISE == dto.getUserType()) {
+                // 企业用户
+                UserInfoRespDTO info = bindMapper.selectUserInfo(dto.getEnterpriseId(), dto.getUserId());
+                if (null != info) {
+                    respDTO = info;
+                }
+            }
+
+            list.add(respDTO);
+
+        }
+        return CommonResult.success(list);
+    }
+}

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/interview/AppInterviewInviteController.java

@@ -1,7 +1,10 @@
 package com.citu.module.menduner.system.controller.app.interview;
 
 import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.pojo.PageParam;
+import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.system.controller.app.interview.vo.AppInterviewInviteRespVO;
 import com.citu.module.menduner.system.controller.appadmin.interview.vo.AppAdminInterviewInviteReqCancellationVO;
 import com.citu.module.menduner.system.controller.appadmin.interview.vo.AppAdminInterviewInviteReqConsentVO;
 import com.citu.module.menduner.system.service.interview.InterviewInviteService;
@@ -33,6 +36,13 @@ public class AppInterviewInviteController {
         return success(true);
     }
 
+    @PreAuthenticated
+    @GetMapping("/page")
+    @Operation(summary = "获取面试日程分页")
+    public CommonResult<PageResult<AppInterviewInviteRespVO>> page(@Valid PageParam reqVO) {
+        return success(service.page(reqVO));
+    }
+
     @PreAuthenticated
     @PostMapping("/reject")
     @Operation(summary = "拒绝邀约面试")

+ 30 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/interview/vo/AppInterviewInviteRespVO.java

@@ -0,0 +1,30 @@
+package com.citu.module.menduner.system.controller.app.interview.vo;
+
+import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseBaseSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.interview.InterviewInviteRespVO;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "menduner - 面试日程 Response VO")
+@Data
+public class AppInterviewInviteRespVO extends InterviewInviteRespVO {
+
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+    @Schema(description = "联系人信息")
+    private EnterpriseUserContactRespVO contact;
+
+    @Schema(description = "招聘职位信息")
+    private JobAdvertisedSimpleRespVO job;
+
+    @Schema(description = "招聘企业信息")
+    private EnterpriseBaseSimpleRespVO enterprise;
+
+
+}

+ 2 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/person/skill/AppPersonSkillSaveReqVO.java

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 @Schema(description = "menduner - 人才技能保存 Request VO")
 @Data
@@ -12,7 +13,7 @@ public class AppPersonSkillSaveReqVO {
     @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24591")
     private Long id;
 
-    @NotBlank(message = "{1_100_013_002}")
+    @NotNull(message = "{1_100_013_002}")
     @Schema(description = "技能id", example = "1")
     private Long skillId;
 

+ 0 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/interview/vo/AppAdminInterviewInviteRespVO.java

@@ -1,12 +1,9 @@
 package com.citu.module.menduner.system.controller.appadmin.interview.vo;
 
 
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.citu.module.menduner.system.controller.appadmin.job.vo.AppAdminJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInviteRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
-import com.citu.module.menduner.system.controller.base.person.info.PersonSimpleRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -14,7 +11,6 @@ import java.time.LocalDateTime;
 
 @Schema(description = "menduner - 面试邀请 Response VO")
 @Data
-@ExcelIgnoreUnannotated
 public class AppAdminInterviewInviteRespVO extends InterviewInviteRespVO {
 
     @Schema(description = "更新时间")

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/appadmin/person/AppAdminPersonCvController.java

@@ -104,8 +104,8 @@ public class AppAdminPersonCvController {
     @PreAuthenticated
     @PostMapping("/unfit/cancellation")
     @Operation(summary = "取消淘汰,不合适")
-    public CommonResult<Boolean> cancellation(@RequestBody @Valid AppAdminUnfitCandidateSaveReqVO reqVO) {
-        return success(unfitCandidateService.cancellation(reqVO));
+    public CommonResult<Boolean> cancellation(@RequestParam("id") Long id) {
+        return success(unfitCandidateService.cancellation(id));
     }
 
 

+ 5 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/interview/InterviewInviteRespVO.java

@@ -18,17 +18,17 @@ public class InterviewInviteRespVO {
     private Long id;
 
     @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5001")
-    @ExcelProperty("企业id")
+    @ExcelProperty("邀请企业id")
     private Long enterpriseId;
 
-    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13895")
-    @ExcelProperty("受邀用户id")
-    private Long userId;
-
     @Schema(description = "邀请用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "7105")
     @ExcelProperty("邀请用户id")
     private Long inviteUserId;
 
+    @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13895")
+    @ExcelProperty("受邀用户id")
+    private Long userId;
+
     @Schema(description = "面试岗位", requiredMode = Schema.RequiredMode.REQUIRED, example = "7193")
     @ExcelProperty("面试岗位")
     private Long jobId;

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

@@ -5,20 +5,17 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
+import com.citu.module.menduner.system.api.user.UserInfoRespDTO;
 import com.citu.module.menduner.system.controller.app.job.vo.AppJobCvLookRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminEnterpriseUserRespVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserPageReqVO;
 import com.citu.module.menduner.system.controller.appadmin.user.vo.AppAdminUserRespVO;
-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.EnterpriseUserBindPageReqVO;
-import com.citu.module.menduner.system.controller.base.enterprise.post.EnterprisePostSimpleRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
-import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
-import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -141,4 +138,29 @@ public interface EnterpriseUserBindMapper extends BaseMapperX<EnterpriseUserBind
     }
 
 
+    default UserInfoRespDTO selectUserInfo(Long enterpriseId, Long userId) {
+        MPJLambdaWrapperX<EnterpriseUserBindDO> wrapper = new MPJLambdaWrapperX<>();
+        wrapper.selectAsClass(EnterpriseDO.class, UserInfoRespDTO.class);
+
+        wrapper.selectAs(EnterpriseDO::getId, UserInfoRespDTO::getEnterpriseId);
+        wrapper.selectAs(EnterpriseDO::getName, UserInfoRespDTO::getEnterpriseName);
+        wrapper.selectAs(EnterpriseDO::getAnotherName, UserInfoRespDTO::getEnterpriseAnotherName);
+        wrapper.selectAs(EnterpriseDO::getLogoUrl, UserInfoRespDTO::getLogoUrl);
+
+        wrapper.selectAs(EnterprisePostDO::getCode, UserInfoRespDTO::getPostCode);
+        wrapper.selectAs(EnterprisePostDO::getNameCn, UserInfoRespDTO::getPostNameCn);
+        wrapper.selectAs(EnterprisePostDO::getNameEn, UserInfoRespDTO::getPostNameEn);
+
+        wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, EnterpriseUserBindDO::getEnterpriseId);
+        wrapper.leftJoin(EnterprisePostDO.class, EnterprisePostDO::getId, EnterpriseUserBindDO::getPostId);
+
+        wrapper.eq(EnterpriseUserBindDO::getEnterpriseId, enterpriseId);
+        wrapper.eq(EnterpriseUserBindDO::getUserId, userId);
+
+        return selectJoinOne(UserInfoRespDTO.class, wrapper);
+
+
+    }
+
+
 }

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

@@ -1,17 +1,21 @@
 package com.citu.module.menduner.system.dal.mysql.interview;
 
 
+import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
+import com.citu.module.menduner.system.controller.app.interview.vo.AppInterviewInviteRespVO;
 import com.citu.module.menduner.system.controller.appadmin.interview.vo.AppAdminInterviewInviteReqPageVO;
 import com.citu.module.menduner.system.controller.appadmin.interview.vo.AppAdminInterviewInviteRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 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.EnterprisePostDO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 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.JobCvRelDO;
 import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -39,6 +43,20 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
                 .orderByDesc(InterviewInviteDO::getId));
     }
 
+    default PageResult<AppInterviewInviteRespVO> page(PageParam reqVO, Long userId) {
+        MPJLambdaWrapperX<InterviewInviteDO> query = new MPJLambdaWrapperX<>();
+        query.selectAll(InterviewInviteDO.class);
+        query.selectAssociation(JobAdvertisedDO.class, AppInterviewInviteRespVO::getJob);
+        query.selectAssociation(EnterpriseDO.class, AppInterviewInviteRespVO::getEnterprise);
+
+        query.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, InterviewInviteDO::getJobId);
+        query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId);
+
+        query.eq(InterviewInviteDO::getUserId, userId);
+
+        return selectJoinPage(reqVO, AppInterviewInviteRespVO.class, query);
+    }
+
     default PageResult<AppAdminInterviewInviteRespVO> page(AppAdminInterviewInviteReqPageVO reqVO,
                                                            Long enterpriseId, Long userId) {
         MPJLambdaWrapperX<InterviewInviteDO> query = new MPJLambdaWrapperX<>();

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

@@ -34,4 +34,6 @@ public interface PersonInfoMapper extends BaseMapperX<PersonInfoDO> {
     }
 
 
+
+
 }

+ 18 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/unfit/UnfitCandidateMapper.java

@@ -21,16 +21,32 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface UnfitCandidateMapper extends BaseMapperX<UnfitCandidateDO> {
 
-    default UnfitCandidateDO get(Long enterpriseId, Long userId, Long jobId, Long bizId, String type) {
+    default UnfitCandidateDO get(Long enterpriseId,
+                                 Long publishUserId,
+                                 Long userId,
+                                 Long jobId,
+                                 Long bizId,
+                                 String type) {
         return selectOne(new LambdaQueryWrapperX<UnfitCandidateDO>()
                 .eq(UnfitCandidateDO::getJobId, jobId)
                 .eq(UnfitCandidateDO::getBizId, bizId)
                 .eq(UnfitCandidateDO::getType, type)
-                .eq(UnfitCandidateDO::getPublishUserId, userId)
+                .eq(UnfitCandidateDO::getUserId, userId)
+                .eq(UnfitCandidateDO::getPublishUserId, publishUserId)
                 .eq(UnfitCandidateDO::getEnterpriseId, enterpriseId)
         );
     }
 
+    default UnfitCandidateDO get(Long enterpriseId,
+                                 Long publishUserId,
+                                 Long id) {
+        return selectOne(new LambdaQueryWrapperX<UnfitCandidateDO>()
+                .eq(UnfitCandidateDO::getPublishUserId, publishUserId)
+                .eq(UnfitCandidateDO::getEnterpriseId, enterpriseId)
+                .eq(UnfitCandidateDO::getId, id)
+        );
+    }
+
     default PageResult<AppAdminUnfitCandidateRespVO> unfitPage(AppAdminUnfitCandidatePageReqVO reqVO) {
         // 职位投递userId inner 招聘职位userId and 职位投递userId inner 人才信息userId
         MPJLambdaWrapperX<UnfitCandidateDO> wrapper = new MPJLambdaWrapperX<>();

+ 10 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteService.java

@@ -1,7 +1,9 @@
 package com.citu.module.menduner.system.service.interview;
 
 
+import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
+import com.citu.module.menduner.system.controller.app.interview.vo.AppInterviewInviteRespVO;
 import com.citu.module.menduner.system.controller.appadmin.interview.vo.*;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInvitePageReqVO;
@@ -71,6 +73,14 @@ public interface InterviewInviteService {
      */
     void reject(Long id);
 
+    /**
+     * 获取当前个人用户的面试信息分页
+     *
+     * @param reqVO 分页查询
+     * @return 面试日程分页
+     */
+    PageResult<AppInterviewInviteRespVO> page(PageParam reqVO);
+
     // ========== 招聘端 ==========
     /**
      * 获取当前企业面试日期的面试数量

+ 20 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/interview/InterviewInviteServiceImpl.java

@@ -2,18 +2,23 @@ package com.citu.module.menduner.system.service.interview;
 
 
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+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.security.core.LoginUser;
 import com.citu.module.menduner.common.util.LoginUserContext;
+import com.citu.module.menduner.system.controller.app.interview.vo.AppInterviewInviteRespVO;
 import com.citu.module.menduner.system.controller.appadmin.interview.vo.*;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
+import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInvitePageReqVO;
 import com.citu.module.menduner.system.controller.base.interview.InterviewInviteSaveReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterprisePostDO;
 import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
 import com.citu.module.menduner.system.dal.mysql.interview.InterviewInviteMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.enums.interview.InterviewInviteStatusEnum;
+import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
 import com.citu.module.menduner.system.service.hire.HireCommissionRatioService;
 import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
 import com.citu.module.menduner.system.service.record.UserAccountRecordService;
@@ -38,6 +43,9 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
     @Resource
     private InterviewInviteMapper mapper;
 
+    @Resource
+    private EnterpriseUserBindService userBindService;
+
     @Resource
     private HireCommissionRatioService ratioService;
 
@@ -126,6 +134,18 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
         );
     }
 
+    @Override
+    public PageResult<AppInterviewInviteRespVO> page(PageParam reqVO) {
+        PageResult<AppInterviewInviteRespVO> result =  mapper.page(reqVO, LoginUserContext.getUserId());
+        result.getList().forEach(resp -> {
+            EnterpriseUserContactRespVO contactRespVO = userBindService
+                    .getContact(resp.getEnterpriseId(), resp.getInviteUserId());
+            // 设置联系人
+            resp.setContact(contactRespVO);
+        });
+        return result;
+    }
+
     @Override
     public PageResult<AppAdminInterviewInviteRespVO> page(AppAdminInterviewInviteReqPageVO reqVO) {
         LoginUser loginUser = LoginUserContext.get();

+ 2 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/person/skill/PersonSkillServiceImpl.java

@@ -91,13 +91,12 @@ public class PersonSkillServiceImpl implements PersonSkillService {
         if (personSkillMapper.existByUserIdAndSkillId(userId, reqVO.getId(), reqVO.getSkillId())) {
             throw exception(MDE_USER_SKILL_EXISTS);
         }
-        PersonSkillDO entity = personSkillMapper.selectByUserIdAndSkillId(userId, reqVO.getSkillId());
         PersonSkillDO personSkillDO = BeanUtils.toBean(reqVO, PersonSkillDO.class);
         personSkillDO.setUserId(userId);
         if (null == reqVO.getId()) {
-            personSkillMapper.insert(personSkillDO);
+             personSkillMapper.insert(personSkillDO);
         } else {
-            personSkillDO.setId(entity.getId());
+            personSkillDO.setId(reqVO.getId());
             personSkillMapper.updateById(personSkillDO);
         }
         return true;

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/unfit/UnfitCandidateService.java

@@ -18,8 +18,8 @@ public interface UnfitCandidateService {
 
     /**
      * 取消 淘汰 不合适
-     * @param reqVO 不合适
+     * @param id id
      * @return boolean
      **/
-    boolean cancellation(AppAdminUnfitCandidateSaveReqVO reqVO);
+    boolean cancellation(Long id);
 }

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

@@ -33,7 +33,7 @@ public class UnfitCandidateServiceImpl implements UnfitCandidateService {
         Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
         Long userId = LoginUserContext.getUserId(loginUser);
         UnfitCandidateDO exist =
-                mapper.get(enterpriseId, userId, reqVO.getJobId(), reqVO.getBizId(), reqVO.getType());
+                mapper.get(enterpriseId, userId, reqVO.getUserId(), reqVO.getJobId(), reqVO.getBizId(), reqVO.getType());
         if (null != exist) {
             throw exception(UNFIT_CANDIDATE_ALREADY_UNFIT);
         }
@@ -44,6 +44,7 @@ public class UnfitCandidateServiceImpl implements UnfitCandidateService {
                 .bizId(reqVO.getBizId())
                 .enterpriseId(enterpriseId)
                 .publishUserId(userId)
+                .userId(reqVO.getUserId())
                 .build());
 
         return true;
@@ -51,12 +52,12 @@ public class UnfitCandidateServiceImpl implements UnfitCandidateService {
 
     @Override
     @DSTransactional
-    public boolean cancellation(AppAdminUnfitCandidateSaveReqVO reqVO) {
+    public boolean cancellation(Long id) {
         LoginUser loginUser = LoginUserContext.get();
         Long enterpriseId = LoginUserContext.getEnterpriseId(loginUser);
         Long userId = LoginUserContext.getUserId(loginUser);
         UnfitCandidateDO exist =
-                mapper.get(enterpriseId, userId, reqVO.getJobId(), reqVO.getBizId(), reqVO.getType());
+                mapper.get(enterpriseId, userId, id);
         if (null != exist) {
             mapper.deleteById(exist.getId());
         }

+ 42 - 0
menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/userapi/UserApiTest.java

@@ -0,0 +1,42 @@
+package com.citu.module.menduner.system.service.userapi;
+
+import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.test.core.ut.BaseMockitoUnitTest;
+import com.citu.module.menduner.system.api.user.UserApi;
+import com.citu.module.menduner.system.api.user.UserInfoReqDTO;
+import com.citu.module.menduner.system.api.user.UserInfoRespDTO;
+import org.mockito.Mock;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class UserApiTest extends BaseMockitoUnitTest {
+
+    @Mock
+    private UserApi usersApi;
+
+
+    @org.junit.jupiter.api.Test
+    public void test1() {
+
+        List<UserInfoReqDTO> list = new ArrayList<>();
+        UserInfoReqDTO userInfoReqDTO1 = new UserInfoReqDTO();
+        userInfoReqDTO1.setUserId(1L);
+        userInfoReqDTO1.setUserType(UserInfoReqDTO.USER_TYPE_USER);
+
+        list.add(userInfoReqDTO1);
+
+        UserInfoReqDTO userInfoReqDTO2 = new UserInfoReqDTO();
+        userInfoReqDTO2.setUserId(1L);
+        userInfoReqDTO2.setEnterpriseId(1L);
+        userInfoReqDTO2.setUserType(UserInfoReqDTO.USER_TYPE_ENTERPRISE);
+
+        list.add(userInfoReqDTO2);
+
+        CommonResult<List<UserInfoRespDTO>> result = usersApi.getUserInfo(list);
+        System.out.println(result);
+        System.out.println(result.getCheckedData());
+    }
+
+}