Selaa lähdekoodia

1、完善招聘会第一版功能

rayson 5 kuukautta sitten
vanhempi
commit
0ee1263ef1
28 muutettua tiedostoa jossa 195 lisäystä ja 108 poistoa
  1. 2 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  2. 4 5
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobSeekStatusEnum.java
  3. 19 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobSourceEnum.java
  4. 2 21
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/fair/FairController.java
  5. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/interview/vo/AppRecruitInterviewInviteReqPageVO.java
  6. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/interview/vo/AppRecruitInterviewInviteReqSaveVO.java
  7. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobSaveReqVO.java
  8. 0 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/AppRecruitPersonCvController.java
  9. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/unfit/AppRecruitUnfitCandidatePageReqVO.java
  10. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/FairWhiteDetailRespVO.java
  11. 8 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedRespVO.java
  12. 6 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedSimpleRespVO.java
  13. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/unfit/UnfitCandidateRespVO.java
  14. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/unfit/UnfitCandidateSaveReqVO.java
  15. 12 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/job/JobAdvertisedDO.java
  16. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/unfit/UnfitCandidateDO.java
  17. 15 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairWhiteMapper.java
  18. 1 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/interview/InterviewInviteMapper.java
  19. 8 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  20. 2 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/unfit/UnfitCandidateMapper.java
  21. 2 11
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairService.java
  22. 7 44
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java
  23. 17 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java
  24. 40 13
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  25. 1 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/unfit/UnfitCandidateServiceImpl.java
  26. 1 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_GB.properties
  27. 1 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_en_US.properties
  28. 1 0
      menduner/menduner-system-biz/src/main/resources/i18n/messages_zh_CN.properties

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

@@ -322,6 +322,8 @@ public interface ErrorCodeConstants {
     ErrorCode MDE_JOB_ADVERTISED_STATUS_CLOSE_ERROR = new ErrorCode(1_100_025_015, "职位已关闭,请勿重复操作");
 
     ErrorCode MDE_JOB_ADVERTISED_TIME_ERROR_24 = new ErrorCode(1_100_025_016, "职位发布时间超出24小时,无法编辑");
+
+    ErrorCode MDE_JOB_ADVERTISED_SOURCE_ID_NOT_NULL = new ErrorCode(1_100_025_017, "来源方关联id不能为空");
     // ========== 企业招聘者浏览 1_100_026_000 ==========
     ErrorCode ENTERPRISE_USER_LOOK_NOT_EXISTS = new ErrorCode(1_100_026_001, "企业招聘者浏览不存在");
 

+ 4 - 5
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobSeekStatusEnum.java

@@ -1,6 +1,5 @@
 package com.citu.module.menduner.system.enums.job;
 
-import com.citu.module.menduner.system.enums.person.PersonSexEnum;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
@@ -10,10 +9,10 @@ import lombok.Getter;
 @Getter
 @AllArgsConstructor
 public enum JobSeekStatusEnum {
-    LEAVE("0","离职"),
-    IN_MONTH("1","月内到岗"),
-    CONSIDER("2","考虑机会"),
-    NOT_CONSIDER("3","暂不考虑");
+    LEAVE("0", "离职"),
+    IN_MONTH("1", "月内到岗"),
+    CONSIDER("2", "考虑机会"),
+    NOT_CONSIDER("3", "暂不考虑");
 
     /**
      * 状态值

+ 19 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobSourceEnum.java

@@ -0,0 +1,19 @@
+package com.citu.module.menduner.system.enums.job;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 职位来源(0职位管理 |2众聘职位 | 1招聘会)
+ **/
+@Getter
+@AllArgsConstructor
+public enum JobSourceEnum {
+    MANAGER("0", "职位管理"),
+    HIRE("1", "众聘职位"),
+    FAIR("2", "招聘会");
+
+    private final String type;
+    private final String name;
+
+}

+ 2 - 21
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/fair/FairController.java

@@ -111,13 +111,8 @@ public class FairController {
 
     @GetMapping("/get-white-enterprise")
     @Operation(summary = "获得招聘会白名单企业")
-    public CommonResult<PageResult<FairWhiteRespVO>> page(@Valid FairWhitePageReqVO reqVO) {
-        PageResult<FairWhiteDO> fairWhiteList = fairService.page(reqVO);
-        PageResult<FairWhiteRespVO> resp = BeanUtils.toBean(fairWhiteList, FairWhiteRespVO.class);
-        for (FairWhiteRespVO fairWhiteRespVO : resp.getList()) {
-            fairWhiteRespVO.setJobFair(BeanUtils.toBean(fairService.getJobFair(fairWhiteRespVO.getJobFairId()), JobFairRespVO.class));
-        }
-        return success(resp);
+    public CommonResult<PageResult<FairWhiteDetailRespVO>> page(@Valid FairWhitePageReqVO reqVO) {
+        return success(fairService.page(reqVO));
     }
 
     @PutMapping("/add-white-list")
@@ -134,20 +129,6 @@ public class FairController {
         return success(true);
     }
 
-    @PutMapping("/add-white-list2")
-    @Operation(summary = "添加企业白名单2")
-    public CommonResult<Boolean> addWhiteList2(@Valid @RequestBody FairWhiteReqVO reqVO) {
-        fairService.addWhiteList2(reqVO.getJobFairId(), Collections.singletonList(reqVO.getEnterpriseName()));
-        return success(true);
-    }
-
-    @PutMapping("/remove-white-list2")
-    @Operation(summary = "移除企业白名单2")
-    public CommonResult<Boolean> removeWhiteList2(@Valid @RequestBody FairWhiteReqVO reqVO) {
-        fairService.removeWhiteList2(reqVO.getJobFairId(), Collections.singletonList(reqVO.getEnterpriseName()));
-        return success(true);
-    }
-
     @GetMapping("/detail/export-excel")
     @Operation(summary = "导出参加双选会职位 Excel")
     @ApiAccessLog(operateType = EXPORT)

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

@@ -18,6 +18,10 @@ import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DA
 @ToString(callSuper = true)
 public class AppRecruitInterviewInviteReqPageVO extends AppRecruitPersonPageReqVO {
 
+
+    @Schema(description = "招聘会id", example = "24200")
+    private Long jobFairId;
+
     @Schema(description = "面试岗位", example = "7193")
     private Long jobId;
 

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

@@ -20,6 +20,9 @@ public class AppRecruitInterviewInviteReqSaveVO {
     @NotNull(message = "{1_100_033_002}")
     private Long userId;
 
+    @Schema(description = "招聘会id", example = "24200")
+    private Long jobFairId;
+
     @Schema(description = "面试岗位", requiredMode = Schema.RequiredMode.REQUIRED, example = "7193")
     @NotNull(message = "{1_100_033_004}")
     private Long jobId;

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/vo/AppRecruitJobSaveReqVO.java

@@ -17,6 +17,12 @@ public class AppRecruitJobSaveReqVO {
     @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "4770")
     private Long id;
 
+    @Schema(description = "职位来源(0职位管理|1众聘职位|2招聘会)", example = "0")
+    private String source;
+
+    @Schema(description = "来源方关联id", example = "0")
+    private Long bizId;
+
     @Schema(description = "工作地区", requiredMode = Schema.RequiredMode.REQUIRED, example = "25976")
 //    @NotNull(message = "{1_100_004_003}")
     private Long areaId;

+ 0 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/person/AppRecruitPersonCvController.java

@@ -15,7 +15,6 @@ import com.citu.module.menduner.system.service.job.JobCvRelService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
 import com.citu.module.menduner.system.service.person.PersonIntegrationService;
 import com.citu.module.menduner.system.service.unfit.UnfitCandidateService;
-import com.citu.module.menduner.system.util.RedisUtils;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.validation.annotation.Validated;
@@ -24,9 +23,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.Valid;
 
-import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static com.citu.framework.common.pojo.CommonResult.success;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_REQUEST_ILLEGAL;
 
 @Tag(name = "招聘端 - 人才简历")
 @RestController

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/unfit/AppRecruitUnfitCandidatePageReqVO.java

@@ -8,6 +8,9 @@ import lombok.Data;
 @Data
 public class AppRecruitUnfitCandidatePageReqVO extends AppRecruitPersonPageReqVO {
 
+    @Schema(description = "招聘会id",example = "10541")
+    private Long jobFairId;
+
     @Schema(description = "类型(0简历投递表 | 1面试邀约表)", example = "1")
     private String type;
 

+ 16 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/FairWhiteDetailRespVO.java

@@ -0,0 +1,16 @@
+package com.citu.module.menduner.system.controller.base.fair;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseSimpleRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 招聘会白名单详情 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class FairWhiteDetailRespVO extends FairWhiteRespVO{
+
+    @Schema(description = "id", example = "1")
+    private EnterpriseSimpleRespVO enterprise;
+
+}

+ 8 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedRespVO.java

@@ -23,6 +23,14 @@ public class JobAdvertisedRespVO {
     @ExcelProperty("id")
     private Long id;
 
+    @Schema(description = "职位来源(0职位管理|1众聘职位|2招聘会)", example = "0")
+    @ExcelProperty("职位来源(0职位管理|1众聘职位|2招聘会)")
+    private String source;
+
+    @Schema(description = "来源方关联id", example = "0")
+    @ExcelProperty("来源方关联id")
+    private Long bizId;
+
     @Schema(description = "企业id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29465")
     @ExcelProperty("企业id")
     private Long enterpriseId;

+ 6 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedSimpleRespVO.java

@@ -15,6 +15,12 @@ public class JobAdvertisedSimpleRespVO {
     @Schema(description = "职位id", example = "123")
     private Long id;
 
+    @Schema(description = "职位来源(0职位管理|1众聘职位|2招聘会)", example = "0")
+    private String source;
+
+    @Schema(description = "来源方关联id", example = "0")
+    private Long bizId;
+
     @Schema(description = "发布用户id", example = "9592")
     private Long userId;
 

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/unfit/UnfitCandidateRespVO.java

@@ -4,6 +4,8 @@ package com.citu.module.menduner.system.controller.base.unfit;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.time.LocalDateTime;
+
 @Schema(description = "管理后台 - 不合适的候选人 Response VO")
 @Data
 public class UnfitCandidateRespVO {
@@ -20,6 +22,9 @@ public class UnfitCandidateRespVO {
     @Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10541")
     private Long userId;
 
+    @Schema(description = "招聘会id",example = "10541")
+    private Long jobFairId;
+
     @Schema(description = "发布的职位id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10541")
     private Long jobId;
 
@@ -29,4 +34,6 @@ public class UnfitCandidateRespVO {
     @Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9016")
     private Long bizId;
 
+    @Schema(description = "创建时间")
+    private LocalDateTime createTime;
 }

+ 3 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/unfit/UnfitCandidateSaveReqVO.java

@@ -14,6 +14,9 @@ public class UnfitCandidateSaveReqVO {
     @NotNull(message = "{1_099_000_006}")
     private Long userId;
 
+    @Schema(description = "招聘会id",example = "10541")
+    private Long jobFairId;
+
     @Schema(description = "发布的职位id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10541")
     @NotNull(message = "{1_100_042_003}")
     private Long jobId;

+ 12 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/job/JobAdvertisedDO.java

@@ -4,6 +4,8 @@ package com.citu.module.menduner.system.dal.dataobject.job;
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.citu.framework.tenant.core.db.TenantBaseDO;
+import com.citu.module.menduner.system.enums.job.JobStatusEnum;
+import com.citu.module.menduner.system.enums.job.JobTypeEnum;
 import lombok.*;
 
 import java.math.BigDecimal;
@@ -30,6 +32,14 @@ public class JobAdvertisedDO extends TenantBaseDO {
      */
     @TableId
     private Long id;
+    /**
+     * 职位来源(0职位管理|1众聘职位|2招聘会)
+     */
+    private String source;
+    /**
+     * 来源方关联id
+     */
+    private Long bizId;
     /**
      * 企业id
      */
@@ -54,7 +64,7 @@ public class JobAdvertisedDO extends TenantBaseDO {
     /**
      * 招聘类型
      * <p>
-     * 枚举 {@link TODO menduner_job_type 对应的类}
+     * 枚举 {@link JobTypeEnum 对应的类}
      */
     private String type;
     /**
@@ -131,7 +141,7 @@ public class JobAdvertisedDO extends TenantBaseDO {
     /**
      * 职位状态
      * <p>
-     * 枚举 {@link TODO menduner_job_status 对应的类}
+     * 枚举 {@link JobStatusEnum 对应的类}
      */
     private String status;
 

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

@@ -31,6 +31,10 @@ public class UnfitCandidateDO extends TenantBaseDO {
      * 企业id
      */
     private Long enterpriseId;
+    /**
+     * 招聘会id
+     */
+    private Long jobFairId;
     /**
      * 发布的职位id
      */

+ 15 - 7
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairWhiteMapper.java

@@ -3,10 +3,14 @@ package com.citu.module.menduner.system.dal.mysql.fair;
 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.base.fair.FairWhiteDetailRespVO;
 import com.citu.module.menduner.system.controller.base.fair.FairWhitePageReqVO;
+import com.citu.module.menduner.system.controller.base.userperson.UserPersonRespVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairWhiteDO;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -37,11 +41,15 @@ public interface FairWhiteMapper extends BaseMapperX<FairWhiteDO> {
         return selectList(FairWhiteDO::getJobFairId, jobFairId);
     }
 
-    default PageResult<FairWhiteDO> selectPage(FairWhitePageReqVO reqVO) {
-        return selectPage(reqVO, new LambdaQueryWrapperX<FairWhiteDO>()
-                .eqIfPresent(FairWhiteDO::getJobFairId, reqVO.getJobFairId())
-                .likeIfPresent(FairWhiteDO::getName, reqVO.getName())
-                .orderByDesc(FairWhiteDO::getUpdateTime)
-        );
+    default PageResult<FairWhiteDetailRespVO> selectPage(FairWhitePageReqVO reqVO) {
+        MPJLambdaWrapperX<FairWhiteDO> wrapper = new MPJLambdaWrapperX<>();
+        wrapper.selectAll(FairWhiteDO.class);
+        wrapper.selectAssociation(EnterpriseDO.class, FairWhiteDetailRespVO::getEnterprise);
+        wrapper.selectAssociation(FairDO.class, FairWhiteDetailRespVO::getJobFair);
+        wrapper.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, FairWhiteDO::getEnterpriseId);
+        wrapper.innerJoin(FairDO.class, FairDO::getId, FairWhiteDO::getJobFairId);
+        wrapper.eqIfPresent(FairWhiteDO::getJobFairId, reqVO.getJobFairId());
+        wrapper.likeIfExists(EnterpriseDO::getName, reqVO.getName());
+        return selectJoinPage(reqVO, FairWhiteDetailRespVO.class, wrapper);
     }
 }

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

@@ -127,6 +127,7 @@ public interface InterviewInviteMapper extends BaseMapperX<InterviewInviteDO> {
         query.eq(InterviewInviteDO::getEnterpriseId, enterpriseId);
         query.eq(InterviewInviteDO::getInviteUserId, userId);
         query
+                .eqIfPresent(InterviewInviteDO::getJobFairId, reqVO.getJobFairId())
                 .eqIfPresent(InterviewInviteDO::getJobId, reqVO.getJobId())
                 .eqIfPresent(InterviewInviteDO::getType, reqVO.getType())
                 .betweenIfPresent(InterviewInviteDO::getTime, reqVO.getTime())

+ 8 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java

@@ -93,6 +93,12 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
                 .orderByDesc(JobAdvertisedDO::getId));
     }
 
+    default List<JobAdvertisedDO> selectBySourceAndBizId(String source, Long bizId) {
+        return selectList(new LambdaQueryWrapperX<JobAdvertisedDO>()
+                .eq(JobAdvertisedDO::getSource, source)
+                .eq(JobAdvertisedDO::getBizId, bizId));
+    }
+
     default List<Long> selectIdList() {
         return selectJoinList(Long.class, new MPJLambdaWrapper<JobAdvertisedDO>()
                 .select(JobAdvertisedDO::getId));
@@ -547,11 +553,12 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
     /**
      * 根据企业id和招聘类型查询职位
      **/
-    default List<JobAdvertisedDO> selectListByEnterpriseIdAndType(Long enterpriseId, List<String> types) {
+    default List<JobAdvertisedDO> selectListByEnterpriseIdAndTypeAndNotHire(Long enterpriseId, List<String> types) {
 
         LambdaQueryWrapperX<JobAdvertisedDO> query = new LambdaQueryWrapperX<JobAdvertisedDO>()
                 .eq(JobAdvertisedDO::getEnterpriseId, enterpriseId)
                 .inIfPresent(JobAdvertisedDO::getType, types)
+                .eq(JobAdvertisedDO::getHire, false)
                 .eq(JobAdvertisedDO::getStatus, JobStatusEnum.ENABLE.getStatus());
         notExpireTime(query);
         return selectList(query);

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

@@ -68,10 +68,11 @@ public interface UnfitCandidateMapper extends BaseMapperX<UnfitCandidateDO> {
         wrapper.eqIfExists(PersonInfoDO::getJobStatus, reqVO.getJobStatus());
         wrapper.eqIfExists(PersonInfoDO::getEduType, reqVO.getEduType());
         wrapper.eqIfExists(PersonInfoDO::getExpType, reqVO.getExpType());
+        wrapper.eqIfExists(PersonInfoDO::getUserId, reqVO.getUserId());
         wrapper.likeIfExists(PersonInfoDO::getName, reqVO.getName());
-        wrapper.likeIfExists(PersonInfoDO::getUserId, reqVO.getUserId());
 
 
+        wrapper.eqIfPresent(UnfitCandidateDO::getJobFairId, reqVO.getJobFairId());
         wrapper.eqIfExists(UnfitCandidateDO::getType, reqVO.getType());
 
         wrapper.orderByDesc(UnfitCandidateDO::getUpdateTime);

+ 2 - 11
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairService.java

@@ -107,20 +107,10 @@ public interface FairService {
      **/
     void removeWhiteList(Long jobFairId, List<Long> enterpriseIds);
 
-    /**
-     * 添加白名单
-     **/
-    void addWhiteList2(Long jobFairId, List<String> enterpriseNames);
-
-    /**
-     * 移除白名单
-     **/
-    void removeWhiteList2(Long jobFairId, List<String> enterpriseNames);
-
     /**
      * 获取白名单企业,返回企业id
      **/
-    PageResult<FairWhiteDO> page(FairWhitePageReqVO reqVO);
+    PageResult<FairWhiteDetailRespVO> page(FairWhitePageReqVO reqVO);
 
     /**
      * 效验是否有招聘会权限
@@ -132,6 +122,7 @@ public interface FairService {
      **/
     void syncJob(Long jobFairId);
 
+
     PageResult<JobFairDetailRespVO> getJobFairDetailPage(JobFairDetailPageReqVO reqVO);
 
 

+ 7 - 44
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java

@@ -1,7 +1,6 @@
 package com.citu.module.menduner.system.service.fair;
 
 
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -28,14 +27,15 @@ import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.mysql.fair.FairDetailMapper;
 import com.citu.module.menduner.system.dal.mysql.fair.FairMapper;
 import com.citu.module.menduner.system.dal.mysql.fair.FairWhiteMapper;
-import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
 import com.citu.module.menduner.system.dal.mysql.major.MajorMapper;
 import com.citu.module.menduner.system.dal.mysql.position.PositionMapper;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import com.citu.module.menduner.system.enums.fair.JobFairStatusEnum;
+import com.citu.module.menduner.system.enums.job.JobSourceEnum;
 import com.citu.module.menduner.system.enums.job.JobTypeEnum;
 import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.industry.IndustryService;
+import com.citu.module.menduner.system.service.job.JobAdvertisedService;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
@@ -86,7 +86,7 @@ public class FairServiceImpl implements FairService {
     private EnterpriseMapper enterpriseMapper;
 
     @Resource
-    private JobAdvertisedMapper jobAdvertisedMapper;
+    private JobAdvertisedService jobAdvertisedService;
 
 
     @Override
@@ -210,6 +210,8 @@ public class FairServiceImpl implements FairService {
             }
             fairDO.setStatus(MendunerStatusEnum.DISABLE.getStatus());
             fairMapper.updateById(fairDO);
+            // 关闭由招聘会创建的职位
+            jobAdvertisedService.closeJobAdvertised(JobSourceEnum.FAIR.getType(), fairDO.getId());
         }
     }
 
@@ -218,7 +220,7 @@ public class FairServiceImpl implements FairService {
     public void syncJob(Long jobFairId) {
         EnterpriseDO enterpriseDO = enterpriseMapper.selectById(LoginUserContext.getEnterpriseId());
         //  将职位都放到招聘会里面
-        List<JobAdvertisedDO> jobAdvertisedList = jobAdvertisedMapper.selectListByEnterpriseIdAndType
+        List<JobAdvertisedDO> jobAdvertisedList = jobAdvertisedService.getListByEnterpriseIdAndType
                 (enterpriseDO.getId(), List.of(JobTypeEnum.FULL_TIME.getType(), JobTypeEnum.INTERNSHIP.getType()));
         jobAdvertisedList.forEach(job -> {
             insertFairJob(jobFairId, job.getId(), true);
@@ -358,47 +360,8 @@ public class FairServiceImpl implements FairService {
         }
     }
 
-
-    @Override
-    @DSTransactional
-    public void addWhiteList2(Long jobFairId, List<String> enterpriseNames) {
-        for (String name : enterpriseNames) {
-            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseName(jobFairId, name);
-            if (null != fairWhiteDO) {
-                return;
-            }
-            fairWhiteMapper.insert(FairWhiteDO.builder()
-                    .jobFairId(jobFairId)
-                    .name(name)
-                    .build());
-        }
-    }
-
-    @Override
-    @DSTransactional
-    public void removeWhiteList2(Long jobFairId, List<String> enterpriseNames) {
-        for (String name : enterpriseNames) {
-            FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseName(jobFairId, name);
-            if (null == fairWhiteDO) {
-                return;
-            }
-            fairWhiteMapper.deleteById(fairWhiteDO.getId());
-            List<EnterpriseDO> enterpriseList = enterpriseMapper.selectByNameList(fairWhiteDO.getName());
-            if (CollUtil.isNotEmpty(enterpriseList)) {
-                for (EnterpriseDO enterprise : enterpriseList) {
-                    // 循环匹配的企业,删除该企业招聘会发布的职位
-                    fairDetailMapper.update(new LambdaUpdateWrapper<FairDetailDO>()
-                            .eq(FairDetailDO::getJobFairId, fairWhiteDO.getJobFairId())
-                            .eq(FairDetailDO::getEnterpriseId, enterprise.getId())
-                            .set(FairDetailDO::getStatus, JobFairStatusEnum.REMOVE.getStatus())
-                    );
-                }
-            }
-        }
-    }
-
     @Override
-    public PageResult<FairWhiteDO> page(FairWhitePageReqVO reqVO) {
+    public PageResult<FairWhiteDetailRespVO> page(FairWhitePageReqVO reqVO) {
         return fairWhiteMapper.selectPage(reqVO);
     }
 

+ 17 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java

@@ -86,6 +86,23 @@ public interface JobAdvertisedService {
      */
     List<JobAdvertisedDO> list(JobAdvertisedReqVO reqVO);
 
+    /**
+     * 根据职位来源和来源关联id关闭职位
+     *
+     * @param source 职位来源
+     * @param bizId  职位id
+     **/
+    void closeJobAdvertised(String source,Long bizId);
+
+    /**
+     * 根据企业id和职位类型获取职位列表
+     *
+     * @param enterpriseId 企业id
+     * @param types        职位类型
+     * @return 职位列表
+     **/
+    List<JobAdvertisedDO> getListByEnterpriseIdAndType(Long enterpriseId, List<String> types);
+
     // ========== 求职端 ==========
 
     /**

+ 40 - 13
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java

@@ -29,9 +29,9 @@ import com.citu.module.menduner.system.controller.base.job.*;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedExtendDO;
-import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedExtendMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
+import com.citu.module.menduner.system.enums.job.JobSourceEnum;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
 import com.citu.module.menduner.system.enums.sync.SyncConstants;
 import com.citu.module.menduner.system.mq.producer.ESProducer;
@@ -105,7 +105,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         jobAdvertised.setHire(true);
         jobAdvertised.setEnterpriseId(DEFAULT_ENTERPRISE_ID);
         jobAdvertised.setUserId(DEFAULT_USER_ID);
-        return save(jobAdvertised, DEFAULT_ENTERPRISE_ID, DEFAULT_USER_ID,false);
+        return save(jobAdvertised, DEFAULT_ENTERPRISE_ID, DEFAULT_USER_ID, false);
     }
 
     @Override
@@ -119,7 +119,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         updateObj.setHire(jobAdvertised.getHire());
         updateObj.setTop(jobAdvertised.getTop());
         updateObj.setStatus(jobAdvertised.getStatus());
-        save(updateObj, DEFAULT_ENTERPRISE_ID, DEFAULT_USER_ID,false);
+        save(updateObj, DEFAULT_ENTERPRISE_ID, DEFAULT_USER_ID, false);
     }
 
     @Override
@@ -161,6 +161,20 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         return mapper.list(reqVO);
     }
 
+    @Override
+    @DSTransactional
+    public void closeJobAdvertised(String source, Long bizId) {
+        List<JobAdvertisedDO> list = mapper.selectBySourceAndBizId(source, bizId);
+        for (JobAdvertisedDO job : list) {
+            disable(job);
+        }
+    }
+
+    @Override
+    public List<JobAdvertisedDO> getListByEnterpriseIdAndType(Long enterpriseId, List<String> types) {
+        return mapper.selectListByEnterpriseIdAndTypeAndNotHire(enterpriseId, types);
+    }
+
     @Override
     public PageResult<AppJobAdvertisedHomeRespVO> getRecommendedPage(PageParam pageParam) {
 
@@ -298,7 +312,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
             return;
         }
         for (AppJobAdvertisedHomeRespVO resp : result.getList()) {
-            if(null != resp.getAreaId()) {
+            if (null != resp.getAreaId()) {
                 resp.setArea(areaService.getById(resp.getAreaId()));
             }
         }
@@ -402,7 +416,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
         JobAdvertisedDO job = JobAdvertisedConvert.INSTANCE.convert3(reqVO);
         Long userId = LoginUserContext.getUserId();
         Long enterpriseId = LoginUserContext.getEnterpriseId();
-        return save(job, enterpriseId, userId,reqVO.isFair());
+        return save(job, enterpriseId, userId, reqVO.isFair());
     }
 
     /**
@@ -425,7 +439,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
             processNewJob(job, enterpriseId, userId, fair);
         } else {
             // 修改职位
-            processExistingJob(job, enterpriseId, userId,fair);
+            processExistingJob(job, enterpriseId, userId, fair);
         }
 
         return job.getId();
@@ -446,10 +460,18 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
             // 扣除额度
             vipEntitlementCheckAspect.deductQuota(VipEntitlementCheck.OPERATE_PUBLISH_JOB, triggerVip);
         }
+        if (null == job.getSource()) {
+            job.setSource(JobSourceEnum.MANAGER.getType());
+        } else {
+            if (null == job.getBizId() && JobSourceEnum.FAIR.getType().equals(job.getSource())) {
+                throw exception(MDE_JOB_ADVERTISED_SOURCE_ID_NOT_NULL);
+            }
+        }
 
         if (job.getHire() || JobStatusEnum.WAIT_ENABLE.getStatus().equals(job.getStatus())) {
             // 众聘职位||待开启,还需要给钱才能开启
             job.setStatus(JobStatusEnum.WAIT_ENABLE.getStatus());
+            job.setSource(JobSourceEnum.HIRE.getType());
         } else {
             //默认开启
             job.setStatus(JobStatusEnum.ENABLE.getStatus());
@@ -552,14 +574,19 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     public void disable(List<Long> ids) {
         for (Long id : ids) {
             JobAdvertisedDO job = get(id);
-            if (JobStatusEnum.DISABLE.getStatus().equals(job.getStatus())) {
-                // 已经是关闭状态
-                throw exception(MDE_JOB_ADVERTISED_STATUS_CLOSE_ERROR);
-            }
-            job.setStatus(JobStatusEnum.DISABLE.getStatus());
-            mapper.updateById(job);
-            jobDataSync(job, SyncConstants.UPDATE);
+            disable(job);
+        }
+    }
+
+
+    void disable(JobAdvertisedDO job) {
+        if (JobStatusEnum.DISABLE.getStatus().equals(job.getStatus())) {
+            // 已经是关闭状态
+            throw exception(MDE_JOB_ADVERTISED_STATUS_CLOSE_ERROR);
         }
+        job.setStatus(JobStatusEnum.DISABLE.getStatus());
+        mapper.updateById(job);
+        jobDataSync(job, SyncConstants.UPDATE);
     }
 
     @Override

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

@@ -39,6 +39,7 @@ public class UnfitCandidateServiceImpl implements UnfitCandidateService {
         }
 
         mapper.insert(UnfitCandidateDO.builder()
+                .jobFairId(reqVO.getJobFairId())
                 .jobId(reqVO.getJobId())
                 .type(reqVO.getType())
                 .bizId(reqVO.getBizId())

+ 1 - 0
menduner/menduner-system-biz/src/main/resources/i18n/messages_en_GB.properties

@@ -226,6 +226,7 @@
 1_100_025_014=Position has been opened, please do not repeat the operation
 1_100_025_015=Position closed, please do not repeat operation
 1_100_025_016=Position posting time exceeds 24 hours, unable to edit
+1_100_025_017=Source associated ID cannot be empty
 # ========== 企业招聘者浏览 1_100_026_000 ==========
 1_100_026_001=Enterprise recruiter browsing does not exist
 # ========== 人才-企业关注订阅 1_100_027_000 ==========

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

@@ -231,6 +231,7 @@
 1_100_025_014=Position has been opened, please do not repeat the operation
 1_100_025_015=Position closed, please do not repeat operation
 1_100_025_016=Position posting time exceeds 24 hours, unable to edit
+1_100_025_017=Source associated ID cannot be empty
 # ========== 企业招聘者浏览 1_100_026_000 ==========
 1_100_026_001=Enterprise recruiter browsing does not exist
 # ========== 人才-企业关注订阅 1_100_027_000 ==========

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

@@ -232,6 +232,7 @@
 1_100_025_014=职位已开启,请勿重复操作
 1_100_025_015=职位已关闭,请勿重复操作
 1_100_025_016=职位发布时间超出24小时,无法编辑
+1_100_025_017=来源方关联id不能为空
 # ========== 企业招聘者浏览 1_100_026_000 ==========
 1_100_026_001=企业招聘者浏览不存在
 # ========== 人才-企业关注订阅 1_100_027_000 ==========