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

理解有误,删除多余的:批量组装商品基本信息--groupGoodsBaseInfoBatch

shizhongqi 1 год назад
Родитель
Сommit
2b7bfc7757
2 измененных файлов с 14 добавлено и 116 удалено
  1. 13 114
      biz-hd/goods/classes/GoodsClass.php
  2. 1 2
      biz-hd/goods/services/GoodsService.php

+ 13 - 114
biz-hd/goods/classes/GoodsClass.php

@@ -351,6 +351,9 @@ class GoodsClass extends BaseClass
      */
     public static function groupGoodsBaseInfo($list, $getItem = false, $sortIds= [])
     {
+        if (empty($list)) {
+            return [];
+        }
         $arrNotEmpty = is_array($sortIds) && !empty($sortIds);
         
         //注意这里涉及商家节日涨价的问题,不要去取不同商家的商品,确有必要另外起方法!!!!!!!!!!
@@ -366,108 +369,6 @@ class GoodsClass extends BaseClass
         $goodsIds = array_column($list, 'id');
         // 一次性获取所有商品的分类关系
         $allGoodsCategories = GoodsCategoryClass::getGoodsHasCategoryIdsBatch($goodsIds);
-        
-        foreach ($list as $key => $val) {
-            $id = $val['id'];
-            //大中小图片转化
-            $val = business::formatGoodsImg($val);
-            //免费配送范围
-            $val['freeSendDist'] = 5;
-            $val['createDate'] = isset($val['createTime']) ? date("Y-m-d", strtotime($val['createTime'])) : '';
-            //节日涨价
-            if (!empty($rise)) {
-                $price = $val['price'];
-                if ($rise['riseType'] == 0) {
-                    //百分比
-                    $val['price'] = $price + sprintf("%.1f", ($price * $rise['riseAmount'] / 100));
-                } else {
-                    //金额
-                    $val['price'] = $price + $rise['riseAmount'];
-                }
-            }
-            //商品的分类
-            $categoryIds = $allGoodsCategories[$id] ?? [];
-            $val['categoryIdList'] = $categoryIds;
-            $belongCategory = [];
-            if (!empty($categoryIds)) {
-                foreach ($categoryIds as $currentId) {
-                    $belongCategory[] = $sjHasCategory[$currentId]['categoryName'] ?? '';
-                }
-            }
-            $val['belongCategory'] = $belongCategory;
-            $shortCover = $val['cover'] ?? '';
-            // 兼容 cover 保存的是数字(表示第几张图片)
-            if (intval($shortCover) > 0) {
-                $shopImg = isset($val['shortImgList']) ? $val['shortImgList'] : [];
-                $idx = intval($shortCover) - 1;
-                if (isset($shopImg[$idx])) {
-                    $shortCover = $shopImg[$idx];
-                }
-            }
-            $val['shortCover'] = $shortCover;
-            $val['cover'] = imgUtil::groupImg($shortCover);
-            $val['smallCover'] = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
-            $val['bigCover'] = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
-            if ($getItem) {
-                $itemList = GoodsItemClass::getAllByCondition(['goodsId' => $id], null, '*');
-                foreach ($itemList as $itemKey => $itemVal) {
-                    $shortCover = $itemVal['cover'] ?? '';
-                    $smallCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
-                    $bigCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
-                    $itemList[$itemKey]['shortCover'] = $shortCover;
-                    $itemList[$itemKey]['smallCover'] = $smallCover;
-                    $itemList[$itemKey]['bigCover'] = $bigCover;
-                }
-                $val['goodsItem'] = $itemList;
-            }
-            //前端使用字段
-            $val['bigCount'] = 0;
-            if ($arrNotEmpty) {
-                $sortIndex = array_search($id, $sortIds);
-                // $newList[$sortIndex] = $val;
-                $val['sortWeight'] = $sortIndex !== false ? $sortIndex : count($sortIds);
-            }
-
-            $list[$key] = $val; 
-        }
-
-        if ($arrNotEmpty) {
-            usort($list, function($a, $b) {
-                return $a['sortWeight'] - $b['sortWeight'];
-            });
-            //return $newList;
-            // return array_values($newList);
-        }
-
-        return $list;
-    }
-
-    /**
-     * 批量组装商品基本信息 (优化版)
-     * @param array $list goods商品数组
-     * @param bool $getItem 是否获取"成品的花材"
-     * @param array $sortIds 按商品分类的inTurn 进行排序的商品id数组
-     * @return array
-     */
-    public static function groupGoodsBaseInfoBatch($list, $getItem = false, $sortIds = [])
-    {
-        if (empty($list)) {
-            return [];
-        }
-
-        //注意这里涉及商家节日涨价的问题,不要去取不同商家的商品,确有必要另外起方法!!!!!!!!!!
-        $currentData = current($list);
-        $mainId = intval($currentData['mainId']);
-        if ($mainId <= 0) {
-            // 如果列表为空或者第一个商品没有mainId,则直接返回,避免错误
-            return $list;
-        }
-
-        // 1. 一次性获取所有需要的外部数据
-        $rise = GoodsSettingClass::getRise($mainId);
-        $sjHasCategory = CategoryClass::getCategory($mainId);
-        $goodsIds = array_column($list, 'id');
-        $allGoodsCategories = GoodsCategoryClass::getGoodsHasCategoryIdsBatch($goodsIds);
 
         $groupedItems = [];
         if ($getItem && !empty($goodsIds)) {
@@ -477,18 +378,14 @@ class GoodsClass extends BaseClass
                 $groupedItems[$item['goodsId']][] = $item;
             }
         }
-
-        $arrNotEmpty = is_array($sortIds) && !empty($sortIds);
-
-        // 2. 循环组装数据
-        foreach ($list as &$val) {
+        
+        foreach ($list as $key => &$val) {
             $id = $val['id'];
             //大中小图片转化
             $val = business::formatGoodsImg($val);
             //免费配送范围
             $val['freeSendDist'] = 5;
             $val['createDate'] = isset($val['createTime']) ? date("Y-m-d", strtotime($val['createTime'])) : '';
-
             //节日涨价
             if (!empty($rise)) {
                 $price = $val['price'];
@@ -500,7 +397,6 @@ class GoodsClass extends BaseClass
                     $val['price'] = $price + $rise['riseAmount'];
                 }
             }
-
             //商品的分类
             $categoryIds = $allGoodsCategories[$id] ?? [];
             $val['categoryIdList'] = $categoryIds;
@@ -527,12 +423,12 @@ class GoodsClass extends BaseClass
             $val['bigCover'] = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
 
             if ($getItem) {
-                $currentItems = $groupedItems[$id] ?? [];
+                $currentItems = $groupedItems[$id];
                 foreach ($currentItems as &$itemVal) {
-                    $itemShortCover = $itemVal['cover'] ?? '';
-                    $itemVal['shortCover'] = $itemShortCover;
-                    $itemVal['smallCover'] = imgUtil::groupImg($itemShortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
-                    $itemVal['bigCover'] = imgUtil::groupImg($itemShortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
+                    $shortCover = $itemVal['cover'] ?? '';
+                    $itemVal['shortCover'] = $shortCover;
+                    $itemVal['smallCover'] = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
+                    $itemVal['bigCover'] = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
                 }
                 $val['goodsItem'] = $currentItems;
             }
@@ -540,6 +436,7 @@ class GoodsClass extends BaseClass
             $val['bigCount'] = 0;
             if ($arrNotEmpty) {
                 $sortIndex = array_search($id, $sortIds);
+                // $newList[$sortIndex] = $val;
                 $val['sortWeight'] = $sortIndex !== false ? $sortIndex : count($sortIds);
             }
         }
@@ -549,6 +446,8 @@ class GoodsClass extends BaseClass
             usort($list, function($a, $b) {
                 return $a['sortWeight'] - $b['sortWeight'];
             });
+            //return $newList;
+            // return array_values($newList);
         }
 
         return $list;

+ 1 - 2
biz-hd/goods/services/GoodsService.php

@@ -188,8 +188,7 @@ class GoodsService extends BaseService
 
         $goodsList = [];
         if (!empty($goodsToProcess)) {
-            // 使用批量处理方法
-            $goodsList = GoodsClass::groupGoodsBaseInfoBatch($goodsToProcess);
+            $goodsList = GoodsClass::groupGoodsBaseInfo($goodsToProcess);
         }
 
         $totalPage = ceil($total / $pageSize);