Browse Source

Merge branch 'master' of http://git.huxiukeji.com/lizhen/xiaoshan

Panda 3 months ago
parent
commit
71a050edda

+ 31 - 4
addons/shopro/controller/goods/Goods.php

@@ -137,7 +137,7 @@ class Goods extends Common
         session('goods-activity_id:' . $id, $activity_id);
         $service = new GoodsService(function ($goods, $service) use ($activity_id) {
 //            $goods->service = $goods->service;
-            $goods->skus = $goods->skus;
+            $goods->skus = $goods->skus;   //第一次调用 model/goods 里的 getSkusAttr
             
             /*if (!$activity_id) {
                 $goods->activities = $goods->activities;
@@ -147,12 +147,15 @@ class Goods extends Common
                 $goods->original_goods_price = $goods->original_goods_price;
             }*/
 
-            $goods->original_goods_price = $goods->original_goods_price;
+            $goods->activity = $goods->activity;
+
+            $old_goods_price = $goods->original_goods_price;  //getOriginalGoodsPriceAttr
+            $goods->old_goods_price = $old_goods_price ? $old_goods_price : $goods->price;
 
             return $goods;
         });
 
-        $goods = $service->field('*,price as pricemin')->show()->activity($activity_id)
+        $goods = $service->show()->activity($activity_id)
             ->with(
                 [
                    /* 'max_sku_price' => function ($query) {      // 计算价格区间用(不知道为啥 with 必须再 show 后面)
@@ -163,6 +166,7 @@ class Goods extends Common
             $this->error(__('No Results were found'));
         }
 
+
         // 添加浏览记录
         GoodsLog::addView($user, $goods);
 
@@ -170,9 +174,32 @@ class Goods extends Common
         $skuPrices = $goods['new_sku_prices'];
         $content = $goods['content'];
         $goods = $goods->toArray();
+
         $goods['image'] = localpath_to_netpath($goods['image']);//主图
         $goods['images'] = array_domain_image($goods['images']);//轮播图
         $skuPrices      = list_domain_image($skuPrices->toArray(),['image']);//规格图
+
+
+        $goods['current_sku'] = (object)[];
+        foreach ($skuPrices as $key => $skuPrice) {
+            //如果传过来规格id,那主图,price的第零个,original_goods_price的第零个  都需要跟着变
+            if($goods_sku_price_id){
+                if($goods_sku_price_id == $skuPrice['id']){
+                    $goods['image'] = $skuPrice['image'] ? $skuPrice['image'] : $goods['image'];
+                    $goods['price'][0] = $skuPrice['price'];
+                    $goods['old_goods_price'][0] = $skuPrice['old_price'];
+
+                    $goods['current_sku'] = [
+                        'id' => $skuPrice['id'],
+                        'goods_sku_ids' => $skuPrice['goods_sku_ids'],
+                        'goods_sku_text' => $skuPrice['goods_sku_text'],
+                    ];
+                }
+
+            }
+        }
+
+
         $goods['sku_prices'] = $skuPrices;
         $goods['content'] = $content;
         unset($goods['new_sku_prices']);
@@ -253,7 +280,7 @@ class Goods extends Common
             $val['zhekou'] = bcdiv($val['price'],$val['old_price'],2);
 
             //已抢百分比
-            $val['bili'] = bcdiv($val['sales'],$val['stock'],0).'%';
+            $val['bili'] = bcdiv($val['sales'],$val['stock'],2);
 
             $list[$key] = $val;
         }

+ 5 - 0
addons/shopro/library/activity/ActivityRedis.php

@@ -181,6 +181,11 @@ class ActivityRedis
                     return null;
                 }
             }
+
+            //倒计时
+            if(isset($activity['end_time'])){
+                $activity['seconds'] = $activity['end_time'] - time();
+            }
         }
 
         return $activity ?? null;

+ 1 - 0
addons/shopro/library/activity/provider/Seckill.php

@@ -75,6 +75,7 @@ class Seckill extends Base
                     $skuPrice->status = $activitySkuPrice['status'];        // 采用活动的上下架
                     $skuPrice->min_price = $activitySkuPrice['price'];      // 当前活动规格最小价格,这里是秒杀价
                     $skuPrice->max_price = $activitySkuPrice['price'];      // 用作计算活动中最大价格
+                    $skuPrice->zhekou  = bcdiv($skuPrice->price,$skuPrice->old_price,2);      // 折扣
 
                     // 记录相关活动类型
                     $skuPrice->activity_type = $activity['type'];

+ 1 - 1
addons/shopro/library/activity/traits/ActivityRedis.php

@@ -124,7 +124,7 @@ trait ActivityRedis
 
         $stock = $goods['stock'] - $cacheSale;
         $goods['stock'] = $stock > 0 ? $stock : 0;
-        $goods['sales'] = $cacheSale;
+        $goods['sales'] = $cacheSale ? : 0; //销量不能是false
 
         return $goods;
     }

+ 6 - 1
addons/shopro/service/goods/GoodsService.php

@@ -343,12 +343,17 @@ class GoodsService
      */
     public function defaultFormat($goods) 
     {
-        $skuPrices = $goods->sku_prices;
+        $skuPrices = $goods->sku_prices;                          //第一次调用 model/goods 里的 getSkuPricesAttr
         $activity = $this->is_activity ? $goods->activity : null; //第一次调用 model/goods 里的 getActivityAttr
 
         if ($activity) {
             $skuPrices = ActivityFacade::recoverSkuPrices($goods, $activity);
             // unset($goods['activity']['activity_sku_prices']);        // db 获取活动这里删除报错
+        }else{
+            foreach ($skuPrices as $key => $skuPrice) {
+                $skuPrice->old_price = $skuPrice['price'];
+            }
+            unset($skuPrice);
         }
 
         if ($this->show_score_shop) {

+ 1 - 1
application/common.php

@@ -571,7 +571,7 @@ if (!function_exists('one_domain_image')) {
         return $one;
     }
 }
-if (!function_exists('json_domain_image')) {
+if (!function_exists('array_domain_image')) {
 //支持单个字段,需要增加domain_cdnurl
 //支持image,images
     function array_domain_image($one)