初始化 User 模块的代码

This commit is contained in:
YunaiV
2021-01-10 00:09:38 +08:00
parent 1bfaa2c967
commit cdaa0d9195
18 changed files with 1286 additions and 463 deletions

View File

@@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
@Data
public class SysRoleUpdateStatusReqVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1024")
@ApiModelProperty(value = "角色编号", required = true, example = "1024")
@NotNull(message = "角色编号不能为空")
private Long id;

View File

@@ -0,0 +1,155 @@
package cn.iocoder.dashboard.modules.system.controller.user;
public class SysUserController {
// /**
// * 获取用户列表
// */
// @PreAuthorize("@ss.hasPermi('system:user:list')")
// @GetMapping("/list")
// public TableDataInfo list(SysUser user)
// {
// startPage();
// List<SysUser> list = userService.selectUserList(user);
// return getDataTable(list);
// }
//
// @Log(title = "用户管理", businessType = BusinessType.EXPORT)
// @PreAuthorize("@ss.hasPermi('system:user:export')")
// @GetMapping("/export")
// public AjaxResult export(SysUser user)
// {
// List<SysUser> list = userService.selectUserList(user);
// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
// return util.exportExcel(list, "用户数据");
// }
//
// @Log(title = "用户管理", businessType = BusinessType.IMPORT)
// @PreAuthorize("@ss.hasPermi('system:user:import')")
// @PostMapping("/importData")
// public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
// {
// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
// List<SysUser> userList = util.importExcel(file.getInputStream());
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// String operName = loginUser.getUsername();
// String message = userService.importUser(userList, updateSupport, operName);
// return AjaxResult.success(message);
// }
//
// @GetMapping("/importTemplate")
// public AjaxResult importTemplate()
// {
// ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
// return util.importTemplateExcel("用户数据");
// }
//
// /**
// * 根据用户编号获取详细信息
// */
// @PreAuthorize("@ss.hasPermi('system:user:query')")
// @GetMapping(value = { "/", "/{userId}" })
// public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
// {
// AjaxResult ajax = AjaxResult.success();
// List<SysRole> roles = roleService.selectRoleAll();
// ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
// ajax.put("posts", postService.selectPostAll());
// if (StringUtils.isNotNull(userId))
// {
// ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));
// ajax.put("postIds", postService.selectPostListByUserId(userId));
// ajax.put("roleIds", roleService.selectRoleListByUserId(userId));
// }
// return ajax;
// }
//
// /**
// * 新增用户
// */
// @PreAuthorize("@ss.hasPermi('system:user:add')")
// @Log(title = "用户管理", businessType = BusinessType.INSERT)
// @PostMapping
// public AjaxResult add(@Validated @RequestBody SysUser user)
// {
// if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
// {
// return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
// }
// else if (StringUtils.isNotEmpty(user.getPhonenumber())
// && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
// {
// return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
// }
// else if (StringUtils.isNotEmpty(user.getEmail())
// && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
// {
// return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
// }
// user.setCreateBy(SecurityUtils.getUsername());
// user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
// return toAjax(userService.insertUser(user));
// }
//
// /**
// * 修改用户
// */
// @PreAuthorize("@ss.hasPermi('system:user:edit')")
// @Log(title = "用户管理", businessType = BusinessType.UPDATE)
// @PutMapping
// public AjaxResult edit(@Validated @RequestBody SysUser user)
// {
// userService.checkUserAllowed(user);
// if (StringUtils.isNotEmpty(user.getPhonenumber())
// && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
// {
// return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
// }
// else if (StringUtils.isNotEmpty(user.getEmail())
// && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
// {
// return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
// }
// user.setUpdateBy(SecurityUtils.getUsername());
// return toAjax(userService.updateUser(user));
// }
//
// /**
// * 删除用户
// */
// @PreAuthorize("@ss.hasPermi('system:user:remove')")
// @Log(title = "用户管理", businessType = BusinessType.DELETE)
// @DeleteMapping("/{userIds}")
// public AjaxResult remove(@PathVariable Long[] userIds)
// {
// return toAjax(userService.deleteUserByIds(userIds));
// }
//
// /**
// * 重置密码
// */
// @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
// @Log(title = "用户管理", businessType = BusinessType.UPDATE)
// @PutMapping("/resetPwd")
// public AjaxResult resetPwd(@RequestBody SysUser user)
// {
// userService.checkUserAllowed(user);
// user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
// user.setUpdateBy(SecurityUtils.getUsername());
// return toAjax(userService.resetPwd(user));
// }
//
// /**
// * 状态修改
// */
// @PreAuthorize("@ss.hasPermi('system:user:edit')")
// @Log(title = "用户管理", businessType = BusinessType.UPDATE)
// @PutMapping("/changeStatus")
// public AjaxResult changeStatus(@RequestBody SysUser user)
// {
// userService.checkUserAllowed(user);
// user.setUpdateBy(SecurityUtils.getUsername());
// return toAjax(userService.updateUserStatus(user));
// }
}

View File

@@ -0,0 +1,92 @@
package cn.iocoder.dashboard.modules.system.controller.user;
public class SysUserProfileController {
// /**
// * 个人信息
// */
// @GetMapping
// public AjaxResult profile()
// {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// SysUser user = loginUser.getUser();
// AjaxResult ajax = AjaxResult.success(user);
// ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
// ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
// return ajax;
// }
//
// /**
// * 修改用户
// */
// @Log(title = "个人信息", businessType = BusinessType.UPDATE)
// @PutMapping
// public AjaxResult updateProfile(@RequestBody SysUser user)
// {
// if (userService.updateUserProfile(user) > 0)
// {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// // 更新缓存用户信息
// loginUser.getUser().setNickName(user.getNickName());
// loginUser.getUser().setPhonenumber(user.getPhonenumber());
// loginUser.getUser().setEmail(user.getEmail());
// loginUser.getUser().setSex(user.getSex());
// tokenService.setLoginUser(loginUser);
// return AjaxResult.success();
// }
// return AjaxResult.error("修改个人信息异常,请联系管理员");
// }
//
// /**
// * 重置密码
// */
// @Log(title = "个人信息", businessType = BusinessType.UPDATE)
// @PutMapping("/updatePwd")
// public AjaxResult updatePwd(String oldPassword, String newPassword)
// {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// String userName = loginUser.getUsername();
// String password = loginUser.getPassword();
// if (!SecurityUtils.matchesPassword(oldPassword, password))
// {
// return AjaxResult.error("修改密码失败,旧密码错误");
// }
// if (SecurityUtils.matchesPassword(newPassword, password))
// {
// return AjaxResult.error("新密码不能与旧密码相同");
// }
// if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
// {
// // 更新缓存用户密码
// loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
// tokenService.setLoginUser(loginUser);
// return AjaxResult.success();
// }
// return AjaxResult.error("修改密码异常,请联系管理员");
// }
//
// /**
// * 头像上传
// */
// @Log(title = "用户头像", businessType = BusinessType.UPDATE)
// @PostMapping("/avatar")
// public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException
// {
// if (!file.isEmpty())
// {
// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
// String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
// if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
// {
// AjaxResult ajax = AjaxResult.success();
// ajax.put("imgUrl", avatar);
// // 更新缓存用户头像
// loginUser.getUser().setAvatar(avatar);
// tokenService.setLoginUser(loginUser);
// return ajax;
// }
// }
// return AjaxResult.error("上传图片异常,请联系管理员");
// }
}

View File

@@ -0,0 +1,52 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Set;
/**
* 用户 Base VO提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
*/
@Data
public class SysUserBaseVO {
@ApiModelProperty(value = "用户账号", required = true, example = "yudao")
@NotBlank(message = "用户账号不能为空")
@Size(max = 30, message = "用户账号长度不能超过30个字符")
private String username;
@ApiModelProperty(value = "用户昵称", required = true, example = "芋艿")
@Size(max = 30, message = "用户昵称长度不能超过30个字符")
private String nickname;
@ApiModelProperty(value = "备注", example = "我是一个用户")
private String remark;
@ApiModelProperty(value = "部门ID", example = "我是一个用户")
private Long deptId;
@ApiModelProperty(value = "岗位编号数组", example = "1")
private Set<Long> postIds;
@ApiModelProperty(value = "用户邮箱", example = "yudao@iocoder.cn")
@Email(message = "邮箱格式不正确")
@Size(max = 50, message = "邮箱长度不能超过50个字符")
private String email;
@ApiModelProperty(value = "手机号码", example = "15601691300")
@Size(max = 11, message = "手机号码长度不能超过11个字符")
private String mobile;
@ApiModelProperty(value = "用户性别", example = "1", notes = "参见 SysSexEnum 枚举类")
private Integer sex;
@ApiModelProperty(value = "用户头像", example = "http://www.iocoder.cn/xxx.png")
private String avatar;
}

View File

@@ -0,0 +1,12 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ApiModel("用户创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class SysUserCreateReqVO extends SysUserBaseVO {
}

View File

@@ -0,0 +1,58 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import cn.iocoder.dashboard.framework.excel.Excel;
import cn.iocoder.dashboard.framework.excel.Excels;
import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.dept.SysDeptDO;
import lombok.Data;
import java.util.Date;
/**
* 用户 Excel 导出响应 VO
*/
@Data
public class SysUserExcelRespVO {
@Excel(name = "用户序号", cellType = Excel.ColumnType.NUMERIC, prompt = "用户编号")
private Long id;
/**
* 用户账号
*/
@Excel(name = "登录名称")
private String username;
/**
* 用户昵称
*/
@Excel(name = "用户名称")
private String nickname;
@Excel(name = "部门编号", type = Excel.Type.IMPORT)
private Long deptId;
@Excel(name = "用户邮箱")
private String email;
@Excel(name = "手机号码")
private String mobile;
@Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
private String sex;
@Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用")
private Integer status;
@Excel(name = "最后登录IP", type = Excel.Type.EXPORT)
private String loginIp;
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
private Date loginDate;
@Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
@Excel(name = "部门负责人", targetAttr = "leader", type = Excel.Type.EXPORT)
})
private SysDeptDO dept;
}

View File

@@ -0,0 +1,34 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.util.Date;
@ApiModel("用户信息 Response VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SysUserRespVO extends SysUserBaseVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1")
private Integer id;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类")
private Integer status;
@ApiModelProperty(value = "最后登陆 IP", required = true, example = "192.168.1.1")
private String loginIp;
@ApiModelProperty(value = "最后登录时间", required = true, example = "时间戳格式")
private Date loginDate;
@ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
private Date createTime;
}

View File

@@ -0,0 +1,19 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
@ApiModel("用户更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class SysUserUpdateReqVO extends SysUserBaseVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1024")
@NotNull(message = "用户编号不能为空")
private Long id;
}

View File

@@ -0,0 +1,22 @@
package cn.iocoder.dashboard.modules.system.controller.user.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
@ApiModel("用户更新状态 Request VO")
@Data
public class SysUserUpdateStatusReqVO {
@ApiModelProperty(value = "用户编号", required = true, example = "1024")
@NotNull(message = "角色编号不能为空")
private Long id;
@ApiModelProperty(value = "状态", required = true, example = "1", notes = "见 SysCommonStatusEnum 枚举")
@NotNull(message = "状态不能为空")
// @InEnum(value = SysCommonStatusEnum.class, message = "修改状态必须是 {value}")
private Integer status;
}