简历以及招聘人基础逻辑修改
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
package com.vetti.web.controller.hotake;
|
||||
|
||||
import com.vetti.common.annotation.Log;
|
||||
import com.vetti.common.core.controller.BaseController;
|
||||
import com.vetti.common.core.domain.AjaxResult;
|
||||
import com.vetti.common.core.page.TableDataInfo;
|
||||
import com.vetti.common.enums.BusinessType;
|
||||
import com.vetti.common.utils.poi.ExcelUtil;
|
||||
import com.vetti.hotake.domain.HotakeCandidateInterviewRecordInfo;
|
||||
import com.vetti.hotake.service.IHotakeCandidateInterviewRecordInfoService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 候选人面试记录信息Controller
|
||||
*
|
||||
* @author wangxiangshun
|
||||
* @date 2025-12-08
|
||||
*/
|
||||
@Api(tags ="候选人面试记录信息")
|
||||
@RestController
|
||||
@RequestMapping("/hotake/candidateInterviewRecordInfo")
|
||||
public class HotakeCandidateInterviewRecordInfoController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IHotakeCandidateInterviewRecordInfoService hotakeCandidateInterviewRecordInfoService;
|
||||
|
||||
/**
|
||||
* 查询候选人面试记录信息列表
|
||||
*/
|
||||
@ApiOperation("查询候选人面试记录信息列表")
|
||||
@PreAuthorize("@ss.hasPermi('hotake:candidateInterviewRecordInfo:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo)
|
||||
{
|
||||
startPage();
|
||||
List<HotakeCandidateInterviewRecordInfo> list = hotakeCandidateInterviewRecordInfoService.selectHotakeCandidateInterviewRecordInfoList(hotakeCandidateInterviewRecordInfo);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出候选人面试记录信息列表
|
||||
*/
|
||||
@ApiOperation("导出候选人面试记录信息列表")
|
||||
@PreAuthorize("@ss.hasPermi('hotake:candidateInterviewRecordInfo:export')")
|
||||
@Log(title = "候选人面试记录信息", businessType = BusinessType.EXPORT)
|
||||
@GetMapping("/export")
|
||||
public AjaxResult export(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo)
|
||||
{
|
||||
List<HotakeCandidateInterviewRecordInfo> list = hotakeCandidateInterviewRecordInfoService.selectHotakeCandidateInterviewRecordInfoList(hotakeCandidateInterviewRecordInfo);
|
||||
ExcelUtil<HotakeCandidateInterviewRecordInfo> util = new ExcelUtil<HotakeCandidateInterviewRecordInfo>(HotakeCandidateInterviewRecordInfo.class);
|
||||
return util.exportExcel(list, "候选人面试记录信息数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取候选人面试记录信息详细信息
|
||||
*/
|
||||
@ApiOperation("获取候选人面试记录信息详细信息")
|
||||
@PreAuthorize("@ss.hasPermi('hotake:candidateInterviewRecordInfo:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return AjaxResult.success(hotakeCandidateInterviewRecordInfoService.selectHotakeCandidateInterviewRecordInfoById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增候选人面试记录信息
|
||||
*/
|
||||
@ApiOperation("新增候选人面试记录信息")
|
||||
@PreAuthorize("@ss.hasPermi('hotake:candidateInterviewRecordInfo:add')")
|
||||
@Log(title = "候选人面试记录信息", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo)
|
||||
{
|
||||
return toAjax(hotakeCandidateInterviewRecordInfoService.insertHotakeCandidateInterviewRecordInfo(hotakeCandidateInterviewRecordInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改候选人面试记录信息
|
||||
*/
|
||||
@ApiOperation("修改候选人面试记录信息")
|
||||
@PreAuthorize("@ss.hasPermi('hotake:candidateInterviewRecordInfo:edit')")
|
||||
@Log(title = "候选人面试记录信息", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo)
|
||||
{
|
||||
return toAjax(hotakeCandidateInterviewRecordInfoService.updateHotakeCandidateInterviewRecordInfo(hotakeCandidateInterviewRecordInfo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除候选人面试记录信息
|
||||
*/
|
||||
@ApiOperation("删除候选人面试记录信息")
|
||||
@PreAuthorize("@ss.hasPermi('hotake:candidateInterviewRecordInfo:remove')")
|
||||
@Log(title = "候选人面试记录信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(hotakeCandidateInterviewRecordInfoService.deleteHotakeCandidateInterviewRecordInfoByIds(ids));
|
||||
}
|
||||
}
|
||||
@@ -113,6 +113,8 @@ public class SysProfileController extends BaseController
|
||||
currentUser.setJobPosition(user.getJobPosition());
|
||||
currentUser.setExperience(user.getExperience());
|
||||
currentUser.setCvUrl(user.getCvUrl());
|
||||
currentUser.setJobTitle(user.getJobTitle());
|
||||
currentUser.setCompanyName(user.getCompanyName());
|
||||
}else if (UserOperStepsEnum.STEPS_3.getCode().equals(user.getSteps())){
|
||||
currentUser.setLocation(user.getLocation());
|
||||
currentUser.setJobType(user.getJobType());
|
||||
|
||||
@@ -115,7 +115,7 @@ public class SysUser extends BaseEntity
|
||||
@ApiModelProperty("是否搬家")
|
||||
private String relocate;
|
||||
|
||||
@ApiModelProperty("")
|
||||
@ApiModelProperty("个人展示的链接JSON")
|
||||
private String bestSideJson;
|
||||
|
||||
@ApiModelProperty("个人展示的链接地址")
|
||||
@@ -130,6 +130,12 @@ public class SysUser extends BaseEntity
|
||||
@ApiModelProperty("用户语音配置信息")
|
||||
private String userSetJson;
|
||||
|
||||
@ApiModelProperty("公司名称")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty("职位名称")
|
||||
private String jobTitle;
|
||||
|
||||
/** 部门对象 */
|
||||
@Excels({
|
||||
@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
|
||||
@@ -473,6 +479,23 @@ public class SysUser extends BaseEntity
|
||||
this.userSetJson = userSetJson;
|
||||
}
|
||||
|
||||
|
||||
public String getCompanyName() {
|
||||
return companyName;
|
||||
}
|
||||
|
||||
public void setCompanyName(String companyName) {
|
||||
this.companyName = companyName;
|
||||
}
|
||||
|
||||
public String getJobTitle() {
|
||||
return jobTitle;
|
||||
}
|
||||
|
||||
public void setJobTitle(String jobTitle) {
|
||||
this.jobTitle = jobTitle;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.vetti.hotake.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import com.vetti.common.annotation.Excel;
|
||||
import com.vetti.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 候选人面试记录信息对象 hotake_candidate_interview_record_info
|
||||
*
|
||||
* @author wangxiangshun
|
||||
* @date 2025-12-08
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class HotakeCandidateInterviewRecordInfo extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键ID */
|
||||
@ApiModelProperty("主键ID")
|
||||
private Long id;
|
||||
|
||||
/** 用户ID */
|
||||
@ApiModelProperty("用户ID")
|
||||
private Long userId;
|
||||
|
||||
/** 简历ID */
|
||||
@ApiModelProperty("简历ID")
|
||||
private Long cvId;
|
||||
|
||||
/** 招聘人ID */
|
||||
@ApiModelProperty("招聘人ID")
|
||||
private Long recruiterId;
|
||||
|
||||
/** 候选人状态(Hot、Warm、Cold、Pending) */
|
||||
@ApiModelProperty("候选人状态(Hot、Warm、Cold、Pending)")
|
||||
private String candidateStatus;
|
||||
|
||||
/** 当前阶段 */
|
||||
@ApiModelProperty("当前阶段(Applied、Shortlisted、Interview、Offer、Hired)")
|
||||
private String stage;
|
||||
|
||||
/** 最后联系时间 */
|
||||
@ApiModelProperty("最后联系时间")
|
||||
private String lastContact;
|
||||
|
||||
}
|
||||
@@ -62,6 +62,15 @@ public class HotakeCvInfo extends BaseEntity
|
||||
@ApiModelProperty("简历内容MD5 Hash")
|
||||
private String cvMd5;
|
||||
|
||||
@ApiModelProperty("工作经验")
|
||||
private String experience;
|
||||
|
||||
@ApiModelProperty("AI评分")
|
||||
private String aiMatchScore;
|
||||
|
||||
@ApiModelProperty("AI评分百分比")
|
||||
private String aiMatchScorePercentage;
|
||||
|
||||
@ApiModelProperty("简历详细信息-固定模版")
|
||||
private HotakeCvInfoDto cvInfoDto;
|
||||
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.vetti.hotake.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.vetti.hotake.domain.HotakeCandidateInterviewRecordInfo;
|
||||
|
||||
/**
|
||||
* 候选人面试记录信息Mapper接口
|
||||
*
|
||||
* @author wangxiangshun
|
||||
* @date 2025-12-08
|
||||
*/
|
||||
public interface HotakeCandidateInterviewRecordInfoMapper
|
||||
{
|
||||
/**
|
||||
* 查询候选人面试记录信息
|
||||
*
|
||||
* @param id 候选人面试记录信息主键
|
||||
* @return 候选人面试记录信息
|
||||
*/
|
||||
public HotakeCandidateInterviewRecordInfo selectHotakeCandidateInterviewRecordInfoById(Long id);
|
||||
|
||||
/**
|
||||
* 查询候选人面试记录信息列表
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 候选人面试记录信息集合
|
||||
*/
|
||||
public List<HotakeCandidateInterviewRecordInfo> selectHotakeCandidateInterviewRecordInfoList(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo);
|
||||
|
||||
/**
|
||||
* 新增候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertHotakeCandidateInterviewRecordInfo(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo);
|
||||
|
||||
/**
|
||||
* 修改候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateHotakeCandidateInterviewRecordInfo(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo);
|
||||
|
||||
/**
|
||||
* 删除候选人面试记录信息
|
||||
*
|
||||
* @param id 候选人面试记录信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteHotakeCandidateInterviewRecordInfoById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除候选人面试记录信息
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteHotakeCandidateInterviewRecordInfoByIds(Long[] ids);
|
||||
/**
|
||||
* 批量新增候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfoList 候选人面试记录信息列表
|
||||
* @return 结果
|
||||
*/
|
||||
public int batchInsertHotakeCandidateInterviewRecordInfo(List<HotakeCandidateInterviewRecordInfo> hotakeCandidateInterviewRecordInfoList);
|
||||
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.vetti.hotake.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.vetti.hotake.domain.HotakeCvInfo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 简历信息Mapper接口
|
||||
@@ -66,4 +67,13 @@ public interface HotakeCvInfoMapper
|
||||
*/
|
||||
public int batchInsertHotakeCvInfo(List<HotakeCvInfo> hotakeCvInfoList);
|
||||
|
||||
|
||||
/**
|
||||
* 删除简历信息
|
||||
*
|
||||
* @param userId 用户信息ID
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteHotakeCvInfoByUserIdAndType(@Param("userId") Long userId,@Param("cvFileType") String cvFileType);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.vetti.hotake.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.vetti.hotake.domain.HotakeCandidateInterviewRecordInfo;
|
||||
|
||||
/**
|
||||
* 候选人面试记录信息Service接口
|
||||
*
|
||||
* @author wangxiangshun
|
||||
* @date 2025-12-08
|
||||
*/
|
||||
public interface IHotakeCandidateInterviewRecordInfoService
|
||||
{
|
||||
/**
|
||||
* 查询候选人面试记录信息
|
||||
*
|
||||
* @param id 候选人面试记录信息主键
|
||||
* @return 候选人面试记录信息
|
||||
*/
|
||||
public HotakeCandidateInterviewRecordInfo selectHotakeCandidateInterviewRecordInfoById(Long id);
|
||||
|
||||
/**
|
||||
* 查询候选人面试记录信息列表
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 候选人面试记录信息集合
|
||||
*/
|
||||
public List<HotakeCandidateInterviewRecordInfo> selectHotakeCandidateInterviewRecordInfoList(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo);
|
||||
|
||||
/**
|
||||
* 新增候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertHotakeCandidateInterviewRecordInfo(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo);
|
||||
|
||||
/**
|
||||
* 修改候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateHotakeCandidateInterviewRecordInfo(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo);
|
||||
|
||||
/**
|
||||
* 批量删除候选人面试记录信息
|
||||
*
|
||||
* @param ids 需要删除的候选人面试记录信息主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteHotakeCandidateInterviewRecordInfoByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除候选人面试记录信息信息
|
||||
*
|
||||
* @param id 候选人面试记录信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteHotakeCandidateInterviewRecordInfoById(Long id);
|
||||
|
||||
/**
|
||||
* 批量新增候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfoList 候选人面试记录信息列表
|
||||
* @return 结果
|
||||
*/
|
||||
public int batchInsertHotakeCandidateInterviewRecordInfo(List<HotakeCandidateInterviewRecordInfo> hotakeCandidateInterviewRecordInfoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.vetti.hotake.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.vetti.common.core.service.BaseServiceImpl;
|
||||
import com.vetti.common.utils.DateUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.vetti.hotake.mapper.HotakeCandidateInterviewRecordInfoMapper;
|
||||
import com.vetti.hotake.domain.HotakeCandidateInterviewRecordInfo;
|
||||
import com.vetti.hotake.service.IHotakeCandidateInterviewRecordInfoService;
|
||||
|
||||
/**
|
||||
* 候选人面试记录信息Service业务层处理
|
||||
*
|
||||
* @author wangxiangshun
|
||||
* @date 2025-12-08
|
||||
*/
|
||||
@SuppressWarnings("all")
|
||||
@Service
|
||||
public class HotakeCandidateInterviewRecordInfoServiceImpl extends BaseServiceImpl implements IHotakeCandidateInterviewRecordInfoService
|
||||
{
|
||||
@Autowired
|
||||
private HotakeCandidateInterviewRecordInfoMapper hotakeCandidateInterviewRecordInfoMapper;
|
||||
|
||||
/**
|
||||
* 查询候选人面试记录信息
|
||||
*
|
||||
* @param id 候选人面试记录信息主键
|
||||
* @return 候选人面试记录信息
|
||||
*/
|
||||
@Transactional(readOnly = true)
|
||||
@Override
|
||||
public HotakeCandidateInterviewRecordInfo selectHotakeCandidateInterviewRecordInfoById(Long id)
|
||||
{
|
||||
return hotakeCandidateInterviewRecordInfoMapper.selectHotakeCandidateInterviewRecordInfoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询候选人面试记录信息列表
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 候选人面试记录信息
|
||||
*/
|
||||
@Transactional(readOnly = true)
|
||||
@Override
|
||||
public List<HotakeCandidateInterviewRecordInfo> selectHotakeCandidateInterviewRecordInfoList(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo)
|
||||
{
|
||||
return hotakeCandidateInterviewRecordInfoMapper.selectHotakeCandidateInterviewRecordInfoList(hotakeCandidateInterviewRecordInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
@Override
|
||||
public int insertHotakeCandidateInterviewRecordInfo(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo)
|
||||
{
|
||||
return hotakeCandidateInterviewRecordInfoMapper.insertHotakeCandidateInterviewRecordInfo(hotakeCandidateInterviewRecordInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfo 候选人面试记录信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
@Override
|
||||
public int updateHotakeCandidateInterviewRecordInfo(HotakeCandidateInterviewRecordInfo hotakeCandidateInterviewRecordInfo)
|
||||
{
|
||||
return hotakeCandidateInterviewRecordInfoMapper.updateHotakeCandidateInterviewRecordInfo(hotakeCandidateInterviewRecordInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除候选人面试记录信息
|
||||
*
|
||||
* @param ids 需要删除的候选人面试记录信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
@Override
|
||||
public int deleteHotakeCandidateInterviewRecordInfoByIds(Long[] ids)
|
||||
{
|
||||
return hotakeCandidateInterviewRecordInfoMapper.deleteHotakeCandidateInterviewRecordInfoByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除候选人面试记录信息信息
|
||||
*
|
||||
* @param id 候选人面试记录信息主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
@Override
|
||||
public int deleteHotakeCandidateInterviewRecordInfoById(Long id)
|
||||
{
|
||||
return hotakeCandidateInterviewRecordInfoMapper.deleteHotakeCandidateInterviewRecordInfoById(id);
|
||||
}
|
||||
/**
|
||||
* 批量新增候选人面试记录信息
|
||||
*
|
||||
* @param hotakeCandidateInterviewRecordInfoList 候选人面试记录信息列表
|
||||
* @return 结果
|
||||
*/
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
@Override
|
||||
public int batchInsertHotakeCandidateInterviewRecordInfo(List<HotakeCandidateInterviewRecordInfo> hotakeCandidateInterviewRecordInfoList){
|
||||
return hotakeCandidateInterviewRecordInfoMapper.batchInsertHotakeCandidateInterviewRecordInfo(hotakeCandidateInterviewRecordInfoList);
|
||||
}
|
||||
}
|
||||
@@ -112,6 +112,8 @@ public class HotakeCvInfoServiceImpl extends BaseServiceImpl implements IHotakeC
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public HotakeCvInfo insertHotakeCvInfo(HotakeCvInfo hotakeCvInfo) {
|
||||
//删除原先的CV简历信息
|
||||
hotakeCvInfoMapper.deleteHotakeCvInfoByUserIdAndType(SecurityUtils.getUserId(),"cv");
|
||||
fill(FillTypeEnum.INSERT.getCode(), hotakeCvInfo);
|
||||
String fileSuffix = FileUtil.getSuffix(hotakeCvInfo.getCvUrl());
|
||||
if (StrUtil.isNotEmpty(fileSuffix)) {
|
||||
@@ -247,12 +249,14 @@ public class HotakeCvInfoServiceImpl extends BaseServiceImpl implements IHotakeC
|
||||
.object(cvInfo.getCvUrl())
|
||||
.build());
|
||||
String contents = FileContentUtil.readFileContent(inputStream, cvInfo.getCvFileSuffix());
|
||||
log.info("简历信息:{}",contents);
|
||||
//验证文件内容是否改变,如果未改变不进行模型解析直接返回原有结果
|
||||
String md5Hash = MD5.create().digestHex16(contents);
|
||||
if(StrUtil.isNotEmpty(md5Hash) && md5Hash.equals(cvInfo.getCvMd5())){
|
||||
//直接返回简历结果
|
||||
return cvInfo;
|
||||
}
|
||||
cvInfo.setCvMd5(md5Hash);
|
||||
//生成简历模版数据信息
|
||||
HotakeCvInfoDto cvInfoDto = handleAnalysisCvInfo(contents);
|
||||
cvInfo.setCvInfoDto(cvInfoDto);
|
||||
@@ -285,7 +289,7 @@ public class HotakeCvInfoServiceImpl extends BaseServiceImpl implements IHotakeC
|
||||
List<Map<String,String>> list = new LinkedList();
|
||||
Map<String,String> entity = new HashMap<>();
|
||||
entity.put("role","user");
|
||||
entity.put("content","从下面提供的文本中提取所有能识别到的简历信息,只提取原文中存在的内容,不要补充、不推测、不总结。需要提取的字段包括:name(姓名或人名)、phone(电话号码)、email(电子邮件地址)、position(岗位或者简历中自己期望的职位等)、location(地点或者地址、家庭住址)、links(所有链接地址)、currentWork(当前工作公司)、about(关于我/自我介绍)、skills_tools(关键资格(许可证、注册/会员资格、认证))、languages(语言能力,主要就是Languages下面的语言)、experience(工作经历,除了title、company、location、durationStart、durationEnd,其他的都放到description里面,并且description里面要根据换行符分成不同的content),日期要拆分成开始时间(durationStart)和结束时间(durationEnd))、education(教育经历,日期要拆分成开始时间(durationStart)和结束时间(durationEnd))。请将提取结果以结构化 JSON 格式返回,格式如下:{ \\\"name\\\": \\\"\\\", \\\"phone\\\": \\\"\\\", \\\"email\\\": \\\"\\\", \\\"links\\\": [{\\\"content\\\":\\\"\\\"}], \\\"about\\\": \\\"\\\", \\\"skillsTools\\\": [{\\\"content\\\":\\\"\\\"}], \\\"languages\\\": [{\\\"content\\\":\\\"\\\"}], \\\"experience\\\": [{\\\"title\\\": \\\"\\\", \\\"company\\\": \\\"\\\",\\\"location\\\": \\\"\\\",\\\"durationStart\\\": \\\"\\\",\\\"durationEnd\\\": \\\"\\\",\\\"description\\\": [{\\\"content\\\":\\\"\\\"}]}], \\\"education\\\": [{\\\"degree\\\": \\\"\\\",\\\"institution\\\": \\\"\\\",\\\"durationStart\\\": \\\"\\\",\\\"durationEnd\\\": \\\"\\\"}] }。字段不存在则返回 null 或空数组。只返回标准可解析的 JSON结构 ,不要多余的```json等信息,不要解释说明,不要改写内容。以下为待处理文本:"+contents);
|
||||
entity.put("content","从下面提供的文本中提取所有能识别到的简历信息,只提取原文中存在的内容,不要补充、不推测、不总结。需要提取的字段包括:name(姓名或人名)、phone(电话号码)、email(电子邮件地址)、position(岗位或者简历中自己期望的职位等)、location(地点或者地址、家庭住址)、links(所有链接地址)、currentWork(当前工作公司)、about(关于我/自我介绍)、skills_tools(关键资格(许可证、注册/会员资格、认证))、languages(语言能力,主要就是Languages下面的语言)、experience(工作经历,除了title、company、location、durationStart、durationEnd,其他的都放到description里面,并且description里面要根据换行符分成不同的content),日期要拆分成开始时间(durationStart)和结束时间(durationEnd))、education(教育经历,日期要拆分成开始时间(durationStart)和结束时间(durationEnd))。请将提取结果以结构化 JSON 格式返回,格式如下:{ \\\"name\\\": \\\"\\\", \\\"phone\\\": \\\"\\\", \\\"currentWork\\\": \\\"\\\", \\\"position\\\": \\\"\\\", \\\"location\\\": \\\"\\\", \\\"email\\\": \\\"\\\", \\\"links\\\": [{\\\"content\\\":\\\"\\\"}], \\\"about\\\": \\\"\\\", \\\"skillsTools\\\": [{\\\"content\\\":\\\"\\\"}], \\\"languages\\\": [{\\\"content\\\":\\\"\\\"}], \\\"experience\\\": [{\\\"title\\\": \\\"\\\", \\\"company\\\": \\\"\\\",\\\"location\\\": \\\"\\\",\\\"durationStart\\\": \\\"\\\",\\\"durationEnd\\\": \\\"\\\",\\\"description\\\": [{\\\"content\\\":\\\"\\\"}]}], \\\"education\\\": [{\\\"degree\\\": \\\"\\\",\\\"institution\\\": \\\"\\\",\\\"durationStart\\\": \\\"\\\",\\\"durationEnd\\\": \\\"\\\"}] }。字段不存在则返回 null 或空数组。只返回标准可解析的 JSON结构 ,不要多余的```json等信息,不要解释说明,不要改写内容。以下为待处理文本:"+contents);
|
||||
//根据AI做
|
||||
list.add(entity);
|
||||
String resultCv = chatGPTClient.handleAiChat(JSONUtil.toJsonStr(list), "JX");
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.vetti.hotake.mapper.HotakeCandidateInterviewRecordInfoMapper">
|
||||
|
||||
<resultMap type="HotakeCandidateInterviewRecordInfo" id="HotakeCandidateInterviewRecordInfoResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="userId" column="user_id" />
|
||||
<result property="cvId" column="cv_id" />
|
||||
<result property="recruiterId" column="recruiter_id" />
|
||||
<result property="candidateStatus" column="candidate_status" />
|
||||
<result property="stage" column="stage" />
|
||||
<result property="lastContact" column="last_contact" />
|
||||
<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" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectHotakeCandidateInterviewRecordInfoVo">
|
||||
select id, user_id, cv_id, recruiter_id, candidate_status, stage, last_contact, del_flag, create_by, create_time, update_by, update_time, remark from hotake_candidate_interview_record_info
|
||||
</sql>
|
||||
|
||||
<select id="selectHotakeCandidateInterviewRecordInfoList" parameterType="HotakeCandidateInterviewRecordInfo" resultMap="HotakeCandidateInterviewRecordInfoResult">
|
||||
<include refid="selectHotakeCandidateInterviewRecordInfoVo"/>
|
||||
<where>
|
||||
<if test="userId != null "> and user_id = #{userId}</if>
|
||||
<if test="cvId != null "> and cv_id = #{cvId}</if>
|
||||
<if test="recruiterId != null "> and recruiter_id = #{recruiterId}</if>
|
||||
<if test="candidateStatus != null and candidateStatus != ''"> and candidate_status = #{candidateStatus}</if>
|
||||
<if test="stage != null and stage != ''"> and stage = #{stage}</if>
|
||||
<if test="lastContact != null and lastContact != ''"> and last_contact = #{lastContact}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectHotakeCandidateInterviewRecordInfoById" parameterType="Long" resultMap="HotakeCandidateInterviewRecordInfoResult">
|
||||
<include refid="selectHotakeCandidateInterviewRecordInfoVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertHotakeCandidateInterviewRecordInfo" parameterType="HotakeCandidateInterviewRecordInfo" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into hotake_candidate_interview_record_info
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">user_id,</if>
|
||||
<if test="cvId != null">cv_id,</if>
|
||||
<if test="recruiterId != null">recruiter_id,</if>
|
||||
<if test="candidateStatus != null">candidate_status,</if>
|
||||
<if test="stage != null">stage,</if>
|
||||
<if test="lastContact != null">last_contact,</if>
|
||||
<if test="delFlag != null">del_flag,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="remark != null">remark,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="userId != null">#{userId},</if>
|
||||
<if test="cvId != null">#{cvId},</if>
|
||||
<if test="recruiterId != null">#{recruiterId},</if>
|
||||
<if test="candidateStatus != null">#{candidateStatus},</if>
|
||||
<if test="stage != null">#{stage},</if>
|
||||
<if test="lastContact != null">#{lastContact},</if>
|
||||
<if test="delFlag != null">#{delFlag},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="remark != null">#{remark},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateHotakeCandidateInterviewRecordInfo" parameterType="HotakeCandidateInterviewRecordInfo">
|
||||
update hotake_candidate_interview_record_info
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="userId != null">user_id = #{userId},</if>
|
||||
<if test="cvId != null">cv_id = #{cvId},</if>
|
||||
<if test="recruiterId != null">recruiter_id = #{recruiterId},</if>
|
||||
<if test="candidateStatus != null">candidate_status = #{candidateStatus},</if>
|
||||
<if test="stage != null">stage = #{stage},</if>
|
||||
<if test="lastContact != null">last_contact = #{lastContact},</if>
|
||||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteHotakeCandidateInterviewRecordInfoById" parameterType="Long">
|
||||
delete from hotake_candidate_interview_record_info where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteHotakeCandidateInterviewRecordInfoByIds" parameterType="String">
|
||||
delete from hotake_candidate_interview_record_info where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<insert id="batchInsertHotakeCandidateInterviewRecordInfo">
|
||||
insert into hotake_candidate_interview_record_info( id, user_id, cv_id, recruiter_id, candidate_status, stage, last_contact, del_flag, create_by, create_time, update_by, update_time, remark,) values
|
||||
<foreach item="item" index="index" collection="list" separator=",">
|
||||
( #{item.id}, #{item.userId}, #{item.cvId}, #{item.recruiterId}, #{item.candidateStatus}, #{item.stage}, #{item.lastContact}, #{item.delFlag}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark},)
|
||||
</foreach>
|
||||
</insert>
|
||||
</mapper>
|
||||
@@ -16,6 +16,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="cvTemplateJson" column="cv_template_json" />
|
||||
<result property="cvScore" column="cv_score" />
|
||||
<result property="cvMd5" column="cv_md5" />
|
||||
|
||||
<result property="experience" column="experience" />
|
||||
<result property="aiMatchScore" column="ai_match_score" />
|
||||
<result property="aiMatchScorePercentage" column="ai_match_score_percentage" />
|
||||
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
@@ -25,7 +30,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectHotakeCvInfoVo">
|
||||
select id, user_id, cv_name, cv_file_type, cv_url,file_size_show,cv_file_suffix, status,cv_template_json,cv_score,cv_md5,
|
||||
select id, user_id, cv_name, cv_file_type, cv_url,file_size_show,cv_file_suffix,
|
||||
status,cv_template_json,cv_score,cv_md5,experience,ai_match_score,ai_match_score_percentage,
|
||||
del_flag, create_by, create_time, update_by, update_time, remark from hotake_cv_info
|
||||
</sql>
|
||||
|
||||
@@ -60,6 +66,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="cvTemplateJson != null">cv_template_json,</if>
|
||||
<if test="cvScore != null">cv_score,</if>
|
||||
<if test="cvMd5 != null">cv_md5,</if>
|
||||
|
||||
<if test="experience != null">experience,</if>
|
||||
<if test="aiMatchScore != null">ai_match_score,</if>
|
||||
<if test="aiMatchScorePercentage != null">ai_match_score_percentage,</if>
|
||||
|
||||
<if test="delFlag != null">del_flag,</if>
|
||||
<if test="createBy != null">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
@@ -78,6 +89,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="cvTemplateJson != null">#{cvTemplateJson},</if>
|
||||
<if test="cvScore != null">#{cvScore},</if>
|
||||
<if test="cvMd5 != null">#{cvMd5},</if>
|
||||
|
||||
<if test="experience != null">#{experience},</if>
|
||||
<if test="aiMatchScore != null">#{aiMatchScore},</if>
|
||||
<if test="aiMatchScorePercentage != null">#{aiMatchScorePercentage},</if>
|
||||
|
||||
<if test="delFlag != null">#{delFlag},</if>
|
||||
<if test="createBy != null">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
@@ -100,6 +116,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="cvTemplateJson != null">cv_template_json = #{cvTemplateJson},</if>
|
||||
<if test="cvScore != null">cv_score = #{cvScore},</if>
|
||||
<if test="cvMd5 != null">cv_md5 = #{cvMd5},</if>
|
||||
|
||||
<if test="experience != null">experience = #{experience},</if>
|
||||
<if test="aiMatchScore != null">ai_match_score = #{aiMatchScore},</if>
|
||||
<if test="aiMatchScorePercentage != null">ai_match_score_percentage = #{aiMatchScorePercentage},</if>
|
||||
|
||||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||
<if test="createBy != null">create_by = #{createBy},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
@@ -114,6 +135,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
delete from hotake_cv_info where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteHotakeCvInfoByUserIdAndType" >
|
||||
delete from hotake_cv_info where user_id = #{userId} and cv_file_type = #{cvFileType}
|
||||
|
||||
</delete>
|
||||
|
||||
<delete id="deleteHotakeCvInfoByIds" parameterType="String">
|
||||
delete from hotake_cv_info where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
#Generated by Maven
|
||||
#Thu Nov 27 13:22:25 CST 2025
|
||||
artifactId=vetti-hotakes
|
||||
groupId=com.vetti
|
||||
version=3.9.0
|
||||
@@ -1,7 +0,0 @@
|
||||
com/vetti/hotake/domain/dto/VcDto/VcExperienceDto.class
|
||||
com/vetti/hotake/domain/dto/VcDto/VcSkillsToolsDto.class
|
||||
com/vetti/hotake/domain/dto/VcDto/VcEducationDto.class
|
||||
com/vetti/hotake/domain/dto/VcDto/VcLinksDto.class
|
||||
com/vetti/hotake/domain/dto/VcDto/VcExperienceDescriptionDto.class
|
||||
com/vetti/hotake/domain/dto/VcDto/VcLanguagesDto.class
|
||||
com/vetti/hotake/service/impl/HotakeCvInfoServiceImpl.class
|
||||
@@ -1,39 +0,0 @@
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeInterviewDetailMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeSysNoticeMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeMeetingCalendarInfoServiceImpl.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeSysFileMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeSysFileServiceImpl.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/dto/HotakeSysNoticeTypeNameDto.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeSysFileService.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeCvInfo.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeInterviewInfoMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeMeetingCalendarDetailServiceImpl.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeSysFile.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeInterviewDetailServiceImpl.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeInterviewInfoServiceImpl.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeSysNoticeServiceImpl.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeProblemBaseInfoMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarDetail.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeSysNoticeTypeMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeSysNoticeType.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeProblemBaseInfo.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeCvInfoServiceImpl.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeProblemBaseInfoService.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeMeetingCalendarInfo.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/dto/HotakeSysFileDto.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeMeetingCalendarInfoMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeInterviewDetailService.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeCvInfoMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/impl/HotakeProblemBaseInfoServiceImpl.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeInterviewDetail.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeSysNotice.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/vo/HotakeSysFileVo.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeInterviewInfoService.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeMeetingCalendarInfoService.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/dto/HotakeSysNoticeViewDto.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/mapper/HotakeMeetingCalendarDetailMapper.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/dto/HotakeSysNoticeDto.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/domain/HotakeInterviewInfo.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeSysNoticeService.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeCvInfoService.java
|
||||
/Users/wangxiangshun/Public/project-aio/vetti/vetti-service/vetti-hotakes/src/main/java/com/vetti/hotake/service/IHotakeMeetingCalendarDetailService.java
|
||||
@@ -27,6 +27,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="sysUserType" column="sys_user_type" />
|
||||
<result property="userSetJson" column="user_set_json" />
|
||||
|
||||
<result property="companyName" column="company_name" />
|
||||
<result property="jobTitle" column="job_title" />
|
||||
|
||||
<result property="steps" column="steps" />
|
||||
<result property="jobPosition" column="job_position" />
|
||||
<result property="experience" column="experience" />
|
||||
@@ -67,7 +70,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark,
|
||||
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
||||
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.sys_user_type
|
||||
,u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json
|
||||
,u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,
|
||||
u.user_flag,u.user_set_json,u.company_name,u.job_title
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join sys_user_role ur on u.user_id = ur.user_id
|
||||
@@ -76,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
|
||||
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||
d.dept_name, d.leader,u.sys_user_type,u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json from sys_user u
|
||||
d.dept_name, d.leader,u.sys_user_type,u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json,u.company_name,u.job_title from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
where u.del_flag = '0'
|
||||
<if test="userId != null and userId != 0">
|
||||
@@ -110,7 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
||||
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status,
|
||||
u.create_time,u.sys_user_type,u.steps,u.job_position,u.experience,u.cv_url,u.location,
|
||||
u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json
|
||||
u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json,u.company_name,u.job_title
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join sys_user_role ur on u.user_id = ur.user_id
|
||||
@@ -128,7 +132,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
||||
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time,u.sys_user_type,
|
||||
u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json
|
||||
u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json,u.company_name,u.job_title
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join sys_user_role ur on u.user_id = ur.user_id
|
||||
@@ -196,6 +200,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="userFlag != null and userFlag != ''">user_flag,</if>
|
||||
<if test="userSetJson != null and userSetJson != ''">user_set_json,</if>
|
||||
|
||||
<if test="companyName != null and companyName != ''">company_name,</if>
|
||||
<if test="jobTitle != null and jobTitle != ''">job_title,</if>
|
||||
|
||||
create_time
|
||||
)values(
|
||||
<if test="userId != null and userId != ''">#{userId},</if>
|
||||
@@ -225,6 +232,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="userFlag != null and userFlag != ''">#{userFlag},</if>
|
||||
<if test="userSetJson != null and userSetJson != ''">#{userSetJson},</if>
|
||||
|
||||
<if test="companyName != null and companyName != ''">#{companyName},</if>
|
||||
<if test="jobTitle != null and jobTitle != ''">#{jobTitle},</if>
|
||||
|
||||
sysdate()
|
||||
)
|
||||
</insert>
|
||||
@@ -256,7 +266,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="bestSideJson != null and bestSideJson != ''">best_side_json = #{bestSideJson},</if>
|
||||
<if test="address != null and address != ''">address = #{address},</if>
|
||||
<if test="userFlag != null and userFlag != ''">user_flag = #{userFlag},</if>
|
||||
<if test="userSetJson != null and userSetJson != ''">user_set_json = #{userSetJson},</if>
|
||||
|
||||
|
||||
<if test="companyName != null and companyName != ''">company_name = #{companyName},</if>
|
||||
<if test="jobTitle != null and jobTitle != ''">job_title = #{jobTitle},</if>
|
||||
|
||||
update_time = sysdate()
|
||||
</set>
|
||||
|
||||
@@ -27,6 +27,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="sysUserType" column="sys_user_type" />
|
||||
<result property="userSetJson" column="user_set_json" />
|
||||
|
||||
<result property="companyName" column="company_name" />
|
||||
<result property="jobTitle" column="job_title" />
|
||||
|
||||
<result property="steps" column="steps" />
|
||||
<result property="jobPosition" column="job_position" />
|
||||
<result property="experience" column="experience" />
|
||||
@@ -67,7 +70,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.pwd_update_date, u.create_by, u.create_time, u.remark,
|
||||
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
||||
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.sys_user_type
|
||||
,u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json
|
||||
,u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,
|
||||
u.user_flag,u.user_set_json,u.company_name,u.job_title
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join sys_user_role ur on u.user_id = ur.user_id
|
||||
@@ -76,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
|
||||
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||
d.dept_name, d.leader,u.sys_user_type,u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json from sys_user u
|
||||
d.dept_name, d.leader,u.sys_user_type,u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json,u.company_name,u.job_title from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
where u.del_flag = '0'
|
||||
<if test="userId != null and userId != 0">
|
||||
@@ -110,7 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
||||
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status,
|
||||
u.create_time,u.sys_user_type,u.steps,u.job_position,u.experience,u.cv_url,u.location,
|
||||
u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json
|
||||
u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json,u.company_name,u.job_title
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join sys_user_role ur on u.user_id = ur.user_id
|
||||
@@ -128,7 +132,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
||||
select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time,u.sys_user_type,
|
||||
u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json
|
||||
u.steps,u.job_position,u.experience,u.cv_url,u.location,u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json,u.company_name,u.job_title
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join sys_user_role ur on u.user_id = ur.user_id
|
||||
@@ -196,6 +200,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="userFlag != null and userFlag != ''">user_flag,</if>
|
||||
<if test="userSetJson != null and userSetJson != ''">user_set_json,</if>
|
||||
|
||||
<if test="companyName != null and companyName != ''">company_name,</if>
|
||||
<if test="jobTitle != null and jobTitle != ''">job_title,</if>
|
||||
|
||||
create_time
|
||||
)values(
|
||||
<if test="userId != null and userId != ''">#{userId},</if>
|
||||
@@ -225,6 +232,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="userFlag != null and userFlag != ''">#{userFlag},</if>
|
||||
<if test="userSetJson != null and userSetJson != ''">#{userSetJson},</if>
|
||||
|
||||
<if test="companyName != null and companyName != ''">#{companyName},</if>
|
||||
<if test="jobTitle != null and jobTitle != ''">#{jobTitle},</if>
|
||||
|
||||
sysdate()
|
||||
)
|
||||
</insert>
|
||||
@@ -256,7 +266,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="bestSideJson != null and bestSideJson != ''">best_side_json = #{bestSideJson},</if>
|
||||
<if test="address != null and address != ''">address = #{address},</if>
|
||||
<if test="userFlag != null and userFlag != ''">user_flag = #{userFlag},</if>
|
||||
<if test="userSetJson != null and userSetJson != ''">user_set_json = #{userSetJson},</if>
|
||||
|
||||
|
||||
<if test="companyName != null and companyName != ''">company_name = #{companyName},</if>
|
||||
<if test="jobTitle != null and jobTitle != ''">job_title = #{jobTitle},</if>
|
||||
|
||||
update_time = sysdate()
|
||||
</set>
|
||||
|
||||
Reference in New Issue
Block a user