1.修改工作经历和教育经历实体类位置,方便移动端用户可以修改自己的信息

2.修改es按照名称或者类型查询的逻辑
This commit is contained in:
chenshaohua
2026-07-14 13:00:57 +08:00
parent bf49838c22
commit b782793e25
17 changed files with 134 additions and 31 deletions

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cms.service;
import com.ruoyi.cms.domain.AppUserEducation;
import com.ruoyi.common.core.domain.entity.AppUserEducation;
import java.util.List;

View File

@@ -1,6 +1,6 @@
package com.ruoyi.cms.service;
import com.ruoyi.cms.domain.AppUserTrain;
import com.ruoyi.common.core.domain.entity.AppUserTrain;
import java.util.List;

View File

@@ -1,7 +1,7 @@
package com.ruoyi.cms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cms.domain.AppUserEducation;
import com.ruoyi.common.core.domain.entity.AppUserEducation;
import com.ruoyi.cms.mapper.AppUserEducationMapper;
import com.ruoyi.cms.service.IAppUserEducationService;
import org.springframework.stereotype.Service;

View File

@@ -7,6 +7,8 @@ import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.entity.AppUserEducation;
import com.ruoyi.common.core.domain.entity.AppUserTrain;
import com.ruoyi.cms.util.http.HttpClientUtils;
import com.ruoyi.cms.util.http.JsonUtil;
import com.ruoyi.common.constant.CacheConstants;
@@ -55,6 +57,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
private FileMapper fileMapper;
@Autowired
private HttpClientUtils httpClientUtils;
//教育经历
@Autowired
private AppUserEducationMapper appUserEducationMapper;
//培训经历
@Autowired
private AppUserTrainMapper appUserTrainMapper;
//互联网修改个人信息
@Value("${lc_web_auth.editUserInfoUrl}")
@@ -587,6 +595,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
//修改技能
List<AppSkill> skillList=registerBody.getAppSkillsList();
editSkill(skillList,userId);
//修改教育信息
List<AppUserEducation> educations=registerBody.getAppUserEducations();
editAppUserEducation(educations,userId);
//修改培训信息
List<AppUserTrain> trains=registerBody.getAppUserTrains();
editAppUserTrain(trains,userId);
//修改用户信息
AppUser appUser=registerBody.getAppUser();
if(appUser!=null&&appUser.getUserId()!=null){
@@ -630,6 +644,42 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
}
}
/**
* 修改教育经历
* @param list
* @param userId
*/
public void editAppUserEducation(List<AppUserEducation> list, Long userId){
if(list!=null&&list.size()>0){
List<AppUserEducation> add=new ArrayList<>();
list.forEach(it->{
it.setUserId(userId);
if(it.getId()!=null){appUserEducationMapper.updateById(it);}else{add.add(it);}
});
if(add.size()>0){
appUserEducationMapper.batchInsert(add);
}
}
}
/**
* 修改培训经历
* @param list
* @param userId
*/
public void editAppUserTrain(List<AppUserTrain> list, Long userId){
if(list!=null&&list.size()>0){
List<AppUserTrain> add=new ArrayList<>();
list.forEach(it->{
it.setUserId(userId);
if(it.getId()!=null){appUserTrainMapper.updateById(it);}else{add.add(it);}
});
if(add.size()>0){
appUserTrainMapper.batchInsert(add);
}
}
}
@Override
public List<AppUser> selectNoTmAppUserList(AppUser appUser)
{

View File

@@ -1,7 +1,7 @@
package com.ruoyi.cms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cms.domain.AppUserTrain;
import com.ruoyi.common.core.domain.entity.AppUserTrain;
import com.ruoyi.cms.mapper.AppUserTrainMapper;
import com.ruoyi.cms.service.IAppUserTrainService;
import org.springframework.stereotype.Service;

View File

@@ -545,28 +545,38 @@ public class ESJobSearchImpl implements IESJobSearchService
//优化岗位名称查询,只有命中岗位名称或者分类就行
String titleStr = esJobSearch.getJobTitle();
String cateStr = esJobSearch.getJobCategory();
if (!StringUtil.isEmptyOrNull(titleStr) || !StringUtil.isEmptyOrNull(cateStr)) {
boolean hasTitle = !StringUtil.isEmptyOrNull(titleStr);
boolean hasCate = !StringUtil.isEmptyOrNull(cateStr);
if (hasTitle || hasCate) {
wrapper.and(sub -> {
boolean first = true;
sub.or();
if (!StringUtil.isEmptyOrNull(titleStr)) {
if (hasTitle) {
String[] words = titleStr.split(",");
for (String w : words) {
if (!first) sub.or();
// 同时匹配岗位名称和岗位分类jobCategory 已存储为标签文字)
sub.match(ESJobDocument::getJobTitle, w, 5.0f);
sub.or();
sub.match(ESJobDocument::getJobCategory, w, 5.0f);
first = false;
String word = w.trim();
if (StringUtil.isEmptyOrNull(word)) {
continue;
}
sub.or(inner -> inner
.match(ESJobDocument::getJobTitle, word, 5.0f)
.or()
.match(ESJobDocument::getJobCategory, word, 5.0f)
);
}
}
if (!StringUtil.isEmptyOrNull(cateStr)) {
// category 搜索时同时匹配 jobCategory 和 jobTitle避免因 jobCategory 字段为空而搜不到
if (!first) sub.or();
sub.match(ESJobDocument::getJobCategory, cateStr, 5.0f);
first = false;
sub.or();
sub.match(ESJobDocument::getJobTitle, cateStr, 5.0f);
if (hasCate) {
String[] words = cateStr.split(",");
for (String w : words) {
String word = w.trim();
if (StringUtil.isEmptyOrNull(word)) {
continue;
}
sub.or(inner -> inner
.match(ESJobDocument::getJobTitle, word, 5.0f)
.or()
.match(ESJobDocument::getJobCategory, word, 5.0f)
);
}
}
});
}