Просмотр исходного кода

修改最低价格和最高价格

moonsflyer 3 месяцев назад
Родитель
Сommit
6354a6180c
1 измененных файлов с 34 добавлено и 0 удалено
  1. 34 0
      app/adminapi/logic/goods/GoodsLogic.php

+ 34 - 0
app/adminapi/logic/goods/GoodsLogic.php

@@ -872,6 +872,10 @@ class GoodsLogic
 
                     if (!empty($updateData)) {
                         GoodsItem::where('id', $item['item_id'])->update($updateData);
+                        
+                        // 更新商品的最小最大价格
+                        $this->updateGoodsMinMaxPrice($item['goods_id']);
+                        
                         $successCount++;
                     }
 
@@ -976,6 +980,10 @@ class GoodsLogic
                     // 如果有数据需要更新
                     if (!empty($updateData)) {
                         \app\common\model\GoodsItem::where('id', $itemId)->update($updateData);
+                        
+                        // 更新商品的最小最大价格
+                        $this->updateGoodsMinMaxPrice($goodsId);
+                        
                         $successCount++;
                     } else {
                         $errorMessages[] = "第" . ($index + 2) . "行:没有需要更新的价格信息";
@@ -1009,5 +1017,31 @@ class GoodsLogic
         }
     }
 
+    /**
+     * @notes 更新商品的最小最大价格
+     * @param int $goodsId 商品ID
+     * @return void
+     * @author 
+     * @date 2024/01/01 00:00
+     */
+    private function updateGoodsMinMaxPrice($goodsId)
+    {
+        // 获取该商品所有规格的销售价格
+        $priceData = \app\common\model\GoodsItem::where('goods_id', $goodsId)
+            ->where('sell_price', '>', 0)
+            ->column('sell_price');
+        
+        if (!empty($priceData)) {
+            $minPrice = min($priceData);
+            $maxPrice = max($priceData);
+            
+            // 更新商品表的最小最大价格
+            \app\common\model\Goods::where('id', $goodsId)->update([
+                'min_price' => $minPrice,
+                'max_price' => $maxPrice
+            ]);
+        }
+    }
+
     
 }