Browse Source

1、增加刷新职位接口

rayson 5 months ago
parent
commit
b855475c5f
13 changed files with 226 additions and 13 deletions
  1. 5 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/analysis/AnalysisController.java
  2. 25 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/fair/AppFairController.java
  3. 4 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/excel/RecruitJobAnalysisExcelRespVO.java
  4. 1 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairDetailPageReqVO.java
  5. 21 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairEnterprisePageReqVO.java
  6. 23 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairEnterpriseRespVO.java
  7. 24 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairJobInfoPageReqVO.java
  8. 13 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairJobInfoRespVO.java
  9. 44 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/fair/FairDetailMapper.java
  10. 2 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/invite/EnterpriseInviteRecordMapper.java
  11. 15 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/job/JobAdvertisedMapper.java
  12. 12 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairService.java
  13. 37 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/fair/FairServiceImpl.java

+ 5 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/analysis/AnalysisController.java

@@ -219,6 +219,11 @@ public class AnalysisController {
                 JobAdvertisedConvert.INSTANCE.convertList6(jobAdvertisedService.getJobNum(reqVO).getList()),
                 "所有职位明细");
 
+        packExcelData(writeDTOList,
+                RecruitJobAnalysisExcelRespVO.class,
+                JobAdvertisedConvert.INSTANCE.convertList6(jobAdvertisedService.getRefreshJobNum(reqVO).getList()),
+                "刷新的职位明细");
+
         reqVO.setJobStatus(JobStatusEnum.ENABLE.getStatus());
         packExcelData(writeDTOList,
                 RecruitJobAnalysisExcelRespVO.class,

+ 25 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/jobhunt/fair/AppFairController.java

@@ -1,8 +1,9 @@
 package com.citu.module.menduner.system.controller.app.jobhunt.fair;
 
 import com.citu.framework.common.pojo.CommonResult;
+import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
-import com.citu.module.menduner.system.controller.base.fair.JobFairRespVO;
+import com.citu.module.menduner.system.controller.base.fair.*;
 import com.citu.module.menduner.system.service.fair.FairService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -12,9 +13,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.validation.Valid;
 import java.util.List;
 
+import static com.citu.framework.common.pojo.CommonResult.error;
 import static com.citu.framework.common.pojo.CommonResult.success;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.JOB_FAIR_NOT_EXISTS;
 
 @Tag(name = "求职端 - 招聘会")
 @RestController
@@ -32,4 +36,24 @@ public class AppFairController {
     }
 
 
+    @GetMapping("/enterprise/page")
+    @Operation(summary = "招聘会企业分页查询")
+    public CommonResult<PageResult<JobFairEnterpriseRespVO>> getJobFairEnterprisePage(
+            JobFairEnterprisePageReqVO reqVO) {
+        if (null == reqVO.getJobFairId()) {
+            return error(JOB_FAIR_NOT_EXISTS);
+        }
+        return success(fairService.getJobFairEnterprisePage(reqVO));
+    }
+
+    @GetMapping("/detail/page")
+    @Operation(summary = "参加双选会职位分页查询")
+    public CommonResult<PageResult<JobFairJobInfoRespVO>> jobFairDetailPage(@Valid JobFairJobInfoPageReqVO reqVO) {
+        if (null == reqVO.getJobFairId()) {
+            return error(JOB_FAIR_NOT_EXISTS);
+        }
+        return success(fairService.getJobFairJobInfoPage(reqVO));
+    }
+
+
 }

+ 4 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/analysis/excel/RecruitJobAnalysisExcelRespVO.java

@@ -61,6 +61,10 @@ public class RecruitJobAnalysisExcelRespVO {
     @DictFormat(MENDUNER_STATUS)
     private String status;
 
+    @Schema(description = "刷新时间")
+    @ExcelProperty(value = "刷新时间")
+    private LocalDateTime refreshTime;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("创建时间")
     private LocalDateTime createTime;

+ 1 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/fair/JobFairDetailPageReqVO.java

@@ -1,6 +1,5 @@
 package com.citu.module.menduner.system.controller.base.fair;
 
-import com.alibaba.excel.annotation.ExcelProperty;
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -13,7 +12,7 @@ import java.util.List;
 
 import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
-@Schema(description = "管理后台 - 招聘会白名单 Request VO")
+@Schema(description = "管理后台 - 招聘会企业职位信息 Request VO")
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

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

@@ -0,0 +1,21 @@
+package com.citu.module.menduner.system.controller.base.fair;
+
+import com.citu.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = " 招聘会企业分页查询 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class JobFairEnterprisePageReqVO extends PageParam {
+
+    @Schema(description = "招聘会id")
+    private Long jobFairId;
+
+    @Schema(description = "企业关键字")
+    private String keyword;
+
+}

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

@@ -0,0 +1,23 @@
+package com.citu.module.menduner.system.controller.base.fair;
+
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseRespVO;
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = " 招聘会企业 Response VO")
+@Data
+public class JobFairEnterpriseRespVO extends EnterpriseRespVO{
+
+    @Schema(description = "招聘会id")
+    private Long jobFairId;
+
+    @Schema(description = "最后5个职位")
+    private List<JobAdvertisedSimpleRespVO> lastJobTop5;
+
+    @Schema(description = "职位总数")
+    private Long jobCount;
+
+}

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

@@ -0,0 +1,24 @@
+package com.citu.module.menduner.system.controller.base.fair;
+
+import com.citu.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+@Schema(description = " 招聘会企业职位分页查询 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class JobFairJobInfoPageReqVO extends PageParam {
+
+    @Schema(description = "招聘会id")
+    private Long jobFairId;
+
+    @Schema(description = "企业id")
+    private Long enterpriseId;
+
+    @Schema(description = "关键字")
+    private String keyword;
+
+}

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

@@ -0,0 +1,13 @@
+package com.citu.module.menduner.system.controller.base.fair;
+
+import com.citu.module.menduner.system.controller.base.job.JobAdvertisedSimpleRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = " 招聘会企业 Response VO")
+@Data
+public class JobFairJobInfoRespVO extends JobAdvertisedSimpleRespVO {
+
+    @Schema(description = "招聘会id")
+    private Long jobFairId;
+}

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

@@ -10,8 +10,8 @@ import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.citu.framework.mybatis.core.query.MPJLambdaWrapperX;
 import com.citu.module.menduner.system.controller.app.jobhunt.flame.AppFlameJobPageReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.flame.AppFlameJobRespVO;
-import com.citu.module.menduner.system.controller.base.fair.JobFairDetailPageReqVO;
-import com.citu.module.menduner.system.controller.base.fair.JobFairDetailRespVO;
+import com.citu.module.menduner.system.controller.base.enterprise.vo.EnterpriseRespVO;
+import com.citu.module.menduner.system.controller.base.fair.*;
 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.FairDetailDO;
@@ -19,6 +19,7 @@ import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
 import com.citu.module.menduner.system.enums.fair.JobFairStatusEnum;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.util.StringUtils;
 
 import java.util.List;
 
@@ -44,7 +45,9 @@ public interface FairDetailMapper extends BaseMapperX<FairDetailDO> {
     }
 
 
-    /** 根据招聘会id查询招聘会发布职位的信息 **/
+    /**
+     * 根据招聘会id查询招聘会发布职位的信息
+     **/
     default PageResult<JobFairDetailRespVO> selectJobFairDetailList(JobFairDetailPageReqVO reqVO) {
         MPJLambdaWrapperX<FairDetailDO> query = new MPJLambdaWrapperX<>();
         query.selectAs(FairDetailDO::getId, JobFairDetailRespVO::getId);
@@ -77,7 +80,44 @@ public interface FairDetailMapper extends BaseMapperX<FairDetailDO> {
         query.eq(FairDetailDO::getStatus, JobFairStatusEnum.NORMAL.getStatus());
 
         query.orderByDesc(FairDetailDO::getCreateTime);
-        return selectJoinPage(reqVO,JobFairDetailRespVO.class, query);
+        return selectJoinPage(reqVO, JobFairDetailRespVO.class, query);
+    }
+
+
+    /**
+     * 根据条件查询招聘会企业的信息
+     **/
+    default PageResult<JobFairEnterpriseRespVO> selectJobFairEnterprisePage(JobFairEnterprisePageReqVO reqVO) {
+        MPJLambdaWrapperX<FairDetailDO> query = new MPJLambdaWrapperX<>();
+        query.selectAs(FairDetailDO::getJobFairId, JobFairEnterpriseRespVO::getJobFairId);
+        query.selectAll(EnterpriseDO.class);
+        query.innerJoin(FairDO.class, FairDO::getId, FairDetailDO::getJobFairId);
+        query.innerJoin(EnterpriseDO.class, EnterpriseDO::getId, FairDetailDO::getEnterpriseId);
+        query.eqIfPresent(FairDetailDO::getJobFairId, reqVO.getJobFairId());
+        if (StringUtils.hasText(reqVO.getKeyword())) {
+            query.and(q -> q.likeIfExists(EnterpriseDO::getName, reqVO.getKeyword())
+                    .or()
+                    .likeIfExists(EnterpriseDO::getAnotherName, reqVO.getKeyword()));
+        }
+        query.eq(FairDetailDO::getStatus, JobFairStatusEnum.NORMAL.getStatus());
+        query.groupBy(FairDetailDO::getEnterpriseId);
+
+        return selectJoinPage(reqVO, JobFairEnterpriseRespVO.class, query);
+    }
+
+
+    default PageResult<JobFairJobInfoRespVO> selectJobFairJobInfoPage(JobFairJobInfoPageReqVO reqVO) {
+        MPJLambdaWrapperX<FairDetailDO> query = new MPJLambdaWrapperX<>();
+        query.selectAs(FairDetailDO::getJobFairId, JobFairJobInfoRespVO::getJobFairId);
+        query.selectAll(JobAdvertisedDO.class);
+        query.innerJoin(FairDO.class, FairDO::getId, FairDetailDO::getJobFairId);
+        query.innerJoin(JobAdvertisedDO.class, JobAdvertisedDO::getId, FairDetailDO::getJobId);
+        query.eqIfPresent(FairDetailDO::getJobFairId, reqVO.getJobFairId());
+        query.eqIfPresent(FairDetailDO::getEnterpriseId, reqVO.getEnterpriseId());
+        query.likeIfExists(JobAdvertisedDO::getName, reqVO.getKeyword());
+        query.eq(FairDetailDO::getStatus, JobFairStatusEnum.NORMAL.getStatus());
+
+        return selectJoinPage(reqVO, JobFairJobInfoRespVO.class, query);
     }
 
 }

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

@@ -76,6 +76,8 @@ public interface EnterpriseInviteRecordMapper extends BaseMapperX<EnterpriseInvi
         wrapper.eq(EnterpriseInviteRecordDO::getInviteEnterpriseId, enterpriseId);
         wrapper.eq(EnterpriseInviteRecordDO::getInviteUserId, userId);
 
+        wrapper.orderByDesc(EnterpriseInviteRecordDO::getCreateTime);
+
         return selectJoinPage(reqVO, AppRecruitEnterpriseInviteRecordRespVO.class, wrapper);
     }
 

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

@@ -8,7 +8,6 @@ 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.common.dto.TimeRangeBaseReqVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppEnterpriseJobRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedHomeRespVO;
 import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedPageReqVO;
@@ -21,13 +20,13 @@ import com.citu.module.menduner.system.controller.base.analysis.RecruitJobAnalys
 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.cv.JobCvRelDetailRespVO;
 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;
 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;
@@ -95,8 +94,8 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
     }
 
     default List<Long> selectIdList() {
-        return selectJoinList(Long.class,new MPJLambdaWrapper<JobAdvertisedDO>()
-                .select(JobAdvertisedDO::getId) );
+        return selectJoinList(Long.class, new MPJLambdaWrapper<JobAdvertisedDO>()
+                .select(JobAdvertisedDO::getId));
     }
 
     /**
@@ -514,6 +513,14 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
     @Select("SELECT position_id FROM mde_job_advertised GROUP BY position_id ORDER BY COUNT(*) DESC LIMIT #{topN}")
     List<Long> selectTopPositionIdsByFrequency(int topN);
 
+    default List<JobAdvertisedSimpleRespVO> selectByJobId(List<Long> ids) {
+        MPJLambdaWrapperX<JobAdvertisedDO> query = new MPJLambdaWrapperX<>();
+        query.selectAsClass(JobAdvertisedDO.class, JobAdvertisedSimpleRespVO.class);
+        query.in(JobAdvertisedDO::getId, ids);
+        query.orderByDesc(JobAdvertisedDO::getUpdateTime);
+        return selectJoinList(JobAdvertisedSimpleRespVO.class, query);
+    }
+
     /**
      * 查询过期的职位列表
      **/
@@ -551,7 +558,9 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
 
     }
 
-    /** 获取职位类型数量topN **/
+    /**
+     * 获取职位类型数量topN
+     **/
     default List<CommonRespVO> getPositionTypeNumTop(RecruitAnalysisPageReqVO reqVO, Integer topNum,
                                                      LocalDateTime startTime, LocalDateTime endTime) {
         MPJLambdaWrapperX<JobAdvertisedDO> wrapper = new MPJLambdaWrapperX<>();
@@ -576,7 +585,7 @@ public interface JobAdvertisedMapper extends BaseMapperX<JobAdvertisedDO> {
      * 发布职位的统计
      **/
     default List<CommonRespVO> getJobCount(RecruitAnalysisPageReqVO reqVO,
-                                                  LocalDateTime startTime, LocalDateTime endTime) {
+                                           LocalDateTime startTime, LocalDateTime endTime) {
 
         MPJLambdaWrapperX<JobAdvertisedDO> wrapper = new MPJLambdaWrapperX<>();
         wrapper.selectCount(JobAdvertisedDO::getId, CommonRespVO::getValue);

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

@@ -133,4 +133,16 @@ public interface FairService {
     void syncJob(Long jobFairId);
 
     PageResult<JobFairDetailRespVO> getJobFairDetailPage(JobFairDetailPageReqVO reqVO);
+
+
+    /**
+     * 招聘会企业分页查询
+     **/
+    PageResult<JobFairEnterpriseRespVO> getJobFairEnterprisePage(JobFairEnterprisePageReqVO reqVO);
+
+
+    /**
+     * 招聘会职位分页查询
+     **/
+    PageResult<JobFairJobInfoRespVO> getJobFairJobInfoPage(JobFairJobInfoPageReqVO reqVO);
 }

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

@@ -43,6 +43,7 @@ import org.springframework.validation.annotation.Validated;
 import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -406,4 +407,40 @@ public class FairServiceImpl implements FairService {
     public PageResult<JobFairDetailRespVO> getJobFairDetailPage(JobFairDetailPageReqVO reqVO) {
         return fairDetailMapper.selectJobFairDetailList(reqVO);
     }
+
+    @Override
+    public PageResult<JobFairEnterpriseRespVO> getJobFairEnterprisePage(JobFairEnterprisePageReqVO reqVO) {
+        PageResult<JobFairEnterpriseRespVO> result = fairDetailMapper.selectJobFairEnterprisePage(reqVO);
+        result.getList().forEach(item -> {
+            // 查询招聘会职位
+            List<FairDetailDO> fairDetailList =
+                    fairDetailMapper.selectByJobFairIdAndEnterpriseIdList(item.getJobFairId(), item.getId());
+            if (ObjectUtil.isEmpty(fairDetailList)) {
+                return;
+            }
+            // 取出最新的5个职位
+            List<Long> jobIdList = fairDetailList.stream()
+                    .sorted(Comparator.comparing(FairDetailDO::getUpdateTime).reversed())
+                    .limit(5)
+                    .map(FairDetailDO::getJobId).collect(Collectors.toList());
+            if (ObjectUtil.isNotEmpty(jobIdList)) {
+                // 赋值
+                item.setLastJobTop5(jobAdvertisedMapper.selectByJobId(jobIdList));
+                item.setJobCount((long) fairDetailList.size());
+            }
+
+        });
+        return result;
+    }
+
+    @Override
+    public PageResult<JobFairJobInfoRespVO> getJobFairJobInfoPage(JobFairJobInfoPageReqVO reqVO) {
+        PageResult<JobFairJobInfoRespVO> result = fairDetailMapper.selectJobFairJobInfoPage(reqVO);
+        result.getList().forEach(item -> {
+            if (null != item.getAreaId()) {
+                item.setArea(areaService.getById(item.getAreaId()));
+            }
+        });
+        return result;
+    }
 }