【7.0.2】【login】删除loginWithDetail

pull/5/head
fengshuonan 2021-03-22 21:34:32 +08:00
parent 2ab11fc6c3
commit 4f377a3364
4 changed files with 29 additions and 56 deletions

View File

@ -33,35 +33,25 @@ import lombok.NoArgsConstructor;
import java.util.List;
/**
*
*
*
* @author majianguo
* @date 2021/1/7 11:59
* @author fengshuonan
* @date 2021/3/22 21:27
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginDetailsResponse {
/**
* token
*/
private String token;
/**
*
*/
private Long expireAt;
/**
*
*/
private SimpleUserDetail user;
/**
*
* resource
*/
private List<SimpleAuthDetail> permissions;
private List<SimpleAuthDetail> authorities;
/**
*

View File

@ -70,6 +70,14 @@
<version>7.0.2</version>
</dependency>
<!--包装器模块-->
<!--包装结果-->
<dependency>
<groupId>cn.stylefeng.roses</groupId>
<artifactId>wrapper-api</artifactId>
<version>7.0.2</version>
</dependency>
<!--缓存api-->
<!--用户的查询会使用缓存-->
<dependency>

View File

@ -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.api.pojo.login.LoginDetailsResponse;
import cn.stylefeng.roses.kernel.system.modular.user.factory.LoginResponseFactory;
import cn.stylefeng.roses.kernel.system.modular.user.wrapper.LoginUserWrapper;
import cn.stylefeng.roses.kernel.wrapper.api.annotation.Wrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
@ -81,19 +81,6 @@ public class LoginController {
return new SuccessResponseData();
}
/**
*
*
* @author fengshuonan
* @date 2021/3/17 17:24
*/
@PostResource(name = "用户登陆并返回详情", path = "/loginWithDetail", requiredLogin = false, requiredPermission = false)
public ResponseData loginWithDetail(@RequestBody @Validated LoginRequest loginRequest) {
LoginResponse loginResponse = authServiceApi.login(loginRequest);
LoginDetailsResponse loginDetail = LoginResponseFactory.createLoginDetail(loginResponse);
return new SuccessResponseData(loginDetail);
}
/**
*
*
@ -101,6 +88,7 @@ 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);

View File

@ -22,10 +22,10 @@
* 5. https://gitee.com/stylefeng/guns
* 6.
*/
package cn.stylefeng.roses.kernel.system.modular.user.factory;
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.auth.LoginResponse;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo;
@ -33,53 +33,40 @@ import cn.stylefeng.roses.kernel.system.api.pojo.login.LoginDetailsResponse;
import cn.stylefeng.roses.kernel.system.api.pojo.login.details.SimpleAuthDetail;
import cn.stylefeng.roses.kernel.system.api.pojo.login.details.SimpleUserDetail;
import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService;
import cn.stylefeng.roses.kernel.wrapper.api.BaseWrapper;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
*
*
*
* @author fengshuonan
* @date 2021/1/7 17:11
* @date 2021/3/22 21:22
*/
public class LoginResponseFactory {
/**
*
*
* @author fengshuonan
* @date 2021/1/7 17:12
*/
public static LoginDetailsResponse createLoginDetail(LoginResponse loginResponse) {
public class LoginUserWrapper implements BaseWrapper<LoginUser> {
@Override
public Map<String, Object> doWrap(LoginUser loginUser) {
SysUserService sysUserService = SpringUtil.getBean(SysUserService.class);
LoginDetailsResponse loginDetailsResponse = new LoginDetailsResponse();
// 获取用户详细信息
LoginUser loginUser = loginResponse.getLoginUser();
SimpleUserInfo simpleUserInfo = loginUser.getSimpleUserInfo();
// 获取用户角色信息
List<SimpleRoleInfo> simpleRoleInfoList = loginUser.getSimpleRoleInfoList();
// 组装token和过期时间
loginDetailsResponse.setToken(loginResponse.getToken());
loginDetailsResponse.setExpireAt(loginResponse.getExpireAt());
// 组装用户信息
SimpleUserDetail simpleUserDetail = new SimpleUserDetail();
simpleUserDetail.setUserId(loginUser.getUserId());
simpleUserDetail.setName(simpleUserInfo.getRealName());
// todo 地址信息
simpleUserDetail.setAddress("北京市");
simpleUserDetail.setPosition("总经理");
// 设置头像并获取头像的url
Long avatarFileId = loginResponse.getLoginUser().getSimpleUserInfo().getAvatar();
String userAvatarUrl = sysUserService.getUserAvatarUrl(avatarFileId, loginResponse.getToken());
Long avatarFileId = loginUser.getSimpleUserInfo().getAvatar();
String userAvatarUrl = sysUserService.getUserAvatarUrl(avatarFileId, loginUser.getToken());
simpleUserDetail.setAvatar(userAvatarUrl);
loginDetailsResponse.setUser(simpleUserDetail);
@ -93,13 +80,13 @@ public class LoginResponseFactory {
simpleAuthDetail.setOperation(null);
authInfos.add(simpleAuthDetail);
}
loginDetailsResponse.setPermissions(authInfos);
loginDetailsResponse.setAuthorities(authInfos);
loginDetailsResponse.setRoles(authInfos);
// 登录人的ws-url
loginDetailsResponse.setWsUrl(loginUser.getWsUrl());
return loginDetailsResponse;
return BeanUtil.beanToMap(loginDetailsResponse);
}
}