diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java index d997d5f..62e8424 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppJobController.java @@ -230,6 +230,7 @@ public class AppJobController extends BaseController String errorMsg = "描述中包含敏感词:" + String.join("、", sensitiveWords); return AjaxResult.error(errorMsg); } + job.setJobStatus("0");//上架 jobService.publishJob(job); return success(); } @@ -283,4 +284,22 @@ public class AppJobController extends BaseController List list=jobApplyService.selectCencalList(queryApply); return getDataTable(list); } + + @ApiOperation("岗位下架") + @PutMapping("/jobDown/{jobId}") + public AjaxResult jobDown(@ApiParam("岗位id") @PathVariable Long jobId){ + if(jobId==null){ + return error("岗位id为空"); + } + return toAjax(jobService.jobDown(jobId)); + } + + @ApiOperation("岗位上架") + @PutMapping("/jobUp/{jobId}") + public AjaxResult jobUp(@ApiParam("岗位id") @PathVariable Long jobId){ + if(jobId==null){ + return error("岗位id为空"); + } + return toAjax(jobService.jobUp(jobId)); + } } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java index fd6c677..61f5004 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java @@ -127,6 +127,7 @@ public class CmsJobController extends BaseController String errorMsg = "描述中包含敏感词:" + String.join("、", sensitiveWords); return AjaxResult.error(errorMsg); } + job.setJobStatus("0");//上架 // 无敏感词,执行插入 return toAjax(jobService.insertJob(job)); } @@ -442,4 +443,22 @@ public class CmsJobController extends BaseController ou.close(); in.close(); } + + @ApiOperation("岗位下架") + @PutMapping("/jobDown/{jobId}") + public AjaxResult jobDown(@PathVariable("jobId") Long jobId){ + if(jobId==null){ + return error("岗位id为空"); + } + return toAjax(jobService.jobDown(jobId)); + } + + @ApiOperation("岗位上架") + @PutMapping("/jobUp/{jobId}") + public AjaxResult jobUp(@PathVariable("jobId") Long jobId){ + if(jobId==null){ + return error("岗位id为空"); + } + return toAjax(jobService.jobUp(jobId)); + } } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/cron/JobCron.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/cron/JobCron.java index dc802ff..f452758 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/cron/JobCron.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/cron/JobCron.java @@ -26,4 +26,6 @@ public class JobCron { public void updateJobCountOfCompany(){ SpringUtils.getBean(ICompanyService.class).updateJobCountOfCompany(); } + //下架过期岗位 + public void updateJobDown(){SpringUtils.getBean(IJobService.class).updateJobDown();} } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java index 931c312..78927ae 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/ESJobDocument.java @@ -171,4 +171,11 @@ public class ESJobDocument @ApiModelProperty("是否通过原因") private String passReason; + + @ApiModelProperty("状态 0在线,1下架") + private String jobStatus; + + @ApiModelProperty("下架时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String downTime; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java index 90b1961..0f85cbd 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/Job.java @@ -204,4 +204,11 @@ public class Job extends BaseEntity @ApiModelProperty("是否通过原因") private String passReason; + + @ApiModelProperty("状态 0上架,1下架") + private String jobStatus; + + @ApiModelProperty("下架时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private String downTime; } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java index 7bf71cb..3f6df71 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/JobMapper.java @@ -62,4 +62,10 @@ public interface JobMapper extends BaseMapper Integer getTotals(Job job); void updateFileBatchInsert(List list); + + public int updateStatus(Job job); + + List getJobDownList(); + + void updateJobDown(List list); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java index 76627e1..ea45b51 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/IJobService.java @@ -113,4 +113,10 @@ public interface IJobService public Integer getTotals(Job job); void uploadFileJob(List list); + + public int jobDown(Long jobId); + + public int jobUp(Long jobId); + + void updateJobDown(); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java index eacfeff..f441e01 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java @@ -546,6 +546,9 @@ public class ESJobSearchImpl implements IESJobSearchService if(!StringUtil.isEmptyOrNull(esJobSearch.getStaffType())){ wrapper.and(x->x.like(ESJobDocument::getStaffType,esJobSearch.getStaffType())); } + if(!StringUtil.isEmptyOrNull(esJobSearch.getJobStatus())){ + wrapper.and(x->x.eq(ESJobDocument::getJobStatus,esJobSearch.getJobStatus())); + } if(Objects.nonNull(esJobSearch.getOrder())){ if(esJobSearch.getOrder()==1){ wrapper.orderByDesc(ESJobDocument::getIsHot); diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java index 085f025..1b22c84 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java @@ -1370,4 +1370,42 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe return new ArrayList<>(dedupMap.values()); } + + @Transactional + @Override + public int jobDown(Long jobId) { + Job job=new Job(); + job.setJobId(jobId); + job.setJobStatus("1"); + job.setDownTime(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS)); + int i=jobMapper.updateStatus(job); + //刷新单条数据 + iesJobSearchService.updateJob(jobId); + return i; + } + + @Transactional + @Override + public int jobUp(Long jobId) { + Job job=new Job(); + job.setJobId(jobId); + job.setJobStatus("0"); + //刷新单条数据 + int i=jobMapper.updateStatus(job); + iesJobSearchService.updateJob(jobId); + return i; + } + + @Override + public void updateJobDown() { + //查询下架岗位 + List list=jobMapper.getJobDownList(); + List ids=list.stream().map(Job::getJobId).collect(Collectors.toList()); + //更新岗位状态 + jobMapper.updateJobDown(ids); + //刷新es + ids.forEach(it->{ + iesJobSearchService.updateJob(it); + }); + } } diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml index 13e13ee..38d828d 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/JobMapper.xml @@ -40,6 +40,8 @@ + + @@ -106,7 +108,7 @@ - select job_id, job_title, min_salary, max_salary, education, experience, company_name, job_location, posting_date, vacancies, del_flag, create_by, create_time, update_by, update_time, remark, latitude, longitude, "view", company_id , is_hot ,apply_num,is_publish, description,job_location_area_code,data_source,job_url,job_category,is_explain,explain_url,cover,job_type,job_address,region_code,staff_type,pass,pass_reason from job + select job_id, job_title, min_salary, max_salary, education, experience, company_name, job_location, posting_date, vacancies, del_flag, create_by, create_time, update_by, update_time, remark, latitude, longitude, "view", company_id , is_hot ,apply_num,is_publish, description,job_location_area_code,data_source,job_url,job_category,is_explain,explain_url,cover,job_type,job_address,region_code,staff_type,pass,pass_reason,job_status,down_time from job INSERT INTO row_work ( @@ -136,7 +138,8 @@ job_title, min_salary, max_salary, education, experience, company_name, job_location, job_location_area_code, posting_date, vacancies, latitude, longitude, "view", company_id, is_hot, apply_num, description, is_publish, data_source, job_url, remark, del_flag, - create_by, create_time, row_id, job_category,job_type,type,job_address,region_code,staff_type,pass,pass_reason + create_by, create_time, row_id, job_category,job_type,type,job_address,region_code,staff_type + ,pass,pass_reason,job_status ) VALUES ( @@ -146,7 +149,7 @@ #{job.isHot}, #{job.applyNum}, #{job.description}, #{job.isPublish}, #{job.dataSource}, #{job.jobUrl}, #{job.remark}, #{job.delFlag}, #{job.createBy}, #{job.createTime}, #{job.rowId}, #{job.jobCategory},#{job.jobType},#{job.type},#{job.jobAddress}, - #{job.regionCode},#{job.staffType},#{job.pass},#{job.passReason} + #{job.regionCode},#{job.staffType},#{job.pass},#{job.passReason},'0' ) @@ -366,7 +369,7 @@ job_location_area_code, posting_date, vacancies, latitude, longitude, "view", company_id, is_hot, apply_num, description, is_publish, data_source, job_url, remark, del_flag, create_by, create_time, row_id, job_category,job_type,type,job_address,region_code, - staff_type,pass,pass_reason + staff_type,pass,pass_reason,job_status ) VALUES ( @@ -376,9 +379,24 @@ #{job.isHot}, #{job.applyNum}, #{job.description}, #{job.isPublish}, #{job.dataSource}, #{job.jobUrl}, #{job.remark}, #{job.delFlag}, #{job.createBy}, #{job.createTime}, #{job.rowId}, #{job.jobCategory},#{job.jobType},#{job.type},#{job.jobAddress}, - #{job.regionCode},#{job.staffType},#{job.pass},#{job.passReason} + #{job.regionCode},#{job.staffType},#{job.pass},#{job.passReason},'0' ) + + update job set job_status=#{jobStatus},down_time=#{downTime},update_time=#{updateTime},update_by=#{updateBy} where job_id=#{jobId} + + + + + + update job set job_status='1' where del_flag='0' AND job_id in + + #{jobId} + + + \ No newline at end of file