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 048dbc8..d82b738 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 @@ -60,7 +60,7 @@ public class ESJobDocument @ApiModelProperty("工作地点区县字典代码") private Integer jobLocationAreaCode; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("发布时间") private Date postingDate; diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/ESJobSearch.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/ESJobSearch.java index e3396c9..e8c162c 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/ESJobSearch.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/query/ESJobSearch.java @@ -1,10 +1,12 @@ package com.ruoyi.cms.domain.query; +import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.cms.domain.Job; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.util.Date; import java.util.List; /** @@ -55,4 +57,10 @@ public class ESJobSearch extends Job /*** 用户角色app角色:0企业,1求职者,2网格员 3内部政府人员*/ private String userType; + + //开始时间 + private Date startDate; + + //结束时间 + private Date endDate; } 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 65eadbd..9a69b4d 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 @@ -30,6 +30,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -505,14 +509,14 @@ public class ESJobSearchImpl implements IESJobSearchService // 岗位薪资范围与用户期望薪资范围有交集 // 条件:岗位最小薪资 <= 用户最大薪资 AND 岗位最大薪资 >= 用户最小薪资 if(Objects.nonNull(userMinSalary) && Objects.nonNull(userMaxSalary)){ - wrapper.and(x->x.le(ESJobDocument::getMinSalary,userMaxSalary) - .ge(ESJobDocument::getMaxSalary,userMinSalary)); + wrapper.and(x->x.le(ESJobDocument::getMaxSalary,userMaxSalary) + .ge(ESJobDocument::getMinSalary,userMinSalary)); } else if(Objects.nonNull(userMinSalary)){ // 只有最小薪资:岗位最大薪资 >= 用户最小薪资 - wrapper.and(x->x.ge(ESJobDocument::getMaxSalary,userMinSalary)); + wrapper.and(x->x.ge(ESJobDocument::getMinSalary,userMinSalary)); } else if(Objects.nonNull(userMaxSalary)){ // 只有最大薪资:岗位最小薪资 <= 用户最大薪资 - wrapper.and(x->x.le(ESJobDocument::getMinSalary,userMaxSalary)); + wrapper.and(x->x.le(ESJobDocument::getMaxSalary,userMaxSalary)); } if(!StringUtil.isEmptyOrNull(esJobSearch.getExperience())){ Integer maxValue = StringUtil.findMaxValue(esJobSearch.getExperience()); @@ -520,9 +524,7 @@ public class ESJobSearchImpl implements IESJobSearchService } if(!StringUtil.isEmptyOrNull(esJobSearch.getJobCategory())){ String targetValue = esJobSearch.getJobCategory(); - wrapper.and(x -> x.match(ESJobDocument::getJobTitle, targetValue) - .or() - .match(ESJobDocument::getDescription, targetValue)); + wrapper.and(x -> x.eq(ESJobDocument::getJobCategory, targetValue)); } if(!StringUtil.isEmptyOrNull(esJobSearch.getScale())){ Integer maxValue = StringUtil.findMaxValue(esJobSearch.getScale()); @@ -559,6 +561,17 @@ public class ESJobSearchImpl implements IESJobSearchService if(!StringUtil.isEmptyOrNull(esJobSearch.getJobLocation())){ wrapper.and(x->x.like(ESJobDocument::getJobLocation,esJobSearch.getJobLocation())); } + //按时间段来查询数据 + if(esJobSearch.getStartDate() != null){ + Date startDateTime = esJobSearch.getStartDate(); + String formattedStartDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(startDateTime); + wrapper.and(x->x.ge(ESJobDocument::getPostingDate, formattedStartDate)); + } + if(esJobSearch.getEndDate() != null){ + Date endDateTime = esJobSearch.getEndDate(); + String formattedEndDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(endDateTime); + wrapper.and(x->x.le(ESJobDocument::getPostingDate, formattedEndDate)); + } if(Objects.nonNull(esJobSearch.getOrder())){ wrapper.orderByDesc(ESJobDocument::getPostingDate); if(esJobSearch.getOrder()==1){