Browse Source

对关键部分添加try catch处理

lighter 4 năm trước cách đây
mục cha
commit
62e5d404a6

+ 7 - 1
src/main/java/thyyxxk/wxservice_server/service/AutoRefundService.java

@@ -45,7 +45,13 @@ public class AutoRefundService {
         param.put("refundOpCode", "99999");
         param.put("refundReason", reason);
         RestTemplate template = new RestTemplate();
-        return template.postForObject(url, param, ResultVo.class);
+        ResultVo<String> resultVo;
+        try {
+            resultVo = template.postForObject(url, param, ResultVo.class);
+        } catch (Exception e) {
+            resultVo = ResultVoUtil.fail(ExceptionEnum.INTERNAL_SERVER_ERROR);
+        }
+        return resultVo;
     }
 
 }

+ 65 - 59
src/main/java/thyyxxk/wxservice_server/service/SavePayResultService.java

@@ -50,43 +50,46 @@ public class SavePayResultService {
     }
 
     public ResultVo<String> saveAppointment(WxPayOrder order) {
-        RestTemplate template = new RestTemplate();
         JSONObject obj = new JSONObject();
         obj.put("psOrdNum", order.getTradeNo());
         obj.put("payMode", "WX");
         obj.put("payAmt", order.getTotalFee().toPlainString());
         obj.put("agtOrdNum", order.getSerialNo());
         obj.put("payTime", DateUtil.formatDatetime(order.getPayDatetime(), "yyyy-MM-dd HH:mm:ss"));
-        QueryMzPayStatusResponse response = template.postForObject(hrgApiUrl + "/getPayStatusForRegistration",
-                obj, QueryMzPayStatusResponse.class);
-        log.info("门诊挂号订单支付状态查询:参数:{},结果:{}", obj, response);
-        int hasSaved = 0;
-        if (null != response && response.getResultCode() == 0) {
-            hasSaved = response.getPayStatus();
+        try {
+            RestTemplate template = new RestTemplate();
+            QueryMzPayStatusResponse response = template.postForObject(hrgApiUrl + "/getPayStatusForRegistration",
+                    obj, QueryMzPayStatusResponse.class);
+            log.info("门诊挂号订单支付状态查询:参数:{},结果:{}", obj, response);
+            int hasSaved = 0;
+            if (null != response && response.getResultCode() == 0) {
+                hasSaved = response.getPayStatus();
+            }
+            if (hasSaved == 1) {
+                log.info("订单号:{} 的挂号信息已保存,无需再次保存。", order.getTradeNo());
+                return ResultVoUtil.success("保存挂号信息成功。");
+            }
+            SaveAppointmentParam param = new SaveAppointmentParam();
+            param.setMzyRequestId(order.getMzyRequestId());
+            param.setTotalFee(order.getTotalFee().doubleValue());
+            MzyReqrec mzyReqrec = new MzyReqrec();
+            mzyReqrec.setPatientId(order.getPatientId());
+            mzyReqrec.setPaymode("WX");
+            mzyReqrec.setPsordnum(order.getTradeNo());
+            mzyReqrec.setAgtordnum(order.getSerialNo());
+            param.setMzyReqrec(mzyReqrec);
+            SaveGhFeeResponse data = template.postForObject(hrgApiUrl + "/payRegistrationFormHaiCi",
+                    param, SaveGhFeeResponse.class);
+            log.info("保存挂号信息: 参数:{},结果:{}", param, data);
+            if (null != data && (data.getResultCode() == 0 || data.getMessage().contains("挂号成功"))) {
+                return ResultVoUtil.success("保存挂号信息成功。");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
         }
-        if (hasSaved == 1) {
-            log.info("订单号:{} 的挂号信息已保存,无需再次保存。", order.getTradeNo());
-            return ResultVoUtil.success("保存挂号信息成功。");
-        }
-        SaveAppointmentParam param = new SaveAppointmentParam();
-        param.setMzyRequestId(order.getMzyRequestId());
-        param.setTotalFee(order.getTotalFee().doubleValue());
-        MzyReqrec mzyReqrec = new MzyReqrec();
-        mzyReqrec.setPatientId(order.getPatientId());
-        mzyReqrec.setPaymode("WX");
-        mzyReqrec.setPsordnum(order.getTradeNo());
-        mzyReqrec.setAgtordnum(order.getSerialNo());
-        param.setMzyReqrec(mzyReqrec);
-        template = new RestTemplate();
-        SaveGhFeeResponse data = template.postForObject(hrgApiUrl + "/payRegistrationFormHaiCi", param, SaveGhFeeResponse.class);
-        assert data != null;
-        log.info("保存挂号信息: 参数:{},结果:{}", param, data);
-        if (data.getResultCode() == 0 || data.getMessage().contains("挂号成功")) {
-            return ResultVoUtil.success("保存挂号信息成功。");
-        }
-        log.info("保存挂号信息失败,将自动退款。");
         ResultVo<String> refund = refundService.autoRefund(order.getTradeNo(), "保存挂号信息失败,自动退款。");
-        if (null != refund && refund.getCode() == 200) {
+        log.info("【订单号:{}】保存挂号信息失败,自动退款结果:{}", order.getTradeNo(), refund);
+        if (null != refund && refund.getCode() == ExceptionEnum.SUCCESS.getCode()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "保存挂号信息失败,已为您自动退款,请留意到账信息。");
         }
         dao.updatePayStatusOnly(order.getTradeNo(), 7);
@@ -94,7 +97,6 @@ public class SavePayResultService {
     }
 
     public ResultVo<String> saveMzChargeInfo(WxPayOrder order) {
-        RestTemplate template = new RestTemplate();
         JSONObject obj = new JSONObject();
         obj.put("hisOrdNum", order.getHisOrdNum());
         obj.put("psOrdNum", order.getTradeNo());
@@ -102,37 +104,41 @@ public class SavePayResultService {
         obj.put("payAmt", order.getTotalFee().toPlainString());
         obj.put("agtOrdNum", order.getSerialNo());
         obj.put("payTime", DateUtil.formatDatetime(order.getPayDatetime(), "yyyy-MM-dd HH:mm:ss"));
-        QueryMzPayStatusResponse response = template.postForObject(hrgApiUrl + "/getPayStatus", obj, QueryMzPayStatusResponse.class);
-        log.info("门诊缴费订单支付状态查询:参数:{},结果:{}", obj, response);
-        int hasSaved = 0;
-        if (null != response && response.getResultCode() != -1) {
-            hasSaved = response.getPayStatus();
-        }
-        if (hasSaved == 1) {
-            log.info("订单号:{} 的门诊缴费信息已保存,无需再次保存。", order.getTradeNo());
-            return ResultVoUtil.success("保存门诊缴费信息成功。");
-        }
-        String payTime = DateUtil.formatDatetime(new Date(), "yyyy-MM-dd HH:mm:ss");
-        JSONObject hrgParam = new JSONObject();
-        hrgParam.put("patCardType", 1);
-        hrgParam.put("patCardNo", order.getPatientId());
-        hrgParam.put("hisOrdNum", order.getHisOrdNum());
-        hrgParam.put("psOrdNum", order.getTradeNo());
-        hrgParam.put("payMode", "WX");
-        hrgParam.put("payAmt", DecimalTool.moneyYuanToFen(order.getTotalFee()));
-        hrgParam.put("agtOrdNum", order.getSerialNo());
-        hrgParam.put("payTime", payTime);
-        template = new RestTemplate();
-        SaveMzFeeResponse saveMzFeeResponse = template.postForObject(hrgApiUrl + "/payChargeDetailFormHaiCi",
-                hrgParam, SaveMzFeeResponse.class);
-        log.info("保存门诊缴费信息:参数:{},结果:{}", hrgParam, saveMzFeeResponse);
-        assert saveMzFeeResponse != null;
-        if (saveMzFeeResponse.getResultCode() == 0) {
-            return ResultVoUtil.success("保存门诊缴费信息成功。");
+        try {
+            RestTemplate template = new RestTemplate();
+            QueryMzPayStatusResponse response = template.postForObject(hrgApiUrl + "/getPayStatus",
+                    obj, QueryMzPayStatusResponse.class);
+            log.info("门诊缴费订单支付状态查询:参数:{},结果:{}", obj, response);
+            int hasSaved = 0;
+            if (null != response && response.getResultCode() != -1) {
+                hasSaved = response.getPayStatus();
+            }
+            if (hasSaved == 1) {
+                log.info("订单号:{} 的门诊缴费信息已保存,无需再次保存。", order.getTradeNo());
+                return ResultVoUtil.success("保存门诊缴费信息成功。");
+            }
+            String payTime = DateUtil.formatDatetime(new Date(), "yyyy-MM-dd HH:mm:ss");
+            JSONObject hrgParam = new JSONObject();
+            hrgParam.put("patCardType", 1);
+            hrgParam.put("patCardNo", order.getPatientId());
+            hrgParam.put("hisOrdNum", order.getHisOrdNum());
+            hrgParam.put("psOrdNum", order.getTradeNo());
+            hrgParam.put("payMode", "WX");
+            hrgParam.put("payAmt", DecimalTool.moneyYuanToFen(order.getTotalFee()));
+            hrgParam.put("agtOrdNum", order.getSerialNo());
+            hrgParam.put("payTime", payTime);
+            SaveMzFeeResponse saveMzFeeResponse = template.postForObject(hrgApiUrl + "/payChargeDetailFormHaiCi",
+                    hrgParam, SaveMzFeeResponse.class);
+            log.info("保存门诊缴费信息:参数:{},结果:{}", hrgParam, saveMzFeeResponse);
+            if (saveMzFeeResponse != null && saveMzFeeResponse.getResultCode() == 0) {
+                return ResultVoUtil.success("保存门诊缴费信息成功。");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
         }
-        log.info("保存门诊缴费信息失败,将自动退款。");
         ResultVo<String> refund = refundService.autoRefund(order.getTradeNo(), "保存门诊缴费信息失败,自动退款。");
-        if (null != refund && refund.getCode() == 200) {
+        log.info("【订单号:{}】保存门诊缴费信息失败,自动退款结果:{}", order.getTradeNo(), refund);
+        if (refund.getCode() == ExceptionEnum.SUCCESS.getCode()) {
             return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "保存门诊缴费信息失败,已为您自动退款,请留意到账信息。");
         }
         dao.updatePayStatusOnly(order.getTradeNo(), 7);

+ 1 - 1
src/main/resources/application-prod.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8083
+  port: 8085
   servlet:
     context-path: /wxserver
 spring: