@ApiOperation("修改授权") @PostMapping("/changeAuthFlag") public Result<?> changeAuthFlag(@RequestBody String authFlag) { // 获取Session对象 Result<String> result = new Result<String>(); try { LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); SysUser sysUser = sysUserService.getById(loginUser.getId()); if(sysUser == null){ result.setSuccess(false); result.setResult("没有改用户"); return result; }else{ //update sysUserService.updateById(sysUser); } result.setSuccess(true); return result; } catch (Exception e) { e.printStackTrace(); result.setSuccess(false); } return result; }我这个方法是正确的吗,好像有错,没有去修改 数值没变
时间: 2024-01-03 14:04:08 浏览: 31
根据您提供的代码,我看不出来具体的问题所在。但是,我可以给您一些可能出错的地方:
1. @RequestBody注解用于接收HTTP请求体中的数据,而不是请求参数。如果您想要接收请求参数,应该使用@RequestParam注解。
2. 在更新SysUser之前,您需要根据请求体中的authFlag参数获取要更新的SysUser对象,并设置新的授权标志。然后再调用sysUserService.updateById(sysUser)方法进行更新。
3. 在更新SysUser之后,您需要返回更新后的SysUser对象,而不是返回一个字符串。
下面是一个示例代码:
```
@ApiOperation("修改授权")
@PostMapping("/changeAuthFlag")
public Result<?> changeAuthFlag(@RequestParam String authFlag) {
// 获取Session对象
Result<SysUser> result = new Result<>();
try {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
SysUser sysUser = sysUserService.getById(loginUser.getId());
if (sysUser == null) {
result.setSuccess(false);
result.setMessage("没有该用户");
} else {
// 更新SysUser对象
sysUser.setAuthFlag(authFlag);
sysUserService.updateById(sysUser);
result.setSuccess(true);
result.setResult(sysUser);
}
} catch (Exception e) {
e.printStackTrace();
result.setSuccess(false);
result.setMessage("更新授权标志时出现异常");
}
return result;
}
```
希望能够帮助到您!