@@ -217,6 +217,79 @@ public class AccessUserServiceImpl implements AccessUserService {
return lduser ;
}
@Override
public LideeUserDto logincas ( LideeUserDto lideeUserDto ) {
//根据ticker获取用户信息
String loginName = lideeUserDto . getLoginName ( ) ;
loginName = " admin " ;
// String password = lideeUserDto.getPassword();
String password = " Lidee@654! " ;
// 1.判断用户是否存在
LambdaQueryWrapper < AccessUser > wrapper = Wrappers . lambdaQuery ( ) ;
wrapper . eq ( AccessUser : : getLoginName , loginName ) ;
AccessUser accessUser = accessUserMapper . selectOne ( wrapper ) ;
if ( null = = accessUser ) {
throw BusinessExceptionBuilder . build ( ResponseCode . LOGIN_ERROR ) ;
}
// 2.密码错误
String sss = MD5Util . encrypt ( password ) ;
// if (!accessUser.getPassword().equals(MD5Util.encrypt(password))) {
// throw BusinessExceptionBuilder.build(ResponseCode.USER_PASSWORD_ERROR);
// }
// 3.如果该用户登录未过期,这里允许一个用户在多个终端登录
String tokenKey = String . format ( BusinessConstant . LIDEE_SECURITY_LOGIN_TOKEN , loginName ) ;
String token = " " ;
LideeUserDto lduser = new LideeUserDto ( ) ;
if ( cacheHelper . exist ( tokenKey ) ) {
token = cacheHelper . stringGet ( tokenKey ) ;
} else {
// 生成用户token
String uuid = LideeUtils . UUID ( ) ;
token = jwtBean . createToken ( loginName , uuid , 0 , LideeConstant . TENANT_CODE ) ;
cacheHelper . stringSetExpire ( tokenKey , token , 3600 ) ;
}
// 4.读取用户最新人权限主信息
String userKey = String . format ( BusinessConstant . LIDEE_SECURITY_LOGIN_USER , loginName ) ;
//为了兼容底层其他数据库, 不再写自定义sql
// List<String> authorities = accessUserMapper.queryAuthoritiesByLoginName(loginName);
//当前用户的roleCode集合
LambdaQueryWrapper < AccessUserRole > accessUserWrapper = Wrappers . lambdaQuery ( ) ;
accessUserWrapper . select ( AccessUserRole : : getRoleCode ) ;
accessUserWrapper . eq ( AccessUserRole : : getLoginName , loginName ) ;
List < AccessUserRole > accessUserRoles = accessUserRoleMapper . selectList ( accessUserWrapper ) ;
Set < String > roleCodeSet = accessUserRoles . stream ( ) . map ( AccessUserRole : : getRoleCode ) . collect ( Collectors . toSet ( ) ) ;
if ( roleCodeSet . size ( ) < 1 ) {
lduser . setAuthorities ( new ArrayList < > ( ) ) ;
} else {
LambdaQueryWrapper < AccessRoleAuthority > accessRoleAuthorityWrapper = Wrappers . lambdaQuery ( ) ;
accessRoleAuthorityWrapper . select ( AccessRoleAuthority : : getTarget , AccessRoleAuthority : : getAction ) ;
accessRoleAuthorityWrapper . in ( AccessRoleAuthority : : getRoleCode , roleCodeSet ) ;
List < AccessRoleAuthority > accessRoleAuthorities = accessRoleAuthorityMapper . selectList ( accessRoleAuthorityWrapper ) ;
List < String > authorities = accessRoleAuthorities . stream ( )
. map ( accessRoleAuthority - > accessRoleAuthority . getTarget ( ) . concat ( " : " ) . concat ( accessRoleAuthority . getAction ( ) ) ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
lduser . setAuthorities ( authorities ) ;
}
lduser . setLoginName ( loginName ) ;
lduser . setRealName ( accessUser . getRealName ( ) ) ;
lduser . setToken ( token ) ;
String ldUserStr = JSONObject . toJSONString ( lduser ) ;
cacheHelper . stringSetExpire ( userKey , ldUserStr , 3600 ) ;
return lduser ;
}
/**
* 修改密码
*