fix(flow): 获取部门主管的时候,提示用户凭证已过期

Closes #6183
This commit is contained in:
冷冷 committed 2025-03-09 21:07:56 +08:00
1 parent 9e9a73063b
commit 4cb2e1ceae
1 file changed
+224 -196
@@ -60,226 +60,254 @@ import java.util.List;
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) @SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class SysUserController { public class SysUserController {
private final SysUserService userService; private final SysUserService userService;
/** /**
* 获取指定用户全部信息 * 获取指定用户全部信息
* @return 用户信息 *
*/ * @return 用户信息
@Inner */
@GetMapping("/info/{username}") @Inner
public R info(@PathVariable String username) { @GetMapping("/info/{username}")
SysUser user = userService.getOne(Wrappers.<SysUser>query().lambda().eq(SysUser::getUsername, username)); public R info(@PathVariable String username) {
if (user == null) { SysUser user = userService.getOne(Wrappers.<SysUser>query().lambda().eq(SysUser::getUsername, username));
return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_USERINFO_EMPTY, username)); if (user == null) {
} return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_USERINFO_EMPTY, username));
return R.ok(userService.findUserInfo(user)); }
} return R.ok(userService.findUserInfo(user));
}
/** /**
* 获取当前用户全部信息 * 获取当前用户全部信息
* @return 用户信息 *
*/ * @return 用户信息
@GetMapping(value = { "/info" }) */
public R info() { @GetMapping(value = {"/info"})
String username = SecurityUtils.getUser().getUsername(); public R info() {
SysUser user = userService.getOne(Wrappers.<SysUser>query().lambda().eq(SysUser::getUsername, username)); String username = SecurityUtils.getUser().getUsername();
if (user == null) { SysUser user = userService.getOne(Wrappers.<SysUser>query().lambda().eq(SysUser::getUsername, username));
return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_QUERY_ERROR)); if (user == null) {
} return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_QUERY_ERROR));
}
// UserInfo 是复用对象,不能通过设置 @jsonIgnore 来忽略密码字段 // UserInfo 是复用对象,不能通过设置 @jsonIgnore 来忽略密码字段
UserInfo userInfo = userService.findUserInfo(user); UserInfo userInfo = userService.findUserInfo(user);
userInfo.getSysUser().setPassword(null); userInfo.getSysUser().setPassword(null);
return R.ok(userInfo); return R.ok(userInfo);
} }
/** /**
* 通过ID查询用户信息 * 通过ID查询用户信息
* @param id ID *
* @return 用户信息 * @param id ID
*/ * @return 用户信息
@GetMapping("/details/{id}") */
public R user(@PathVariable Long id) { @GetMapping("/details/{id}")
return R.ok(userService.selectUserVoById(id)); public R user(@PathVariable Long id) {
} return R.ok(userService.selectUserVoById(id));
}
/** /**
* 查询用户信息 * 查询用户信息
* @param query 查询条件 *
* @return 不为空返回用户名 * @param query 查询条件
*/ * @return 不为空返回用户名
@Inner(value = false) */
@GetMapping("/details") @Inner(value = false)
public R getDetails(@ParameterObject SysUser query) { @GetMapping("/details")
SysUser sysUser = userService.getOne(Wrappers.query(query), false); public R getDetails(@ParameterObject SysUser query) {
return R.ok(sysUser == null ? null : CommonConstants.SUCCESS); SysUser sysUser = userService.getOne(Wrappers.query(query), false);
} return R.ok(sysUser == null ? null : CommonConstants.SUCCESS);
}
/** /**
* 删除用户信息 * 删除用户信息
* @param ids ID *
* @return R * @param ids ID
*/ * @return R
@SysLog("删除用户信息") */
@DeleteMapping @SysLog("删除用户信息")
@DeleteMapping
@PreAuthorize("@pms.hasPermission('sys_user_del')") @PreAuthorize("@pms.hasPermission('sys_user_del')")
@Operation(summary = "删除用户", description = "根据ID删除用户") @Operation(summary = "删除用户", description = "根据ID删除用户")
public R userDel(@RequestBody Long[] ids) { public R userDel(@RequestBody Long[] ids) {
return R.ok(userService.deleteUserByIds(ids)); return R.ok(userService.deleteUserByIds(ids));
} }
/** /**
* 添加用户 * 添加用户
* @param userDto 用户信息 *
* @return success/false * @param userDto 用户信息
*/ * @return success/false
@SysLog("添加用户") */
@PostMapping @SysLog("添加用户")
@PostMapping
@PreAuthorize("@pms.hasPermission('sys_user_add')") @PreAuthorize("@pms.hasPermission('sys_user_add')")
public R user(@RequestBody UserDTO userDto) { public R user(@RequestBody UserDTO userDto) {
return R.ok(userService.saveUser(userDto)); return R.ok(userService.saveUser(userDto));
} }
/** /**
* 分页查询用户 * 分页查询用户
* @param page 参数集 *
* @param userDTO 查询参数列表 * @param page 参数集
* @return 用户集合 * @param userDTO 查询参数列表
*/ * @return 用户集合
@GetMapping("/page") */
public R getUserPage(@ParameterObject Page page, @ParameterObject UserDTO userDTO) { @GetMapping("/page")
return R.ok(userService.getUsersWithRolePage(page, userDTO)); public R getUserPage(@ParameterObject Page page, @ParameterObject UserDTO userDTO) {
} return R.ok(userService.getUsersWithRolePage(page, userDTO));
}
/** /**
* 管理员更新用户信息 * 管理员更新用户信息
* @param userDto 用户信息 *
* @return R * @param userDto 用户信息
*/ * @return R
@SysLog("更新用户信息") */
@PutMapping @SysLog("更新用户信息")
@PutMapping
@PreAuthorize("@pms.hasPermission('sys_user_edit')") @PreAuthorize("@pms.hasPermission('sys_user_edit')")
public R updateUser(@Valid @RequestBody UserDTO userDto) { public R updateUser(@Valid @RequestBody UserDTO userDto) {
return R.ok(userService.updateUser(userDto)); return R.ok(userService.updateUser(userDto));
} }
/** /**
* 修改个人信息 (当前用户) * 修改个人信息 (当前用户)
* @param userDto userDto *
* @return success/false * @param userDto userDto
*/ * @return success/false
@SysLog("修改个人信息") */
@PutMapping("/personal/edit") @SysLog("修改个人信息")
public R updateUserInfo(@Valid @RequestBody UserDTO userDto) { @PutMapping("/personal/edit")
return userService.updateUserInfo(userDto); public R updateUserInfo(@Valid @RequestBody UserDTO userDto) {
} return userService.updateUserInfo(userDto);
}
/** /**
* 修改个人密码 (当前用户) * 修改个人密码 (当前用户)
* @param userDto 用户DTO对象,包含需要修改密码的用户信息 *
* @return R 返回结果对象,包含修改密码操作的结果信息 * @param userDto 用户DTO对象,包含需要修改密码的用户信息
*/ * @return R 返回结果对象,包含修改密码操作的结果信息
@PutMapping("/personal/password") */
public R updatePassword(@RequestBody UserDTO userDto) { @PutMapping("/personal/password")
String username = SecurityUtils.getUser().getUsername(); public R updatePassword(@RequestBody UserDTO userDto) {
userDto.setUsername(username); String username = SecurityUtils.getUser().getUsername();
return userService.changePassword(userDto); userDto.setUsername(username);
} return userService.changePassword(userDto);
}
/** /**
* @param username 用户名称 * @param username 用户名称
* @return 上级部门用户列表 * @return 上级部门用户列表
*/ */
@GetMapping("/ancestor/{username}") @GetMapping("/ancestor/{username}")
public R listAncestorUsers(@PathVariable String username) { public R listAncestorUsers(@PathVariable String username) {
return R.ok(userService.listAncestorUsers(username)); return R.ok(userService.listAncestorUsers(username));
} }
/** /**
* 导出excel 表格 * 导出excel 表格
* @param userDTO 查询条件 *
* @return * @param userDTO 查询条件
*/ * @return
@ResponseExcel */
@GetMapping("/export") @ResponseExcel
@GetMapping("/export")
@PreAuthorize("@pms.hasPermission('sys_user_export')") @PreAuthorize("@pms.hasPermission('sys_user_export')")
public List export(UserDTO userDTO, Long[] ids) { public List export(UserDTO userDTO, Long[] ids) {
return userService.listUser(userDTO, ids); return userService.listUser(userDTO, ids);
} }
/** /**
* 导入用户 * 导入用户
* @param excelVOList 用户列表 *
* @param bindingResult 错误信息列表 * @param excelVOList 用户列表
* @return R * @param bindingResult 错误信息列表
*/ * @return R
@PostMapping("/import") */
@PostMapping("/import")
@PreAuthorize("@pms.hasPermission('sys_user_export')") @PreAuthorize("@pms.hasPermission('sys_user_export')")
public R importUser(@RequestExcel List<UserExcelVO> excelVOList, BindingResult bindingResult) { public R importUser(@RequestExcel List<UserExcelVO> excelVOList, BindingResult bindingResult) {
return userService.importUser(excelVOList, bindingResult); return userService.importUser(excelVOList, bindingResult);
} }
/** /**
* 锁定指定用户 * 锁定指定用户
* @param username 用户名 *
* @return R * @param username 用户名
*/ * @return R
@Inner */
@PutMapping("/lock/{username}") @Inner
public R lockUser(@PathVariable String username) { @PutMapping("/lock/{username}")
return userService.lockUser(username); public R lockUser(@PathVariable String username) {
} return userService.lockUser(username);
}
/** /**
* 解绑定接口 * 解绑定接口
* @param type 需要解绑定的类型 *
* @return R 返回结果对象,包含解绑定操作的结果信息 * @param type 需要解绑定的类型
*/ * @return R 返回结果对象,包含解绑定操作的结果信息
@PostMapping("/unbinding") */
public R unbinding(String type) { @PostMapping("/unbinding")
return userService.unbinding(type); public R unbinding(String type) {
} return userService.unbinding(type);
}
/** /**
* 校验密码接口 * 校验密码接口
* @param password 需要校验的密码 *
* @return R 返回结果对象,包含校验密码操作的结果信息 * @param password 需要校验的密码
*/ * @return R 返回结果对象,包含校验密码操作的结果信息
@PostMapping("/check") */
public R check(String password) { @PostMapping("/check")
return userService.checkPassword(SecurityUtils.getUser().getUsername(),password); public R check(String password) {
} return userService.checkPassword(SecurityUtils.getUser().getUsername(), password);
}
/** /**
* 根据角色ID列表获取用户ID列表接口 * 根据角色ID列表获取用户ID列表接口
* @param roleIdList 角色ID列表 *
* @return R 返回结果对象,包含根据角色ID列表获取到的用户ID列表信息 * @param roleIdList 角色ID列表
*/ * @return R 返回结果对象,包含根据角色ID列表获取到的用户ID列表信息
@GetMapping("/getUserIdListByRoleIdList") */
public R<List<Long>> getUserIdListByRoleIdList(Long[] roleIdList) { @GetMapping("/getUserIdListByRoleIdList")
return R.ok(userService.listUserIdByRoleIds(CollUtil.toList(roleIdList))); public R<List<Long>> getUserIdListByRoleIdList(Long[] roleIdList) {
} return R.ok(userService.listUserIdByRoleIds(CollUtil.toList(roleIdList)));
}
/** /**
* 根据部门ID列表获取用户ID列表接口 * 根据部门ID列表获取用户ID列表接口
* @param deptIdList 部门ID列表 *
* @return R 返回结果对象,包含根据部门ID列表获取到的用户ID列表信息 * @param deptIdList 部门ID列表
*/ * @return R 返回结果对象,包含根据部门ID列表获取到的用户ID列表信息
@GetMapping("/getUserIdListByDeptIdList") */
public R<List<SysUser>> getUserIdListByDeptIdList(Long[] deptIdList) { @GetMapping("/getUserIdListByDeptIdList")
return R.ok(userService.listUserIdByDeptIds(CollUtil.toList(deptIdList))); public R<List<SysUser>> getUserIdListByDeptIdList(Long[] deptIdList) {
} return R.ok(userService.listUserIdByDeptIds(CollUtil.toList(deptIdList)));
}
/** /**
* 根据IDS获取用户列表 * 根据用户名获取用户列表
* *
* @param userIds ID列表 * @param username 用户名
* @return 用户列表 * @return 用户列表
*/ */
@GetMapping("/list") @GetMapping("/getUserListByUserName")
public R<List<SysUser>> getUserListByIds(@RequestParam("userIds") List<Long> userIds) { public R<List<SysUser>> getUserListByUserName(String username) {
return R.ok(userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds))); return R.ok(userService.list(Wrappers.<SysUser>lambdaQuery().like(SysUser::getUsername, username)));
} }
/**
* 根据IDS获取用户列表
*
* @param userIds ID列表
* @return 用户列表
*/
@GetMapping("/list")
public R<List<SysUser>> getUserListByIds(@RequestParam("userIds") List<Long> userIds) {
return R.ok(userService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, userIds)));
}
} }