diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java index 5cc9f19..ef5dec1 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java @@ -169,13 +169,18 @@ public class CompanyServiceImpl extends ServiceImpl impl companyContactMapper.update(null,Wrappers.lambdaUpdate() .eq(CompanyContact::getCompanyId, company.getCompanyId()) .set(CompanyContact::getDelFlag, Constants.Del_FLAG_DELETE)); - if(!Objects.isNull(company.getCompanyContactList())){ - company.getCompanyContactList().forEach(x -> { - CompanyContact companyContact = new CompanyContact(); - companyContact.setCompanyId(company.getCompanyId()); - BeanUtils.copyProperties(x, companyContact); - companyContactMapper.insert(companyContact); - }); + List contactList = company.getCompanyContactList(); + if (!Objects.isNull(contactList)) { + for (CompanyContact x : contactList) { + CompanyContact entity = new CompanyContact(); + entity.setCompanyId(company.getCompanyId()); + BeanUtils.copyProperties(x, entity); + if (entity.getId() != null) { + companyContactMapper.updateById(entity); + } else { + companyContactMapper.insert(entity); + } + } } if (companyNatureChanged) { List jobIds = jobMapper.selectList(Wrappers.lambdaQuery() 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 8a159f5..77b992b 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 @@ -705,9 +705,7 @@ public class ESJobSearchImpl implements IESJobSearchService // } } if(hasText(jobQuery.getJobTitle())){ - wrapper.and(a->a.match(ESJobDocument::getJobTitle,jobQuery.getJobTitle().trim(),5.0f) - .or() - .match(ESJobDocument::getDescription,jobQuery.getJobTitle().trim(),1.0f)); + wrapper.and(a->a.match(ESJobDocument::getJobTitle,jobQuery.getJobTitle().trim(),5.0f)); } if(hasText(jobQuery.getEducation())){ // 支持逗号分隔的多值筛选(如 "3,4") @@ -775,21 +773,27 @@ public class ESJobSearchImpl implements IESJobSearchService wrapper.le(ESJobDocument::getPostingDate, DateUtils.ES_DATE_FORMATTER.format(endDate.toInstant())); } // 先开启打分、优先按匹配分数排序(关键词前台命中越高越靠前) - wrapper.trackScores(); - wrapper.sortByScore(SortOrder.DESC); +// wrapper.trackScores(); +// wrapper.sortByScore(SortOrder.DESC); if(Objects.nonNull(jobQuery.getOrder())){ - wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last")); - if(jobQuery.getOrder()==1){ - wrapper.orderByDesc(ESJobDocument::getIsHot); - wrapper.orderByDesc(ESJobDocument::getApplyNum); - wrapper.orderByDesc(ESJobDocument::getView); + switch (jobQuery.getOrder()) { + case 0: // 推荐:权重 → 最新发布 + wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last")); + break; + case 1: // 最热:权重 → 热度 + wrapper.orderByDesc(ESJobDocument::getIsHot); + wrapper.orderByDesc(ESJobDocument::getApplyNum); + wrapper.orderByDesc(ESJobDocument::getView); + break; + case 2: // 最新发布:权重 → 最新发布 + wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last")); + break; + case 3: // 最大薪资:权重 → 最高薪资 + wrapper.orderByDesc(ESJobDocument::getMaxSalary); + break; + default: // 默认:权重 → 最新发布 + wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last")); } - if(jobQuery.getOrder()==3){ - wrapper.orderByDesc(ESJobDocument::getMaxSalary); - } - }else{ - //默认按照发布时间倒叙 - wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last")); } EsPageInfo esJobDocumentEsPageInfo = esJobDocumentMapper.pageQuery(wrapper, pageNum, pageSize); return esJobDocumentEsPageInfo; diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/InterviewInvitationMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/InterviewInvitationMapper.xml index ed06d97..0e8aa22 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/InterviewInvitationMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/InterviewInvitationMapper.xml @@ -27,6 +27,7 @@ + @@ -65,7 +66,7 @@ t.interview_time, t.interview_method, t.meeting_link, t.meeting_password, t.interview_location, t.contact_phone, t.interviewer_name, - t.job_name, t.status, t.del_flag,t.is_read, + t.job_name, t.status, t.del_flag,t.is_read,t.meeting_type, t.create_by, t.create_time, t.update_by, t.update_time, t.remark, COALESCE(c.name, t.company_name) as company_name, COALESCE(j.job_title, t.job_name) as job_title,