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

View File

@ -70,6 +70,14 @@
<version>7.0.2</version> <version>7.0.2</version>
</dependency> </dependency>
<!--包装器模块-->
<!--包装结果-->
<dependency>
<groupId>cn.stylefeng.roses</groupId>
<artifactId>wrapper-api</artifactId>
<version>7.0.2</version>
</dependency>
<!--缓存api--> <!--缓存api-->
<!--用户的查询会使用缓存--> <!--用户的查询会使用缓存-->
<dependency> <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.ApiResource;
import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource; import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; 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.wrapper.LoginUserWrapper;
import cn.stylefeng.roses.kernel.system.modular.user.factory.LoginResponseFactory; import cn.stylefeng.roses.kernel.wrapper.api.annotation.Wrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -81,19 +81,6 @@ public class LoginController {
return new SuccessResponseData(); 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 * @date 2021/3/17 17:37
*/ */
@GetResource(name = "获取当前用户的用户信息", path = "/getCurrentLoginUserInfo", requiredPermission = false) @GetResource(name = "获取当前用户的用户信息", path = "/getCurrentLoginUserInfo", requiredPermission = false)
@Wrapper(LoginUserWrapper.class)
public ResponseData getCurrentLoginUserInfo() { public ResponseData getCurrentLoginUserInfo() {
LoginUser loginUser = LoginContext.me().getLoginUser(); LoginUser loginUser = LoginContext.me().getLoginUser();
return new SuccessResponseData(loginUser); return new SuccessResponseData(loginUser);

View File

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