Przeglądaj źródła

feature: 查询登录用户就诊卡列表接口

Walker 2 lat temu
rodzic
commit
32526c7cab

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

@@ -410,30 +410,6 @@ public class IsvMedicCardServiceImpl implements IsvMedicCardService {
         return null;
         return null;
     }
     }
 
 
-    /**
-     * 根据 userId & hospitalId 获取用户可用就诊卡列表
-     */
-    public List<MedicalCard> getUserMedCardList(int userId, int hospitalId) throws AppMessageException {
-        GetMedicalCardListRequest getMedicalCardListRequest = GetMedicalCardListRequest.newBuilder()
-                .setHospitalId(hospitalId)
-                .setUserId(userId)
-                .build();
-        GetMedicalCardListResponse getMedicalCardListResponse = userServiceBlockingStub.getMedicalCardList(getMedicalCardListRequest);
-        Result result = getMedicalCardListResponse.getResult();
-        if (result.getCode() != ResultCode.SUCCEED) throw new AppMessageException(result.getInfo());
-        return getMedicalCardListResponse.getMedicalCardsList();
-    }
-
-    /**
-     * 根据用户 id 获取用户信息
-     *
-     */
-    public User getUserInfoById(int userId) throws AppMessageException {
-        UserResponse response = userServiceBlockingStub.findByUserId(UserRequest.newBuilder().setUserid(userId).build());
-        if (response.getResult().getCode() != ResultCode.SUCCEED) throw new AppMessageException("无法获取用户信息:" + response.getResult().getInfo());
-        return response.getUser();
-    }
-
     // 查看就诊人详情
     // 查看就诊人详情
     @Override
     @Override
     public QueryPatientDetailResponse querySinglePatient(QueryPatientDetailRequest request) throws Exception {
     public QueryPatientDetailResponse querySinglePatient(QueryPatientDetailRequest request) throws Exception {
@@ -472,6 +448,46 @@ public class IsvMedicCardServiceImpl implements IsvMedicCardService {
     // 查询登录用户就诊卡列表
     // 查询登录用户就诊卡列表
     @Override
     @Override
     public List<MyCardListResponse> myCardList(MyCardListRequest request) throws Exception {
     public List<MyCardListResponse> myCardList(MyCardListRequest request) throws Exception {
-        return null;
+        int hospitalId = BizUtil.getCurrentHospitalId();
+        int userId = ContextHelper.getCurrentUserIdWrapped();
+        // 获取用户身份证
+        User user = getUserInfoById(userId);
+        String idNo = Checker.getStringValue(user.getIdno());
+        return getUserMedCardList(userId, hospitalId).stream()
+                .filter(c -> idNo.equals(c.getIdNo()))
+                .map(c -> {
+                    MyCardListResponse r = new MyCardListResponse();
+                    r.setCardNum(c.getCardNo());
+                    r.setBalance(String.valueOf(c.getBalance() / 100d));
+                    r.setType(CARD_TYPE_NORMAL);
+                    r.setCardId(c.getCardId());
+                    return r;
+                })
+                .collect(Collectors.toList());
+    }
+
+
+    /**
+     * 根据 userId & hospitalId 获取用户可用就诊卡列表
+     */
+    public List<MedicalCard> getUserMedCardList(int userId, int hospitalId) throws AppMessageException {
+        GetMedicalCardListRequest getMedicalCardListRequest = GetMedicalCardListRequest.newBuilder()
+                .setHospitalId(hospitalId)
+                .setUserId(userId)
+                .build();
+        GetMedicalCardListResponse getMedicalCardListResponse = userServiceBlockingStub.getMedicalCardList(getMedicalCardListRequest);
+        Result result = getMedicalCardListResponse.getResult();
+        if (result.getCode() != ResultCode.SUCCEED) throw new AppMessageException(result.getInfo());
+        return getMedicalCardListResponse.getMedicalCardsList();
+    }
+
+    /**
+     * 根据用户 id 获取用户信息
+     *
+     */
+    public User getUserInfoById(int userId) throws AppMessageException {
+        UserResponse response = userServiceBlockingStub.findByUserId(UserRequest.newBuilder().setUserid(userId).build());
+        if (response.getResult().getCode() != ResultCode.SUCCEED) throw new AppMessageException("无法获取用户信息:" + response.getResult().getInfo());
+        return response.getUser();
     }
     }
 }
 }

+ 32 - 7
onemini-hospital-sdk/src/main/java/com/ywt/alipaympapi/controller/MedicCardController.java

@@ -72,7 +72,14 @@ public class MedicCardController {
      */
      */
     @PostMapping("isvRequest.medicCard.defaultCard")
     @PostMapping("isvRequest.medicCard.defaultCard")
     public ResponseVO<QueryDefaultCardResponseData> defaultCard(QueryDefaultCardRequest request) throws Exception {
     public ResponseVO<QueryDefaultCardResponseData> defaultCard(QueryDefaultCardRequest request) throws Exception {
-        return ResponseVO.success(medicCardService.queryDefaultMedicCard(request));
+        try {
+            return ResponseVO.success(medicCardService.queryDefaultMedicCard(request));
+        } catch (AppMessageException e) {
+            return ResponseVO.fail(Code.RESP_CODE_PARAM_ERROR, e.getMessage());
+        } catch (Exception e) {
+            log.error("MedicCardController#defaultCard(request = {}):\n {}", request, e.getMessage(), e);
+            return ResponseVO.fail(Code.RESP_CODE_APP_EXCEPTION, e.getMessage());
+        }
     }
     }
 
 
     /**
     /**
@@ -132,8 +139,14 @@ public class MedicCardController {
      */
      */
     @PostMapping("isvRequest.patient.queryList")
     @PostMapping("isvRequest.patient.queryList")
     public ResponseVO<List<QueryPatientListResponse>> queryPatientList(QueryPatientListRequest request) throws Exception {
     public ResponseVO<List<QueryPatientListResponse>> queryPatientList(QueryPatientListRequest request) throws Exception {
-
-        return ResponseVO.success(medicCardService.queryPatientList(request));
+        try {
+            return ResponseVO.success(medicCardService.queryPatientList(request));
+        } catch (AppMessageException e) {
+            return ResponseVO.fail(Code.RESP_CODE_PARAM_ERROR, e.getMessage());
+        } catch (Exception e) {
+            log.error("MedicCardController#queryPatientList(request = {}):\n {}", request, e.getMessage(), e);
+            return ResponseVO.fail(Code.RESP_CODE_APP_EXCEPTION, e.getMessage());
+        }
     }
     }
     /**
     /**
      * 就诊人绑定默认就诊卡
      * 就诊人绑定默认就诊卡
@@ -154,8 +167,14 @@ public class MedicCardController {
      */
      */
     @PostMapping("isvRequest.patient.delete")
     @PostMapping("isvRequest.patient.delete")
     public ResponseVO<DeletePatientResponse> deletePatient(DeletePatientRequest request) throws Exception {
     public ResponseVO<DeletePatientResponse> deletePatient(DeletePatientRequest request) throws Exception {
-
-        return ResponseVO.success(medicCardService.deletePatient(request));
+        try {
+            return ResponseVO.success(medicCardService.deletePatient(request));
+        } catch (AppMessageException e) {
+            return ResponseVO.fail(Code.RESP_CODE_PARAM_ERROR, e.getMessage());
+        } catch (Exception e) {
+            log.error("MedicCardController#deletePatient(request = {}):\n {}", request, e.getMessage(), e);
+            return ResponseVO.fail(Code.RESP_CODE_APP_EXCEPTION, e.getMessage());
+        }
     }
     }
     /**
     /**
      * 添加就诊人
      * 添加就诊人
@@ -204,8 +223,14 @@ public class MedicCardController {
      */
      */
     @PostMapping("isvRequest.medicCard.myCardList")
     @PostMapping("isvRequest.medicCard.myCardList")
     public ResponseVO<List<MyCardListResponse>> myCardList(MyCardListRequest request) throws Exception {
     public ResponseVO<List<MyCardListResponse>> myCardList(MyCardListRequest request) throws Exception {
-
-        return ResponseVO.success(medicCardService.myCardList(request));
+        try {
+            return ResponseVO.success(medicCardService.myCardList(request));
+        } catch (AppMessageException e) {
+            return ResponseVO.fail(Code.RESP_CODE_PARAM_ERROR, e.getMessage());
+        } catch (Exception e) {
+            log.error("MedicCardController#myCardList(request = {}):\n {}", request, e.getMessage(), e);
+            return ResponseVO.fail(Code.RESP_CODE_APP_EXCEPTION, e.getMessage());
+        }
     }
     }
 
 
 
 

+ 1 - 0
onemini-hospital-sdk/src/main/java/com/ywt/response/card/MyCardListResponse.java

@@ -11,4 +11,5 @@ public class MyCardListResponse implements IsvResponseData {
     private String cardNum;
     private String cardNum;
     private Integer type;
     private Integer type;
     private String balance;
     private String balance;
+    private Integer cardId;
 }
 }