From 73b874c72ad55eb9eef21c36160ac0de58f0189e Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 05 Feb 2026 10:30:43 +0800
Subject: [PATCH] 优化名片

---
 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