diff --git a/src/main/java/com/ynxbd/common/action/pay/PayAction.java b/src/main/java/com/ynxbd/common/action/pay/PayAction.java index 9d2f81d..d5f496d 100644 --- a/src/main/java/com/ynxbd/common/action/pay/PayAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/PayAction.java @@ -925,7 +925,7 @@ public class PayAction extends BaseAction { PEISService peisService = new PEISService(); String refundDesc = "取消预约 体检订单号:" + noticeOrderNo; - Result result = peisService.refundPEIS(merchantEnum, noticeOrderNo, outTradeNo, totalFee, refundDesc, new Date(), openid); + Result result = peisService.refundPEIS(merchantEnum, noticeOrderNo, outTradeNo, totalFee, "取消预约", refundDesc, new Date(), openid); if (result.isOK()) { peisService.cancelPEISReserve(noticeOrderNo, "OK", ""); } diff --git a/src/main/java/com/ynxbd/common/dao/peis/PEISDao.java b/src/main/java/com/ynxbd/common/dao/peis/PEISDao.java index cfae6ee..1e85312 100644 --- a/src/main/java/com/ynxbd/common/dao/peis/PEISDao.java +++ b/src/main/java/com/ynxbd/common/dao/peis/PEISDao.java @@ -77,13 +77,14 @@ public class PEISDao { * @param refundResult 退款描述 * @return 是否成功 */ - public boolean updateRefundResult(String outTradeNo, String noticeOrderNo, String refundResult, Integer refundStatus) { - String sql = "update peis_reserve set refundTime=now(), refundResult=?, refundStatus=? where outTradeNo=? and noticeOrderNo=?"; + public boolean updateRefundResult(String outTradeNo, String noticeOrderNo, String refundResult, Integer refundStatus, String noticeResult) { + String sql = "update peis_reserve set refundTime=now(), refundResult=?, refundStatus=?, noticeResult=? where outTradeNo=? and noticeOrderNo=? and (refundResult is null or refundResult != 'OK')"; return DataBase.update(sql, ps -> { ps.setString(1, refundResult); ps.setInt(2, refundStatus); - ps.setString(3, outTradeNo); - ps.setString(4, noticeOrderNo); + ps.setString(3, noticeResult); + ps.setString(4, outTradeNo); + ps.setString(5, noticeOrderNo); }) > 0; } diff --git a/src/main/java/com/ynxbd/common/service/PEISService.java b/src/main/java/com/ynxbd/common/service/PEISService.java index 1f58e3b..5efd993 100644 --- a/src/main/java/com/ynxbd/common/service/PEISService.java +++ b/src/main/java/com/ynxbd/common/service/PEISService.java @@ -100,11 +100,6 @@ public class PEISService { return; } - if (order.hasNoticeStatusPaid()) { - log.info("[体检预约]订单已支付 outTradeNo={}, bankTransNo={}, noticeOrderNo={}", outTradeNo, bankTransNo, noticeOrderNo); - return; - } - JsonResult jsonResult = postForm(XBDHelper.XBD_PEIS + "/wxUse/wxPay", params -> { params.put("orderNo", noticeOrderNo); params.put("payStatus", "OK"); @@ -125,7 +120,7 @@ public class PEISService { message = ""; } String refundDesc = "体检订单号:" + noticeOrderNo + " 通知体检系统异常:" + message; - refundPEIS(merchantEnum, noticeOrderNo, outTradeNo, totalFee, refundDesc, new Date(), openid); + refundPEIS(merchantEnum, noticeOrderNo, outTradeNo, totalFee, message, refundDesc, new Date(), openid); return; } @@ -164,7 +159,7 @@ public class PEISService { * @param tradeDate 退费时间 * @param openid openid */ - public Result refundPEIS(MerchantEnum merchantEnum, String noticeOrderNo, String outTradeNo, BigDecimal totalFee, String refundDesc, Date tradeDate, String openid) { + public Result refundPEIS(MerchantEnum merchantEnum, String noticeOrderNo, String outTradeNo, BigDecimal totalFee, String noticeResult, String refundDesc, Date tradeDate, String openid) { try { if (totalFee.compareTo(BigDecimal.ZERO) == 0) { log.info("{} [体检预约]订单金额为0无需退费 outTradeNo={}, noticeOrderNo={}, totalFee={}", merchantEnum.NAME, outTradeNo, noticeOrderNo, totalFee); @@ -205,7 +200,7 @@ public class PEISService { } Integer refundStatus = "OK".equals(refundResult) ? 1 : -1; - boolean isUpdate = peisDao.updateRefundResult(outTradeNo, noticeOrderNo, refundResult, refundStatus); + boolean isUpdate = peisDao.updateRefundResult(outTradeNo, noticeOrderNo, refundResult, refundStatus, noticeResult); if (!isUpdate) { log.info("{} [体检预约][退费错误]退费信息更新失败 noticeOrderNo={}", merchantEnum.NAME, noticeOrderNo); }