From 8a85fc834d98b2c14c5b886a957ccf3197aad293 Mon Sep 17 00:00:00 2001
From: 刘帅 <rr.iii@qq.com>
Date: 星期日, 20 九月 2026 17:12:28 +0800
Subject: [PATCH] feat:优惠券使用入口:购买门票、预定场地、购买惠民卡

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
index 4edd750..e744bdb 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/DataStatisticsController.java
@@ -448,12 +448,9 @@
             }
         }
 
-        Map<Long, BigDecimal> couponDeductionAmounts = getCouponDeductionAmounts(usedCouponIds);
-        applyCouponDeductions(incomeVOS, couponDeductionAmounts);
-
         // 惠民卡和优惠券购买不归属到单一课程/场地门店,当前仅在平台或运营商汇总中计入。
         if (storeId == null) {
-            appendHuiminIncome(incomeVOS, operatorId);
+            appendHuiminIncome(incomeVOS, operatorId, usedCouponIds);
             if (operatorId == null) {
                 appendCouponPurchaseIncome(incomeVOS);
             }
@@ -468,9 +465,15 @@
             temp.setInsertTime(pointMerchandiseIncomeVo.getInsertTime());
             if (pointMerchandiseIncomeVo.getCash()!=null){
                 temp.setAmount(pointMerchandiseIncomeVo.getCash());
+                if (pointMerchandiseIncomeVo.getUserCouponId() != null) {
+                    usedCouponIds.add(pointMerchandiseIncomeVo.getUserCouponId());
+                    temp.setId(pointMerchandiseIncomeVo.getUserCouponId().toString());
+                }
                 incomeVOS.add(temp);
             }
         }
+        Map<Long, BigDecimal> couponDeductionAmounts = getCouponDeductionAmounts(usedCouponIds);
+        applyCouponDeductions(incomeVOS, couponDeductionAmounts);
         // 平台智慧球场
         if (storeId==null&&operatorId==null){
             gameDataQuery.setObjectId(0);
@@ -538,7 +541,7 @@
     }
 
     /** 惠民卡采用支付、退款两条事实流水,赠送卡不计营收。 */
-    private void appendHuiminIncome(List<IncomeVO> incomeRecords, Integer operatorId) {
+    private void appendHuiminIncome(List<IncomeVO> incomeRecords, Integer operatorId, Set<Long> usedCouponIds) {
         HuiminPayQuery query = new HuiminPayQuery();
         query.setGiftPaymentType(3);
         if (operatorId != null) {
@@ -556,6 +559,10 @@
             payment.setIncomeType(6);
             payment.setInsertTime(record.getPaymentTime());
             payment.setAmount(record.getSalesMoney());
+            if (record.getUserCouponId() != null) {
+                usedCouponIds.add(record.getUserCouponId());
+                payment.setId(record.getUserCouponId().toString());
+            }
             incomeRecords.add(payment);
             if (Integer.valueOf(3).equals(record.getStatus())
                     || Integer.valueOf(2).equals(record.getRefundStatus())

--
Gitblit v1.7.1