1.修改es(返回企业描述、企业联系人list)信息
2.添加pc端投简历接口 3.添加pc端查询简历、编辑简历接口
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package com.ruoyi.cms.controller.app;
|
||||
|
||||
import com.ruoyi.cms.domain.File;
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
import com.ruoyi.cms.service.IFileService;
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
|
||||
@@ -2,6 +2,10 @@ package com.ruoyi.cms.controller.cms;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.ruoyi.common.annotation.BussinessLog;
|
||||
import com.ruoyi.common.core.domain.model.RegisterBody;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -111,4 +115,30 @@ public class CmsAppUserController extends BaseController
|
||||
return toAjax(appUserService.deleteAppUserByUserIds(userIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取APP用户详细信息(pc端获取移动端简历信息)
|
||||
*/
|
||||
@ApiOperation("pc端个人简历信息-获取APP用户详细信息")
|
||||
@GetMapping(value = "/getUserInfo")
|
||||
public AjaxResult getUserInfo()
|
||||
{
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("未登录!");
|
||||
}
|
||||
return success(appUserService.getUserInfo());
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户简历信息-(技能信息、经历信息)
|
||||
*/
|
||||
@ApiOperation("修改用户简历信息")
|
||||
@PostMapping("/editRegisterUser")
|
||||
@BussinessLog(title = "保存简历")
|
||||
public AjaxResult editRegisterUser(@RequestBody RegisterBody registerBody)
|
||||
{
|
||||
if (registerBody == null) {
|
||||
throw new IllegalArgumentException("入参registerBody不能为空");
|
||||
}
|
||||
return AjaxResult.success(appUserService.editRegisterUser(registerBody));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,4 +159,12 @@ public class CmsJobController extends BaseController
|
||||
List<ESJobDocument> jobList = jobService.sysRecommend(esJobSearch);
|
||||
return success(jobList);
|
||||
}
|
||||
|
||||
@ApiOperation("获取所有岗位")
|
||||
@GetMapping("/selectAllJob")
|
||||
public AjaxResult selectAllJob()
|
||||
{
|
||||
List<Job> jobList = jobService.selectAllJob();
|
||||
return success(jobList);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,9 +12,11 @@ import com.ruoyi.common.core.domain.entity.AppUser;
|
||||
import com.ruoyi.common.core.domain.entity.Company;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@@ -65,4 +67,20 @@ public class JobApplyController extends BaseController {
|
||||
List<CandidateVO> list = iJobApplyService.selectApplyJobUserList(appUser);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@GetMapping("/apply/{jobId}")
|
||||
@ApiOperation("用户申请岗位")
|
||||
public AjaxResult apply(@ApiParam("岗位id") @PathVariable Long jobId)
|
||||
{
|
||||
if(jobId==null){
|
||||
return AjaxResult.error("岗位id为空");
|
||||
}
|
||||
if(!SecurityUtils.isLogin()){
|
||||
return AjaxResult.error("用户未登录!");
|
||||
}
|
||||
JobApply jobApply=new JobApply();
|
||||
jobApply.setJobId(jobId);
|
||||
jobApply.setUserId(SecurityUtils.getUserId());
|
||||
return toAjax(iJobApplyService.applyComJob(jobApply));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,11 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.ruoyi.cms.domain.vo.CompanyVo;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.domain.entity.Company;
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -173,4 +175,8 @@ public class Job extends BaseEntity
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("附件列表")
|
||||
private List<File> filesList;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("公司信息")
|
||||
private CompanyVo companyVo;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.ruoyi.cms.domain.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
import com.ruoyi.common.core.domain.entity.CompanyContact;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 公司对象 company
|
||||
* @author lishundong
|
||||
* @date 2024-09-04
|
||||
*/
|
||||
@Data
|
||||
public class CompanyVo extends BaseEntity
|
||||
{
|
||||
@ApiModelProperty("公司id")
|
||||
private Long companyId;
|
||||
|
||||
@Excel(name = "单位名称")
|
||||
@ApiModelProperty("单位名称")
|
||||
private String name;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("公司描述")
|
||||
private String companyDescription;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("企业联系人列表")
|
||||
private List<CompanyContact> companyContactList;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.ruoyi.cms.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cms.domain.File;
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -62,4 +62,8 @@ public interface IAppUserService
|
||||
public AppUser selectAppuserByIdcard(String idCard);
|
||||
|
||||
public AppUserLky selectAppUserInfo(AppUser appUser);
|
||||
|
||||
public AppUser getUserInfo();
|
||||
|
||||
public int editRegisterUser(RegisterBody registerBody);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.ruoyi.cms.service;
|
||||
|
||||
import com.ruoyi.cms.domain.File;
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
|
||||
@@ -65,4 +65,7 @@ public interface IJobApplyService
|
||||
List<CandidateVO> selectAppUserList(Job job);
|
||||
|
||||
List<CandidateVO> selectApplyJobUserList(AppUser appUser);
|
||||
|
||||
|
||||
public int applyComJob(JobApply jobApply);
|
||||
}
|
||||
|
||||
@@ -94,4 +94,6 @@ public interface IJobService
|
||||
List<AppUser> selectApplyJobUserList(Long jobId);
|
||||
|
||||
List<ESJobDocument> sysRecommend(ESJobSearch esJobSearch);
|
||||
|
||||
List<Job> selectAllJob();
|
||||
}
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
package com.ruoyi.cms.service.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
import com.ruoyi.cms.domain.vo.AppSkillVo;
|
||||
import com.ruoyi.cms.mapper.*;
|
||||
import com.ruoyi.cms.util.StringUtil;
|
||||
import com.ruoyi.common.core.domain.entity.*;
|
||||
import com.ruoyi.cms.domain.vo.AppUserLky;
|
||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.core.domain.model.RegisterBody;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
@@ -43,6 +42,9 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
||||
private AppSkillMapper appSkillMapper;
|
||||
@Autowired
|
||||
private CompanyMapper companyMapper;
|
||||
@Autowired
|
||||
private FileMapper fileMapper;
|
||||
|
||||
/**
|
||||
* 查询APP用户
|
||||
*
|
||||
@@ -118,6 +120,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
||||
@Override
|
||||
public int updateAppUser(AppUser appUser)
|
||||
{
|
||||
if(appUser.getExperiencesList()!=null&&appUser.getExperiencesList().size()>0){
|
||||
userWorkExperiencesMapper.batchInsert(appUser.getExperiencesList());
|
||||
}
|
||||
if(appUser.getAppSkillsList()!=null&&appUser.getAppSkillsList().size()>0){
|
||||
appSkillMapper.batchInsert(appUser.getAppSkillsList());
|
||||
}
|
||||
return appUserMapper.updateById(appUser);
|
||||
}
|
||||
|
||||
@@ -236,4 +244,78 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper,AppUser> imple
|
||||
lky.setAppSkillsList(skillList);
|
||||
return lky;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AppUser getUserInfo() {
|
||||
//查询用户信息
|
||||
LoginUser loginUser=SecurityUtils.getLoginUser();
|
||||
SysUser sysUser=loginUser.getUser();
|
||||
AppUser appUser=selectAppuserByIdcard(sysUser.getIdCard());
|
||||
if(appUser!=null&&appUser.getUserId()!=null){
|
||||
//查询工作经历信息
|
||||
UserWorkExperiences parm=new UserWorkExperiences();
|
||||
parm.setUserId(appUser.getUserId());
|
||||
List<UserWorkExperiences> experiencesList=userWorkExperiencesMapper.getWorkExperiencesList(parm);
|
||||
appUser.setExperiencesList(experiencesList);
|
||||
//查询用户技能
|
||||
AppSkill parmsk=new AppSkill();
|
||||
parmsk.setUserId(appUser.getUserId());
|
||||
List<AppSkill> skillList=appSkillMapper.getList(parmsk);
|
||||
appUser.setAppSkillsList(skillList);
|
||||
|
||||
File fileParm=new File();
|
||||
fileParm.setBussinessId(appUser.getUserId());
|
||||
List<File> files=fileMapper.selectFileList(fileParm);
|
||||
appUser.setFileList(files);
|
||||
}
|
||||
return appUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int editRegisterUser(RegisterBody registerBody) {
|
||||
//保存或修改工作经历
|
||||
List<UserWorkExperiences> userWorkExperiencesList=registerBody.getExperiencesList();
|
||||
editUserWorkExperiences(userWorkExperiencesList);
|
||||
//修改技能
|
||||
List<AppSkill> skillList=registerBody.getAppSkillsList();
|
||||
editSkill(skillList);
|
||||
//修改用户信息
|
||||
AppUser appUser=registerBody.getAppUser();
|
||||
if(appUser!=null&&appUser.getUserId()!=null){
|
||||
appUserMapper.updateById(appUser);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改技能
|
||||
* @param list
|
||||
*/
|
||||
public void editSkill(List<AppSkill> list){
|
||||
if(list!=null&&list.size()>0){
|
||||
List<AppSkill> add=new ArrayList<>();
|
||||
list.forEach(it->{
|
||||
if(it.getId()!=null){appSkillMapper.updateById(it);}else{add.add(it);}
|
||||
});
|
||||
if(add.size()>0){
|
||||
appSkillMapper.batchInsert(add);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改工作经历
|
||||
* @param list
|
||||
*/
|
||||
public void editUserWorkExperiences(List<UserWorkExperiences> list){
|
||||
if(list!=null&&list.size()>0){
|
||||
List<UserWorkExperiences> add=new ArrayList<>();
|
||||
list.forEach(it->{
|
||||
if(it.getId()!=null){userWorkExperiencesMapper.updateById(it);}else{add.add(it);}
|
||||
});
|
||||
if(add.size()>0){
|
||||
userWorkExperiencesMapper.batchInsert(add);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,16 +4,12 @@ import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
import com.ruoyi.cms.domain.File;
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
import com.ruoyi.cms.mapper.FileMapper;
|
||||
import com.ruoyi.cms.service.IFileService;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.SiteSecurityUtils;
|
||||
import com.ruoyi.common.utils.uuid.IdUtils;
|
||||
import com.ruoyi.common.utils.uuid.UUID;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 岗位申请Service业务层处理
|
||||
@@ -133,4 +134,17 @@ public class JobApplyServiceImpl extends ServiceImpl<JobApplyMapper,JobApply> im
|
||||
public List<CandidateVO> selectApplyJobUserList(AppUser appUser) {
|
||||
return jobApplyMapper.selectApplyJobUserList(appUser);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int applyComJob(JobApply jobApply) {
|
||||
//todo 计算匹配度
|
||||
jobApply.setMatchingDegree(1L);
|
||||
List<JobApply> jobApplies = jobApplyMapper.selectList(Wrappers.<JobApply>lambdaQuery().eq(JobApply::getJobId, jobApply.getJobId()).eq(JobApply::getUserId, jobApply.getUserId()));
|
||||
if(jobApplies.size()>0){
|
||||
List<Long> ids = jobApplies.stream().map(JobApply::getId).collect(Collectors.toList());
|
||||
jobApplyMapper.deleteBatchIds(ids);
|
||||
}
|
||||
jobApplyMapper.insert(jobApply);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.ruoyi.cms.domain.*;
|
||||
import com.ruoyi.cms.domain.File;
|
||||
import com.ruoyi.common.core.domain.entity.File;
|
||||
import com.ruoyi.cms.domain.query.ESJobSearch;
|
||||
import com.ruoyi.cms.domain.vo.CandidateVO;
|
||||
import com.ruoyi.cms.mapper.*;
|
||||
@@ -853,4 +853,13 @@ public class JobServiceImpl extends ServiceImpl<JobMapper,Job> implements IJobSe
|
||||
List<ESJobDocument> esJobDocuments = sysUserCollection(jobListResult);
|
||||
return esJobDocuments;
|
||||
}
|
||||
|
||||
public List<Job> selectAllJob(){
|
||||
int batchSize = 1000; // 每批次处理的数据量
|
||||
int offset = 0;
|
||||
Map<String,Object> params=new HashMap<>();
|
||||
params.put("batchSize", batchSize);
|
||||
params.put("offset", offset*batchSize);
|
||||
return jobMapper.selectAllJob(params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,64 @@
|
||||
<result property="explainUrl" column="explain_url" />
|
||||
<result property="cover" column="cover" />
|
||||
<result property="jobType" column="job_type" />
|
||||
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ruoyi.cms.domain.Job" id="JobEsResult">
|
||||
<result property="jobId" column="job_id" />
|
||||
<result property="jobTitle" column="job_title" />
|
||||
<result property="minSalary" column="min_salary" />
|
||||
<result property="maxSalary" column="max_salary" />
|
||||
<result property="education" column="education" />
|
||||
<result property="experience" column="experience" />
|
||||
<result property="companyName" column="company_name" />
|
||||
<result property="jobLocation" column="job_location" />
|
||||
<result property="postingDate" column="posting_date" />
|
||||
<result property="vacancies" column="vacancies" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="latitude" column="latitude" />
|
||||
<result property="longitude" column="longitude" />
|
||||
<result property="view" column="view" />
|
||||
<result property="companyId" column="company_id" />
|
||||
<result property="isHot" column="is_hot" />
|
||||
<result property="applyNum" column="apply_num" />
|
||||
<result property="dataSource" column="data_source" />
|
||||
<result property="jobLocationAreaCode" column="job_location_area_code" />
|
||||
<result property="description" column="description" />
|
||||
<result property="isPublish" column="is_publish" />
|
||||
<result property="dataSource" column="data_source" />
|
||||
<result property="jobUrl" column="job_url" />
|
||||
<result property="rowId" column="row_id" />
|
||||
<result property="jobCategory" column="job_category" />
|
||||
<result property="isExplain" column="is_explain" />
|
||||
<result property="explainUrl" column="explain_url" />
|
||||
<result property="cover" column="cover" />
|
||||
<result property="jobType" column="job_type" />
|
||||
<result property="type" column="type" />
|
||||
<result property="industry" column="industry" />
|
||||
<result property="scale" column="scale" />
|
||||
<result property="companyNature" column="company_nature" />
|
||||
<result property="code" column="code" />
|
||||
|
||||
<association property="companyVo" resultMap="CompanyResult"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ruoyi.cms.domain.vo.CompanyVo" id="CompanyResult">
|
||||
<result property="companyId" column="company_id"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="companyDescription" column="company_description"/>
|
||||
<collection property="companyContactList" ofType="com.ruoyi.common.core.domain.entity.CompanyContact"
|
||||
resultMap="CompanyContactResult"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="com.ruoyi.common.core.domain.entity.CompanyContact" id="CompanyContactResult">
|
||||
<result property="contactPerson" column="contact_person"/>
|
||||
<result property="contactPersonPhone" column="contact_person_phone"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectJobVo">
|
||||
@@ -214,9 +272,10 @@
|
||||
WHERE b.name = company.name
|
||||
)
|
||||
</select>
|
||||
<select id="selectAllJob" resultType="com.ruoyi.cms.domain.Job">
|
||||
SELECT j.*,c.industry,c.scale,c.nature as company_nature,c.code FROM job as j
|
||||
left join company as c on c.company_id = j.company_id limit #{offset},#{batchSize}
|
||||
<select id="selectAllJob" resultMap="JobEsResult">
|
||||
SELECT j.*,c.industry,c.scale,c.nature as company_nature,c.code,c.description as company_description,c.name,c.company_id,t.contact_person,t.contact_person_phone FROM job as j
|
||||
left join company as c on c.company_id = j.company_id and j.del_flag='0' and c.del_flag='0'
|
||||
left join company_contact as t on t.company_id=j.company_id and t.del_flag='0' where c.company_id='1' limit #{offset},#{batchSize}
|
||||
</select>
|
||||
<select id="selectAllInsertRowWork" resultType="com.ruoyi.cms.domain.RowWork">
|
||||
select Id, TaskId, TaskName, Std_class, SF, ZCMC, Aca112, Acb22a, Aac011, Acb240,
|
||||
|
||||
@@ -138,4 +138,12 @@ public class AppUser extends BaseEntity
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("工作经历列表")
|
||||
private List<UserWorkExperiences> experiencesList;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("技能列表")
|
||||
private List<AppSkill> appSkillsList;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty("附件列表")
|
||||
private List<File> fileList;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.ruoyi.cms.domain;
|
||||
package com.ruoyi.common.core.domain.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
Reference in New Issue
Block a user