Explorar o código

feature: 我的证件接口

Walker %!s(int64=2) %!d(string=hai) anos
pai
achega
5fc9e6299e

+ 25 - 23
onemini-hospital-empty/src/main/java/com/ywt/alipaympapi/service/impl/IsvMedicCardServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ywt.alipaympapi.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.ywt.alipaympapi.core.utils.*;
 import com.ywt.alipaympapi.models.BaseResponse;
 import com.ywt.alipaympapi.models.enums.RelationshipEnum;
@@ -21,14 +22,18 @@ import com.ywt.model.Pagination;
 import com.ywt.request.card.UpdatePatientRequest;
 import com.ywt.request.card.*;
 import com.ywt.response.card.*;
+import lombok.extern.slf4j.Slf4j;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Comparator;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 
+@Slf4j
 @Service
 public class IsvMedicCardServiceImpl implements IsvMedicCardService {
     @Autowired
@@ -210,29 +215,26 @@ public class IsvMedicCardServiceImpl implements IsvMedicCardService {
                 .build();
         GetMedicalCardListResponse getMedicalCardListResponse = userServiceBlockingStub.getMedicalCardList(getMedicalCardListRequest);
         Result result = getMedicalCardListResponse.getResult();
-
-        if (result.getCode() == ResultCode.SUCCEED) {
-            for (MedicalCard medicalCard : getMedicalCardListResponse.getMedicalCardsList()) {
-                if (medicalCard.getIsDefault()) {
-                    double balance = medicalCard.getBalance() / 100d;
-                    QueryDefaultCardResponseData item = new QueryDefaultCardResponseData();
-                    item.setCardNum(medicalCard.getCardNo());//就诊卡卡号/医保卡卡号
-                    String cardType = medicalCard.getCardType();
-                    item.setType("0");//标记查询卡类型
-                    item.setName(medicalCard.getPatientName());//姓名
-                    item.setSex(SexEnum.getSexDisplayName(medicalCard.getSex()));//性别
-                    item.setBirthDay(medicalCard.getBirthday());//生日
-                    item.setIdCardNo(medicalCard.getIdNo());//身份证号码
-                    item.setPhoneNumber(medicalCard.getMobile());//手机号
-                    item.setBalance(balance + "");//卡内余额
-                    item.setRelationShip(RelationshipEnum.valueOf(medicalCard.getRelationship()).getDisplayName()); // 关系
-                    item.setDefaultCard(medicalCard.getIsDefault() ? "是" : "否");//是否是默认就诊卡
-                    item.setPatientId("");//如果是医保卡,传参保城市
-                    return item;
-                }
-            }
-        }
-        return null;
+        if (result.getCode() != ResultCode.SUCCEED) throw new AppMessageException(result.getInfo());
+        List<MedicalCard> list = getMedicalCardListResponse.getMedicalCardsList().stream()
+                .sorted(Comparator.comparing(MedicalCard::getLastChosenTime).reversed())
+                .collect(Collectors.toList());
+        if (list.isEmpty()) return null;
+        MedicalCard medicalCard = list.get(0);
+        double balance = medicalCard.getBalance() / 100d;
+        QueryDefaultCardResponseData item = new QueryDefaultCardResponseData();
+        item.setCardNum(medicalCard.getCardNo());//就诊卡卡号/医保卡卡号
+        item.setType("0");// 标记查询卡类型,默认普通卡
+        item.setName(medicalCard.getPatientName());//姓名
+        item.setSex(SexEnum.getSexDisplayName(medicalCard.getSex()));//性别
+        item.setBirthDay(medicalCard.getBirthday());//生日
+        item.setIdCardNo(medicalCard.getIdNo());//身份证号码
+        item.setPhoneNumber(medicalCard.getMobile());//手机号
+        item.setBalance(balance + "");//卡内余额
+        item.setRelationShip(RelationshipEnum.valueOf(medicalCard.getRelationship()).getDisplayName()); // 关系
+        item.setDefaultCard(medicalCard.getIsDefault() ? "是" : "否");//是否是默认就诊卡
+        item.setPatientId("");//如果是医保卡,传参保城市
+        return item;
     }
 
     @Override