diff --git a/vetti-admin/src/main/java/com/vetti/web/controller/system/SysUserController.java b/vetti-admin/src/main/java/com/vetti/web/controller/system/SysUserController.java index 8ce868d..3c262e0 100644 --- a/vetti-admin/src/main/java/com/vetti/web/controller/system/SysUserController.java +++ b/vetti-admin/src/main/java/com/vetti/web/controller/system/SysUserController.java @@ -3,6 +3,8 @@ package com.vetti.web.controller.system; import java.util.List; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; + +import cn.hutool.json.JSONUtil; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -177,6 +179,8 @@ public class SysUserController extends BaseController { return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } + user.setCvTemplateJson(JSONUtil.toJsonStr(user.getCvInfoDto())); + user.setWorkNatureJson(JSONUtil.toJsonStr(user.getWorkNatureDto())); user.setUpdateBy(getUsername()); return toAjax(userService.updateUser(user)); } diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/HotakeUserCvInfoDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/HotakeUserCvInfoDto.java new file mode 100644 index 0000000..bc1aa25 --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/HotakeUserCvInfoDto.java @@ -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 links; + @ApiModelProperty("自我介绍") + private String about; + @ApiModelProperty("技能工具-许可证、注册/会员资格、认证") + private List skillsTools; + @ApiModelProperty("语言") + private List languages; + @ApiModelProperty("工作经验集合") + private List experience; + @ApiModelProperty("教育经历") + private List education; + + +} diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/HotakeWorkNatureDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/HotakeWorkNatureDto.java new file mode 100644 index 0000000..8089cb2 --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/HotakeWorkNatureDto.java @@ -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; +} diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserCertificateDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserCertificateDto.java new file mode 100644 index 0000000..5564ad8 --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserCertificateDto.java @@ -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; + +} diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserEducationDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserEducationDto.java new file mode 100644 index 0000000..900d49e --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserEducationDto.java @@ -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; + +} diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserExperienceDescriptionDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserExperienceDescriptionDto.java new file mode 100644 index 0000000..b6d2c6f --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserExperienceDescriptionDto.java @@ -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; +} diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserExperienceDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserExperienceDto.java new file mode 100644 index 0000000..aea49b9 --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserExperienceDto.java @@ -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 description; +} + diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserLanguagesDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserLanguagesDto.java new file mode 100644 index 0000000..c223222 --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserLanguagesDto.java @@ -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; +} diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserLinksDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserLinksDto.java new file mode 100644 index 0000000..b280a6d --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserLinksDto.java @@ -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; +} diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserSkillsToolsDto.java b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserSkillsToolsDto.java new file mode 100644 index 0000000..ad96fd5 --- /dev/null +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/dto/user/VcUserSkillsToolsDto.java @@ -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; +} diff --git a/vetti-common/src/main/java/com/vetti/common/core/domain/entity/SysUser.java b/vetti-common/src/main/java/com/vetti/common/core/domain/entity/SysUser.java index dcd7ecb..d60bf4d 100644 --- a/vetti-common/src/main/java/com/vetti/common/core/domain/entity/SysUser.java +++ b/vetti-common/src/main/java/com/vetti/common/core/domain/entity/SysUser.java @@ -5,6 +5,8 @@ import java.util.List; import javax.validation.constraints.*; 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 org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -17,75 +19,102 @@ import com.vetti.common.xss.Xss; /** * 用户对象 sys_user - * + * * @author ruoyi */ -public class SysUser extends BaseEntity -{ +public class SysUser extends BaseEntity { private static final long serialVersionUID = 1L; - /** 用户ID */ + /** + * 用户ID + */ @ApiModelProperty("用户ID") @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") private Long userId; - /** 部门ID */ + /** + * 部门ID + */ @ApiModelProperty("用户ID") @Excel(name = "部门编号", type = Type.IMPORT) private Long deptId; - /** 用户账号 */ + /** + * 用户账号 + */ @ApiModelProperty("用户账号(注册邮箱或者手机号)") @Excel(name = "登录名称") private String userName; - /** 用户昵称 */ + /** + * 用户昵称 + */ @ApiModelProperty("用户名称(姓名)") @Excel(name = "用户名称") private String nickName; - /** 用户邮箱 */ + /** + * 用户邮箱 + */ @ApiModelProperty("用户邮箱") @Excel(name = "用户邮箱") private String email; - /** 手机号码 */ + /** + * 手机号码 + */ @ApiModelProperty("手机号码") @Excel(name = "手机号码", cellType = ColumnType.TEXT) private String phonenumber; - /** 用户性别 */ + /** + * 用户性别 + */ @ApiModelProperty("用户性别(0=男,1=女,2=未知)") @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") private String sex; - /** 用户头像 */ + /** + * 用户头像 + */ @ApiModelProperty("用户头像") private String avatar; - /** 密码 */ + /** + * 密码 + */ @ApiModelProperty("密码") private String password; - /** 账号状态(0正常 1停用) */ + /** + * 账号状态(0正常 1停用) + */ @ApiModelProperty("账号状态(0正常 1停用)") @Excel(name = "账号状态", readConverterExp = "0=正常,1=停用") private String status; - /** 删除标志(0代表存在 2代表删除) */ + /** + * 删除标志(0代表存在 2代表删除) + */ @ApiModelProperty("删除标志(0代表存在 2代表删除)") private String delFlag; - /** 最后登录IP */ + /** + * 最后登录IP + */ @Excel(name = "最后登录IP", type = Type.EXPORT) private String loginIp; - /** 最后登录时间 */ + /** + * 最后登录时间 + */ @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Type.EXPORT) private Date loginDate; - /** 密码最后更新时间 */ + /** + * 密码最后更新时间 + */ private Date pwdUpdateDate; /** @@ -139,240 +168,221 @@ public class SysUser extends BaseEntity @ApiModelProperty("职位名称") private String jobTitle; - /** 部门对象 */ + @ApiModelProperty("简历模版Json") + private String cvTemplateJson; + + @ApiModelProperty("简历详细信息-固定模版") + private HotakeUserCvInfoDto cvInfoDto; + + @ApiModelProperty("工作性值Json") + private String workNatureJson; + + @ApiModelProperty("工作性值") + private HotakeWorkNatureDto workNatureDto; + + + /** + * 部门对象 + */ @Excels({ - @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), - @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) + @Excel(name = "部门名称", targetAttr = "deptName", type = Type.EXPORT), + @Excel(name = "部门负责人", targetAttr = "leader", type = Type.EXPORT) }) private SysDept dept; - /** 角色对象 */ + /** + * 角色对象 + */ private List roles; - /** 角色组 */ + /** + * 角色组 + */ private Long[] roleIds; - /** 岗位组 */ + /** + * 岗位组 + */ private Long[] postIds; - /** 角色ID */ + /** + * 角色ID + */ private Long roleId; - public SysUser() - { + public SysUser() { } - public SysUser(Long userId) - { + public SysUser(Long userId) { this.userId = userId; } - public Long getUserId() - { + public Long getUserId() { return userId; } - public void setUserId(Long userId) - { + public void setUserId(Long userId) { this.userId = userId; } - public boolean isAdmin() - { + public boolean isAdmin() { return isAdmin(this.userId); } - public static boolean isAdmin(Long userId) - { + public static boolean isAdmin(Long userId) { return userId != null && 1L == userId; } - public Long getDeptId() - { + public Long getDeptId() { return deptId; } - public void setDeptId(Long deptId) - { + public void setDeptId(Long deptId) { this.deptId = deptId; } -// @Xss(message = "用户昵称不能包含脚本字符") + // @Xss(message = "用户昵称不能包含脚本字符") // @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") - public String getNickName() - { + public String getNickName() { return nickName; } - public void setNickName(String nickName) - { + public void setNickName(String nickName) { this.nickName = nickName; } -// @Xss(message = "用户账号不能包含脚本字符") + // @Xss(message = "用户账号不能包含脚本字符") // @NotBlank(message = "用户账号不能为空") // @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") - public String getUserName() - { + public String getUserName() { return userName; } - public void setUserName(String userName) - { + public void setUserName(String userName) { this.userName = userName; } -// @Email(message = "邮箱格式不正确") + // @Email(message = "邮箱格式不正确") // @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") - public String getEmail() - { + public String getEmail() { return email; } - public void setEmail(String email) - { + public void setEmail(String email) { this.email = email; } -// @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") - public String getPhonenumber() - { + // @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") + public String getPhonenumber() { return phonenumber; } - public void setPhonenumber(String phonenumber) - { + public void setPhonenumber(String phonenumber) { this.phonenumber = phonenumber; } - public String getSex() - { + public String getSex() { return sex; } - public void setSex(String sex) - { + public void setSex(String sex) { this.sex = sex; } - public String getAvatar() - { + public String getAvatar() { return avatar; } - public void setAvatar(String avatar) - { + public void setAvatar(String avatar) { this.avatar = avatar; } - public String getPassword() - { + public String getPassword() { return password; } - public void setPassword(String password) - { + public void setPassword(String password) { this.password = password; } - public String getStatus() - { + public String getStatus() { return status; } - public void setStatus(String status) - { + public void setStatus(String status) { this.status = status; } - public String getDelFlag() - { + public String getDelFlag() { return delFlag; } - public void setDelFlag(String delFlag) - { + public void setDelFlag(String delFlag) { this.delFlag = delFlag; } - public String getLoginIp() - { + public String getLoginIp() { return loginIp; } - public void setLoginIp(String loginIp) - { + public void setLoginIp(String loginIp) { this.loginIp = loginIp; } - public Date getLoginDate() - { + public Date getLoginDate() { return loginDate; } - public void setLoginDate(Date loginDate) - { + public void setLoginDate(Date loginDate) { this.loginDate = loginDate; } - public Date getPwdUpdateDate() - { + public Date getPwdUpdateDate() { return pwdUpdateDate; } - public void setPwdUpdateDate(Date pwdUpdateDate) - { + public void setPwdUpdateDate(Date pwdUpdateDate) { this.pwdUpdateDate = pwdUpdateDate; } - public SysDept getDept() - { + public SysDept getDept() { return dept; } - public void setDept(SysDept dept) - { + public void setDept(SysDept dept) { this.dept = dept; } - public List getRoles() - { + public List getRoles() { return roles; } - public void setRoles(List roles) - { + public void setRoles(List roles) { this.roles = roles; } - public Long[] getRoleIds() - { + public Long[] getRoleIds() { return roleIds; } - public void setRoleIds(Long[] roleIds) - { + public void setRoleIds(Long[] roleIds) { this.roleIds = roleIds; } - public Long[] getPostIds() - { + public Long[] getPostIds() { return postIds; } - public void setPostIds(Long[] postIds) - { + public void setPostIds(Long[] postIds) { this.postIds = postIds; } - public Long getRoleId() - { + public Long getRoleId() { return roleId; } - public void setRoleId(Long roleId) - { + public void setRoleId(Long roleId) { this.roleId = roleId; } @@ -508,29 +518,61 @@ public class SysUser extends BaseEntity 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 public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("userId", getUserId()) - .append("deptId", getDeptId()) - .append("userName", getUserName()) - .append("nickName", getNickName()) - .append("email", getEmail()) - .append("phonenumber", getPhonenumber()) - .append("sex", getSex()) - .append("avatar", getAvatar()) - .append("password", getPassword()) - .append("status", getStatus()) - .append("delFlag", getDelFlag()) - .append("loginIp", getLoginIp()) - .append("loginDate", getLoginDate()) - .append("pwdUpdateDate", getPwdUpdateDate()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .append("dept", getDept()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("userId", getUserId()) + .append("deptId", getDeptId()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("email", getEmail()) + .append("phonenumber", getPhonenumber()) + .append("sex", getSex()) + .append("avatar", getAvatar()) + .append("password", getPassword()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("loginIp", getLoginIp()) + .append("loginDate", getLoginDate()) + .append("pwdUpdateDate", getPwdUpdateDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("dept", getDept()) + .toString(); } } diff --git a/vetti-system/src/main/resources/mapper/system/SysUserMapper.xml b/vetti-system/src/main/resources/mapper/system/SysUserMapper.xml index 86837b7..98e81ed 100644 --- a/vetti-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/vetti-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -43,6 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -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, 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.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 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 @@ -82,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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.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_user_role ur on u.user_id = ur.user_id @@ -134,7 +136,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"