修改推荐岗位——企业时,传递页数查询
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user