| @@ -1,323 +1,344 @@ | |||||
| package com.ruoyi.system.api.domain; | package com.ruoyi.system.api.domain; | ||||
| import java.util.Date; | |||||
| import java.util.List; | |||||
| import javax.validation.constraints.*; | |||||
| import org.apache.commons.lang3.builder.ToStringBuilder; | |||||
| import org.apache.commons.lang3.builder.ToStringStyle; | |||||
| import com.ruoyi.common.core.annotation.Excel; | import com.ruoyi.common.core.annotation.Excel; | ||||
| import com.ruoyi.common.core.annotation.Excel.ColumnType; | import com.ruoyi.common.core.annotation.Excel.ColumnType; | ||||
| import com.ruoyi.common.core.annotation.Excel.Type; | import com.ruoyi.common.core.annotation.Excel.Type; | ||||
| import com.ruoyi.common.core.annotation.Excels; | import com.ruoyi.common.core.annotation.Excels; | ||||
| import com.ruoyi.common.core.web.domain.BaseEntity; | import com.ruoyi.common.core.web.domain.BaseEntity; | ||||
| import com.ruoyi.common.core.xss.Xss; | import com.ruoyi.common.core.xss.Xss; | ||||
| import org.apache.commons.lang3.builder.ToStringBuilder; | |||||
| import org.apache.commons.lang3.builder.ToStringStyle; | |||||
| import javax.validation.constraints.Email; | |||||
| import javax.validation.constraints.NotBlank; | |||||
| import javax.validation.constraints.Size; | |||||
| import java.util.Date; | |||||
| import java.util.List; | |||||
| /** | /** | ||||
| * 用户对象 sys_user | * 用户对象 sys_user | ||||
| * | |||||
| * | |||||
| * @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 | |||||
| */ | |||||
| @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号") | @Excel(name = "用户序号", cellType = ColumnType.NUMERIC, prompt = "用户编号") | ||||
| private Long userId; | private Long userId; | ||||
| /** 部门ID */ | |||||
| /** | |||||
| * 部门ID | |||||
| */ | |||||
| @Excel(name = "部门编号", type = Type.IMPORT) | @Excel(name = "部门编号", type = Type.IMPORT) | ||||
| private Long deptId; | private Long deptId; | ||||
| /** 用户账号 */ | |||||
| /** | |||||
| * 用户账号 | |||||
| */ | |||||
| @Excel(name = "登录名称") | @Excel(name = "登录名称") | ||||
| private String userName; | private String userName; | ||||
| /** 用户昵称 */ | |||||
| /** | |||||
| * 用户昵称 | |||||
| */ | |||||
| @Excel(name = "用户名称") | @Excel(name = "用户名称") | ||||
| private String nickName; | private String nickName; | ||||
| /** 用户邮箱 */ | |||||
| /** | |||||
| * 用户邮箱 | |||||
| */ | |||||
| @Excel(name = "用户邮箱") | @Excel(name = "用户邮箱") | ||||
| private String email; | private String email; | ||||
| /** 手机号码 */ | |||||
| /** | |||||
| * 手机号码 | |||||
| */ | |||||
| @Excel(name = "手机号码") | @Excel(name = "手机号码") | ||||
| private String phonenumber; | private String phonenumber; | ||||
| /** 用户性别 */ | |||||
| /** | |||||
| * 用户性别 | |||||
| */ | |||||
| @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") | @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") | ||||
| private String sex; | private String sex; | ||||
| /** 用户头像 */ | |||||
| /** | |||||
| * 用户头像 | |||||
| */ | |||||
| private String avatar; | private String avatar; | ||||
| /** 密码 */ | |||||
| /** | |||||
| * 密码 | |||||
| */ | |||||
| private String password; | private String password; | ||||
| /** 帐号状态(0正常 1停用) */ | |||||
| /** | |||||
| * 帐号状态(0正常 1停用) | |||||
| */ | |||||
| @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") | @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") | ||||
| private String status; | private String status; | ||||
| /** 删除标志(0代表存在 2代表删除) */ | |||||
| /** | |||||
| * 删除标志(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; | ||||
| /** 部门对象 */ | |||||
| /** | |||||
| * 部门对象 | |||||
| */ | |||||
| @Excels({ | @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 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() | |||||
| { | |||||
| private String gitLinkUsername; | |||||
| private String gitLinkPassword; | |||||
| 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 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; | ||||
| } | } | ||||
| public void setGitLinkUsername(String gitLinkUsername) { | |||||
| this.gitLinkUsername = gitLinkUsername; | |||||
| } | |||||
| public String getGitLinkUsername() { | |||||
| return gitLinkUsername; | |||||
| } | |||||
| public void setGitLinkPassword(String gitLinkPassword) { | |||||
| this.gitLinkPassword = gitLinkPassword; | |||||
| } | |||||
| public String getGitLinkPassword() { | |||||
| return gitLinkPassword; | |||||
| } | |||||
| @Override | @Override | ||||
| public String toString() { | 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("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("createBy", getCreateBy()) | |||||
| .append("createTime", getCreateTime()) | |||||
| .append("updateBy", getUpdateBy()) | |||||
| .append("updateTime", getUpdateTime()) | |||||
| .append("remark", getRemark()) | |||||
| .append("dept", getDept()) | |||||
| .append("gitLinkUsername", getGitLinkUsername()) | |||||
| .append("gitLinkPassword", getGitLinkPassword()) | |||||
| .toString(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1,22 +1,5 @@ | |||||
| package com.ruoyi.system.controller; | package com.ruoyi.system.controller; | ||||
| import java.io.IOException; | |||||
| import java.util.List; | |||||
| import java.util.Set; | |||||
| import java.util.stream.Collectors; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| import org.apache.commons.lang3.ArrayUtils; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.validation.annotation.Validated; | |||||
| import org.springframework.web.bind.annotation.DeleteMapping; | |||||
| import org.springframework.web.bind.annotation.GetMapping; | |||||
| import org.springframework.web.bind.annotation.PathVariable; | |||||
| import org.springframework.web.bind.annotation.PostMapping; | |||||
| import org.springframework.web.bind.annotation.PutMapping; | |||||
| import org.springframework.web.bind.annotation.RequestBody; | |||||
| import org.springframework.web.bind.annotation.RequestMapping; | |||||
| import org.springframework.web.bind.annotation.RestController; | |||||
| import org.springframework.web.multipart.MultipartFile; | |||||
| import com.ruoyi.common.core.domain.R; | import com.ruoyi.common.core.domain.R; | ||||
| import com.ruoyi.common.core.utils.StringUtils; | import com.ruoyi.common.core.utils.StringUtils; | ||||
| import com.ruoyi.common.core.utils.poi.ExcelUtil; | import com.ruoyi.common.core.utils.poi.ExcelUtil; | ||||
| @@ -32,22 +15,27 @@ import com.ruoyi.system.api.domain.SysDept; | |||||
| import com.ruoyi.system.api.domain.SysRole; | import com.ruoyi.system.api.domain.SysRole; | ||||
| import com.ruoyi.system.api.domain.SysUser; | import com.ruoyi.system.api.domain.SysUser; | ||||
| import com.ruoyi.system.api.model.LoginUser; | import com.ruoyi.system.api.model.LoginUser; | ||||
| import com.ruoyi.system.service.ISysConfigService; | |||||
| import com.ruoyi.system.service.ISysDeptService; | |||||
| import com.ruoyi.system.service.ISysPermissionService; | |||||
| import com.ruoyi.system.service.ISysPostService; | |||||
| import com.ruoyi.system.service.ISysRoleService; | |||||
| import com.ruoyi.system.service.ISysUserService; | |||||
| import com.ruoyi.system.service.*; | |||||
| import org.apache.commons.lang3.ArrayUtils; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | |||||
| import org.springframework.validation.annotation.Validated; | |||||
| import org.springframework.web.bind.annotation.*; | |||||
| import org.springframework.web.multipart.MultipartFile; | |||||
| import javax.servlet.http.HttpServletResponse; | |||||
| import java.io.IOException; | |||||
| import java.util.List; | |||||
| import java.util.Set; | |||||
| import java.util.stream.Collectors; | |||||
| /** | /** | ||||
| * 用户信息 | * 用户信息 | ||||
| * | |||||
| * | |||||
| * @author ruoyi | * @author ruoyi | ||||
| */ | */ | ||||
| @RestController | @RestController | ||||
| @RequestMapping("/user") | @RequestMapping("/user") | ||||
| public class SysUserController extends BaseController | |||||
| { | |||||
| public class SysUserController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private ISysUserService userService; | private ISysUserService userService; | ||||
| @@ -71,8 +59,7 @@ public class SysUserController extends BaseController | |||||
| */ | */ | ||||
| @RequiresPermissions("system:user:list") | @RequiresPermissions("system:user:list") | ||||
| @GetMapping("/list") | @GetMapping("/list") | ||||
| public TableDataInfo list(SysUser user) | |||||
| { | |||||
| public TableDataInfo list(SysUser user) { | |||||
| startPage(); | startPage(); | ||||
| List<SysUser> list = userService.selectUserList(user); | List<SysUser> list = userService.selectUserList(user); | ||||
| return getDataTable(list); | return getDataTable(list); | ||||
| @@ -81,8 +68,7 @@ public class SysUserController extends BaseController | |||||
| @Log(title = "用户管理", businessType = BusinessType.EXPORT) | @Log(title = "用户管理", businessType = BusinessType.EXPORT) | ||||
| @RequiresPermissions("system:user:export") | @RequiresPermissions("system:user:export") | ||||
| @PostMapping("/export") | @PostMapping("/export") | ||||
| public void export(HttpServletResponse response, SysUser user) | |||||
| { | |||||
| public void export(HttpServletResponse response, SysUser user) { | |||||
| List<SysUser> list = userService.selectUserList(user); | List<SysUser> list = userService.selectUserList(user); | ||||
| ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); | ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); | ||||
| util.exportExcel(response, list, "用户数据"); | util.exportExcel(response, list, "用户数据"); | ||||
| @@ -91,8 +77,7 @@ public class SysUserController extends BaseController | |||||
| @Log(title = "用户管理", businessType = BusinessType.IMPORT) | @Log(title = "用户管理", businessType = BusinessType.IMPORT) | ||||
| @RequiresPermissions("system:user:import") | @RequiresPermissions("system:user:import") | ||||
| @PostMapping("/importData") | @PostMapping("/importData") | ||||
| public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception | |||||
| { | |||||
| public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { | |||||
| ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); | ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); | ||||
| List<SysUser> userList = util.importExcel(file.getInputStream()); | List<SysUser> userList = util.importExcel(file.getInputStream()); | ||||
| String operName = SecurityUtils.getUsername(); | String operName = SecurityUtils.getUsername(); | ||||
| @@ -101,8 +86,7 @@ public class SysUserController extends BaseController | |||||
| } | } | ||||
| @PostMapping("/importTemplate") | @PostMapping("/importTemplate") | ||||
| public void importTemplate(HttpServletResponse response) throws IOException | |||||
| { | |||||
| public void importTemplate(HttpServletResponse response) throws IOException { | |||||
| ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); | ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); | ||||
| util.importTemplateExcel(response, "用户数据"); | util.importTemplateExcel(response, "用户数据"); | ||||
| } | } | ||||
| @@ -112,11 +96,9 @@ public class SysUserController extends BaseController | |||||
| */ | */ | ||||
| @InnerAuth | @InnerAuth | ||||
| @GetMapping("/info/{username}") | @GetMapping("/info/{username}") | ||||
| public R<LoginUser> info(@PathVariable("username") String username) | |||||
| { | |||||
| public R<LoginUser> info(@PathVariable("username") String username) { | |||||
| SysUser sysUser = userService.selectUserByUserName(username); | SysUser sysUser = userService.selectUserByUserName(username); | ||||
| if (StringUtils.isNull(sysUser)) | |||||
| { | |||||
| if (StringUtils.isNull(sysUser)) { | |||||
| return R.fail("用户名或密码错误"); | return R.fail("用户名或密码错误"); | ||||
| } | } | ||||
| // 角色集合 | // 角色集合 | ||||
| @@ -135,15 +117,12 @@ public class SysUserController extends BaseController | |||||
| */ | */ | ||||
| @InnerAuth | @InnerAuth | ||||
| @PostMapping("/register") | @PostMapping("/register") | ||||
| public R<Boolean> register(@RequestBody SysUser sysUser) | |||||
| { | |||||
| public R<Boolean> register(@RequestBody SysUser sysUser) { | |||||
| String username = sysUser.getUserName(); | String username = sysUser.getUserName(); | ||||
| if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) | |||||
| { | |||||
| if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { | |||||
| return R.fail("当前系统没有开启注册功能!"); | return R.fail("当前系统没有开启注册功能!"); | ||||
| } | } | ||||
| if (!userService.checkUserNameUnique(sysUser)) | |||||
| { | |||||
| if (!userService.checkUserNameUnique(sysUser)) { | |||||
| return R.fail("保存用户'" + username + "'失败,注册账号已存在"); | return R.fail("保存用户'" + username + "'失败,注册账号已存在"); | ||||
| } | } | ||||
| return R.ok(userService.registerUser(sysUser)); | return R.ok(userService.registerUser(sysUser)); | ||||
| @@ -151,12 +130,11 @@ public class SysUserController extends BaseController | |||||
| /** | /** | ||||
| * 获取用户信息 | * 获取用户信息 | ||||
| * | |||||
| * | |||||
| * @return 用户信息 | * @return 用户信息 | ||||
| */ | */ | ||||
| @GetMapping("getInfo") | @GetMapping("getInfo") | ||||
| public AjaxResult getInfo() | |||||
| { | |||||
| public AjaxResult getInfo() { | |||||
| SysUser user = userService.selectUserById(SecurityUtils.getUserId()); | SysUser user = userService.selectUserById(SecurityUtils.getUserId()); | ||||
| // 角色集合 | // 角色集合 | ||||
| Set<String> roles = permissionService.getRolePermission(user); | Set<String> roles = permissionService.getRolePermission(user); | ||||
| @@ -173,16 +151,14 @@ public class SysUserController extends BaseController | |||||
| * 根据用户编号获取详细信息 | * 根据用户编号获取详细信息 | ||||
| */ | */ | ||||
| @RequiresPermissions("system:user:query") | @RequiresPermissions("system:user:query") | ||||
| @GetMapping(value = { "/", "/{userId}" }) | |||||
| public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) | |||||
| { | |||||
| @GetMapping(value = {"/", "/{userId}"}) | |||||
| public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { | |||||
| userService.checkUserDataScope(userId); | userService.checkUserDataScope(userId); | ||||
| AjaxResult ajax = AjaxResult.success(); | AjaxResult ajax = AjaxResult.success(); | ||||
| List<SysRole> roles = roleService.selectRoleAll(); | List<SysRole> roles = roleService.selectRoleAll(); | ||||
| ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); | ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); | ||||
| ajax.put("posts", postService.selectPostAll()); | ajax.put("posts", postService.selectPostAll()); | ||||
| if (StringUtils.isNotNull(userId)) | |||||
| { | |||||
| if (StringUtils.isNotNull(userId)) { | |||||
| SysUser sysUser = userService.selectUserById(userId); | SysUser sysUser = userService.selectUserById(userId); | ||||
| ajax.put(AjaxResult.DATA_TAG, sysUser); | ajax.put(AjaxResult.DATA_TAG, sysUser); | ||||
| ajax.put("postIds", postService.selectPostListByUserId(userId)); | ajax.put("postIds", postService.selectPostListByUserId(userId)); | ||||
| @@ -197,22 +173,19 @@ public class SysUserController extends BaseController | |||||
| @RequiresPermissions("system:user:add") | @RequiresPermissions("system:user:add") | ||||
| @Log(title = "用户管理", businessType = BusinessType.INSERT) | @Log(title = "用户管理", businessType = BusinessType.INSERT) | ||||
| @PostMapping | @PostMapping | ||||
| public AjaxResult add(@Validated @RequestBody SysUser user) | |||||
| { | |||||
| if (!userService.checkUserNameUnique(user)) | |||||
| { | |||||
| public AjaxResult add(@Validated @RequestBody SysUser user) { | |||||
| if (!userService.checkUserNameUnique(user)) { | |||||
| return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); | return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); | ||||
| } | |||||
| else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) | |||||
| { | |||||
| } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { | |||||
| return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); | return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); | ||||
| } | |||||
| else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) | |||||
| { | |||||
| } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { | |||||
| return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); | return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); | ||||
| } else if (StringUtils.isNotEmpty(user.getGitLinkUsername()) && !userService.checktGitLinkUsernameUnique(user)) { | |||||
| return error("新增用户'" + user.getUserName() + "'失败,gitLink用户名已存在"); | |||||
| } | } | ||||
| user.setCreateBy(SecurityUtils.getUsername()); | user.setCreateBy(SecurityUtils.getUsername()); | ||||
| user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); | user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); | ||||
| user.setGitLinkPassword(SecurityUtils.encryptPassword(user.getGitLinkPassword())); | |||||
| return toAjax(userService.insertUser(user)); | return toAjax(userService.insertUser(user)); | ||||
| } | } | ||||
| @@ -222,23 +195,25 @@ public class SysUserController extends BaseController | |||||
| @RequiresPermissions("system:user:edit") | @RequiresPermissions("system:user:edit") | ||||
| @Log(title = "用户管理", businessType = BusinessType.UPDATE) | @Log(title = "用户管理", businessType = BusinessType.UPDATE) | ||||
| @PutMapping | @PutMapping | ||||
| public AjaxResult edit(@Validated @RequestBody SysUser user) | |||||
| { | |||||
| public AjaxResult edit(@Validated @RequestBody SysUser user) { | |||||
| userService.checkUserAllowed(user); | userService.checkUserAllowed(user); | ||||
| userService.checkUserDataScope(user.getUserId()); | userService.checkUserDataScope(user.getUserId()); | ||||
| if (!userService.checkUserNameUnique(user)) | |||||
| { | |||||
| if (!userService.checkUserNameUnique(user)) { | |||||
| return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); | return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); | ||||
| } | |||||
| else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) | |||||
| { | |||||
| } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { | |||||
| return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); | return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); | ||||
| } | |||||
| else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) | |||||
| { | |||||
| } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { | |||||
| return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); | return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); | ||||
| } else if (StringUtils.isNotEmpty(user.getGitLinkUsername()) && !userService.checktGitLinkUsernameUnique(user)) { | |||||
| return error("新增用户'" + user.getUserName() + "'失败,gitLink用户名已存在"); | |||||
| } | } | ||||
| user.setUpdateBy(SecurityUtils.getUsername()); | user.setUpdateBy(SecurityUtils.getUsername()); | ||||
| if(StringUtils.isNotEmpty(user.getPassword())){ | |||||
| user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); | |||||
| } | |||||
| if(StringUtils.isNotEmpty(user.getGitLinkPassword())){ | |||||
| user.setGitLinkPassword(SecurityUtils.encryptPassword(user.getGitLinkPassword())); | |||||
| } | |||||
| return toAjax(userService.updateUser(user)); | return toAjax(userService.updateUser(user)); | ||||
| } | } | ||||
| @@ -248,10 +223,8 @@ public class SysUserController extends BaseController | |||||
| @RequiresPermissions("system:user:remove") | @RequiresPermissions("system:user:remove") | ||||
| @Log(title = "用户管理", businessType = BusinessType.DELETE) | @Log(title = "用户管理", businessType = BusinessType.DELETE) | ||||
| @DeleteMapping("/{userIds}") | @DeleteMapping("/{userIds}") | ||||
| public AjaxResult remove(@PathVariable Long[] userIds) | |||||
| { | |||||
| if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) | |||||
| { | |||||
| public AjaxResult remove(@PathVariable Long[] userIds) { | |||||
| if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { | |||||
| return error("当前用户不能删除"); | return error("当前用户不能删除"); | ||||
| } | } | ||||
| return toAjax(userService.deleteUserByIds(userIds)); | return toAjax(userService.deleteUserByIds(userIds)); | ||||
| @@ -263,8 +236,7 @@ public class SysUserController extends BaseController | |||||
| @RequiresPermissions("system:user:edit") | @RequiresPermissions("system:user:edit") | ||||
| @Log(title = "用户管理", businessType = BusinessType.UPDATE) | @Log(title = "用户管理", businessType = BusinessType.UPDATE) | ||||
| @PutMapping("/resetPwd") | @PutMapping("/resetPwd") | ||||
| public AjaxResult resetPwd(@RequestBody SysUser user) | |||||
| { | |||||
| public AjaxResult resetPwd(@RequestBody SysUser user) { | |||||
| userService.checkUserAllowed(user); | userService.checkUserAllowed(user); | ||||
| userService.checkUserDataScope(user.getUserId()); | userService.checkUserDataScope(user.getUserId()); | ||||
| user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); | user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); | ||||
| @@ -278,8 +250,7 @@ public class SysUserController extends BaseController | |||||
| @RequiresPermissions("system:user:edit") | @RequiresPermissions("system:user:edit") | ||||
| @Log(title = "用户管理", businessType = BusinessType.UPDATE) | @Log(title = "用户管理", businessType = BusinessType.UPDATE) | ||||
| @PutMapping("/changeStatus") | @PutMapping("/changeStatus") | ||||
| public AjaxResult changeStatus(@RequestBody SysUser user) | |||||
| { | |||||
| public AjaxResult changeStatus(@RequestBody SysUser user) { | |||||
| userService.checkUserAllowed(user); | userService.checkUserAllowed(user); | ||||
| userService.checkUserDataScope(user.getUserId()); | userService.checkUserDataScope(user.getUserId()); | ||||
| user.setUpdateBy(SecurityUtils.getUsername()); | user.setUpdateBy(SecurityUtils.getUsername()); | ||||
| @@ -291,8 +262,7 @@ public class SysUserController extends BaseController | |||||
| */ | */ | ||||
| @RequiresPermissions("system:user:query") | @RequiresPermissions("system:user:query") | ||||
| @GetMapping("/authRole/{userId}") | @GetMapping("/authRole/{userId}") | ||||
| public AjaxResult authRole(@PathVariable("userId") Long userId) | |||||
| { | |||||
| public AjaxResult authRole(@PathVariable("userId") Long userId) { | |||||
| AjaxResult ajax = AjaxResult.success(); | AjaxResult ajax = AjaxResult.success(); | ||||
| SysUser user = userService.selectUserById(userId); | SysUser user = userService.selectUserById(userId); | ||||
| List<SysRole> roles = roleService.selectRolesByUserId(userId); | List<SysRole> roles = roleService.selectRolesByUserId(userId); | ||||
| @@ -307,8 +277,7 @@ public class SysUserController extends BaseController | |||||
| @RequiresPermissions("system:user:edit") | @RequiresPermissions("system:user:edit") | ||||
| @Log(title = "用户管理", businessType = BusinessType.GRANT) | @Log(title = "用户管理", businessType = BusinessType.GRANT) | ||||
| @PutMapping("/authRole") | @PutMapping("/authRole") | ||||
| public AjaxResult insertAuthRole(Long userId, Long[] roleIds) | |||||
| { | |||||
| public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { | |||||
| userService.checkUserDataScope(userId); | userService.checkUserDataScope(userId); | ||||
| userService.insertUserAuth(userId, roleIds); | userService.insertUserAuth(userId, roleIds); | ||||
| return success(); | return success(); | ||||
| @@ -319,8 +288,7 @@ public class SysUserController extends BaseController | |||||
| */ | */ | ||||
| @RequiresPermissions("system:user:list") | @RequiresPermissions("system:user:list") | ||||
| @GetMapping("/deptTree") | @GetMapping("/deptTree") | ||||
| public AjaxResult deptTree(SysDept dept) | |||||
| { | |||||
| public AjaxResult deptTree(SysDept dept) { | |||||
| return success(deptService.selectDeptTreeList(dept)); | return success(deptService.selectDeptTreeList(dept)); | ||||
| } | } | ||||
| } | } | ||||
| @@ -124,4 +124,6 @@ public interface SysUserMapper | |||||
| * @return 结果 | * @return 结果 | ||||
| */ | */ | ||||
| public SysUser checkEmailUnique(String email); | public SysUser checkEmailUnique(String email); | ||||
| public SysUser checktGitLinkUsernameUnique(String gitLinkUsername); | |||||
| } | } | ||||
| @@ -90,6 +90,8 @@ public interface ISysUserService | |||||
| */ | */ | ||||
| public boolean checkEmailUnique(SysUser user); | public boolean checkEmailUnique(SysUser user); | ||||
| public boolean checktGitLinkUsernameUnique(SysUser user); | |||||
| /** | /** | ||||
| * 校验用户是否允许操作 | * 校验用户是否允许操作 | ||||
| * | * | ||||
| @@ -212,6 +212,17 @@ public class SysUserServiceImpl implements ISysUserService | |||||
| return UserConstants.UNIQUE; | return UserConstants.UNIQUE; | ||||
| } | } | ||||
| @Override | |||||
| public boolean checktGitLinkUsernameUnique(SysUser user) { | |||||
| Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); | |||||
| SysUser info = userMapper.checktGitLinkUsernameUnique(user.getGitLinkUsername()); | |||||
| if(StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) | |||||
| { | |||||
| return UserConstants.NOT_UNIQUE; | |||||
| } | |||||
| return UserConstants.UNIQUE; | |||||
| } | |||||
| /** | /** | ||||
| * 校验用户是否允许操作 | * 校验用户是否允许操作 | ||||
| * | * | ||||
| @@ -47,43 +47,74 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="selectUserVo"> | <sql id="selectUserVo"> | ||||
| 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.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 | |||||
| select u.user_id, | |||||
| u.dept_id, | |||||
| u.user_name, | |||||
| u.nick_name, | |||||
| u.email, | |||||
| u.avatar, | |||||
| u.phonenumber, | |||||
| u.password, | |||||
| u.git_link_username, | |||||
| u.git_link_password, | |||||
| u.sex, | |||||
| u.status, | |||||
| u.del_flag, | |||||
| u.login_ip, | |||||
| u.login_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 | |||||
| from sys_user u | 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 | |||||
| left join sys_role r on r.role_id = ur.role_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_role r on r.role_id = ur.role_id | |||||
| </sql> | </sql> | ||||
| <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, d.dept_name, d.leader 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"> | |||||
| AND u.user_id = #{userId} | |||||
| </if> | |||||
| <if test="userName != null and userName != ''"> | |||||
| AND u.user_name like concat('%', #{userName}, '%') | |||||
| </if> | |||||
| <if test="status != null and status != ''"> | |||||
| AND u.status = #{status} | |||||
| </if> | |||||
| <if test="phonenumber != null and phonenumber != ''"> | |||||
| AND u.phonenumber like concat('%', #{phonenumber}, '%') | |||||
| </if> | |||||
| <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> | |||||
| AND date_format(u.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') | |||||
| </if> | |||||
| <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> | |||||
| AND date_format(u.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') | |||||
| </if> | |||||
| <if test="deptId != null and deptId != 0"> | |||||
| AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) )) | |||||
| </if> | |||||
| <!-- 数据范围过滤 --> | |||||
| ${params.dataScope} | |||||
| </select> | |||||
| select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.git_link_username, | |||||
| u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader | |||||
| 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"> | |||||
| AND u.user_id = #{userId} | |||||
| </if> | |||||
| <if test="userName != null and userName != ''"> | |||||
| AND u.user_name like concat('%', #{userName}, '%') | |||||
| </if> | |||||
| <if test="status != null and status != ''"> | |||||
| AND u.status = #{status} | |||||
| </if> | |||||
| <if test="phonenumber != null and phonenumber != ''"> | |||||
| AND u.phonenumber like concat('%', #{phonenumber}, '%') | |||||
| </if> | |||||
| <if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 --> | |||||
| AND date_format(u.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') | |||||
| </if> | |||||
| <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> | |||||
| AND date_format(u.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') | |||||
| </if> | |||||
| <if test="deptId != null and deptId != 0"> | |||||
| AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, | |||||
| ancestors) )) | |||||
| </if> | |||||
| <!-- 数据范围过滤 --> | |||||
| ${params.dataScope} | |||||
| </select> | |||||
| <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, u.create_time | select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time | ||||
| @@ -141,8 +172,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||||
| <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult"> | <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult"> | ||||
| select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1 | select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1 | ||||
| </select> | </select> | ||||
| <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> | |||||
| <select id="checktGitLinkUsernameUnique" resultType="com.ruoyi.system.api.domain.SysUser"> | |||||
| select user_id, git_link_username | |||||
| from sys_user | |||||
| where git_link_username = #{gitLinkUsername} | |||||
| and del_flag = '0' limit 1 | |||||
| </select> | |||||
| <insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> | |||||
| insert into sys_user( | insert into sys_user( | ||||
| <if test="userId != null and userId != 0">user_id,</if> | <if test="userId != null and userId != 0">user_id,</if> | ||||
| <if test="deptId != null and deptId != 0">dept_id,</if> | <if test="deptId != null and deptId != 0">dept_id,</if> | ||||
| @@ -190,6 +228,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |||||
| <if test="loginDate != null">login_date = #{loginDate},</if> | <if test="loginDate != null">login_date = #{loginDate},</if> | ||||
| <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> | <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> | ||||
| <if test="remark != null">remark = #{remark},</if> | <if test="remark != null">remark = #{remark},</if> | ||||
| <if test="gitLinkUsername != null and gitLinkUsername != ''">git_link_username = #{gitLinkUsername},</if> | |||||
| <if test="gitLinkPassword != null and gitLinkPassword != ''">git_link_password = #{gitLinkPassword},</if> | |||||
| update_time = sysdate() | update_time = sysdate() | ||||
| </set> | </set> | ||||
| where user_id = #{userId} | where user_id = #{userId} | ||||