From f56fbe9591a2ed9cc32e99039aed1c7e4538372e Mon Sep 17 00:00:00 2001 From: chenshaohua <635616957@qq.com> Date: Wed, 8 Jul 2026 10:59:23 +0800 Subject: [PATCH] =?UTF-8?q?app/job/list=E4=BF=AE=E6=94=B9=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9D=A1=E4=BB=B6=EF=BC=8C=E5=B7=A5=E4=BD=9C=E7=BB=8F?= =?UTF-8?q?=E9=AA=8C=E5=92=8C=E8=96=AA=E8=B5=84=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/service/impl/ESJobSearchImpl.java | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) 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()));