mirror of https://gitee.com/stylefeng/roses
【7.0.2】更新获取当前用户信息的结果
parent
192624ce6e
commit
375c7a7342
|
@ -28,6 +28,8 @@ import lombok.AllArgsConstructor;
|
|||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 登录人详细信息
|
||||
*
|
||||
|
@ -37,7 +39,17 @@ import lombok.NoArgsConstructor;
|
|||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class LoginDetailsResponse {
|
||||
public class CurrentUserInfoResponse {
|
||||
|
||||
/**
|
||||
* 用户主键id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 公司/组织id
|
||||
*/
|
||||
private Long organizationId;
|
||||
|
||||
/**
|
||||
* 登录人的ws-url
|
||||
|
@ -45,8 +57,23 @@ public class LoginDetailsResponse {
|
|||
private String wsUrl;
|
||||
|
||||
/**
|
||||
* 头像地址
|
||||
* 昵称
|
||||
*/
|
||||
private String avatarUrl;
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 用户头像(url)
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 用户拥有的资源权限
|
||||
*/
|
||||
private Set<String> authorities;
|
||||
|
||||
/**
|
||||
* 用户拥有的角色编码
|
||||
*/
|
||||
private Set<String> roles;
|
||||
|
||||
}
|
|
@ -34,8 +34,8 @@ import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
||||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.wrapper.LoginUserWrapper;
|
||||
import cn.stylefeng.roses.kernel.wrapper.api.annotation.Wrapper;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.login.CurrentUserInfoResponse;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.factory.UserLoginInfoFactory;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -103,10 +103,13 @@ public class LoginController {
|
|||
* @date 2021/3/17 17:37
|
||||
*/
|
||||
@GetResource(name = "获取当前用户的用户信息", path = "/getCurrentLoginUserInfo", requiredPermission = false)
|
||||
@Wrapper(LoginUserWrapper.class)
|
||||
public ResponseData getCurrentLoginUserInfo() {
|
||||
LoginUser loginUser = LoginContext.me().getLoginUser();
|
||||
return new SuccessResponseData(loginUser);
|
||||
|
||||
// 转化返回结果
|
||||
CurrentUserInfoResponse currentUserInfoResponse = UserLoginInfoFactory.parseUserInfo(loginUser);
|
||||
|
||||
return new SuccessResponseData(currentUserInfoResponse);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -31,13 +31,16 @@ import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
|||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
|
||||
import cn.stylefeng.roses.kernel.auth.api.prop.LoginUserPropExpander;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.login.CurrentUserInfoResponse;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.organization.DataScopeDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserOrgDTO;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.user.UserLoginInfoDTO;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUser;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 组装当前登录用户的信息
|
||||
|
@ -131,4 +134,43 @@ public class UserLoginInfoFactory {
|
|||
return userLoginInfoDTO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 转化为当前登陆用户信息的详情
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/3/25 10:06
|
||||
*/
|
||||
public static CurrentUserInfoResponse parseUserInfo(LoginUser loginUser) {
|
||||
|
||||
SysUserService sysUserService = SpringUtil.getBean(SysUserService.class);
|
||||
CurrentUserInfoResponse currentUserInfoResponse = new CurrentUserInfoResponse();
|
||||
|
||||
// 设置用户id
|
||||
currentUserInfoResponse.setUserId(loginUser.getUserId());
|
||||
|
||||
// 设置组织id
|
||||
currentUserInfoResponse.setOrganizationId(loginUser.getOrganizationId());
|
||||
|
||||
// 登录人的ws-url
|
||||
currentUserInfoResponse.setWsUrl(loginUser.getWsUrl());
|
||||
|
||||
// 设置用户昵称
|
||||
currentUserInfoResponse.setNickname(loginUser.getSimpleUserInfo().getNickName());
|
||||
|
||||
// 设置头像,并获取头像的url
|
||||
Long avatarFileId = loginUser.getSimpleUserInfo().getAvatar();
|
||||
String userAvatarUrl = sysUserService.getUserAvatarUrl(avatarFileId, loginUser.getToken());
|
||||
currentUserInfoResponse.setAvatar(userAvatarUrl);
|
||||
|
||||
// 设置角色
|
||||
List<SimpleRoleInfo> simpleRoleInfoList = loginUser.getSimpleRoleInfoList();
|
||||
Set<String> roleCodes = simpleRoleInfoList.stream().map(SimpleRoleInfo::getRoleCode).collect(Collectors.toSet());
|
||||
currentUserInfoResponse.setRoles(roleCodes);
|
||||
|
||||
// 设置用户拥有的按钮权限
|
||||
currentUserInfoResponse.setAuthorities(loginUser.getButtonCodes());
|
||||
|
||||
return currentUserInfoResponse;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
/*
|
||||
* Copyright [2020-2030] [https://www.stylefeng.cn]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
||||
*
|
||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
||||
* 2.请不要删除和修改Guns源码头部的版权声明。
|
||||
* 3.请保留源码和相关描述文件的项目出处,作者声明等。
|
||||
* 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
||||
*/
|
||||
package cn.stylefeng.roses.kernel.system.modular.user.wrapper;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.login.LoginDetailsResponse;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
|
||||
import cn.stylefeng.roses.kernel.wrapper.api.BaseWrapper;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 登录用户的包装类
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2021/3/22 21:22
|
||||
*/
|
||||
public class LoginUserWrapper implements BaseWrapper<LoginUser> {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> doWrap(LoginUser loginUser) {
|
||||
SysUserService sysUserService = SpringUtil.getBean(SysUserService.class);
|
||||
LoginDetailsResponse loginDetailsResponse = new LoginDetailsResponse();
|
||||
|
||||
// 设置头像,并获取头像的url
|
||||
Long avatarFileId = loginUser.getSimpleUserInfo().getAvatar();
|
||||
String userAvatarUrl = sysUserService.getUserAvatarUrl(avatarFileId, loginUser.getToken());
|
||||
loginDetailsResponse.setAvatarUrl(userAvatarUrl);
|
||||
|
||||
// 登录人的ws-url
|
||||
loginDetailsResponse.setWsUrl(loginUser.getWsUrl());
|
||||
|
||||
return BeanUtil.beanToMap(loginDetailsResponse);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue