Merge branch 'dev' of https://github.com/Vetti-AI/Vetti-Service into dev
This commit is contained in:
@@ -0,0 +1,95 @@
|
|||||||
|
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.SecurityUtils;
|
||||||
|
import com.vetti.common.utils.poi.ExcelUtil;
|
||||||
|
import com.vetti.hotake.domain.HotakeCandidateCompliance;
|
||||||
|
import com.vetti.hotake.domain.dto.CandidateComplianceDto;
|
||||||
|
import com.vetti.hotake.service.IHotakeCandidateComplianceService;
|
||||||
|
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 org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Api(tags ="候选者合规")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/hotake/candidateCompliance")
|
||||||
|
public class HotakeCandidateComplianceController extends BaseController
|
||||||
|
{
|
||||||
|
@Autowired
|
||||||
|
private IHotakeCandidateComplianceService hotakeCandidateComplianceService;
|
||||||
|
|
||||||
|
@ApiOperation("查询候选者合规列表")
|
||||||
|
@PreAuthorize("@ss.hasPermi('hotake:candidateCompliance:list')")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo list(HotakeCandidateCompliance hotakeCandidateCompliance)
|
||||||
|
{
|
||||||
|
startPage();
|
||||||
|
List<CandidateComplianceDto> list = hotakeCandidateComplianceService.selectHotakeCandidateComplianceList(hotakeCandidateCompliance);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("获取当前登录人候选者合规列表")
|
||||||
|
@GetMapping("/listByLoginUser")
|
||||||
|
public AjaxResult listByLoginUser()
|
||||||
|
{
|
||||||
|
HotakeCandidateCompliance query = new HotakeCandidateCompliance();
|
||||||
|
query.setUserId(SecurityUtils.getUserId());
|
||||||
|
List<CandidateComplianceDto> list = hotakeCandidateComplianceService.selectHotakeCandidateComplianceList(query);
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @ApiOperation("导出候选者合规列表")
|
||||||
|
// @PreAuthorize("@ss.hasPermi('hotake:candidateCompliance:export')")
|
||||||
|
// @Log(title = "候选者合规", businessType = BusinessType.EXPORT)
|
||||||
|
// @GetMapping("/export")
|
||||||
|
// public AjaxResult export(HotakeCandidateCompliance hotakeCandidateCompliance)
|
||||||
|
// {
|
||||||
|
// List<HotakeCandidateCompliance> list = hotakeCandidateComplianceService.selectHotakeCandidateComplianceList(hotakeCandidateCompliance);
|
||||||
|
// ExcelUtil<HotakeCandidateCompliance> util = new ExcelUtil<HotakeCandidateCompliance>(HotakeCandidateCompliance.class);
|
||||||
|
// return util.exportExcel(list, "候选者合规数据");
|
||||||
|
// }
|
||||||
|
|
||||||
|
@ApiOperation("获取候选者合规详细信息")
|
||||||
|
@PreAuthorize("@ss.hasPermi('hotake:candidateCompliance:query')")
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||||
|
{
|
||||||
|
return AjaxResult.success(hotakeCandidateComplianceService.selectHotakeCandidateComplianceById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("新增候选者合规")
|
||||||
|
@PreAuthorize("@ss.hasPermi('hotake:candidateCompliance:add')")
|
||||||
|
@Log(title = "候选者合规", businessType = BusinessType.INSERT)
|
||||||
|
@PostMapping
|
||||||
|
public AjaxResult add(@RequestPart("file") MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance)
|
||||||
|
{
|
||||||
|
return toAjax(hotakeCandidateComplianceService.insertHotakeCandidateCompliance(file, hotakeCandidateCompliance));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("修改候选者合规")
|
||||||
|
@PreAuthorize("@ss.hasPermi('hotake:candidateCompliance:edit')")
|
||||||
|
@Log(title = "候选者合规", businessType = BusinessType.UPDATE)
|
||||||
|
@PutMapping
|
||||||
|
public AjaxResult edit(@RequestPart(name = "file", required = false) MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance)
|
||||||
|
{
|
||||||
|
return toAjax(hotakeCandidateComplianceService.updateHotakeCandidateCompliance(file, hotakeCandidateCompliance));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("删除候选者合规")
|
||||||
|
@PreAuthorize("@ss.hasPermi('hotake:candidateCompliance:remove')")
|
||||||
|
@Log(title = "候选者合规", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public AjaxResult remove(@PathVariable Long[] ids)
|
||||||
|
{
|
||||||
|
return toAjax(hotakeCandidateComplianceService.deleteHotakeCandidateComplianceByIds(ids));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,8 @@ package com.vetti.web.controller.system;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import org.apache.commons.lang3.ArrayUtils;
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简历结构化信息对象 hotake_cv_info
|
||||||
|
*
|
||||||
|
* @author wangxiangshun
|
||||||
|
* @date 2025-11-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class HotakeUserCvInfoDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("姓名")
|
||||||
|
private String name;
|
||||||
|
@ApiModelProperty("出生日期")
|
||||||
|
private String birthday;
|
||||||
|
@ApiModelProperty("电话")
|
||||||
|
private String phone;
|
||||||
|
@ApiModelProperty("邮箱")
|
||||||
|
private String email;
|
||||||
|
@ApiModelProperty("岗位")
|
||||||
|
private String position;
|
||||||
|
@ApiModelProperty("地点")
|
||||||
|
private String location;
|
||||||
|
@ApiModelProperty("当前工作公司")
|
||||||
|
private String currentWork;
|
||||||
|
@ApiModelProperty("工作年限")
|
||||||
|
private String experienceYear;
|
||||||
|
@ApiModelProperty("链接对象集合")
|
||||||
|
private List<VcUserLinksDto> links;
|
||||||
|
@ApiModelProperty("自我介绍")
|
||||||
|
private String about;
|
||||||
|
@ApiModelProperty("技能工具-许可证、注册/会员资格、认证")
|
||||||
|
private List<VcUserSkillsToolsDto> skillsTools;
|
||||||
|
@ApiModelProperty("语言")
|
||||||
|
private List<VcUserLanguagesDto> languages;
|
||||||
|
@ApiModelProperty("工作经验集合")
|
||||||
|
private List<VcUserExperienceDto> experience;
|
||||||
|
@ApiModelProperty("教育经历")
|
||||||
|
private List<VcUserEducationDto> education;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import com.vetti.common.annotation.Excel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 求职偏好对象 hotake_job_preference
|
||||||
|
*
|
||||||
|
* @author vetti
|
||||||
|
* @date 2024-01-13
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class HotakeWorkNatureDto {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 期望工作类型(Full-time, Part-time, Contract, Internship, Casual)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("期望工作类型")
|
||||||
|
@Excel(name = "期望工作类型")
|
||||||
|
private String preferredJobTypes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 到岗时间(Immediate, 2 weeks, 4 weeks, 6+ weeks)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("到岗时间")
|
||||||
|
@Excel(name = "到岗时间")
|
||||||
|
private String availability;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 期望薪资范围
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("期望薪资范围")
|
||||||
|
@Excel(name = "期望薪资范围")
|
||||||
|
private String expectedPayRange;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否愿意出差(0 否,1 是)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("是否愿意出差")
|
||||||
|
@Excel(name = "是否愿意出差")
|
||||||
|
private Boolean willingnessToTravel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出差距离偏好
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("出差距离偏好")
|
||||||
|
@Excel(name = "出差距离偏好")
|
||||||
|
private String travelDistance;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态(0 禁用,1 启用)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("状态(0 禁用,1 启用)")
|
||||||
|
@Excel(name = "状态", readConverterExp = "0=,禁=用,1,启=用")
|
||||||
|
private String status;
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简历-教育经历-证书-信息对象
|
||||||
|
*
|
||||||
|
* @author wangxiangshun
|
||||||
|
* @date 2025-11-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class VcUserCertificateDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("文件名称")
|
||||||
|
private String fileName;
|
||||||
|
|
||||||
|
@ApiModelProperty("文件后缀(doc/pdf)")
|
||||||
|
private String fileSuffix;
|
||||||
|
|
||||||
|
@ApiModelProperty("文件地址")
|
||||||
|
private String fileUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty("文件大小")
|
||||||
|
private String fileSizeShow;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简历-教育经历-信息对象
|
||||||
|
*
|
||||||
|
* @author wangxiangshun
|
||||||
|
* @date 2025-11-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class VcUserEducationDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("学位")
|
||||||
|
private String degree;
|
||||||
|
|
||||||
|
@ApiModelProperty("学校名")
|
||||||
|
private String institution;
|
||||||
|
|
||||||
|
@ApiModelProperty("开始时间")
|
||||||
|
private String durationStart;
|
||||||
|
|
||||||
|
@ApiModelProperty("结束时间")
|
||||||
|
private String durationEnd;
|
||||||
|
|
||||||
|
@ApiModelProperty("证书附件")
|
||||||
|
private VcUserCertificateDto certificate;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简历-工作经验-描述-信息对象
|
||||||
|
*
|
||||||
|
* @author wangxiangshun
|
||||||
|
* @date 2025-11-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class VcUserExperienceDescriptionDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("内容")
|
||||||
|
private String content;
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简历-工作经验-信息对象
|
||||||
|
*
|
||||||
|
* @author wangxiangshun
|
||||||
|
* @date 2025-11-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class VcUserExperienceDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("标题")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@ApiModelProperty("公司")
|
||||||
|
private String company;
|
||||||
|
|
||||||
|
@ApiModelProperty("地点")
|
||||||
|
private String location;
|
||||||
|
|
||||||
|
@ApiModelProperty("开始时间")
|
||||||
|
private String durationStart;
|
||||||
|
|
||||||
|
@ApiModelProperty("结束时间")
|
||||||
|
private String durationEnd;
|
||||||
|
|
||||||
|
@ApiModelProperty("描述集合")
|
||||||
|
private List<VcUserExperienceDescriptionDto> description;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简历-语言-信息对象
|
||||||
|
*
|
||||||
|
* @author wangxiangshun
|
||||||
|
* @date 2025-11-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class VcUserLanguagesDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("内容")
|
||||||
|
private String content;
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简历链接-信息对象
|
||||||
|
*
|
||||||
|
* @author wangxiangshun
|
||||||
|
* @date 2025-11-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class VcUserLinksDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("内容")
|
||||||
|
private String content;
|
||||||
|
|
||||||
|
@ApiModelProperty("类型(例如:LinkedIn,Website)")
|
||||||
|
private String dataType;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.vetti.common.core.domain.dto.user;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 简历 技能工具-许可证、注册/会员资格、认证-信息对象
|
||||||
|
*
|
||||||
|
* @author wangxiangshun
|
||||||
|
* @date 2025-11-30
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class VcUserSkillsToolsDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("内容")
|
||||||
|
private String content;
|
||||||
|
}
|
||||||
@@ -5,6 +5,8 @@ import java.util.List;
|
|||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
import com.vetti.common.core.domain.dto.UserBestSideDto;
|
import com.vetti.common.core.domain.dto.UserBestSideDto;
|
||||||
|
import com.vetti.common.core.domain.dto.user.HotakeUserCvInfoDto;
|
||||||
|
import com.vetti.common.core.domain.dto.user.HotakeWorkNatureDto;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||||
@@ -21,71 +23,98 @@ import com.vetti.common.xss.Xss;
|
|||||||
* @author ruoyi
|
* @author ruoyi
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class SysUser extends BaseEntity
|
public class SysUser extends BaseEntity {
|
||||||
{
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 用户ID */
|
/**
|
||||||
|
* 用户ID
|
||||||
|
*/
|
||||||
@ApiModelProperty("用户ID")
|
@ApiModelProperty("用户ID")
|
||||||
@Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号")
|
@Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
/** 部门ID */
|
/**
|
||||||
|
* 部门ID
|
||||||
|
*/
|
||||||
@ApiModelProperty("用户ID")
|
@ApiModelProperty("用户ID")
|
||||||
@Excel(name = "部门编号", type = Type.IMPORT)
|
@Excel(name = "部门编号", type = Type.IMPORT)
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
|
|
||||||
/** 用户账号 */
|
/**
|
||||||
|
* 用户账号
|
||||||
|
*/
|
||||||
@ApiModelProperty("用户账号(注册邮箱或者手机号)")
|
@ApiModelProperty("用户账号(注册邮箱或者手机号)")
|
||||||
@Excel(name = "登录名称")
|
@Excel(name = "登录名称")
|
||||||
private String userName;
|
private String userName;
|
||||||
|
|
||||||
/** 用户昵称 */
|
/**
|
||||||
|
* 用户昵称
|
||||||
|
*/
|
||||||
@ApiModelProperty("用户名称(姓名)")
|
@ApiModelProperty("用户名称(姓名)")
|
||||||
@Excel(name = "用户名称")
|
@Excel(name = "用户名称")
|
||||||
private String nickName;
|
private String nickName;
|
||||||
|
|
||||||
/** 用户邮箱 */
|
/**
|
||||||
|
* 用户邮箱
|
||||||
|
*/
|
||||||
@ApiModelProperty("用户邮箱")
|
@ApiModelProperty("用户邮箱")
|
||||||
@Excel(name = "用户邮箱")
|
@Excel(name = "用户邮箱")
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
/** 手机号码 */
|
/**
|
||||||
|
* 手机号码
|
||||||
|
*/
|
||||||
@ApiModelProperty("手机号码")
|
@ApiModelProperty("手机号码")
|
||||||
@Excel(name = "手机号码", cellType = ColumnType.TEXT)
|
@Excel(name = "手机号码", cellType = ColumnType.TEXT)
|
||||||
private String phonenumber;
|
private String phonenumber;
|
||||||
|
|
||||||
/** 用户性别 */
|
/**
|
||||||
|
* 用户性别
|
||||||
|
*/
|
||||||
@ApiModelProperty("用户性别(0=男,1=女,2=未知)")
|
@ApiModelProperty("用户性别(0=男,1=女,2=未知)")
|
||||||
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
|
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
|
||||||
private String sex;
|
private String sex;
|
||||||
|
|
||||||
/** 用户头像 */
|
/**
|
||||||
|
* 用户头像
|
||||||
|
*/
|
||||||
@ApiModelProperty("用户头像")
|
@ApiModelProperty("用户头像")
|
||||||
private String avatar;
|
private String avatar;
|
||||||
|
|
||||||
/** 密码 */
|
/**
|
||||||
|
* 密码
|
||||||
|
*/
|
||||||
@ApiModelProperty("密码")
|
@ApiModelProperty("密码")
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
/** 账号状态(0正常 1停用) */
|
/**
|
||||||
|
* 账号状态(0正常 1停用)
|
||||||
|
*/
|
||||||
@ApiModelProperty("账号状态(0正常 1停用)")
|
@ApiModelProperty("账号状态(0正常 1停用)")
|
||||||
@Excel(name = "账号状态", readConverterExp = "0=正常,1=停用")
|
@Excel(name = "账号状态", readConverterExp = "0=正常,1=停用")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
/** 删除标志(0代表存在 2代表删除) */
|
/**
|
||||||
|
* 删除标志(0代表存在 2代表删除)
|
||||||
|
*/
|
||||||
@ApiModelProperty("删除标志(0代表存在 2代表删除)")
|
@ApiModelProperty("删除标志(0代表存在 2代表删除)")
|
||||||
private String delFlag;
|
private String delFlag;
|
||||||
|
|
||||||
/** 最后登录IP */
|
/**
|
||||||
|
* 最后登录IP
|
||||||
|
*/
|
||||||
@Excel(name = "最后登录IP", type = Type.EXPORT)
|
@Excel(name = "最后登录IP", type = Type.EXPORT)
|
||||||
private String loginIp;
|
private String loginIp;
|
||||||
|
|
||||||
/** 最后登录时间 */
|
/**
|
||||||
|
* 最后登录时间
|
||||||
|
*/
|
||||||
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
|
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT)
|
||||||
private Date loginDate;
|
private Date loginDate;
|
||||||
|
|
||||||
/** 密码最后更新时间 */
|
/**
|
||||||
|
* 密码最后更新时间
|
||||||
|
*/
|
||||||
private Date pwdUpdateDate;
|
private Date pwdUpdateDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -139,240 +168,221 @@ public class SysUser extends BaseEntity
|
|||||||
@ApiModelProperty("职位名称")
|
@ApiModelProperty("职位名称")
|
||||||
private String jobTitle;
|
private String jobTitle;
|
||||||
|
|
||||||
/** 部门对象 */
|
@ApiModelProperty("简历模版Json")
|
||||||
|
private String cvTemplateJson;
|
||||||
|
|
||||||
|
@ApiModelProperty("简历详细信息-固定模版")
|
||||||
|
private HotakeUserCvInfoDto cvInfoDto;
|
||||||
|
|
||||||
|
@ApiModelProperty("工作性值Json")
|
||||||
|
private String workNatureJson;
|
||||||
|
|
||||||
|
@ApiModelProperty("工作性值")
|
||||||
|
private HotakeWorkNatureDto workNatureDto;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门对象
|
||||||
|
*/
|
||||||
@Excels({
|
@Excels({
|
||||||
@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
|
@Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT),
|
||||||
@Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
|
@Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT)
|
||||||
})
|
})
|
||||||
private SysDept dept;
|
private SysDept dept;
|
||||||
|
|
||||||
/** 角色对象 */
|
/**
|
||||||
|
* 角色对象
|
||||||
|
*/
|
||||||
private List<SysRole> roles;
|
private List<SysRole> roles;
|
||||||
|
|
||||||
/** 角色组 */
|
/**
|
||||||
|
* 角色组
|
||||||
|
*/
|
||||||
private Long[] roleIds;
|
private Long[] roleIds;
|
||||||
|
|
||||||
/** 岗位组 */
|
/**
|
||||||
|
* 岗位组
|
||||||
|
*/
|
||||||
private Long[] postIds;
|
private Long[] postIds;
|
||||||
|
|
||||||
/** 角色ID */
|
/**
|
||||||
|
* 角色ID
|
||||||
|
*/
|
||||||
private Long roleId;
|
private Long roleId;
|
||||||
|
|
||||||
public SysUser()
|
public SysUser() {
|
||||||
{
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SysUser(Long userId)
|
public SysUser(Long userId) {
|
||||||
{
|
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getUserId()
|
public Long getUserId() {
|
||||||
{
|
|
||||||
return userId;
|
return userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUserId(Long userId)
|
public void setUserId(Long userId) {
|
||||||
{
|
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAdmin()
|
public boolean isAdmin() {
|
||||||
{
|
|
||||||
return isAdmin(this.userId);
|
return isAdmin(this.userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAdmin(Long userId)
|
public static boolean isAdmin(Long userId) {
|
||||||
{
|
|
||||||
return userId != null && 1L == userId;
|
return userId != null && 1L == userId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getDeptId()
|
public Long getDeptId() {
|
||||||
{
|
|
||||||
return deptId;
|
return deptId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDeptId(Long deptId)
|
public void setDeptId(Long deptId) {
|
||||||
{
|
|
||||||
this.deptId = deptId;
|
this.deptId = deptId;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Xss(message = "用户昵称不能包含脚本字符")
|
// @Xss(message = "用户昵称不能包含脚本字符")
|
||||||
// @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
|
// @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
|
||||||
public String getNickName()
|
public String getNickName() {
|
||||||
{
|
|
||||||
return nickName;
|
return nickName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNickName(String nickName)
|
public void setNickName(String nickName) {
|
||||||
{
|
|
||||||
this.nickName = nickName;
|
this.nickName = nickName;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Xss(message = "用户账号不能包含脚本字符")
|
// @Xss(message = "用户账号不能包含脚本字符")
|
||||||
// @NotBlank(message = "用户账号不能为空")
|
// @NotBlank(message = "用户账号不能为空")
|
||||||
// @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
|
// @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
|
||||||
public String getUserName()
|
public String getUserName() {
|
||||||
{
|
|
||||||
return userName;
|
return userName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUserName(String userName)
|
public void setUserName(String userName) {
|
||||||
{
|
|
||||||
this.userName = userName;
|
this.userName = userName;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Email(message = "邮箱格式不正确")
|
// @Email(message = "邮箱格式不正确")
|
||||||
// @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
|
// @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
|
||||||
public String getEmail()
|
public String getEmail() {
|
||||||
{
|
|
||||||
return email;
|
return email;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEmail(String email)
|
public void setEmail(String email) {
|
||||||
{
|
|
||||||
this.email = email;
|
this.email = email;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
|
// @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
|
||||||
public String getPhonenumber()
|
public String getPhonenumber() {
|
||||||
{
|
|
||||||
return phonenumber;
|
return phonenumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPhonenumber(String phonenumber)
|
public void setPhonenumber(String phonenumber) {
|
||||||
{
|
|
||||||
this.phonenumber = phonenumber;
|
this.phonenumber = phonenumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSex()
|
public String getSex() {
|
||||||
{
|
|
||||||
return sex;
|
return sex;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSex(String sex)
|
public void setSex(String sex) {
|
||||||
{
|
|
||||||
this.sex = sex;
|
this.sex = sex;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAvatar()
|
public String getAvatar() {
|
||||||
{
|
|
||||||
return avatar;
|
return avatar;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAvatar(String avatar)
|
public void setAvatar(String avatar) {
|
||||||
{
|
|
||||||
this.avatar = avatar;
|
this.avatar = avatar;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPassword()
|
public String getPassword() {
|
||||||
{
|
|
||||||
return password;
|
return password;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPassword(String password)
|
public void setPassword(String password) {
|
||||||
{
|
|
||||||
this.password = password;
|
this.password = password;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getStatus()
|
public String getStatus() {
|
||||||
{
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setStatus(String status)
|
public void setStatus(String status) {
|
||||||
{
|
|
||||||
this.status = status;
|
this.status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDelFlag()
|
public String getDelFlag() {
|
||||||
{
|
|
||||||
return delFlag;
|
return delFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDelFlag(String delFlag)
|
public void setDelFlag(String delFlag) {
|
||||||
{
|
|
||||||
this.delFlag = delFlag;
|
this.delFlag = delFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLoginIp()
|
public String getLoginIp() {
|
||||||
{
|
|
||||||
return loginIp;
|
return loginIp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLoginIp(String loginIp)
|
public void setLoginIp(String loginIp) {
|
||||||
{
|
|
||||||
this.loginIp = loginIp;
|
this.loginIp = loginIp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getLoginDate()
|
public Date getLoginDate() {
|
||||||
{
|
|
||||||
return loginDate;
|
return loginDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLoginDate(Date loginDate)
|
public void setLoginDate(Date loginDate) {
|
||||||
{
|
|
||||||
this.loginDate = loginDate;
|
this.loginDate = loginDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getPwdUpdateDate()
|
public Date getPwdUpdateDate() {
|
||||||
{
|
|
||||||
return pwdUpdateDate;
|
return pwdUpdateDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPwdUpdateDate(Date pwdUpdateDate)
|
public void setPwdUpdateDate(Date pwdUpdateDate) {
|
||||||
{
|
|
||||||
this.pwdUpdateDate = pwdUpdateDate;
|
this.pwdUpdateDate = pwdUpdateDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SysDept getDept()
|
public SysDept getDept() {
|
||||||
{
|
|
||||||
return dept;
|
return dept;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDept(SysDept dept)
|
public void setDept(SysDept dept) {
|
||||||
{
|
|
||||||
this.dept = dept;
|
this.dept = dept;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SysRole> getRoles()
|
public List<SysRole> getRoles() {
|
||||||
{
|
|
||||||
return roles;
|
return roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRoles(List<SysRole> roles)
|
public void setRoles(List<SysRole> roles) {
|
||||||
{
|
|
||||||
this.roles = roles;
|
this.roles = roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long[] getRoleIds()
|
public Long[] getRoleIds() {
|
||||||
{
|
|
||||||
return roleIds;
|
return roleIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRoleIds(Long[] roleIds)
|
public void setRoleIds(Long[] roleIds) {
|
||||||
{
|
|
||||||
this.roleIds = roleIds;
|
this.roleIds = roleIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long[] getPostIds()
|
public Long[] getPostIds() {
|
||||||
{
|
|
||||||
return postIds;
|
return postIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPostIds(Long[] postIds)
|
public void setPostIds(Long[] postIds) {
|
||||||
{
|
|
||||||
this.postIds = postIds;
|
this.postIds = postIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getRoleId()
|
public Long getRoleId() {
|
||||||
{
|
|
||||||
return roleId;
|
return roleId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRoleId(Long roleId)
|
public void setRoleId(Long roleId) {
|
||||||
{
|
|
||||||
this.roleId = roleId;
|
this.roleId = roleId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -508,6 +518,38 @@ public class SysUser extends BaseEntity
|
|||||||
this.userOperStatus = userOperStatus;
|
this.userOperStatus = userOperStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCvTemplateJson() {
|
||||||
|
return cvTemplateJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCvTemplateJson(String cvTemplateJson) {
|
||||||
|
this.cvTemplateJson = cvTemplateJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HotakeUserCvInfoDto getCvInfoDto() {
|
||||||
|
return cvInfoDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCvInfoDto(HotakeUserCvInfoDto cvInfoDto) {
|
||||||
|
this.cvInfoDto = cvInfoDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getWorkNatureJson() {
|
||||||
|
return workNatureJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkNatureJson(String workNatureJson) {
|
||||||
|
this.workNatureJson = workNatureJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HotakeWorkNatureDto getWorkNatureDto() {
|
||||||
|
return workNatureDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWorkNatureDto(HotakeWorkNatureDto workNatureDto) {
|
||||||
|
this.workNatureDto = workNatureDto;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class HotakeCandidateCompliance extends BaseEntity
|
||||||
|
{
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty("主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty("用户合规项ID(关联 sys_user.id)")
|
||||||
|
@Excel(name = "用户合规项ID")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@ApiModelProperty("附件ID(关联 hotake_sys_file.id)")
|
||||||
|
@Excel(name = "附件ID")
|
||||||
|
private Long fileId;
|
||||||
|
|
||||||
|
@ApiModelProperty("类型名")
|
||||||
|
@Excel(name = "类型名")
|
||||||
|
private String typeName;
|
||||||
|
|
||||||
|
@ApiModelProperty("描述")
|
||||||
|
@Excel(name = "描述")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
@ApiModelProperty("删除状态(0正常 2删除)")
|
||||||
|
private String delFlag;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package com.vetti.hotake.domain.dto;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.vetti.hotake.domain.HotakeCandidateCompliance;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author ID
|
||||||
|
* @date 2026/1/15 11:03
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CandidateComplianceDto extends HotakeCandidateCompliance {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty("附件URL")
|
||||||
|
private String fileUrl;
|
||||||
|
|
||||||
|
public static CandidateComplianceDto build(HotakeCandidateCompliance data, String fileUrl) {
|
||||||
|
CandidateComplianceDto dto = new CandidateComplianceDto();
|
||||||
|
BeanUtil.copyProperties(data, dto);
|
||||||
|
dto.setFileUrl(fileUrl);
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.vetti.hotake.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.vetti.hotake.domain.HotakeCandidateCompliance;
|
||||||
|
|
||||||
|
public interface HotakeCandidateComplianceMapper
|
||||||
|
{
|
||||||
|
public HotakeCandidateCompliance selectHotakeCandidateComplianceById(Long id);
|
||||||
|
|
||||||
|
public List<HotakeCandidateCompliance> selectHotakeCandidateComplianceList(HotakeCandidateCompliance hotakeCandidateCompliance);
|
||||||
|
|
||||||
|
public int insertHotakeCandidateCompliance(HotakeCandidateCompliance hotakeCandidateCompliance);
|
||||||
|
|
||||||
|
public int updateHotakeCandidateCompliance(HotakeCandidateCompliance hotakeCandidateCompliance);
|
||||||
|
|
||||||
|
public int deleteHotakeCandidateComplianceById(Long id);
|
||||||
|
|
||||||
|
public int deleteHotakeCandidateComplianceByIds(Long[] ids);
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.vetti.hotake.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import com.vetti.hotake.domain.HotakeCandidateCompliance;
|
||||||
|
import com.vetti.hotake.domain.dto.CandidateComplianceDto;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
public interface IHotakeCandidateComplianceService
|
||||||
|
{
|
||||||
|
public CandidateComplianceDto selectHotakeCandidateComplianceById(Long id);
|
||||||
|
|
||||||
|
public List<CandidateComplianceDto> selectHotakeCandidateComplianceList(HotakeCandidateCompliance hotakeCandidateCompliance);
|
||||||
|
|
||||||
|
public int insertHotakeCandidateCompliance(MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance);
|
||||||
|
|
||||||
|
public int updateHotakeCandidateCompliance(MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance);
|
||||||
|
|
||||||
|
public int deleteHotakeCandidateComplianceByIds(Long[] ids);
|
||||||
|
|
||||||
|
public int deleteHotakeCandidateComplianceById(Long id);
|
||||||
|
}
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
package com.vetti.hotake.service.impl;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.vetti.common.core.service.BaseServiceImpl;
|
||||||
|
import com.vetti.common.enums.FillTypeEnum;
|
||||||
|
import com.vetti.hotake.domain.HotakeSysFile;
|
||||||
|
import com.vetti.hotake.domain.dto.CandidateComplianceDto;
|
||||||
|
import com.vetti.hotake.service.IHotakeSysFileService;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import com.vetti.hotake.mapper.HotakeCandidateComplianceMapper;
|
||||||
|
import com.vetti.hotake.domain.HotakeCandidateCompliance;
|
||||||
|
import com.vetti.hotake.service.IHotakeCandidateComplianceService;
|
||||||
|
|
||||||
|
@SuppressWarnings("all")
|
||||||
|
@Service
|
||||||
|
public class HotakeCandidateComplianceServiceImpl extends BaseServiceImpl implements IHotakeCandidateComplianceService {
|
||||||
|
private static final String MINIO_BUCKET_NAME = "compliance-fs";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HotakeCandidateComplianceMapper hotakeCandidateComplianceMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IHotakeSysFileService hotakeSysFileService;
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
@Override
|
||||||
|
public CandidateComplianceDto selectHotakeCandidateComplianceById(Long id) {
|
||||||
|
HotakeCandidateCompliance data = hotakeCandidateComplianceMapper.selectHotakeCandidateComplianceById(id);
|
||||||
|
if (data.getFileId() != null) {
|
||||||
|
return CandidateComplianceDto.build(data, hotakeSysFileService.url(data.getFileId()));
|
||||||
|
}
|
||||||
|
return CandidateComplianceDto.build(data, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
@Override
|
||||||
|
public List<CandidateComplianceDto> selectHotakeCandidateComplianceList(HotakeCandidateCompliance hotakeCandidateCompliance) {
|
||||||
|
List<CandidateComplianceDto> dtoList = new ArrayList<>();
|
||||||
|
List<HotakeCandidateCompliance> list = hotakeCandidateComplianceMapper.selectHotakeCandidateComplianceList(hotakeCandidateCompliance);
|
||||||
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
|
list.forEach(e -> {
|
||||||
|
if (e.getFileId() != null) {
|
||||||
|
dtoList.add(CandidateComplianceDto.build(e, hotakeSysFileService.url(e.getFileId())));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return dtoList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public int insertHotakeCandidateCompliance(MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance) {
|
||||||
|
if (file != null) {
|
||||||
|
HotakeSysFile sysFile = hotakeSysFileService.uploadFile(file, MINIO_BUCKET_NAME);
|
||||||
|
hotakeCandidateCompliance.setFileId(sysFile.getId());
|
||||||
|
}
|
||||||
|
fill(FillTypeEnum.INSERT.getCode(), hotakeCandidateCompliance);
|
||||||
|
return hotakeCandidateComplianceMapper.insertHotakeCandidateCompliance(hotakeCandidateCompliance);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public int updateHotakeCandidateCompliance(MultipartFile file, HotakeCandidateCompliance hotakeCandidateCompliance) {
|
||||||
|
if (file != null) {
|
||||||
|
HotakeSysFile sysFile = hotakeSysFileService.uploadFile(file, MINIO_BUCKET_NAME);
|
||||||
|
hotakeCandidateCompliance.setFileId(sysFile.getId());
|
||||||
|
}
|
||||||
|
fill(FillTypeEnum.UPDATE.getCode(), hotakeCandidateCompliance);
|
||||||
|
return hotakeCandidateComplianceMapper.updateHotakeCandidateCompliance(hotakeCandidateCompliance);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public int deleteHotakeCandidateComplianceByIds(Long[] ids) {
|
||||||
|
return hotakeCandidateComplianceMapper.deleteHotakeCandidateComplianceByIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
@Override
|
||||||
|
public int deleteHotakeCandidateComplianceById(Long id) {
|
||||||
|
return hotakeCandidateComplianceMapper.deleteHotakeCandidateComplianceById(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
<?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.HotakeCandidateComplianceMapper">
|
||||||
|
|
||||||
|
<resultMap type="HotakeCandidateCompliance" id="HotakeCandidateComplianceResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="userId" column="user_id" />
|
||||||
|
<result property="fileId" column="file_id" />
|
||||||
|
<result property="typeName" column="type_name" />
|
||||||
|
<result property="description" column="description" />
|
||||||
|
<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="selectHotakeCandidateComplianceVo">
|
||||||
|
select id, user_id, file_id, type_name, description, del_flag, create_by, create_time, update_by, update_time, remark from hotake_candidate_compliance
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectHotakeCandidateComplianceList" parameterType="HotakeCandidateCompliance" resultMap="HotakeCandidateComplianceResult">
|
||||||
|
<include refid="selectHotakeCandidateComplianceVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="userId != null "> and user_id = #{userId}</if>
|
||||||
|
<if test="fileId != null "> and file_id = #{fileId}</if>
|
||||||
|
<if test="typeName != null and typeName != ''"> and type_name = #{typeName}</if>
|
||||||
|
<if test="description != null and description != ''"> and description = #{description}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectHotakeCandidateComplianceById" parameterType="Long" resultMap="HotakeCandidateComplianceResult">
|
||||||
|
<include refid="selectHotakeCandidateComplianceVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertHotakeCandidateCompliance" parameterType="HotakeCandidateCompliance" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into hotake_candidate_compliance
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="userId != null">user_id,</if>
|
||||||
|
<if test="fileId != null">file_id,</if>
|
||||||
|
<if test="typeName != null">type_name,</if>
|
||||||
|
<if test="description != null">description,</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="fileId != null">#{fileId},</if>
|
||||||
|
<if test="typeName != null">#{typeName},</if>
|
||||||
|
<if test="description != null">#{description},</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="updateHotakeCandidateCompliance" parameterType="HotakeCandidateCompliance">
|
||||||
|
update hotake_candidate_compliance
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="userId != null">user_id = #{userId},</if>
|
||||||
|
<if test="fileId != null">file_id = #{fileId},</if>
|
||||||
|
<if test="typeName != null">type_name = #{typeName},</if>
|
||||||
|
<if test="description != null">description = #{description},</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="deleteHotakeCandidateComplianceById" parameterType="Long">
|
||||||
|
delete from hotake_candidate_compliance where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteHotakeCandidateComplianceByIds" parameterType="String">
|
||||||
|
delete from hotake_candidate_compliance where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
||||||
|
|
||||||
@@ -312,6 +312,10 @@ public class SysUserServiceImpl implements ISysUserService
|
|||||||
userPostMapper.deleteUserPostByUserId(userId);
|
userPostMapper.deleteUserPostByUserId(userId);
|
||||||
// 新增用户与岗位管理
|
// 新增用户与岗位管理
|
||||||
insertUserPost(user);
|
insertUserPost(user);
|
||||||
|
|
||||||
|
user.setCvTemplateJson(JSONUtil.toJsonStr(user.getCvInfoDto()));
|
||||||
|
user.setWorkNatureJson(JSONUtil.toJsonStr(user.getWorkNatureDto()));
|
||||||
|
|
||||||
return userMapper.updateUser(user);
|
return userMapper.updateUser(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="userFlag" column="user_flag" />
|
<result property="userFlag" column="user_flag" />
|
||||||
|
|
||||||
<result property="userOperStatus" column="user_oper_status" />
|
<result property="userOperStatus" column="user_oper_status" />
|
||||||
|
<result property="cvTemplateJson" column="cv_template_json" />
|
||||||
|
<result property="workNatureJson" column="work_nature_json" />
|
||||||
|
|
||||||
|
|
||||||
<association property="dept" javaType="SysDept" resultMap="deptResult" />
|
<association property="dept" javaType="SysDept" resultMap="deptResult" />
|
||||||
@@ -73,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
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
|
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.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,u.user_oper_status
|
u.user_flag,u.user_set_json,u.company_name,u.job_title,u.user_oper_status,u.cv_template_json,u.work_nature_json
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
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
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -82,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
|
<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,
|
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,u.company_name,u.job_title,u.user_oper_status 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,u.user_oper_status,u.cv_template_json,u.work_nature_json from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
where u.del_flag = '0'
|
where u.del_flag = '0'
|
||||||
<if test="userId != null and userId != 0">
|
<if test="userId != null and userId != 0">
|
||||||
@@ -116,7 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
<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,
|
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.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.company_name,u.job_title,u.user_oper_status
|
u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json,u.company_name,u.job_title,u.user_oper_status,u.cv_template_json,u.work_nature_json
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
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
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -134,7 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
<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,
|
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.company_name,u.job_title,u.user_oper_status
|
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,u.user_oper_status,u.cv_template_json,u.work_nature_json
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
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
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -205,6 +207,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="companyName != null and companyName != ''">company_name,</if>
|
<if test="companyName != null and companyName != ''">company_name,</if>
|
||||||
<if test="jobTitle != null and jobTitle != ''">job_title,</if>
|
<if test="jobTitle != null and jobTitle != ''">job_title,</if>
|
||||||
<if test="userOperStatus != null and userOperStatus != ''">user_oper_status,</if>
|
<if test="userOperStatus != null and userOperStatus != ''">user_oper_status,</if>
|
||||||
|
<if test="cvTemplateJson != null and cvTemplateJson != ''">cv_template_json,</if>
|
||||||
|
<if test="workNatureJson != null and workNatureJson != ''">work_nature_json,</if>
|
||||||
|
|
||||||
create_time
|
create_time
|
||||||
)values(
|
)values(
|
||||||
@@ -238,6 +242,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="companyName != null and companyName != ''">#{companyName},</if>
|
<if test="companyName != null and companyName != ''">#{companyName},</if>
|
||||||
<if test="jobTitle != null and jobTitle != ''">#{jobTitle},</if>
|
<if test="jobTitle != null and jobTitle != ''">#{jobTitle},</if>
|
||||||
<if test="userOperStatus != null and userOperStatus != ''">#{userOperStatus},</if>
|
<if test="userOperStatus != null and userOperStatus != ''">#{userOperStatus},</if>
|
||||||
|
<if test="cvTemplateJson != null and cvTemplateJson != ''">#{cvTemplateJson},</if>
|
||||||
|
<if test="workNatureJson != null and workNatureJson != ''">#{workNatureJson},</if>
|
||||||
|
|
||||||
sysdate()
|
sysdate()
|
||||||
)
|
)
|
||||||
@@ -275,6 +281,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="companyName != null and companyName != ''">company_name = #{companyName},</if>
|
<if test="companyName != null and companyName != ''">company_name = #{companyName},</if>
|
||||||
<if test="jobTitle != null and jobTitle != ''">job_title = #{jobTitle},</if>
|
<if test="jobTitle != null and jobTitle != ''">job_title = #{jobTitle},</if>
|
||||||
<if test="userOperStatus != null and userOperStatus != ''">user_oper_status = #{userOperStatus},</if>
|
<if test="userOperStatus != null and userOperStatus != ''">user_oper_status = #{userOperStatus},</if>
|
||||||
|
<if test="cvTemplateJson != null and cvTemplateJson != ''">cv_template_json = #{cvTemplateJson},</if>
|
||||||
|
<if test="workNatureJson != null and workNatureJson != ''">work_nature_json = #{workNatureJson},</if>
|
||||||
|
|
||||||
update_time = sysdate()
|
update_time = sysdate()
|
||||||
</set>
|
</set>
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="userFlag" column="user_flag" />
|
<result property="userFlag" column="user_flag" />
|
||||||
|
|
||||||
<result property="userOperStatus" column="user_oper_status" />
|
<result property="userOperStatus" column="user_oper_status" />
|
||||||
|
<result property="cvTemplateJson" column="cv_template_json" />
|
||||||
|
<result property="workNatureJson" column="work_nature_json" />
|
||||||
|
|
||||||
|
|
||||||
<association property="dept" javaType="SysDept" resultMap="deptResult" />
|
<association property="dept" javaType="SysDept" resultMap="deptResult" />
|
||||||
@@ -73,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
|
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
|
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.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,u.user_oper_status
|
u.user_flag,u.user_set_json,u.company_name,u.job_title,u.user_oper_status,u.cv_template_json,u.work_nature_json
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
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
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -82,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
|
<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,
|
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,u.company_name,u.job_title,u.user_oper_status 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,u.user_oper_status,u.cv_template_json,u.work_nature_json from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
where u.del_flag = '0'
|
where u.del_flag = '0'
|
||||||
<if test="userId != null and userId != 0">
|
<if test="userId != null and userId != 0">
|
||||||
@@ -116,7 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
<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,
|
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.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.company_name,u.job_title,u.user_oper_status
|
u.job_type,u.relocate,u.best_side_json,u.address,u.user_flag,u.user_set_json,u.company_name,u.job_title,u.user_oper_status,u.cv_template_json,u.work_nature_json
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
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
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -134,7 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
|
|
||||||
<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
|
<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,
|
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.company_name,u.job_title,u.user_oper_status
|
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,u.user_oper_status,u.cv_template_json,u.work_nature_json
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
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
|
left join sys_user_role ur on u.user_id = ur.user_id
|
||||||
@@ -205,6 +207,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="companyName != null and companyName != ''">company_name,</if>
|
<if test="companyName != null and companyName != ''">company_name,</if>
|
||||||
<if test="jobTitle != null and jobTitle != ''">job_title,</if>
|
<if test="jobTitle != null and jobTitle != ''">job_title,</if>
|
||||||
<if test="userOperStatus != null and userOperStatus != ''">user_oper_status,</if>
|
<if test="userOperStatus != null and userOperStatus != ''">user_oper_status,</if>
|
||||||
|
<if test="cvTemplateJson != null and cvTemplateJson != ''">cv_template_json,</if>
|
||||||
|
<if test="workNatureJson != null and workNatureJson != ''">work_nature_json,</if>
|
||||||
|
|
||||||
create_time
|
create_time
|
||||||
)values(
|
)values(
|
||||||
@@ -238,6 +242,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="companyName != null and companyName != ''">#{companyName},</if>
|
<if test="companyName != null and companyName != ''">#{companyName},</if>
|
||||||
<if test="jobTitle != null and jobTitle != ''">#{jobTitle},</if>
|
<if test="jobTitle != null and jobTitle != ''">#{jobTitle},</if>
|
||||||
<if test="userOperStatus != null and userOperStatus != ''">#{userOperStatus},</if>
|
<if test="userOperStatus != null and userOperStatus != ''">#{userOperStatus},</if>
|
||||||
|
<if test="cvTemplateJson != null and cvTemplateJson != ''">#{cvTemplateJson},</if>
|
||||||
|
<if test="workNatureJson != null and workNatureJson != ''">#{workNatureJson},</if>
|
||||||
|
|
||||||
sysdate()
|
sysdate()
|
||||||
)
|
)
|
||||||
@@ -275,6 +281,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="companyName != null and companyName != ''">company_name = #{companyName},</if>
|
<if test="companyName != null and companyName != ''">company_name = #{companyName},</if>
|
||||||
<if test="jobTitle != null and jobTitle != ''">job_title = #{jobTitle},</if>
|
<if test="jobTitle != null and jobTitle != ''">job_title = #{jobTitle},</if>
|
||||||
<if test="userOperStatus != null and userOperStatus != ''">user_oper_status = #{userOperStatus},</if>
|
<if test="userOperStatus != null and userOperStatus != ''">user_oper_status = #{userOperStatus},</if>
|
||||||
|
<if test="cvTemplateJson != null and cvTemplateJson != ''">cv_template_json = #{cvTemplateJson},</if>
|
||||||
|
<if test="workNatureJson != null and workNatureJson != ''">work_nature_json = #{workNatureJson},</if>
|
||||||
|
|
||||||
update_time = sysdate()
|
update_time = sysdate()
|
||||||
</set>
|
</set>
|
||||||
|
|||||||
Reference in New Issue
Block a user