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 aa95ef8..ca8d517 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 @@ -671,24 +671,16 @@ public class ESJobSearchImpl implements IESJobSearchService List integers = StringUtil.convertStringToIntegerList(jobQuery.getArea().trim()); wrapper.and(x->x.in(ESJobDocument::getJobLocationAreaCode,integers)); } - if(hasText(jobQuery.getExperience())){ - // 支持逗号分隔的多值筛选,取最大值(最宽松的经验要求) - String expStr = jobQuery.getExperience().trim(); - if (expStr.contains(",")) { - Integer maxExp = StringUtil.findMaxValue(expStr); - if (maxExp != null) { - wrapper.and(a->a.le(ESJobDocument::getExperience,maxExp.toString())); - } - } else { - wrapper.and(a->a.le(ESJobDocument::getExperience,expStr)); - } + if(!StringUtil.isEmptyOrNull(jobQuery.getExperience())){ + List integers = StringUtil.convertStringToIntegerList(jobQuery.getExperience()); + wrapper.and(a->a.in(ESJobDocument::getExperience,integers)); } // 薪资范围:岗位最高薪资必须在用户筛选范围内 - if(Objects.nonNull(jobQuery.getMaxSalary())){ - wrapper.and(x->x.le(ESJobDocument::getMaxSalary,jobQuery.getMaxSalary())); + if (Objects.nonNull(jobQuery.getMinSalary())) { + wrapper.filter(x -> x.ge(ESJobDocument::getMaxSalary, jobQuery.getMinSalary())); } - if(Objects.nonNull(jobQuery.getMinSalary())){ - wrapper.and(x->x.ge(ESJobDocument::getMaxSalary,jobQuery.getMinSalary())); + if (Objects.nonNull(jobQuery.getMaxSalary())) { + wrapper.filter(x -> x.le(ESJobDocument::getMinSalary, jobQuery.getMaxSalary())); } if(hasText(jobQuery.getScaleDictCode())){ wrapper.and(a->a.eq(ESJobDocument::getScaleDictCode,jobQuery.getScaleDictCode().trim()));