From 7a8af8c19b40b8028e25ee0b669463d06f723a30 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期一, 21 九月 2026 15:57:24 +0800
Subject: [PATCH] bug:测试问题统一修改

---
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index a01492b..d05d8818ea 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -895,6 +895,7 @@
             siteBooking.setPayMoney(BigDecimal.ZERO.doubleValue());
             siteBooking.setPayTime(new Date());
             siteBookingService.updateById(siteBooking);
+            consumeCouponAfterSuccessfulPayment(siteBooking);
             HashMap<String, String> map = new HashMap<>();
             map.put("siteBooking", siteBooking.getId().toString());
             return ResultUtil.success(map);
@@ -1043,9 +1044,25 @@
         siteBooking.setPayTime(new Date());
         siteBooking.setStatus(1);
         siteBookingService.updateById(siteBooking);
+        consumeCouponAfterSuccessfulPayment(siteBooking);
         HashMap<String, String> map = new HashMap<>();
         map.put("siteBooking", siteBooking.getId().toString());
         return ResultUtil.success(map);
+    }
+
+    /**
+     * 场地订单实际支付成功后才核销所选优惠券;避免仅创建待支付订单就提前消耗优惠券。
+     */
+    private void consumeCouponAfterSuccessfulPayment(SiteBooking siteBooking) {
+        if (siteBooking.getUserCouponId() == null || siteBooking.getUserCouponId() == 0) {
+            return;
+        }
+        UserCoupon userCoupon = userCouponClient.queryUserCouponById(
+                new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(), siteBooking.getAppUserId()));
+        if (userCoupon != null && Integer.valueOf(1).equals(userCoupon.getStatus())) {
+            userCoupon.setStatus(2);
+            userCouponClient.updateUserCoupon(userCoupon);
+        }
     }
 
 
@@ -1285,12 +1302,6 @@
             userCoupon.setStatus(2);
             userCouponClient.updateUserCoupon(userCoupon);
         }
-        if (null != couponId && payType == 3) {
-            UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(), appUser.getId()));
-            userCoupon.setStatus(1);
-            userCouponClient.updateUserCoupon(userCoupon);
-        }
-
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         siteBooking.setOrderNo(sdf.format(new Date()) + UUIDUtil.getNumberRandom(3));
 
@@ -1299,9 +1310,6 @@
             siteBooking.setPayMoney(playCoin.doubleValue());
         } else {
             siteBooking.setPayMoney(money.doubleValue());
-        }
-        if (payType == 3) {
-            siteBooking.setUserCouponId(null);
         }
         siteBookingService.updateById(siteBooking);
         if (payType == 1) {//微信支付

--
Gitblit v1.7.1