|
@@ -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);
|