From a768dc3daa04d35fedfbe75c0a59b9b2545b85c4 Mon Sep 17 00:00:00 2001
From: gongzuming <gongzuming>
Date: 星期四, 19 九月 2024 16:59:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2'

---
 src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java b/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java
index f9ae5d7..3640a32 100644
--- a/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java
+++ b/src/main/java/com/mzl/flower/service/payment/UserPaymentV3Service.java
@@ -15,7 +15,9 @@
 import com.mzl.flower.mapper.payment.*;
 import com.mzl.flower.mapper.system.UserWechatMapper;
 import com.mzl.flower.service.BaseService;
+import com.mzl.flower.service.coupon.CouponRecordService;
 import com.mzl.flower.service.flower.FlowerService;
+import com.mzl.flower.service.point.PointGoodsService;
 import com.mzl.flower.utils.UUIDGenerator;
 import com.wechat.pay.java.core.notification.NotificationParser;
 import com.wechat.pay.java.core.notification.RequestParam;
@@ -103,6 +105,15 @@
 
     @Autowired
     private OrderRefundMapper orderRefundMapper;
+
+    @Autowired
+    private OrderPointGoodsMapper orderPointGoodsMapper;
+
+    @Autowired
+    private PointGoodsService pointGoodsService;
+
+    @Autowired
+    private CouponRecordService couponRecordService;
 
     /**
      * 微信预支付
@@ -439,8 +450,27 @@
     }
 
     private void releasePrepayLock(Order order){
-        log.info("恢复库存: " + order);
+        log.info("恢复库存 积分商品兑换券 优惠券: " + order);
         revertFlowerStock(order.getId());
+
+        //恢复积分商品兑换券
+        revertPointGoodsRecord(order.getId());
+
+        //恢复优惠券
+        String memberCouponId = order.getMemberCouponId();
+        if(StringUtils.isNotEmpty(memberCouponId)) {
+            couponRecordService.cancelCouponUsage(order.getId());
+        }
+    }
+
+    private void revertPointGoodsRecord(String orderId){
+        List<OrderPointGoods> ls = orderPointGoodsMapper.selectList(new QueryWrapper<OrderPointGoods>()
+                .eq("order_id", orderId));
+        if(ls != null && ls.size() > 0){
+            for(OrderPointGoods pg : ls){
+                pointGoodsService.revertExchangeGoods(pg.getGoodsRecordId());
+            }
+        }
     }
 
     public Map payAgain(String orderId){

--
Gitblit v1.9.3