Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jiujian
/
client-customer-order-api
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
zhuyifan
2025-03-07 10:15:33 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
daa57b7773805082209563288f9b978a527d4920
daa57b77
1 parent
4e1da304
HIS客户登录校验
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
0 deletions
src/main/java/com/infoloop/tianting/service/client/MeiZhongYiHeServiceClient.java
src/main/java/com/infoloop/tianting/service/impl/LoginServiceImpl.java
src/main/java/com/infoloop/tianting/service/client/MeiZhongYiHeServiceClient.java
View file @
daa57b7
package
com
.
infoloop
.
tianting
.
service
.
client
;
import
com.infoloop.rpc.meizhongyiheservice.Customer
;
import
com.infoloop.rpc.meizhongyiheservice.GetCustomerAllergiesByCustomerIdsRpcRequest
;
import
com.infoloop.rpc.meizhongyiheservice.GetCustomerAllergiesByCustomerIdsRpcResponse
;
import
com.infoloop.rpc.meizhongyiheservice.GetCustomerDetailByIdRpcRequest
;
import
com.infoloop.rpc.meizhongyiheservice.GetCustomerMedicalAdvicesByHospitalRecordIdsRpcRequest
;
import
com.infoloop.rpc.meizhongyiheservice.GetCustomerMedicalAdvicesByHospitalRecordIdsRpcResponse
;
import
com.infoloop.rpc.meizhongyiheservice.MeiZhongYiHeServiceRpcGrpc
;
...
...
@@ -31,4 +33,15 @@ public class MeiZhongYiHeServiceClient {
.
build
();
return
meiZhongYiHeServiceRpcBlockingStub
.
getCustomerMedicalAdvicesByHospitalRecordIds
(
request
);
}
public
Customer
getCustomerDetailById
(
String
HISCustomerId
,
String
contractNo
)
{
final
var
customer
=
meiZhongYiHeServiceRpcBlockingStub
.
getCustomerDetailById
(
GetCustomerDetailByIdRpcRequest
.
newBuilder
()
.
setCustomerId
(
HISCustomerId
)
.
setHospitalRecordId
(
contractNo
)
.
build
());
if
(!
customer
.
hasCustomer
())
{
return
null
;
}
return
customer
.
getCustomer
();
}
}
...
...
src/main/java/com/infoloop/tianting/service/impl/LoginServiceImpl.java
View file @
daa57b7
...
...
@@ -3,6 +3,7 @@ package com.infoloop.tianting.service.impl;
import
cn.dev33.satoken.stp.SaLoginModel
;
import
cn.dev33.satoken.stp.SaTokenInfo
;
import
cn.dev33.satoken.stp.StpUtil
;
import
com.infoloop.rpc.meizhongyiheservice.HospitalStatus
;
import
com.infoloop.tianting.clientcustomerservice.ClientCustomerHospitalRecordHospitalStatusEnum
;
import
com.infoloop.tianting.constant.CommonConstants
;
import
com.infoloop.tianting.exception.ClientEndExceptions
;
...
...
@@ -10,6 +11,7 @@ import com.infoloop.tianting.exception.ErrorCodeEnum;
import
com.infoloop.tianting.model.dto.PermissionDTO.LoginDto
;
import
com.infoloop.tianting.service.LoginService
;
import
com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient
;
import
com.infoloop.tianting.service.client.MeiZhongYiHeServiceClient
;
import
com.infoloop.tianting.service.client.OperatorServiceRpcClient
;
import
com.infoloop.tianting.service.client.WOperatorServiceRpcClient
;
import
com.infoloop.tianting.service.client.WxMiniProgramHttpClient
;
...
...
@@ -30,6 +32,7 @@ public class LoginServiceImpl implements LoginService {
private
final
OperatorServiceRpcClient
operatorServiceRpcClient
;
private
final
WxMiniProgramHttpClient
wxMiniProgramHttpClient
;
private
final
WOperatorServiceRpcClient
wOperatorServiceRpcClient
;
private
final
MeiZhongYiHeServiceClient
meiZhongYiHeServiceClient
;
@Override
public
SaTokenInfo
login
(
LoginDto
loginDto
)
throws
NoSuchAlgorithmException
{
...
...
@@ -58,6 +61,11 @@ public class LoginServiceImpl implements LoginService {
if
(!
record
.
hasResponse
()
||
record
.
getResponse
().
getHospitalStatus
()
!=
ClientCustomerHospitalRecordHospitalStatusEnum
.
CURRENT
)
{
throw
ClientEndExceptions
.
IncorrectRequestValue
.
build
(
ErrorCodeEnum
.
VALIDATE_FAILED
.
name
());
}
//还需要去读取HIS系统最新用户住院信息
final
var
hisCustomerHospitalRecord
=
meiZhongYiHeServiceClient
.
getCustomerDetailById
(
customer
.
getHISCustomerId
(),
record
.
getResponse
().
getContractNo
()).
getCustomerHospitalRecord
();
if
(
hisCustomerHospitalRecord
.
getHospitalStatus
()
!=
HospitalStatus
.
CURRENT
)
{
throw
ClientEndExceptions
.
IncorrectRequestValue
.
build
(
ErrorCodeEnum
.
VALIDATE_FAILED
.
name
());
}
}
final
var
wxUserOpenIdDto
=
wxMiniProgramHttpClient
.
getUserOpenIdByCode
(
loginDto
.
getOpenCode
());
StpUtil
.
login
(
customer
.
getId
(),
SaLoginModel
.
create
()
...
...
Please
register
or
login
to post a comment