Kaynağa Gözat

1、解决面试邀约不合适的记录显示出来问题

rayson 1 yıl önce
ebeveyn
işleme
d3e4f050eb

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

@@ -1,7 +1,6 @@
 package com.citu.module.menduner.system.dal.mysql.interview;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -16,7 +15,9 @@ import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 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.person.PersonInfoDO;
+import com.citu.module.menduner.system.dal.dataobject.unfit.UnfitCandidateDO;
 import com.citu.module.menduner.system.enums.interview.InterviewInviteStatusEnum;
+import com.citu.module.menduner.system.enums.unfit.UnfitTypeEnum;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.time.LocalDateTime;
@@ -93,12 +94,29 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
                 .eqIfPresent(InterviewInviteDO::getStatus, reqVO.getStatus())
                 .eqIfPresent(InterviewInviteDO::getConversationStatus, reqVO.getConversationStatus());
 
+        setUnfitCandidate(query);
+
         query.orderByDesc(InterviewInviteDO::getUpdateTime);
 
         return selectJoinPage(reqVO, AppAdminInterviewInviteRespVO.class, query);
     }
 
-    /** 按时间分组统计面试邀请的数量 **/
+    /**
+     * 过滤不合适的候选人
+     **/
+    default void setUnfitCandidate(MPJLambdaWrapperX<InterviewInviteDO> wrapper) {
+        // 不合适的候选人表 过滤不合适的数据
+        wrapper.leftJoin(UnfitCandidateDO.class, on ->
+                on.eq(UnfitCandidateDO::getType, UnfitTypeEnum.INTERVIEW.getStatus())
+                        .eq(UnfitCandidateDO::getBizId, InterviewInviteDO::getId)
+        );
+
+        wrapper.isNull(UnfitCandidateDO::getId);
+    }
+
+    /**
+     * 按时间分组统计面试邀请的数量
+     **/
     default List<CommonRespVO> getCountByTime(Long enterpriseId, Long userId) {
         MPJLambdaWrapperX<InterviewInviteDO> query = new MPJLambdaWrapperX<>();
         query.selectFunc("DATE(%s)", arg -> arg.accept(InterviewInviteDO::getTime), "`key`");
@@ -111,7 +129,7 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
     }
 
 
-    default List<InterviewInviteDO> getApproachingInterviewList(){
+    default List<InterviewInviteDO> getApproachingInterviewList() {
         // 获取当前时间
         LocalDateTime now = LocalDateTime.now();