12 Incheckningar b4d58fc12a ... 70a3fbe0fc

Upphovsman SHA1 Meddelande Datum
  DESKTOP-VAEGFGM\zqc 70a3fbe0fc Merge branch 'feature/start_250609' into online 2 månader sedan
  DESKTOP-VAEGFGM\zqc 1e85210950 放开招聘会登陆权限,未登陆用户也可访问 3 månader sedan
  DESKTOP-VAEGFGM\zqc 9b9e65986d 调整后台查询职位 3 månader sedan
  DESKTOP-VAEGFGM\zqc 6800ede4fe 后台查询简历新增招聘人信息返回 3 månader sedan
  DESKTOP-VAEGFGM\zqc 35f0938d06 解决 统计图重复导致发生异常 3 månader sedan
  DESKTOP-VAEGFGM\zqc 9a7361dd20 调整查询发布人简历的mapper 3 månader sedan
  DESKTOP-VAEGFGM\zqc 51423ee3a0 调整企业岗位统计 过滤 招聘会岗位 3 månader sedan
  DESKTOP-VAEGFGM\zqc edfed785b1 调整后台检索简历功能 3 månader sedan
  DESKTOP-VAEGFGM\zqc 3f89e157ab es数据新增迭代数据替换法 3 månader sedan
  DESKTOP-VAEGFGM\zqc cd401af096 ... 3 månader sedan
  DESKTOP-VAEGFGM\zqc 6a7ff5c087 更新后台查看企业职位和企业简历 3 månader sedan
  DESKTOP-VAEGFGM\zqc da70fc3d50 修改求职者首页相关检索,去除招聘会职位新增招聘会支持批量导入职位 优化全量同步招聘数据接口 3 månader sedan
27 ändrade filer med 305 tillägg och 51 borttagningar
  1. 28 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/job/JobJoinFairStatus.java
  2. 4 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/sync/SyncConstants.java
  3. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobAdvertisedController.java
  4. 5 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/job/AppJobCvRelController.java
  5. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/fair/AppRecruitFairController.java
  6. 2 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java
  7. 3 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedPageReqVO.java
  8. 15 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/JobAdvertisedRespVO.java
  9. 14 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelDetailRespVO.java
  10. 1 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelPageReqVO.java
  11. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/job/JobAdvertisedDO.java
  12. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/es/job/ESJobAdvertisedMergeDO.java
  13. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairDetailMapper.java
  14. 3 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairMapper.java
  15. 87 17
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  16. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/visits/MdeVisitsMapper.java
  17. 60 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/ESConsumer.java
  18. 10 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java
  19. 3 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedService.java
  20. 5 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImpl.java
  21. 16 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobCvRelServiceImpl.java
  22. 3 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationService.java
  23. 14 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java
  24. 7 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/handler/JobFairOperateHandler.java
  25. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/visits/MdeVisitsServiceImpl.java
  26. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/ESQueryBuildUtils.java
  27. 2 1
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImplTest.java

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

@@ -0,0 +1,28 @@
+package com.citu.module.menduner.system.enums.job;
+
+public enum JobJoinFairStatus {
+    NORMAL_JOB("0","普通职位"),
+    JOIN_FAIR_JOB("1","招聘会职位");
+
+    /**
+     * 状态值
+     */
+    private final String status;
+    /**
+     * 状态名
+     */
+    private final String name;
+
+    JobJoinFairStatus(String status, String name) {
+        this.status = status;
+        this.name = name;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public String getName() {
+        return name;
+    }
+}

+ 4 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/sync/SyncConstants.java

@@ -8,6 +8,10 @@ public class SyncConstants {
 
     // ========== 操作类型 ==========
     public final static String SYNC_ALL = "sync_all";
+
+    public final static String VERSION_250627_SYNC_ALL = "sync_all_250627";
+
+
     public final static String ADD = "add";
     public final static String UPDATE = "update";
     public final static String DELETE = "delete";

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/job/JobAdvertisedController.java

@@ -60,7 +60,7 @@ public class JobAdvertisedController {
     @Operation(summary = "获得招聘职位分页")
     @PreAuthorize("@ss.hasPermission('menduner:system:job-advertised:query')")
     public CommonResult<PageResult<JobAdvertisedRespVO>> getJobAdvertisedPage(@Valid JobAdvertisedPageReqVO pageReqVO) {
-        PageResult<JobAdvertisedDO> pageResult = jobAdvertisedService.getJobAdvertisedPage(pageReqVO);
+        PageResult<JobAdvertisedRespVO> pageResult = jobAdvertisedService.getJobAdvertisedPage(pageReqVO);
         return success(BeanUtils.toBean(pageResult, JobAdvertisedRespVO.class));
     }
 

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

@@ -15,6 +15,7 @@ import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobCvLoo
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobCvRelReqVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelDetailRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
 import com.citu.module.menduner.system.service.job.JobCvRelService;
 import com.citu.module.menduner.system.service.job.JobIntegrationService;
@@ -49,7 +50,10 @@ public class AppJobCvRelController {
     public CommonResult<PageResult<JobCvRelDetailRespVO>> getJobCvPage(@Valid PageParam page) {
         // 获取已投递的职位
         Long userId = LoginUserContext.getUserId();
-        return success(jobIntegrationService.getJobCvPage(page,userId));
+        JobCvRelPageReqVO page2 =new JobCvRelPageReqVO();
+        page2.setPageSize(page.getPageSize());
+        page2.setPageNo(page.getPageNo());
+        return success(jobIntegrationService.getJobCvPage(page2,userId));
     }
 
     @GetMapping("/look/page")

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/fair/AppRecruitFairController.java

@@ -62,7 +62,7 @@ public class AppRecruitFairController {
     private JobCvRelService jobCvRelService;
 
 
-    @PreAuthenticated
+//    @PreAuthenticated
     @GetMapping("/list")
     @Operation(summary = "获得招聘会列表")
     public CommonResult<PageResult<JobFairRespVO>> list(@Valid AppJobFairPageReqVO reqVO) {
@@ -135,8 +135,8 @@ public class AppRecruitFairController {
     public CommonResult<Boolean> checkPermission(@RequestParam("jobFairId") Long jobFairId) {
         fairWhiteService.checkFairWhite(LoginUserContext.getEnterpriseId(), jobFairId);
         if (!fairWhiteService.checkFirstEnterFair(LoginUserContext.getEnterpriseId(), jobFairId)) {
-            // 首次进入才同步数据
-            fairService.syncJob(LoginUserContext.getEnterpriseId(), jobFairId);
+            // 首次进入才同步数据 TODO 25_06_26 关闭同步逻辑
+//            fairService.syncJob(LoginUserContext.getEnterpriseId(), jobFairId);
         }
         return success(true);
     }

+ 2 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/recruit/job/AppRecruitJobAdvertisedController.java

@@ -106,16 +106,15 @@ public class AppRecruitJobAdvertisedController {
     @PreAuthenticated
     @PostMapping("/import")
     @Operation(summary = "导入招聘职位")
-    public CommonResult<Boolean> importExcel(@RequestPart @RequestParam MultipartFile multipartFile)
+    public CommonResult<Boolean> importExcel(@RequestPart @RequestParam MultipartFile multipartFile,@RequestParam(value = "fairId",defaultValue = "0")Long fairId)
             throws Exception {
         try {
             List<JobAdvertisedImportExcelVO> list = ExcelUtils.read(multipartFile, JobAdvertisedImportExcelVO.class);
-            jobIntegrationService.importData(list);
+            jobIntegrationService.importData(list,fairId);
             return success(true);
         }catch (Exception e){
             throw new ServiceException(MDE_JOB_ADVERTISED_EXCEL_ERROR);
         }
-
     }
 
     @PreAuthenticated

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

@@ -53,4 +53,7 @@ public class JobAdvertisedPageReqVO extends PageParam {
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     private LocalDateTime[] createTime;
 
+    @Schema(description = "招聘会id", example = "29465")
+    private Long fairId;
+
 }

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

@@ -1,10 +1,14 @@
 package com.citu.module.menduner.system.controller.base.job;
 
 
+import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.citu.framework.excel.core.annotations.DictFormat;
 import com.citu.framework.excel.core.convert.DictConvert;
+import com.citu.module.menduner.system.controller.base.enterprise.bind.EnterpriseUserBindRespVO;
+import com.citu.module.menduner.system.controller.base.fair.JobFairRespVO;
+import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -39,6 +43,9 @@ public class JobAdvertisedRespVO {
     @ExcelProperty("发布用户id")
     private Long userId;
 
+    @ExcelIgnore
+    private EnterpriseUserBindRespVO sendUser;
+
     @Schema(description = "工作地区", requiredMode = Schema.RequiredMode.REQUIRED, example = "25976")
     @ExcelProperty("工作地区")
     private Long areaId;
@@ -136,4 +143,12 @@ public class JobAdvertisedRespVO {
     @ExcelProperty("更新时间")
     private LocalDateTime updateTime;
 
+    @Schema(description = "招聘会名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("招聘会名称")
+    private String jobFairName;
+
+    @Schema(description = "招聘会信息", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelIgnore
+    private JobFairRespVO jobFairRespVO;
+
 }

+ 14 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelDetailRespVO.java

@@ -1,6 +1,10 @@
 package com.citu.module.menduner.system.controller.base.job.cv;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.citu.module.menduner.system.controller.app.recruit.person.vo.AppRecruitPersonSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.fair.JobFairRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedDetailRespVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -14,5 +18,15 @@ public class JobCvRelDetailRespVO extends JobAdvertisedDetailRespVO {
     @Schema(description = "实习的企业")
     private Boolean internshipEnterprise=false;
 
+    @Schema(description = "招聘会")
+    private JobFairRespVO jobFair;
+
+    @Schema(description = "投递人员信息")
+    private AppRecruitPersonSimpleRespVO person;
+
+    @ExcelIgnore
+    @Schema(description = "发布用户", requiredMode = Schema.RequiredMode.REQUIRED, example = "9592")
+    private EnterpriseUserBindDO sendUser;
+
 
 }

+ 1 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/job/cv/JobCvRelPageReqVO.java

@@ -35,6 +35,7 @@ public class JobCvRelPageReqVO extends PageParam {
     @Schema(description = "投递用户id", example = "7769")
     private Long userId;
 
+
     @Schema(description = "投递类型(0 平台投递 | 1 赏金投递)", example = "0")
     private String type;
 

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

@@ -146,4 +146,9 @@ public class JobAdvertisedDO extends TenantBaseDO {
      */
     private String status;
 
+    private String joinFairStatus;
+
+    private Long fairId;
+
+
 }

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/es/job/ESJobAdvertisedMergeDO.java

@@ -243,4 +243,8 @@ public class ESJobAdvertisedMergeDO extends ESBaseDO {
      */
     private Boolean prepare;
 
+    @Field(type = FieldType.Auto)
+    private String joinFairStatus;
+
+
 }

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairDetailMapper.java

@@ -19,6 +19,7 @@ import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
 import org.springframework.util.StringUtils;
 
 import java.time.LocalDateTime;
@@ -173,4 +174,7 @@ public interface FairDetailMapper extends BaseMapperX<FairDetailDO> {
         return selectJoinList(Long.class,query);
 
     }
+
+    @Update(" update  mde_job_advertised  set expire_time  =now() where  id in(  select  job_id  from mde_fair_detail where  job_fair_id =#{fairId}) ")
+    void closeFairJobClose(@Param("fairId") Long fairId);
 }

+ 3 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairMapper.java

@@ -38,8 +38,9 @@ public interface FairMapper extends BaseMapperX<FairDO> {
     default PageResult<FairDO> selectAppPage(AppJobFairPageReqVO reqVO,LocalDate date) {
         return selectPage(reqVO, new LambdaQueryWrapperX<FairDO>()
                 .eq(null!=reqVO.getStatus(),FairDO::getStatus,reqVO.getStatus())
-                .ge(MendunerStatusEnum.ENABLE.getStatus().equals(reqVO.getStatus()), FairDO::getEndTime, date.atStartOfDay())
-                .le(MendunerStatusEnum.DISABLE.getStatus().equals(reqVO.getStatus()), FairDO::getEndTime, date.atStartOfDay())
+                // TODO  250626 修改 按马总要求 这个地方 以状态为准
+//                .ge(MendunerStatusEnum.ENABLE.getStatus().equals(reqVO.getStatus()), FairDO::getEndTime, date.atStartOfDay())
+//                .le(MendunerStatusEnum.DISABLE.getStatus().equals(reqVO.getStatus()), FairDO::getEndTime, date.atStartOfDay())
                 .orderByDesc(FairDO::getEndTime)
         );
     }

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

@@ -2,7 +2,9 @@ package com.citu.module.menduner.system.dal.mysql.job;
 
 
 import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.collection.CollectionUtils;
@@ -15,16 +17,12 @@ import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdver
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobExportRespVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobPageReqVO;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobRespVO;
-import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJobSimpleRespVO;
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisPageReqVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
-import com.citu.module.menduner.system.controller.base.fair.JobFairDetailPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedDetailRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
+import com.citu.module.menduner.system.controller.base.job.*;
 import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelDetailRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseUserBindDO;
@@ -32,10 +30,12 @@ import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairDetailDO;
 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 com.citu.module.menduner.system.dal.dataobject.person.PersonJobFavoriteDO;
 import com.citu.module.menduner.system.dal.dataobject.position.PositionDO;
 import com.citu.module.menduner.system.dal.dataobject.visits.MdeVisitsDO;
 import com.citu.module.menduner.system.enums.MendunerStatusEnum;
+import com.citu.module.menduner.system.enums.job.JobJoinFairStatus;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
 import com.citu.module.menduner.system.enums.visits.MdeVisitsEnum;
 import com.citu.module.menduner.system.util.RecruitAnalysisUtils;
@@ -50,15 +50,24 @@ import java.util.Map;
 
 /**
  * 招聘职位 Mapper
- *
  * @author Rayson
  */
 @Mapper
 public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
 
-    default PageResult<JobAdvertisedDO> selectPage(JobAdvertisedPageReqVO reqVO) {
-        return selectPage(reqVO, new LambdaQueryWrapperX<JobAdvertisedDO>()
-                .inIfPresent(JobAdvertisedDO::getId, reqVO.getId())
+    default PageResult<JobAdvertisedRespVO> selectPage(JobAdvertisedPageReqVO reqVO) {
+
+        MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
+        query.selectAll(JobAdvertisedDO.class);
+        query.selectAssociation(FairDO.class,JobAdvertisedRespVO::getJobFairRespVO);
+        query.selectAssociation(EnterpriseUserBindDO.class,JobAdvertisedRespVO::getSendUser);
+        query.selectAs(FairDO::getTitle, JobAdvertisedRespVO::getJobFairName);
+        query.leftJoin(FairDO.class,on->on.eq(JobAdvertisedDO::getFairId, FairDO::getId).eq(JobAdvertisedDO::getJoinFairStatus,JobJoinFairStatus.JOIN_FAIR_JOB.getStatus()));
+       query.leftJoin(EnterpriseUserBindDO.class,on ->
+               on.eq(EnterpriseUserBindDO::getEnterpriseId,JobAdvertisedDO::getEnterpriseId)
+                       .eq(EnterpriseUserBindDO::getUserId,JobAdvertisedDO::getUserId));
+        query.eq(null!=reqVO.getFairId() && reqVO.getFairId()>0,FairDO::getId,reqVO.getFairId());
+            query.inIfPresent(JobAdvertisedDO::getId, reqVO.getId())
                 .eqIfPresent(JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId())
                 .eqIfPresent(JobAdvertisedDO::getUserId, reqVO.getUserId())
                 .eqIfPresent(JobAdvertisedDO::getAreaId, reqVO.getAreaId())
@@ -70,7 +79,11 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
                 .eqIfPresent(JobAdvertisedDO::getHire, reqVO.isHire())
                 .eqIfPresent(JobAdvertisedDO::getStatus, reqVO.getStatus())
                 .betweenIfPresent(JobAdvertisedDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(JobAdvertisedDO::getUpdateTime));
+                .orderByDesc(JobAdvertisedDO::getUpdateTime);
+
+
+
+        return selectJoinPage(reqVO,JobAdvertisedRespVO.class ,query);
     }
 
     default List<JobAdvertisedDO> selectListByIds(List<Long> ids) {
@@ -150,6 +163,9 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
         return selectList(query);
     }
 
+    default void notFairJob(MPJLambdaWrapperX<JobAdvertisedDO> query){
+       query.eq(JobAdvertisedDO::getJoinFairStatus, JobJoinFairStatus.NORMAL_JOB.getStatus());
+    }
     /**
      * 求职端 - 根据查询条件分页查询正常状态和没有过期的职位信息
      **/
@@ -170,7 +186,7 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
         query.eqIfPresent(JobAdvertisedDO::getHire, reqVO.getHire());
         query.eqIfPresent(JobAdvertisedDO::getTop, reqVO.getTop());
         notExpireTime(query);
-
+        notFairJob(query);
         // 相识参数
         if (reqVO.getAcquainted()) {
             query.and(wrapper -> wrapper
@@ -217,7 +233,7 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
         query.eq(EnterpriseDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
 
         notExpireTime(query);
-
+        notFairJob(query);
         query.inIfPresent(JobAdvertisedDO::getId, CollectionUtils.ofDefaultIfNull(reqVO.getIds()));
         query.inIfPresent(JobAdvertisedDO::getPositionId, reqVO.getPositionIds());
         query.eqIfPresent(JobAdvertisedDO::getHire, reqVO.getHire());
@@ -248,6 +264,7 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
         query.eq(EnterpriseDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
         query.eq(JobAdvertisedDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
         notExpireTime(query);
+        notFairJob(query);
         // 是vip 并且过期时间没到
         query.gt(EnterpriseDO::getVipFlag, 0);
         query.gt(EnterpriseDO::getVipExpireDate, LocalDateTime.now());
@@ -276,29 +293,82 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
     /**
      * 根据用户id 查询投递的职位信息
      **/
-    default PageResult<JobCvRelDetailRespVO> selectCvRelJobPage(PageParam pageParam, Long userId) {
+    default PageResult<JobCvRelDetailRespVO> selectCvRelJobPage(JobCvRelPageReqVO reqVO, Long userId) {
         MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
         query.selectAssociation(JobAdvertisedDO.class, JobCvRelDetailRespVO::getJob);
         query.selectAssociation(EnterpriseDO.class, JobCvRelDetailRespVO::getEnterprise);
         query.selectAssociation(JobCvRelDO.class, JobCvRelDetailRespVO::getCvRel);
+        query.selectAssociation(FairDO.class, JobCvRelDetailRespVO::getJobFair);
+        query.selectAssociation("person", PersonInfoDO.class, JobCvRelDetailRespVO::getPerson);
 
         query.innerJoin(JobCvRelDO.class, JobCvRelDO::getJobId, JobAdvertisedDO::getId);
         query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId);
-        query.eq(JobCvRelDO::getUserId, userId);
+        query.leftJoin(FairDO.class, on ->on.eq(JobCvRelDO::getJobFairId, FairDO::getId));
+        query.leftJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, JobCvRelDO::getUserId);
+
+        query.eq(!Long.valueOf(-999L).equals(userId),JobCvRelDO::getUserId, userId);
+//        query.
+        query.eq(null!=reqVO.getEnterpriseId(), JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
+        query.eq(null!=reqVO.getJobId(), JobAdvertisedDO::getId, reqVO.getJobId());
+        query.eq(null!=reqVO.getStatus(), JobCvRelDO::getStatus, reqVO.getStatus());
+        query.eq(null!=reqVO.getType(), JobCvRelDO::getType, reqVO.getType());
+        query.eq(null!=reqVO.getRecommendUserId(), JobCvRelDO::getRecommendUserId, reqVO.getRecommendUserId());
+//        query.eq(null!=reqVO.getCreateTime(), JobCvRelDO::getCreateTime, reqVO.getCreateTime());
+        query.eq(null!=reqVO.getPublishUserId(), JobCvRelDO::getPublishUserId, reqVO.getPublishUserId());
+        query.eq(null!=reqVO.getJobFairId(), JobCvRelDO::getJobFairId, reqVO.getJobFairId());
+        query.orderByDesc(JobAdvertisedDO::getUpdateTime);
+        return selectJoinPage(reqVO, JobCvRelDetailRespVO.class, query);
+    }
 
+
+    /**
+     * 根据用户id 查询投递的职位信息
+     **/
+    default PageResult<JobCvRelDetailRespVO> selectAdminCvRelJobPage(JobCvRelPageReqVO reqVO, Long userId) {
+        MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
+        query.selectAssociation(JobAdvertisedDO.class, JobCvRelDetailRespVO::getJob);
+//        query.selectAssociation(EnterpriseUserBindDO.class, JobCvRelDetailRespVO::getSendUser);
+        query.selectAssociation(EnterpriseDO.class, JobCvRelDetailRespVO::getEnterprise);
+        query.selectAssociation(JobCvRelDO.class, JobCvRelDetailRespVO::getCvRel);
+        query.selectAssociation(FairDO.class, JobCvRelDetailRespVO::getJobFair);
+        query.selectAssociation("person", PersonInfoDO.class, JobCvRelDetailRespVO::getPerson);
+
+        query.innerJoin(JobCvRelDO.class, JobCvRelDO::getJobId, JobAdvertisedDO::getId);
+        query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, JobAdvertisedDO::getEnterpriseId);
+        query.leftJoin(FairDO.class, on ->on.eq(JobCvRelDO::getJobFairId, FairDO::getId));
+        query.leftJoin(PersonInfoDO.class, "person", PersonInfoDO::getUserId, JobCvRelDO::getUserId);
+//        query.leftJoin(EnterpriseUserBindDO.class, "enterprise_user",
+//                on->on
+//                        .eq(JobAdvertisedDO::getEnterpriseId, EnterpriseUserBindDO::getEnterpriseId)
+//                        .eq(JobAdvertisedDO::getUserId,EnterpriseUserBindDO::getUserId)
+//        );
+
+
+        query.eq(null!=userId,JobAdvertisedDO::getUserId, userId);
+//        query.
+        query.eq(null!=reqVO.getEnterpriseId(), JobAdvertisedDO::getEnterpriseId, reqVO.getEnterpriseId());
+        query.eq(null!=reqVO.getJobId(), JobAdvertisedDO::getId, reqVO.getJobId());
+        query.eq(null!=reqVO.getStatus(), JobCvRelDO::getStatus, reqVO.getStatus());
+        query.eq(null!=reqVO.getType(), JobCvRelDO::getType, reqVO.getType());
+        query.eq(null!=reqVO.getRecommendUserId(), JobCvRelDO::getRecommendUserId, reqVO.getRecommendUserId());
+//        query.eq(null!=reqVO.getCreateTime(), JobCvRelDO::getCreateTime, reqVO.getCreateTime());
+        query.eq(null!=reqVO.getPublishUserId(), JobCvRelDO::getPublishUserId, reqVO.getPublishUserId());
+        query.eq(null!=reqVO.getJobFairId(), JobCvRelDO::getJobFairId, reqVO.getJobFairId());
         query.orderByDesc(JobAdvertisedDO::getUpdateTime);
-        return selectJoinPage(pageParam, JobCvRelDetailRespVO.class, query);
+        return selectJoinPage(reqVO, JobCvRelDetailRespVO.class, query);
     }
 
 
+
     /**
      * 根据企业id集合查询企业数据
      **/
     default List<JobAdvertisedDO> selectByEnterpriseId(Long id, Integer num) {
-        LambdaQueryWrapper<JobAdvertisedDO> query = new LambdaQueryWrapperX<JobAdvertisedDO>();
+        MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<JobAdvertisedDO>();
         query.in(JobAdvertisedDO::getEnterpriseId, id);
         query.eq(JobAdvertisedDO::getStatus, MendunerStatusEnum.ENABLE.getStatus());
         notExpireTime(query);
+        notFairJob(query);
         query.orderByDesc(JobAdvertisedDO::getUpdateTime);
         if (null != num) {
             query.last("limit " + num);

+ 2 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/visits/MdeVisitsMapper.java

@@ -46,7 +46,7 @@ public interface MdeVisitsMapper extends BaseMapperX<MdeVisitsDO> {
 
     }
 
-    default MdeVisitsDO getMdeVisitsByUserIdAndTypeAndBizIdAndDate(Long userId, String type, Long bizId, LocalDateTime date) {
+    default List<MdeVisitsDO> getMdeVisitsByUserIdAndTypeAndBizIdAndDate(Long userId, String type, Long bizId, LocalDateTime date) {
         LambdaQueryWrapperX<MdeVisitsDO> wrapperX = new LambdaQueryWrapperX<MdeVisitsDO>()
                 .eqIfPresent(MdeVisitsDO::getType, type)
                 .eqIfPresent(MdeVisitsDO::getBizId, bizId)
@@ -54,6 +54,6 @@ public interface MdeVisitsMapper extends BaseMapperX<MdeVisitsDO> {
 
         wrapperX.eqIfPresent(MdeVisitsDO::getUserId, userId);
 
-        return selectOne(wrapperX);
+        return selectList(wrapperX);
     }
 }

+ 60 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/mq/consumer/ESConsumer.java

@@ -34,6 +34,7 @@ import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import static com.citu.module.menduner.system.enums.sync.SyncConstants.*;
 
@@ -76,6 +77,12 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
         log.info("接收到队列消息[{}]", message);
         try {
             switch (message.getOperate()) {
+
+                case VERSION_250627_SYNC_ALL:
+                    if(JOB.equals(message.getType())){
+                        version250627Sync();
+                    }
+                    break;
                 case SYNC_ALL:
                     if (JOB.equals(message.getType())) {
                         sync();
@@ -221,6 +228,44 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
         // 企业删除
     }
 
+
+    public void version250627Sync() {
+        StopWatch stopWatch = new StopWatch();
+        stopWatch.start("ES 数据同步");
+        List<ESJobAdvertisedMergeDO> saveAll = new ArrayList<>(11);
+        List<Long> idList = jobAdvertisedMapper.selectIdList();
+        for (Long id : idList) {
+            JobAdvertisedDO job = jobAdvertisedMapper.selectById(id);
+            // 判断职位是否过期
+            if (checkJobExpireTimeAndEnable(job)) {
+                continue;
+            }
+            EnterpriseDO enterpriseDO = enterpriseMapper.selectById(job.getEnterpriseId());
+            if (null == enterpriseDO) {
+                log.error("找不到企业信息 {} ", job.getEnterpriseId());
+                continue;
+            }
+            ESJobAdvertisedMergeDO merge = build(job, enterpriseDO);
+            saveAll.add(merge);
+            if(saveAll.size()==10) {
+                repository.deleteAllById(saveAll.stream().map(ESJobAdvertisedMergeDO::getId).collect(Collectors.toList()));
+                repository.saveAll(saveAll);
+
+                saveAll.clear();
+            }
+
+            log.info("ES 保存数据成功 {}",merge);
+        }
+
+        if(!saveAll.isEmpty()){
+            repository.deleteAllById(saveAll.stream().map(ESJobAdvertisedMergeDO::getId).collect(Collectors.toList()));
+            repository.saveAll(saveAll);
+        }
+
+        stopWatch.stop();
+        stopWatch.prettyPrint();
+
+    }
     public void sync() {
         StopWatch stopWatch = new StopWatch();
         stopWatch.start("ES 数据同步");
@@ -234,8 +279,8 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
         deleteAllIndexes(documentClasses);
         // 新增索引
         recreateIndexes(documentClasses);
-
-        List<Long> idList = jobAdvertisedMapper.selectIdList();
+        List<ESJobAdvertisedMergeDO> saveAll = new ArrayList<>(11);
+        List<Long> idList = jobAdvertisedMapper.selectIdList(); 
         for (Long id : idList) {
             JobAdvertisedDO job = jobAdvertisedMapper.selectById(id);
             // 判断职位是否过期
@@ -248,9 +293,19 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
                 continue;
             }
             ESJobAdvertisedMergeDO merge = build(job, enterpriseDO);
-            repository.save(merge);
+            saveAll.add(merge);
+            if(saveAll.size()==10) {
+                repository.saveAll(saveAll);
+                saveAll.clear();
+            }
+
             log.info("ES 保存数据成功 {}",merge);
         }
+
+        if(!saveAll.isEmpty()){
+            repository.saveAll(saveAll);
+        }
+
         stopWatch.stop();
         stopWatch.prettyPrint();
     }
@@ -325,6 +380,8 @@ public class ESConsumer implements RocketMQListener<ESJobAdvertisedMergeSendMess
 
     public ESJobAdvertisedMergeDO build(JobAdvertisedDO job, EnterpriseDO enterpriseDO) {
         ESJobAdvertisedMergeDO mergeDO = JobAdvertisedConvert.INSTANCE.convert2(job);
+        mergeDO.setJoinFairStatus(job.getJoinFairStatus());
+
         return build(mergeDO, enterpriseDO);
     }
 

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

@@ -35,6 +35,8 @@ 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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
@@ -58,6 +60,7 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
 @Validated
 public class FairServiceImpl implements FairService {
 
+    private static final Logger log = LoggerFactory.getLogger(FairServiceImpl.class);
     @Resource
     private FairMapper fairMapper;
 
@@ -196,7 +199,8 @@ public class FairServiceImpl implements FairService {
             throw exception(JOB_FAIR_NOT_START);
         }
         if (now.isAfter(fairDO.getEndTime())) {
-            throw exception(JOB_FAIR_TIME_OVER);
+            log.info("招聘会时间已过 TODO ");
+//            throw exception(JOB_FAIR_TIME_OVER);
         }
     }
 
@@ -443,4 +447,9 @@ public class FairServiceImpl implements FairService {
     public List<Long> getJobIdsByEnterpriseIdAndJobFairId(Long enterpriseId, Long jobFairId) {
         return fairDetailMapper.selectJobIdsByEnterpriseIdAndJobFairId(enterpriseId, jobFairId);
     }
+
+    public void closeFairJobClose(Long fairId){
+        fairDetailMapper.closeFairJobClose(fairId);
+    }
+
 }

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

@@ -13,10 +13,7 @@ import com.citu.module.menduner.system.controller.app.recruit.job.vo.AppRecruitJ
 import com.citu.module.menduner.system.controller.base.CommonRespVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisPageReqVO;
 import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalysisRespVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRenewalReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedReqVO;
-import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSaveReqVO;
+import com.citu.module.menduner.system.controller.base.job.*;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 
 import javax.validation.Valid;
@@ -68,7 +65,7 @@ public interface JobAdvertisedService {
      * @param pageReqVO 分页查询
      * @return 招聘职位分页
      */
-    PageResult<JobAdvertisedDO> getJobAdvertisedPage(JobAdvertisedPageReqVO pageReqVO);
+    PageResult<JobAdvertisedRespVO> getJobAdvertisedPage(JobAdvertisedPageReqVO pageReqVO);
 
     /**
      * 获得全员猎聘职位分页
@@ -76,7 +73,7 @@ public interface JobAdvertisedService {
      * @param page 分页查询
      * @return 招聘职位分页
      */
-    PageResult<JobAdvertisedDO> getHireJobPage(JobAdvertisedPageReqVO page);
+    PageResult<JobAdvertisedRespVO> getHireJobPage(JobAdvertisedPageReqVO page);
 
     /**
      * 获得招聘职位列表

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

@@ -32,6 +32,7 @@ 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.job.JobAdvertisedExtendMapper;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
+import com.citu.module.menduner.system.enums.job.JobJoinFairStatus;
 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.OperateTypeEnum;
@@ -146,12 +147,12 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     }
 
     @Override
-    public PageResult<JobAdvertisedDO> getJobAdvertisedPage(JobAdvertisedPageReqVO pageReqVO) {
+    public PageResult<JobAdvertisedRespVO> getJobAdvertisedPage(JobAdvertisedPageReqVO pageReqVO) {
         return mapper.selectPage(pageReqVO);
     }
 
     @Override
-    public PageResult<JobAdvertisedDO> getHireJobPage(JobAdvertisedPageReqVO page) {
+    public PageResult<JobAdvertisedRespVO> getHireJobPage(JobAdvertisedPageReqVO page) {
         page.setEnterpriseId(DEFAULT_ENTERPRISE_ID);
         page.setUserId(DEFAULT_USER_ID);
         return mapper.selectPage(page);
@@ -263,6 +264,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
                 .selectByEnterpriseIdAndNotExpireTime(enterpriseId);
         // 分组
         Map<Long, Long> groupedMap = jobList.stream()
+                .filter(job-> JobJoinFairStatus.NORMAL_JOB.getStatus().equals(job.getJoinFairStatus()))
                 .filter(job -> null != job.getPositionId())
                 .collect(
                         Collectors.groupingBy(JobAdvertisedDO::getPositionId, Collectors.counting())
@@ -350,6 +352,7 @@ public class JobAdvertisedServiceImpl implements JobAdvertisedService {
     @Override
     @DSTransactional
     public Long save(AppRecruitJobSaveReqVO reqVO) {
+//        reqVO.get
         JobAdvertisedDO job = JobAdvertisedConvert.INSTANCE.convert3(reqVO);
         return save(job);
     }

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

@@ -179,6 +179,21 @@ public class JobCvRelServiceImpl implements JobCvRelService {
                 job.getEnterpriseId(),
                 StrUtil.format(IM_SYS_JOB_CV_REL_TEMPLATE, MessageUtils.replace(job.getName()))
         );
+        //TODO  加一个通知
+
+        /**
+
+         // 发送短信
+         SmsSendSingleToUserReqDTO smsReqDTO = new SmsSendSingleToUserReqDTO();
+         smsReqDTO.setUserId(data.getId());
+         smsReqDTO.setMobile(data.getMobile());
+         smsReqDTO.setTemplateCode(CommonConstants.SMS_SYS_NOTIFY_TEMPLATE);
+         smsReqDTO.setTemplateParams(MapUtil.<String, Object>builder()
+         .put("1", getPlatformSystemMessageContent(reqDTO.getTemplateCode(), reqDTO.getTemplateParams()))
+         .build());
+         smsSendApi.sendSingleSmsToAdmin(smsReqDTO);
+
+         */
         return jobCvRel.getId();
     }
 
@@ -218,6 +233,7 @@ public class JobCvRelServiceImpl implements JobCvRelService {
                 job.getEnterpriseId(),
                 StrUtil.format(IM_SYS_JOB_CV_REL_TEMPLATE, MessageUtils.replace(job.getName()))
         );
+        //TODO  加一个通知
         return cvRelDO.getId();
     }
 

+ 3 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationService.java

@@ -20,6 +20,7 @@ import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseB
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedImportExcelVO;
 import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelDetailRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
 
 import java.util.List;
 
@@ -38,7 +39,7 @@ public interface JobIntegrationService {
      *
      * @param page 分页
      */
-    PageResult<JobCvRelDetailRespVO> getJobCvPage(PageParam page, Long userId);
+    PageResult<JobCvRelDetailRespVO> getJobCvPage(JobCvRelPageReqVO page, Long userId);
 
     /**
      * 获取收藏的招聘职位分页
@@ -102,6 +103,6 @@ public interface JobIntegrationService {
     /**
      * 导入招聘职位数据
      **/
-    void importData(List<JobAdvertisedImportExcelVO> list);
+    void importData(List<JobAdvertisedImportExcelVO> list, Long fairId);
 
 }

+ 14 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/JobIntegrationServiceImpl.java

@@ -24,6 +24,7 @@ import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseB
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedDetailRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedImportExcelVO;
 import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelDetailRespVO;
+import com.citu.module.menduner.system.controller.base.job.cv.JobCvRelPageReqVO;
 import com.citu.module.menduner.system.controller.base.person.student.StudentRespVO;
 import com.citu.module.menduner.system.convert.EnterpriseConvert;
 import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
@@ -42,6 +43,7 @@ import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
 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.dal.mysql.unfit.UnfitCandidateMapper;
+import com.citu.module.menduner.system.enums.job.JobJoinFairStatus;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
 import com.citu.module.menduner.system.service.area.AreaService;
 import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
@@ -52,6 +54,8 @@ import com.citu.module.menduner.system.util.ESQueryBuildUtils;
 import com.citu.module.menduner.system.util.RedisUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.elasticsearch.index.query.BoolQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilders;
+import org.elasticsearch.index.query.TermQueryBuilder;
 import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
 import org.elasticsearch.search.sort.SortBuilders;
 import org.elasticsearch.search.sort.SortOrder;
@@ -124,14 +128,14 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
 
 
     @Override
-    public PageResult<JobCvRelDetailRespVO> getJobCvPage(PageParam page, Long userId) {
+    public PageResult<JobCvRelDetailRespVO> getJobCvPage(JobCvRelPageReqVO page, Long userId) {
         List<StudentRespVO> studentInfoByUserIds = studentService.getStudentInfoByUserIds(Arrays.asList(userId));
         StudentRespVO studentRespVO = null;
         if(null!=studentInfoByUserIds && !studentInfoByUserIds.isEmpty()){
             studentRespVO = studentInfoByUserIds.get(0);
         }
 
-        PageResult<JobCvRelDetailRespVO> result = jobAdvertisedMapper.selectCvRelJobPage(page, userId);
+        PageResult<JobCvRelDetailRespVO> result = jobAdvertisedMapper.selectAdminCvRelJobPage(page, userId);
         for (JobCvRelDetailRespVO respVO : result.getList()) {
             // 获取职位发布人
             EnterpriseUserContactRespVO contactRespVO = userBindService
@@ -256,6 +260,8 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
             }
         }
         BoolQueryBuilder queryBuilder = ESQueryBuildUtils.jobSearch(reqVO);
+        queryBuilder.must(QueryBuilders.matchQuery("joinFairStatus", JobJoinFairStatus.NORMAL_JOB.getStatus()));
+//        queryBuilder.filter(new TermQueryBuilder("enterpriseId", LoginUserContext.getEnterpriseId()));
         NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                 .withQuery(queryBuilder)
                 // 高亮
@@ -451,9 +457,14 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
 
     @Override
     @DSTransactional
-    public void importData(List<JobAdvertisedImportExcelVO> list) {
+    public void importData(List<JobAdvertisedImportExcelVO> list, Long  fairId ) {
         list.forEach(item -> {
             AppRecruitJobSaveReqVO job = JobAdvertisedConvert.INSTANCE.convert8(item);
+            
+            if(fairId > 0 ){
+                job.setSource("2");
+                job.setBizId(fairId);
+            }
             List<PositionDO> positionList = positionMapper.selectListByNameList(item.getPosition());
             if (CollUtil.isNotEmpty(positionList)) {
                 // 重复名字就取第一条

+ 7 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/job/handler/JobFairOperateHandler.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.service.job.handler;
 import com.citu.module.menduner.system.controller.app.recruit.job.vo.joinJobFairReqVO;
 import com.citu.module.menduner.system.dal.dataobject.fair.FairWhiteDO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
+import com.citu.module.menduner.system.enums.job.JobJoinFairStatus;
 import com.citu.module.menduner.system.enums.job.JobSourceEnum;
 import com.citu.module.menduner.system.enums.job.JobStatusEnum;
 import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
@@ -50,6 +51,8 @@ public class JobFairOperateHandler implements JobOperateHandler {
             if(null == fairWhite) {
                 throw exception(JOB_FAIR_NO_PERMISSION);
             }
+            job.setJoinFairStatus(JobJoinFairStatus.JOIN_FAIR_JOB.getStatus());
+            job.setFairId(fairWhite.getJobFairId());
         }
     }
 
@@ -78,6 +81,10 @@ public class JobFairOperateHandler implements JobOperateHandler {
                     && ChronoUnit.HOURS.between(oldJob.getCreateTime(), LocalDateTime.now()) > 24) {
                 throw exception(MDE_JOB_ADVERTISED_TIME_ERROR_24);
             }
+            // TODO 招聘会职位无法编辑出招聘会
+//            job.setJoinFairStatus(JobJoinFairStatus.JOIN_FAIR_JOB.getStatus());
+//            job.setFairId(fairWhite.getJobFairId());
+
         }
     }
 

+ 3 - 3
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/visits/MdeVisitsServiceImpl.java

@@ -87,9 +87,9 @@ public class MdeVisitsServiceImpl implements MdeVisitsService {
 
         Long userId = LoginUserContext.getUserId2();
 
-        MdeVisitsDO visitsDO = mdeVisitsMapper.
+        List<MdeVisitsDO> visitsDO = mdeVisitsMapper.
                 getMdeVisitsByUserIdAndTypeAndBizIdAndDate(null==userId?0L:userId, reqVO.getType(), reqVO.getBizId(), reqVO.getDate());
-        if (null == visitsDO) {
+        if (null == visitsDO ||visitsDO.isEmpty()) {
             // 新增
             MdeVisitsDO visits = new MdeVisitsDO();
             visits.setUserId(null==userId?0L:userId);
@@ -102,7 +102,7 @@ public class MdeVisitsServiceImpl implements MdeVisitsService {
         }
 
         // 增加访问量
-        visitsDO.setCount(visitsDO.getCount() + 1);
+        visitsDO.get(0).setCount(visitsDO.get(0).getCount() + 1);
         mdeVisitsMapper.updateById(visitsDO);
     }
 

+ 1 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/ESQueryBuildUtils.java

@@ -85,7 +85,7 @@ public class ESQueryBuildUtils {
             if (null != payScope.getEnd()) {
                 // 小于等于
                 payScopeQuery.must(QueryBuilders.rangeQuery("payTo").lte(payScope.getEnd()));
-
+//                payScopeQuery.filter(QueryBuilders.eq)
             }
             boolQuery.filter(payScopeQuery);
         }

+ 2 - 1
menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/job/JobAdvertisedServiceImplTest.java

@@ -3,6 +3,7 @@ package com.citu.module.menduner.system.service.job;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.test.core.ut.BaseDbUnitTest;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedPageReqVO;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedRespVO;
 import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSaveReqVO;
 import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
@@ -155,7 +156,7 @@ public class JobAdvertisedServiceImplTest extends BaseDbUnitTest {
         reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
 
         // 调用
-        PageResult<JobAdvertisedDO> pageResult = jobAdvertisedService.getJobAdvertisedPage(reqVO);
+        PageResult<JobAdvertisedRespVO> pageResult = jobAdvertisedService.getJobAdvertisedPage(reqVO);
         // 断言
         assertEquals(1, pageResult.getTotal());
         assertEquals(1, pageResult.getList().size());