quanwei
18 hours ago c441dea81bd86bdfb12dff35821fed51f4cc91c2
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);
            }
        }
    }