public GlobalResponse userLogin(LoginParam param) { // 2、校验账号信息 [校验密码输入失败次数] SysUser user = sysUserService.checkPwd(param.getPhone(), param.getPassword()); // 用户禁用返回登录失败 if (user.getStatus().equals(StatusEnum.STOP.getType())) { throw new BusinessException("账户被禁用"); } List<SysRole> roles = sysRoleService.findRoleByUserId(user.getId()); SysRole sysRole = roles.get(0); LoginUser build = LoginUser.builder() .id(user.getId()) .name(user.getUserName()) .avatar(user.getAvatar()) .phone(user.getPhone()) .roleCode(sysRole.getRoleCode()) .roleName(sysRole.getRoleName()) .build(); Set<String> perms = sysRoleMenuRelService.selectMenuPermsByUserId(build); build.setPerms(perms); String token = sysTokenService.createToken(build); return GlobalResponse.success(token); }我还要返回userId,怎么改
时间: 2024-03-09 11:50:16 浏览: 20
你可以将返回类型改为一个包含 userId 和 token 的对象,例如:
```
@Data
public class LoginResult {
private Long userId;
private String token;
}
```
然后修改方法的返回值为该对象类型,并在方法最后返回包含 userId 和 token 的对象,例如:
```
public LoginResult userLogin(LoginParam param) {
// 2、校验账号信息 [校验密码输入失败次数]
SysUser user = sysUserService.checkPwd(param.getPhone(), param.getPassword());
// 用户禁用返回登录失败
if (user.getStatus().equals(StatusEnum.STOP.getType())) {
throw new BusinessException("账户被禁用");
}
List<SysRole> roles = sysRoleService.findRoleByUserId(user.getId());
SysRole sysRole = roles.get(0);
LoginUser build = LoginUser.builder()
.id(user.getId())
.name(user.getUserName())
.avatar(user.getAvatar())
.phone(user.getPhone())
.roleCode(sysRole.getRoleCode())
.roleName(sysRole.getRoleName())
.build();
Set<String> perms = sysRoleMenuRelService.selectMenuPermsByUserId(build);
build.setPerms(perms);
String token = sysTokenService.createToken(build);
LoginResult result = new LoginResult();
result.setUserId(user.getId());
result.setToken(token);
return result;
}
```