Showing
2 changed files
with
21 additions
and
0 deletions
| 1 | package com.infoloop.tianting.service.client; | 1 | package com.infoloop.tianting.service.client; |
| 2 | 2 | ||
| 3 | +import com.infoloop.rpc.meizhongyiheservice.Customer; | ||
| 3 | import com.infoloop.rpc.meizhongyiheservice.GetCustomerAllergiesByCustomerIdsRpcRequest; | 4 | import com.infoloop.rpc.meizhongyiheservice.GetCustomerAllergiesByCustomerIdsRpcRequest; |
| 4 | import com.infoloop.rpc.meizhongyiheservice.GetCustomerAllergiesByCustomerIdsRpcResponse; | 5 | import com.infoloop.rpc.meizhongyiheservice.GetCustomerAllergiesByCustomerIdsRpcResponse; |
| 6 | +import com.infoloop.rpc.meizhongyiheservice.GetCustomerDetailByIdRpcRequest; | ||
| 5 | import com.infoloop.rpc.meizhongyiheservice.GetCustomerMedicalAdvicesByHospitalRecordIdsRpcRequest; | 7 | import com.infoloop.rpc.meizhongyiheservice.GetCustomerMedicalAdvicesByHospitalRecordIdsRpcRequest; |
| 6 | import com.infoloop.rpc.meizhongyiheservice.GetCustomerMedicalAdvicesByHospitalRecordIdsRpcResponse; | 8 | import com.infoloop.rpc.meizhongyiheservice.GetCustomerMedicalAdvicesByHospitalRecordIdsRpcResponse; |
| 7 | import com.infoloop.rpc.meizhongyiheservice.MeiZhongYiHeServiceRpcGrpc; | 9 | import com.infoloop.rpc.meizhongyiheservice.MeiZhongYiHeServiceRpcGrpc; |
| ... | @@ -31,4 +33,15 @@ public class MeiZhongYiHeServiceClient { | ... | @@ -31,4 +33,15 @@ public class MeiZhongYiHeServiceClient { |
| 31 | .build(); | 33 | .build(); |
| 32 | return meiZhongYiHeServiceRpcBlockingStub.getCustomerMedicalAdvicesByHospitalRecordIds(request); | 34 | return meiZhongYiHeServiceRpcBlockingStub.getCustomerMedicalAdvicesByHospitalRecordIds(request); |
| 33 | } | 35 | } |
| 36 | + | ||
| 37 | + public Customer getCustomerDetailById(String HISCustomerId, String contractNo) { | ||
| 38 | + final var customer = meiZhongYiHeServiceRpcBlockingStub.getCustomerDetailById(GetCustomerDetailByIdRpcRequest.newBuilder() | ||
| 39 | + .setCustomerId(HISCustomerId) | ||
| 40 | + .setHospitalRecordId(contractNo) | ||
| 41 | + .build()); | ||
| 42 | + if (!customer.hasCustomer()) { | ||
| 43 | + return null; | ||
| 44 | + } | ||
| 45 | + return customer.getCustomer(); | ||
| 46 | + } | ||
| 34 | } | 47 | } | ... | ... |
| ... | @@ -3,6 +3,7 @@ package com.infoloop.tianting.service.impl; | ... | @@ -3,6 +3,7 @@ package com.infoloop.tianting.service.impl; |
| 3 | import cn.dev33.satoken.stp.SaLoginModel; | 3 | import cn.dev33.satoken.stp.SaLoginModel; |
| 4 | import cn.dev33.satoken.stp.SaTokenInfo; | 4 | import cn.dev33.satoken.stp.SaTokenInfo; |
| 5 | import cn.dev33.satoken.stp.StpUtil; | 5 | import cn.dev33.satoken.stp.StpUtil; |
| 6 | +import com.infoloop.rpc.meizhongyiheservice.HospitalStatus; | ||
| 6 | import com.infoloop.tianting.clientcustomerservice.ClientCustomerHospitalRecordHospitalStatusEnum; | 7 | import com.infoloop.tianting.clientcustomerservice.ClientCustomerHospitalRecordHospitalStatusEnum; |
| 7 | import com.infoloop.tianting.constant.CommonConstants; | 8 | import com.infoloop.tianting.constant.CommonConstants; |
| 8 | import com.infoloop.tianting.exception.ClientEndExceptions; | 9 | import com.infoloop.tianting.exception.ClientEndExceptions; |
| ... | @@ -10,6 +11,7 @@ import com.infoloop.tianting.exception.ErrorCodeEnum; | ... | @@ -10,6 +11,7 @@ import com.infoloop.tianting.exception.ErrorCodeEnum; |
| 10 | import com.infoloop.tianting.model.dto.PermissionDTO.LoginDto; | 11 | import com.infoloop.tianting.model.dto.PermissionDTO.LoginDto; |
| 11 | import com.infoloop.tianting.service.LoginService; | 12 | import com.infoloop.tianting.service.LoginService; |
| 12 | import com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient; | 13 | import com.infoloop.tianting.service.client.ClientCustomerServiceRpcClient; |
| 14 | +import com.infoloop.tianting.service.client.MeiZhongYiHeServiceClient; | ||
| 13 | import com.infoloop.tianting.service.client.OperatorServiceRpcClient; | 15 | import com.infoloop.tianting.service.client.OperatorServiceRpcClient; |
| 14 | import com.infoloop.tianting.service.client.WOperatorServiceRpcClient; | 16 | import com.infoloop.tianting.service.client.WOperatorServiceRpcClient; |
| 15 | import com.infoloop.tianting.service.client.WxMiniProgramHttpClient; | 17 | import com.infoloop.tianting.service.client.WxMiniProgramHttpClient; |
| ... | @@ -30,6 +32,7 @@ public class LoginServiceImpl implements LoginService { | ... | @@ -30,6 +32,7 @@ public class LoginServiceImpl implements LoginService { |
| 30 | private final OperatorServiceRpcClient operatorServiceRpcClient; | 32 | private final OperatorServiceRpcClient operatorServiceRpcClient; |
| 31 | private final WxMiniProgramHttpClient wxMiniProgramHttpClient; | 33 | private final WxMiniProgramHttpClient wxMiniProgramHttpClient; |
| 32 | private final WOperatorServiceRpcClient wOperatorServiceRpcClient; | 34 | private final WOperatorServiceRpcClient wOperatorServiceRpcClient; |
| 35 | + private final MeiZhongYiHeServiceClient meiZhongYiHeServiceClient; | ||
| 33 | 36 | ||
| 34 | @Override | 37 | @Override |
| 35 | public SaTokenInfo login(LoginDto loginDto) throws NoSuchAlgorithmException { | 38 | public SaTokenInfo login(LoginDto loginDto) throws NoSuchAlgorithmException { |
| ... | @@ -58,6 +61,11 @@ public class LoginServiceImpl implements LoginService { | ... | @@ -58,6 +61,11 @@ public class LoginServiceImpl implements LoginService { |
| 58 | if (!record.hasResponse() || record.getResponse().getHospitalStatus() != ClientCustomerHospitalRecordHospitalStatusEnum.CURRENT) { | 61 | if (!record.hasResponse() || record.getResponse().getHospitalStatus() != ClientCustomerHospitalRecordHospitalStatusEnum.CURRENT) { |
| 59 | throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.VALIDATE_FAILED.name()); | 62 | throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.VALIDATE_FAILED.name()); |
| 60 | } | 63 | } |
| 64 | + //还需要去读取HIS系统最新用户住院信息 | ||
| 65 | + final var hisCustomerHospitalRecord = meiZhongYiHeServiceClient.getCustomerDetailById(customer.getHISCustomerId(), record.getResponse().getContractNo()).getCustomerHospitalRecord(); | ||
| 66 | + if (hisCustomerHospitalRecord.getHospitalStatus() != HospitalStatus.CURRENT) { | ||
| 67 | + throw ClientEndExceptions.IncorrectRequestValue.build(ErrorCodeEnum.VALIDATE_FAILED.name()); | ||
| 68 | + } | ||
| 61 | } | 69 | } |
| 62 | final var wxUserOpenIdDto = wxMiniProgramHttpClient.getUserOpenIdByCode(loginDto.getOpenCode()); | 70 | final var wxUserOpenIdDto = wxMiniProgramHttpClient.getUserOpenIdByCode(loginDto.getOpenCode()); |
| 63 | StpUtil.login(customer.getId(), SaLoginModel.create() | 71 | StpUtil.login(customer.getId(), SaLoginModel.create() | ... | ... |
-
Please register or login to post a comment