Merge branch 'main' of ssh://124.243.245.42:2222/zkr/shz-backend

This commit is contained in:
2026-07-21 14:03:13 +08:00
3 changed files with 34 additions and 24 deletions

View File

@@ -169,13 +169,18 @@ public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> impl
companyContactMapper.update(null,Wrappers.<CompanyContact>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<CompanyContact> 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<Long> jobIds = jobMapper.selectList(Wrappers.<Job>lambdaQuery()

View File

@@ -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())){
switch (jobQuery.getOrder()) {
case 0: // 推荐:权重 → 最新发布
wrapper.sort(SortBuilders.fieldSort("postingDate").order(SortOrder.DESC).missing("_last"));
if(jobQuery.getOrder()==1){
break;
case 1: // 最热:权重 → 热度
wrapper.orderByDesc(ESJobDocument::getIsHot);
wrapper.orderByDesc(ESJobDocument::getApplyNum);
wrapper.orderByDesc(ESJobDocument::getView);
}
if(jobQuery.getOrder()==3){
wrapper.orderByDesc(ESJobDocument::getMaxSalary);
}
}else{
//默认按照发布时间倒叙
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"));
}
}
EsPageInfo<ESJobDocument> esJobDocumentEsPageInfo = esJobDocumentMapper.pageQuery(wrapper, pageNum, pageSize);
return esJobDocumentEsPageInfo;

View File

@@ -27,6 +27,7 @@
<result property="updateTime" column="update_time"/>
<result property="remark" column="remark"/>
<result property="isRead" column="is_read"/>
<result property="meetingType" column="meeting_type"/>
</resultMap>
<!-- VO 带公司名和岗位名继承基础映射jobTitle 来自关联查询的实时数据) -->
@@ -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,