From a4b3ee325c7354579d495bc74a777e494e5ec38c Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Fri, 06 Feb 2026 18:18:44 +0800
Subject: [PATCH] 商品可以价格面议 选择走访时显示输入走访企业名 分会添加活动时要总会审核 分类添加人数限制,添加活动选择了填写人数限制的分类时活动名额下显示该分类人数限制为15 同一个企业30天内只能走访一次,在30天内走访同一个企业时提示该企业已被走访xx天后才可以从新走访

---
 admin/app/shop/model/plus/groupbuy/Product.php |   36 +++++++++++++++++++++++++++++++-----
 1 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/admin/app/shop/model/plus/groupbuy/Product.php b/admin/app/shop/model/plus/groupbuy/Product.php
index 61610b8..6c98ff7 100644
--- a/admin/app/shop/model/plus/groupbuy/Product.php
+++ b/admin/app/shop/model/plus/groupbuy/Product.php
@@ -31,7 +31,7 @@
             $order = [$param['order_field'] => $param['order']];
         }
         
-        return $this->with(['product', 'groupbuySku'])
+        return $this->with(['product', 'groupbuySku', 'active'])
             ->alias('gp')
             ->join('product p', 'p.product_id = gp.product_id')
             ->where($filter)
@@ -48,6 +48,7 @@
     public function add($data)
     {
         $this->startTrans();
+        $data['app_id'] = $this->app_id;
         try {
             // 检查商品是否已存在该活动中
             $exist = $this->where([
@@ -76,6 +77,18 @@
             $this->error = $e->getMessage();
             return false;
         }
+    }
+
+    /**
+     * 批量添加团购商品
+     */
+    public function batchAdd($productsData)
+    {
+        $results = [];
+        foreach ($productsData as $productData) {
+            $results[] = $this->add($productData);
+        }
+        return array_filter($results); // 返回成功的数量
     }
 
     /**
@@ -108,13 +121,26 @@
     {
         $skuModel = new \app\shop\model\plus\groupbuy\ProductSku();
         
-        // 先删除原有SKU
-        $skuModel->where('groupbuy_product_id', $this->groupbuy_product_id)->delete();
+        // 先获取现有的SKU ID 列表
+        $existingSkus = $skuModel->where('groupbuy_product_id', $this->groupbuy_product_id)->select();
+        $existingSkuIds = [];
+        foreach ($existingSkus as $existingSku) {
+            $existingSkuIds[$existingSku['product_sku_id']] = $existingSku['groupbuy_product_sku_id'];
+        }
         
-        // 添加新的团购SKU
+        // 添加或更新团购SKU
         foreach ($skuList as $sku) {
             $sku['groupbuy_product_id'] = $this->groupbuy_product_id;
-            $skuModel->create($sku);
+            $sku['app_id'] = $this->app_id;
+            
+            // 检查是否是现有SKU
+            if (isset($existingSkuIds[$sku['product_sku_id']])) {
+                // 更新现有SKU
+                $skuModel->save($sku, ['groupbuy_product_sku_id' => $existingSkuIds[$sku['product_sku_id']]]);
+            } else {
+                // 创建新SKU
+                $skuModel->create($sku);
+            }
         }
     }
 

--
Gitblit v1.9.2