From ca425b889f3c1b5847ffc26a0229307f7f8ef43e Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Tue, 09 Dec 2025 16:11:31 +0800
Subject: [PATCH] 添加消费券 商户端添加页面diy

---
 admin/app/api/service/order/settled/BranchActivitySettledService.php |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/admin/app/api/service/order/settled/BranchActivitySettledService.php b/admin/app/api/service/order/settled/BranchActivitySettledService.php
index 239f08f..e186a7f 100644
--- a/admin/app/api/service/order/settled/BranchActivitySettledService.php
+++ b/admin/app/api/service/order/settled/BranchActivitySettledService.php
@@ -9,7 +9,7 @@
 use app\common\enum\order\OrderSourceEnum;
 use app\common\enum\order\OrderTypeEnum;
 use app\common\model\settings\Setting as SettingModel;
-use app\api\service\points\PointsDeductService;
+use app\api\service\points\ConsumptionDeductService;
 use app\api\model\store\Store as StoreModel;
 use app\api\service\user\UserService;
 use app\common\enum\settings\DeliveryTypeEnum;
@@ -131,9 +131,9 @@
 					$delivery = $deliveryType[0];
 				}
 				
-                $this->orderData['delivery'] = $supplier['productList'][0]['is_virtual'] == 1 || $supplier['productList'][0]['is_virtual'] == 2 ? 30 : $delivery;
+                $this->orderData['delivery'] = $supplier['productList'][0]['is_virtual'] == 1 || $supplier['productList'][0]['is_virtual'] == 2 || $supplier['productList'][0]['is_virtual'] == 3 ? 30 : $delivery;
             }else{
-                if($supplier['productList'][0]['is_virtual'] == 1 || $supplier['productList'][0]['is_virtual'] == 2){
+                if($supplier['productList'][0]['is_virtual'] == 1 || $supplier['productList'][0]['is_virtual'] == 2 || $supplier['productList'][0]['is_virtual'] == 3){
                     $this->orderData['delivery'] = 30;
                 }else {
                     $this->orderData['delivery'] = $this->params['supplier'][$supplier['shop_supplier_id']]['delivery'];
@@ -198,6 +198,7 @@
             'points_money' => $totalPointsMoney,
             'points_num' => $totalPoints,
             'is_real_use_points' => $this->params['is_use_points'],
+            'is_real_use_consumption' => $this->params['is_use_consumption'],
             'product_reduce_money' => $totalProductReduce,
             'verify_data' => $verify_data,
             'booking_data' => $booking_data,
@@ -233,6 +234,10 @@
             'is_allow_points' => true,
             // 是否使用积分抵扣
             'is_use_points' => $this->params['is_use_points'],
+            // 是否允许使用消费抵扣
+            'is_allow_consumption' => true,
+            // 是否使用消费券抵扣
+            'is_use_consumption' => $this->params['is_use_consumption'],
             // 是否使用计次卡
             'counting_id' => isset($this->params['counting_id']) ? $this->params['counting_id'] : '',
             // 支付方式
@@ -369,7 +374,7 @@
 			}
 		}
 
-        if(!empty($productList) && $productList[0]['is_virtual'] == 1){
+        if(!empty($productList) && ($productList[0]['is_virtual'] == 1 || $productList[0]['is_virtual'] == 3)){
             //虚拟商品核销 by yj
             $verify_data = [
                 'is_verify' => $productList[0]['is_verify'] && empty($productList[0]['virtual_auto']) ? 1 : 0, //必须是手动发货并且支持核销
@@ -412,6 +417,8 @@
             'extract_store' => [],
             // 是否允许使用积分抵扣
             'is_allow_points' => false,
+            // 是否允许使用消费券抵扣
+            'is_allow_consumption' => false,
             // 是否使用积分抵扣
             'is_use_points' => $this->params['is_use_points'],
             // 支付方式
@@ -563,6 +570,10 @@
             if ($commomOrder['is_allow_points'] && $commomOrder['is_real_use_points'] && $commomOrder['points_num'] > 0) {
                 $describe = "用户消费:{$this->model['order_no']}";
                 $this->user->setIncPoints(-$commomOrder['points_num'], $describe,0,true,$status);
+            }
+            if ($commomOrder['is_allow_consumption'] && $commomOrder['is_real_use_consumption'] && $commomOrder['consumption_num'] > 0) {
+                $describe = "用户消费:{$this->model['order_no']}";
+                $this->user->setIncConsumption(-$commomOrder['consumptions_num'], $describe,0,true,$status);
             }
         }
         return $status;
@@ -822,7 +833,7 @@
             return false;
         }
         // 计算订单商品实际抵扣的积分数量和金额
-        $ProductDeduct = new PointsDeductService($productList);
+        $ProductDeduct = new ConsumptionDeductService($productList);
         $ProductDeduct->setProductPoints($maxPointsNumCount, $actualPointsNum);
         // 积分抵扣总金额
         $orderPointsMoney = helper::getArrayColumnSum($productList, 'points_money');

--
Gitblit v1.9.2