Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
项目统一框架
amos-boot-biz
Commits
0a13d7b5
Commit
0a13d7b5
authored
Jan 03, 2025
by
tianbo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:统一门户对接-自动登录
parent
e6417a1b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
41 additions
and
11 deletions
+41
-11
SSOServiceImpl.java
...yeejoin/amos/api/openapi/face/service/SSOServiceImpl.java
+41
-11
No files found.
amos-boot-data/amos-boot-data-accessapi/src/main/java/com/yeejoin/amos/api/openapi/face/service/SSOServiceImpl.java
View file @
0a13d7b5
...
...
@@ -4,17 +4,23 @@ import cn.hutool.core.util.URLUtil;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson.JSONObject
;
import
com.yeejoin.amos.api.openapi.face.orm.entity.SSOAccountRelation
;
import
com.yeejoin.amos.component.feign.model.FeignClientResult
;
import
com.yeejoin.amos.component.feign.model.Page
;
import
com.yeejoin.amos.component.feign.utils.FeignUtil
;
import
com.yeejoin.amos.component.robot.AmosRequestContext
;
import
com.yeejoin.amos.feign.privilege.Privilege
;
import
com.yeejoin.amos.feign.privilege.model.LoginInfoModel
;
import
com.yeejoin.amos.feign.privilege.model.AgencyUserModel
;
import
com.yeejoin.amos.feign.privilege.model.VerifyCodeAuthModel
;
import
com.yeejoin.amos.feign.privilege.util.AesUtil
;
import
com.yeejoin.amos.openapi.enums.SSOLoginStatusEnum
;
import
com.yeejoin.amos.openapi.enums.TaAccessConfigBizeEnum
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.foundation.context.RequestContext
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
java.util.Date
;
import
java.util.
List
;
import
java.util.
HashMap
;
import
java.util.Map
;
/**
...
...
@@ -29,6 +35,9 @@ public class SSOServiceImpl {
@Autowired
private
SSOAccountRelationServiceImpl
ssoAccountRelationService
;
@Autowired
AmosRequestContext
amosRequestContext
;
public
Map
<
String
,
String
>
getPlatformUserInfo
(
String
portalCode
)
{
// 获取统一门户accessToken
String
accessToken
=
getPortalAccessToken
(
portalCode
);
...
...
@@ -53,20 +62,41 @@ public class SSOServiceImpl {
ssoAccountRelationService
.
save
(
ssoAccountRelation
);
return
null
;
}
// 存在两个平台用户对应关系并且登录状态(LoginStatus)为1,则用查到的用户信息登录监管平台
if
(
ssoAccountRelation
.
getLoginStatus
().
equals
(
SSOLoginStatusEnum
.
SUCCESS
.
getCode
()))
{
// 1.查询监管平台用户登录信息(loginId和password)
List
<
LoginInfoModel
>
agencyUserClientList
=
FeignUtil
.
remoteCall
(()
->
Privilege
.
agencyUserClient
.
getLoginInfoList
(
userPhoneNumber
));
if
(
ValidationUtil
.
isEmpty
(
agencyUserClientList
))
{
ssoAccountRelation
.
setLoginStatus
(
SSOLoginStatusEnum
.
FAILED
.
getCode
());
ssoAccountRelationService
.
updateById
(
ssoAccountRelation
);
RequestContext
.
setProduct
(
amosRequestContext
.
getProduct
());
RequestContext
.
setAppKey
(
amosRequestContext
.
getAppKey
());
RequestContext
.
setToken
(
amosRequestContext
.
getToken
());
// 1.查询监管平台用户信息
Page
<
AgencyUserModel
>
agencyUserModelList
=
FeignUtil
.
remoteCall
(()
->
Privilege
.
agencyUserClient
.
queryForPage
(
null
,
null
,
userPhoneNumber
,
null
,
1
,
100
));
if
(
ValidationUtil
.
isEmpty
(
agencyUserModelList
)
||
agencyUserModelList
.
getTotal
()
==
0
)
{
ssoAccountRelation
.
setLoginStatus
(
SSOLoginStatusEnum
.
FAILED
.
getCode
());
ssoAccountRelationService
.
updateById
(
ssoAccountRelation
);
return
null
;
}
else
{
ssoAccountRelation
.
setLoginStatus
(
SSOLoginStatusEnum
.
SUCCESS
.
getCode
());
// 2.登录监管平台
Map
<
String
,
String
>
agencyUserModel
=
(
Map
<
String
,
String
>)
agencyUserModelList
.
getRecords
().
get
(
0
);
VerifyCodeAuthModel
verifyCodeAuthModel
=
new
VerifyCodeAuthModel
();
verifyCodeAuthModel
.
setLoginId
(
agencyUserModel
.
get
(
"userName"
));
verifyCodeAuthModel
.
setVerifyCode
(
AesUtil
.
encode
(
agencyUserModel
.
get
(
"userName"
),
"qaz"
));
FeignClientResult
<
Map
<
String
,
String
>>
loginResult
;
loginResult
=
Privilege
.
authClient
.
userNameVerifyCode
(
verifyCodeAuthModel
);
if
(
loginResult
.
getStatus
()
!=
200
)
{
return
null
;
}
// 2.登录监管平台
ssoAccountRelationService
.
updateById
(
ssoAccountRelation
);
String
amosUserId
=
loginResult
.
getResult
().
get
(
"userId"
);
String
amosToken
=
loginResult
.
getResult
().
get
(
"token"
);
// 3.为用户授权应用
RequestContext
.
setToken
(
amosToken
);
RequestContext
.
setAgencyCode
(
"tzs"
);
RequestContext
.
setExeUserId
(
amosUserId
);
FeignUtil
.
remoteCall
(()
->
Privilege
.
applicationClient
.
queryUserService
());
// 4.返回监管平台用户登录信息
Map
<
String
,
String
>
result
=
new
HashMap
<>();
result
.
put
(
"amosToken"
,
amosToken
);
result
.
put
(
"amosUserId"
,
amosUserId
);
return
result
;
}
return
null
;
}
/**
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment