From 06d53b220490ede9d3a019b206a1542dd26dfc43 Mon Sep 17 00:00:00 2001 From: wangsq Date: Wed, 17 Dec 2025 17:19:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=93=E6=A3=80=E9=A2=84=E7=BA=A6=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=80=80=E8=B4=B9=E5=8E=9F=E5=9B=A0=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ynxbd/common/action/pay/PayAction.java | 2 +- src/main/java/com/ynxbd/common/dao/peis/PEISDao.java | 9 +++++---- .../java/com/ynxbd/common/service/PEISService.java | 11 +++-------- 3 files changed, 9 insertions(+), 13 deletions(-) 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); }