moonsflyer 4 luni în urmă
părinte
comite
fb26c10077

+ 36 - 5
app/common/service/ThemeService.php

@@ -26,6 +26,7 @@ use app\common\{enum\ActivityEnum,
     model\Cart,
     model\Cart,
     model\CouponList,
     model\CouponList,
     model\Goods,
     model\Goods,
+    model\GoodsItem,
     model\Order,
     model\Order,
     model\Coupon,
     model\Coupon,
     enum\CouponEnum,
     enum\CouponEnum,
@@ -100,12 +101,21 @@ class ThemeService
                     //todo 商品需要根据顺序排序
                     //todo 商品需要根据顺序排序
                     $orderField = implode(',', $goodsIds);
                     $orderField = implode(',', $goodsIds);
                     $goodsList = Goods::where(['id' => $goodsIds,'status'=>GoodsEnum::STATUS_SELL])
                     $goodsList = Goods::where(['id' => $goodsIds,'status'=>GoodsEnum::STATUS_SELL])
-                        ->field('id,name,image,virtual_sales_num+sales_num as sales_num,min_price as sell_price,min_lineation_price as lineation_price')
+                        ->field('id,name,image,virtual_sales_num+sales_num as sales_num,min_price as sell_price,min_lineation_price as lineation_price,0 as is_multi_gauge')
                         ->orderRaw("field(id,$orderField)")
                         ->orderRaw("field(id,$orderField)")
                         ->limit($limit)
                         ->limit($limit)
                         ->order('sort desc')
                         ->order('sort desc')
                         ->select()
                         ->select()
                         ->toArray();
                         ->toArray();
+
+                    foreach($goodsList as &$gv){
+                        $goods_item_count = GoodsItem::where(['goods_id'=>$gv['id']])->count();
+                        if($goods_item_count > 1){
+                            $gv['is_multi_gauge'] = 1;
+                        }else{
+                            $gv['is_multi_gauge'] = 0;
+                        }
+                    }
                     //是否显示划线加
                     //是否显示划线加
                     $showPrice = ConfigService::get('goods_set', 'show_price', 1);
                     $showPrice = ConfigService::get('goods_set', 'show_price', 1);
                     if(0 == $showPrice){
                     if(0 == $showPrice){
@@ -113,7 +123,6 @@ class ThemeService
                             $goodsList[$goodsKey]['lineation_price'] = 0;
                             $goodsList[$goodsKey]['lineation_price'] = 0;
                         }
                         }
                     }
                     }
-
                     $content[$moduleKey]['content']['data'] = $goodsList;
                     $content[$moduleKey]['content']['data'] = $goodsList;
                     break;
                     break;
                 //选项卡组件 todo 选项卡的data是多维数据
                 //选项卡组件 todo 选项卡的data是多维数据
@@ -150,12 +159,20 @@ class ThemeService
                         $orderField = implode(',', $goodsIds);
                         $orderField = implode(',', $goodsIds);
 
 
                         $goodsList = Goods::where(['id' => $goodsIds,'status'=>GoodsEnum::STATUS_SELL])
                         $goodsList = Goods::where(['id' => $goodsIds,'status'=>GoodsEnum::STATUS_SELL])
-                            ->field('id,name,image,virtual_sales_num+sales_num as sales_num,min_price as sell_price,min_lineation_price as lineation_price')
+                            ->field('id,name,image,virtual_sales_num+sales_num as sales_num,min_price as sell_price,min_lineation_price as lineation_price,0 as is_multi_gauge')
                             ->orderRaw("field(id,$orderField)")
                             ->orderRaw("field(id,$orderField)")
                             ->limit($limit)
                             ->limit($limit)
                             ->select()
                             ->select()
                             ->toArray();
                             ->toArray();
 
 
+                        foreach($goodsList as &$gv){
+                            $goods_item_count = GoodsItem::where(['goods_id'=>$gv['id']])->count();
+                            if($goods_item_count > 1){
+                                $gv['is_multi_gauge'] = 1;
+                            }else{
+                                $gv['is_multi_gauge'] = 0;
+                            }
+                        }
                         //是否显示划线加
                         //是否显示划线加
                         $showPrice = ConfigService::get('goods_set', 'show_price', 1);
                         $showPrice = ConfigService::get('goods_set', 'show_price', 1);
                         if(0 == $showPrice){
                         if(0 == $showPrice){
@@ -297,7 +314,14 @@ class ThemeService
                         $content[$moduleKey]['content']['data'] = [];
                         $content[$moduleKey]['content']['data'] = [];
                         break;
                         break;
                     }
                     }
-
+                    foreach($goodsList as &$gv){
+                        $goods_item_count = GoodsItem::where(['goods_id'=>$gv['id']])->count();
+                        if($goods_item_count > 1){
+                            $gv['is_multi_gauge'] = 1;
+                        }else{
+                            $gv['is_multi_gauge'] = 0;
+                        }
+                    }
                     $activityIds = array_column($goodsList,'activity_id');
                     $activityIds = array_column($goodsList,'activity_id');
                     $goodsIds = array_column($goodsList,'goods_id');
                     $goodsIds = array_column($goodsList,'goods_id');
                     $salesList = TeamGoodsItem::where(['team_id'=>$activityIds,'goods_id'=>$goodsIds])
                     $salesList = TeamGoodsItem::where(['team_id'=>$activityIds,'goods_id'=>$goodsIds])
@@ -367,7 +391,14 @@ class ThemeService
                         $content[$moduleKey]['content']['data'] = [];
                         $content[$moduleKey]['content']['data'] = [];
                         break;
                         break;
                     }
                     }
-
+                    foreach($goodsList as &$gv){
+                        $goods_item_count = GoodsItem::where(['goods_id'=>$gv['id']])->count();
+                        if($goods_item_count > 1){
+                            $gv['is_multi_gauge'] = 1;
+                        }else{
+                            $gv['is_multi_gauge'] = 0;
+                        }
+                    }
                     //销量
                     //销量
                     $activityIds = array_column($goodsList,'activity_id');
                     $activityIds = array_column($goodsList,'activity_id');
                     $goodsIds = array_column($goodsList,'goods_id');
                     $goodsIds = array_column($goodsList,'goods_id');

+ 5 - 6
app/shopapi/lists/GoodsLists.php

@@ -60,17 +60,16 @@ class GoodsLists extends BaseShopDataLists
         }
         }
 
 
         $list = Goods::withSearch($this->setSearch(), $this->params)
         $list = Goods::withSearch($this->setSearch(), $this->params)
-            ->field('id,name,image,virtual_sales_num+sales_num as sales_num,min_price as sell_price,min_lineation_price as lineation_price')
+            ->field('id,name,image,virtual_sales_num+sales_num as sales_num,min_price as sell_price,min_lineation_price as lineation_price,0 as is_multi_gauge')
             ->where(['status'=>GoodsEnum::STATUS_SELL])
             ->where(['status'=>GoodsEnum::STATUS_SELL])
             ->limit($this->limitOffset, $this->limitLength)
             ->limit($this->limitOffset, $this->limitLength)
             ->order('sort desc,id desc')
             ->order('sort desc,id desc')
             ->select();
             ->select();
-        foreach($list as &$gv){
-            $goods_item_count = GoodsItem::where(['goods_id'=>$gv['id']])->count();
+//        dump($list);die;
+        foreach ($list as $goods){
+            $goods_item_count = GoodsItem::where(['goods_id'=>$goods['id']])->count();
             if($goods_item_count > 1){
             if($goods_item_count > 1){
-                $gv['is_multi_gauge'] = 1;
-            }else{
-                $gv['is_multi_gauge'] = 0;
+                $goods->is_multi_gauge = 1;
             }
             }
         }
         }
         $showPrice = ConfigService::get('goods_set', 'show_price', 1);
         $showPrice = ConfigService::get('goods_set', 'show_price', 1);

+ 7 - 7
app/shopapi/logic/DecorateThemeLogic.php

@@ -51,13 +51,13 @@ class DecorateThemeLogic
         //读取缓存
         //读取缓存
         $HandleConcurrencyCache = new HandleConcurrencyCache();
         $HandleConcurrencyCache = new HandleConcurrencyCache();
         $homePage = $HandleConcurrencyCache->getCache($HandleConcurrencyCache->getDecorateThemeHomeKey());
         $homePage = $HandleConcurrencyCache->getCache($HandleConcurrencyCache->getDecorateThemeHomeKey());
-        if (!$homePage) {
-            $homePage = DecorateThemePage::where(['is_home' => 1])
-                ->field('id,content,common')
-                ->find()->toArray();
-            //设置缓存
-            $HandleConcurrencyCache->setCache($HandleConcurrencyCache->getDecorateThemeHomeKey(),$homePage);
-        }
+//        if (!$homePage) {
+//            $homePage = DecorateThemePage::where(['is_home' => 1])
+//                ->field('id,content,common')
+//                ->find()->toArray();
+//            //设置缓存
+//            $HandleConcurrencyCache->setCache($HandleConcurrencyCache->getDecorateThemeHomeKey(),$homePage);
+//        }
 
 
         //替换组件内容
         //替换组件内容
         $config = $this->getMenuConfig($userId);
         $config = $this->getMenuConfig($userId);