1.修改工作经历和教育经历实体类位置,方便移动端用户可以修改自己的信息
2.修改es按照名称或者类型查询的逻辑
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
package com.ruoyi.cms.controller.app;
|
package com.ruoyi.cms.controller.app;
|
||||||
|
|
||||||
import com.ruoyi.cms.domain.AppUserEducation;
|
import com.ruoyi.common.core.domain.entity.AppUserEducation;
|
||||||
import com.ruoyi.cms.service.IAppUserEducationService;
|
import com.ruoyi.cms.service.IAppUserEducationService;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.ruoyi.cms.controller.app;
|
package com.ruoyi.cms.controller.app;
|
||||||
|
|
||||||
import com.ruoyi.cms.domain.AppUserTrain;
|
import com.ruoyi.common.core.domain.entity.AppUserTrain;
|
||||||
import com.ruoyi.cms.service.IAppUserTrainService;
|
import com.ruoyi.cms.service.IAppUserTrainService;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.ruoyi.cms.controller.cms;
|
package com.ruoyi.cms.controller.cms;
|
||||||
|
|
||||||
import com.ruoyi.cms.domain.AppUserEducation;
|
import com.ruoyi.common.core.domain.entity.AppUserEducation;
|
||||||
import com.ruoyi.cms.service.IAppUserEducationService;
|
import com.ruoyi.cms.service.IAppUserEducationService;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.ruoyi.cms.controller.cms;
|
package com.ruoyi.cms.controller.cms;
|
||||||
|
|
||||||
import com.ruoyi.cms.domain.AppUserTrain;
|
import com.ruoyi.common.core.domain.entity.AppUserTrain;
|
||||||
import com.ruoyi.cms.service.IAppUserTrainService;
|
import com.ruoyi.cms.service.IAppUserTrainService;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.controller.BaseController;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.ruoyi.cms.mapper;
|
package com.ruoyi.cms.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.ruoyi.cms.domain.AppUserEducation;
|
import com.ruoyi.common.core.domain.entity.AppUserEducation;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -18,4 +18,6 @@ public interface AppUserEducationMapper extends BaseMapper<AppUserEducation>
|
|||||||
* 根据用户ID查询全部学历(APP简历使用)
|
* 根据用户ID查询全部学历(APP简历使用)
|
||||||
*/
|
*/
|
||||||
List<AppUserEducation> selectEducationListByUserId(@Param("userId") Long userId);
|
List<AppUserEducation> selectEducationListByUserId(@Param("userId") Long userId);
|
||||||
|
|
||||||
|
void batchInsert(@Param("appUserEducations") List<AppUserEducation> appUserEducations);
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.ruoyi.cms.mapper;
|
package com.ruoyi.cms.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.ruoyi.cms.domain.AppUserTrain;
|
import com.ruoyi.common.core.domain.entity.AppUserTrain;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -19,4 +19,6 @@ public interface AppUserTrainMapper extends BaseMapper<AppUserTrain>
|
|||||||
* 根据用户ID查询全部培训记录
|
* 根据用户ID查询全部培训记录
|
||||||
*/
|
*/
|
||||||
List<AppUserTrain> selectTrainListByUserId(@Param("userId") Long userId);
|
List<AppUserTrain> selectTrainListByUserId(@Param("userId") Long userId);
|
||||||
|
|
||||||
|
void batchInsert(@Param("appUserTrains") List<AppUserTrain> appUserTrains);
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.ruoyi.cms.service;
|
package com.ruoyi.cms.service;
|
||||||
|
|
||||||
import com.ruoyi.cms.domain.AppUserEducation;
|
import com.ruoyi.common.core.domain.entity.AppUserEducation;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.ruoyi.cms.service;
|
package com.ruoyi.cms.service;
|
||||||
|
|
||||||
import com.ruoyi.cms.domain.AppUserTrain;
|
import com.ruoyi.common.core.domain.entity.AppUserTrain;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.ruoyi.cms.service.impl;
|
package com.ruoyi.cms.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.mapper.AppUserEducationMapper;
|
||||||
import com.ruoyi.cms.service.IAppUserEducationService;
|
import com.ruoyi.cms.service.IAppUserEducationService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ import com.alibaba.fastjson2.JSON;
|
|||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
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.HttpClientUtils;
|
||||||
import com.ruoyi.cms.util.http.JsonUtil;
|
import com.ruoyi.cms.util.http.JsonUtil;
|
||||||
import com.ruoyi.common.constant.CacheConstants;
|
import com.ruoyi.common.constant.CacheConstants;
|
||||||
@@ -55,6 +57,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
|||||||
private FileMapper fileMapper;
|
private FileMapper fileMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private HttpClientUtils httpClientUtils;
|
private HttpClientUtils httpClientUtils;
|
||||||
|
//教育经历
|
||||||
|
@Autowired
|
||||||
|
private AppUserEducationMapper appUserEducationMapper;
|
||||||
|
//培训经历
|
||||||
|
@Autowired
|
||||||
|
private AppUserTrainMapper appUserTrainMapper;
|
||||||
|
|
||||||
//互联网修改个人信息
|
//互联网修改个人信息
|
||||||
@Value("${lc_web_auth.editUserInfoUrl}")
|
@Value("${lc_web_auth.editUserInfoUrl}")
|
||||||
@@ -587,6 +595,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
|||||||
//修改技能
|
//修改技能
|
||||||
List<AppSkill> skillList=registerBody.getAppSkillsList();
|
List<AppSkill> skillList=registerBody.getAppSkillsList();
|
||||||
editSkill(skillList,userId);
|
editSkill(skillList,userId);
|
||||||
|
//修改教育信息
|
||||||
|
List<AppUserEducation> educations=registerBody.getAppUserEducations();
|
||||||
|
editAppUserEducation(educations,userId);
|
||||||
|
//修改培训信息
|
||||||
|
List<AppUserTrain> trains=registerBody.getAppUserTrains();
|
||||||
|
editAppUserTrain(trains,userId);
|
||||||
//修改用户信息
|
//修改用户信息
|
||||||
AppUser appUser=registerBody.getAppUser();
|
AppUser appUser=registerBody.getAppUser();
|
||||||
if(appUser!=null&&appUser.getUserId()!=null){
|
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
|
@Override
|
||||||
public List<AppUser> selectNoTmAppUserList(AppUser appUser)
|
public List<AppUser> selectNoTmAppUserList(AppUser appUser)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.ruoyi.cms.service.impl;
|
package com.ruoyi.cms.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.mapper.AppUserTrainMapper;
|
||||||
import com.ruoyi.cms.service.IAppUserTrainService;
|
import com.ruoyi.cms.service.IAppUserTrainService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@@ -545,28 +545,38 @@ public class ESJobSearchImpl implements IESJobSearchService
|
|||||||
//优化岗位名称查询,只有命中岗位名称或者分类就行
|
//优化岗位名称查询,只有命中岗位名称或者分类就行
|
||||||
String titleStr = esJobSearch.getJobTitle();
|
String titleStr = esJobSearch.getJobTitle();
|
||||||
String cateStr = esJobSearch.getJobCategory();
|
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 -> {
|
wrapper.and(sub -> {
|
||||||
boolean first = true;
|
if (hasTitle) {
|
||||||
sub.or();
|
|
||||||
if (!StringUtil.isEmptyOrNull(titleStr)) {
|
|
||||||
String[] words = titleStr.split(",");
|
String[] words = titleStr.split(",");
|
||||||
for (String w : words) {
|
for (String w : words) {
|
||||||
if (!first) sub.or();
|
String word = w.trim();
|
||||||
// 同时匹配岗位名称和岗位分类(jobCategory 已存储为标签文字)
|
if (StringUtil.isEmptyOrNull(word)) {
|
||||||
sub.match(ESJobDocument::getJobTitle, w, 5.0f);
|
continue;
|
||||||
sub.or();
|
}
|
||||||
sub.match(ESJobDocument::getJobCategory, w, 5.0f);
|
sub.or(inner -> inner
|
||||||
first = false;
|
.match(ESJobDocument::getJobTitle, word, 5.0f)
|
||||||
|
.or()
|
||||||
|
.match(ESJobDocument::getJobCategory, word, 5.0f)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!StringUtil.isEmptyOrNull(cateStr)) {
|
if (hasCate) {
|
||||||
// category 搜索时同时匹配 jobCategory 和 jobTitle,避免因 jobCategory 字段为空而搜不到
|
String[] words = cateStr.split(",");
|
||||||
if (!first) sub.or();
|
for (String w : words) {
|
||||||
sub.match(ESJobDocument::getJobCategory, cateStr, 5.0f);
|
String word = w.trim();
|
||||||
first = false;
|
if (StringUtil.isEmptyOrNull(word)) {
|
||||||
sub.or();
|
continue;
|
||||||
sub.match(ESJobDocument::getJobTitle, cateStr, 5.0f);
|
}
|
||||||
|
sub.or(inner -> inner
|
||||||
|
.match(ESJobDocument::getJobTitle, word, 5.0f)
|
||||||
|
.or()
|
||||||
|
.match(ESJobDocument::getJobCategory, word, 5.0f)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
<result column="create_time" property="createTime"/>
|
<result column="create_time" property="createTime"/>
|
||||||
<result column="update_by" property="updateBy"/>
|
<result column="update_by" property="updateBy"/>
|
||||||
<result column="update_time" property="updateTime"/>
|
<result column="update_time" property="updateTime"/>
|
||||||
|
<result column="remark" property="remark"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectAppUserEducationVo">
|
<sql id="selectAppUserEducationVo">
|
||||||
@@ -51,4 +52,21 @@
|
|||||||
order by sort asc
|
order by sort asc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<insert id="batchInsert">
|
||||||
|
INSERT INTO app_user_education (
|
||||||
|
user_id, school_name, education_level, major, degree, study_type,
|
||||||
|
start_time, end_time, content, sort, del_flag, create_by, create_time,
|
||||||
|
update_by, update_time,remark
|
||||||
|
) VALUES
|
||||||
|
<foreach collection="appUserEducations" item="item" separator=",">
|
||||||
|
(
|
||||||
|
#{item.userId}, #{item.schoolName}, #{item.educationLevel},
|
||||||
|
#{item.major}, #{item.degree}, #{item.studyType}, #{item.startTime},
|
||||||
|
#{item.endTime}, #{item.content}, #{item.sort}, #{item.delFlag},
|
||||||
|
#{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime},
|
||||||
|
#{item.remark}
|
||||||
|
)
|
||||||
|
</foreach>
|
||||||
|
</insert>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
<result column="create_time" property="createTime"/>
|
<result column="create_time" property="createTime"/>
|
||||||
<result column="update_by" property="updateBy"/>
|
<result column="update_by" property="updateBy"/>
|
||||||
<result column="update_time" property="updateTime"/>
|
<result column="update_time" property="updateTime"/>
|
||||||
|
<result column="remark" property="remark"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectAppUserTrainVo">
|
<sql id="selectAppUserTrainVo">
|
||||||
@@ -48,4 +49,20 @@
|
|||||||
order by sort asc
|
order by sort asc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<insert id="batchInsert">
|
||||||
|
INSERT INTO app_user_train (
|
||||||
|
user_id, train_org, train_course, start_time, end_time,
|
||||||
|
train_cert, train_content, sort, del_flag, create_by, create_time,
|
||||||
|
update_by, update_time,remark
|
||||||
|
) VALUES
|
||||||
|
<foreach collection="appUserTrains" item="item" separator=",">
|
||||||
|
(
|
||||||
|
#{item.userId}, #{item.trainOrg}, #{item.trainCourse},
|
||||||
|
#{item.startTime}, #{item.endTime}, #{item.trainCert}, #{item.trainContent},
|
||||||
|
#{item.sort}, #{item.delFlag}, #{item.createBy}, #{item.createTime},
|
||||||
|
#{item.updateBy}, #{item.updateTime}, #{item.remark}
|
||||||
|
)
|
||||||
|
</foreach>
|
||||||
|
</insert>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.ruoyi.cms.domain;
|
package com.ruoyi.common.core.domain.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.ruoyi.cms.domain;
|
package com.ruoyi.common.core.domain.entity;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
@@ -9,8 +9,6 @@ import com.ruoyi.common.core.domain.BaseEntity;
|
|||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ApiModel("APP求职者培训经历表")
|
@ApiModel("APP求职者培训经历表")
|
||||||
@@ -21,6 +21,12 @@ public class RegisterBody extends LoginBody
|
|||||||
@ApiModelProperty("技能列表")
|
@ApiModelProperty("技能列表")
|
||||||
private List<AppSkill> appSkillsList;
|
private List<AppSkill> appSkillsList;
|
||||||
|
|
||||||
|
@ApiModelProperty("教育经历列表")
|
||||||
|
private List<AppUserEducation> appUserEducations;
|
||||||
|
|
||||||
|
@ApiModelProperty("培训经历列表")
|
||||||
|
private List<AppUserTrain> appUserTrains;
|
||||||
|
|
||||||
@ApiModelProperty("公司信息")
|
@ApiModelProperty("公司信息")
|
||||||
private Company company;
|
private Company company;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user