修改推荐岗位——企业时,传递页数查询

This commit is contained in:
sh
2025-12-18 19:42:19 +08:00
parent be1213da46
commit 40d214f80b

View File

@@ -145,65 +145,36 @@ public class ESJobSearchImpl implements IESJobSearchService
ESJobSearch newSearch = new ESJobSearch(); ESJobSearch newSearch = new ESJobSearch();
BeanUtils.copyProperties(esJobSearch,newSearch); BeanUtils.copyProperties(esJobSearch,newSearch);
boolean isCompanyUser = StringUtil.IS_COMPANY_USER.equals(esJobSearch.getUserType());
//查询 //查询
if(SiteSecurityUtils.isLogin()){ if(SiteSecurityUtils.isLogin()){
AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId()); AppUser appUser = appUserService.selectAppUserByUserId(SiteSecurityUtils.getUserId());
if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){ if (!StringUtil.isEmptyOrNull(esJobSearch.getCode())) {
List<String> jobTitle = appUser.getJobTitle();
newSearch.setJobTitle(String.join(",", jobTitle));
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){
newSearch.setJobTitle(esJobSearch.getJobTitle());
}
if(!StringUtil.isEmptyOrNull(appUser.getEducation())){
newSearch.setEducation(appUser.getEducation());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getEducation())){
newSearch.setEducation(esJobSearch.getEducation());
}
if(!StringUtil.isEmptyOrNull(appUser.getArea())){
newSearch.setArea(appUser.getArea());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getArea())){
newSearch.setArea(esJobSearch.getArea());
}
if(!StringUtil.isEmptyOrNull(appUser.getWorkExperience())){
newSearch.setExperience(appUser.getWorkExperience());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getExperience())){
newSearch.setExperience(esJobSearch.getExperience());
}
if(!StringUtil.isEmptyOrNull(appUser.getSalaryMax())){
newSearch.setMaxSalary(Long.valueOf(appUser.getSalaryMax()));
}
if(!StringUtil.isEmptyOrNull(appUser.getSalaryMin())){
newSearch.setMinSalary(Long.valueOf(appUser.getSalaryMin()));
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getJobType())){
newSearch.setJobType(esJobSearch.getJobType());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
newSearch.setType(esJobSearch.getType());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getDescription())){
newSearch.setDescription(esJobSearch.getDescription());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
newSearch.setCompanyNature(esJobSearch.getCompanyNature());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getCode())){
newSearch.setCode(esJobSearch.getCode()); newSearch.setCode(esJobSearch.getCode());
} }
if (!isCompanyUser) {
setJobSeekerParams(appUser, esJobSearch, newSearch);
}
} }
LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds); LambdaEsQueryWrapper<ESJobDocument> wrapper = getWrapper(newSearch,jobIds);
//todo 暂时 //todo 暂时
if (isCompanyUser) {
int current = esJobSearch.getCurrent() == null ? 0 : esJobSearch.getCurrent();
current = Math.max(current, 0); // 非负校验
int pageSize = esJobSearch.getPageSize() == null ? 10 : esJobSearch.getPageSize();
pageSize = Math.min(pageSize, 50); // 限制最大条数
int from = current * pageSize;
wrapper.orderByAsc(ESJobDocument::getId);
wrapper.limit(from, pageSize);
}else{
wrapper.limit(esJobSearch.getPageSize()); wrapper.limit(esJobSearch.getPageSize());
}
List<ESJobDocument> esJobDocuments = esJobDocumentMapper.selectList(wrapper); List<ESJobDocument> esJobDocuments = esJobDocumentMapper.selectList(wrapper);
if (esJobDocuments.size() < esJobSearch.getPageSize()) { if (!isCompanyUser &&esJobDocuments.size() < esJobSearch.getPageSize()) {
// 定义要逐步放宽的搜索条件字段 // 定义要逐步放宽的搜索条件字段
List<Runnable> relaxConditions = new ArrayList<>(); List<Runnable> relaxConditions = new ArrayList<>();
relaxConditions.add(() -> newSearch.setArea(null)); relaxConditions.add(() -> newSearch.setArea(null));
@@ -251,6 +222,58 @@ public class ESJobSearchImpl implements IESJobSearchService
return esJobDocuments; return esJobDocuments;
} }
/**
* 拼装参数
* @param appUser
* @param esJobSearch
* @param newSearch
*/
private void setJobSeekerParams(AppUser appUser, ESJobSearch esJobSearch, ESJobSearch newSearch) {
if(!ListUtil.isEmptyOrNull(appUser.getJobTitle())){
List<String> jobTitle = appUser.getJobTitle();
newSearch.setJobTitle(String.join(",", jobTitle));
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getJobTitle())){
newSearch.setJobTitle(esJobSearch.getJobTitle());
}
if(!StringUtil.isEmptyOrNull(appUser.getEducation())){
newSearch.setEducation(appUser.getEducation());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getEducation())){
newSearch.setEducation(esJobSearch.getEducation());
}
if(!StringUtil.isEmptyOrNull(appUser.getArea())){
newSearch.setArea(appUser.getArea());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getArea())){
newSearch.setArea(esJobSearch.getArea());
}
if(!StringUtil.isEmptyOrNull(appUser.getWorkExperience())){
newSearch.setExperience(appUser.getWorkExperience());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getExperience())){
newSearch.setExperience(esJobSearch.getExperience());
}
if(!StringUtil.isEmptyOrNull(appUser.getSalaryMax())){
newSearch.setMaxSalary(Long.valueOf(appUser.getSalaryMax()));
}
if(!StringUtil.isEmptyOrNull(appUser.getSalaryMin())){
newSearch.setMinSalary(Long.valueOf(appUser.getSalaryMin()));
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getJobType())){
newSearch.setJobType(esJobSearch.getJobType());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getType())){
newSearch.setType(esJobSearch.getType());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getDescription())){
newSearch.setDescription(esJobSearch.getDescription());
}
if(!StringUtil.isEmptyOrNull(esJobSearch.getCompanyNature())){
newSearch.setCompanyNature(esJobSearch.getCompanyNature());
}
}
/** /**
* 新增全文检索数据 * 新增全文检索数据
@@ -459,9 +482,8 @@ public class ESJobSearchImpl implements IESJobSearchService
} }
} }
//企业用户排除es去除jobIds //企业用户排除es去除jobIds
boolean needExclude = true; boolean isCompanyUser = StringUtil.IS_COMPANY_USER.equals(esJobSearch.getUserType());
needExclude = !StringUtil.IS_COMPANY_USER.equals(esJobSearch.getUserType()); if (!isCompanyUser && !ListUtil.isListEmptyOrNull(jobIds)) {
if(needExclude && !ListUtil.isListEmptyOrNull(jobIds)){
wrapper.not().in(ESJobDocument::getJobId, jobIds); wrapper.not().in(ESJobDocument::getJobId, jobIds);
} }
return wrapper; return wrapper;