Prechádzať zdrojové kódy

修改产品促销活动文字

jun 2 dní pred
rodič
commit
4b5d3e443b
1 zmenil súbory, kde vykonal 76 pridanie a 69 odobranie
  1. 76 69
      app/Http/Controllers/Api/ShopCart.php

+ 76 - 69
app/Http/Controllers/Api/ShopCart.php

@@ -127,7 +127,7 @@ class ShopCart extends Api{
 		// 判断结果
 		$skusList					= $ProductSkus->getListByIds(array_column($list,'skuid'));
         //查询产品活动
-        $promoList					= $PromoProduct->getListByIds(array_column($list,'product_id'));
+        $promoList					= $PromoProduct->getListByIds_new(array_column($list,'product_id'));
         // 查询用户标签
         $tags                       = empty($custom['weiban_extid']) ? [] : $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
 		// 用户所在城市
@@ -156,43 +156,48 @@ class ShopCart extends Api{
 			// 满减活动
             if ($promoList && $cityId){
                 if (isset($promoList[$value['product_id']])){
-                    $promoInfo          =   $promoList[$value['product_id']];
-                    $promoTitle         =   "满". $promoInfo['std_pay']. "元";
-                    if ($promoInfo['rebate_type'] == 1){
-                        $promoTitle     .=  "减". $promoInfo['rebate']. "元";
-                    }elseif ($promoInfo['rebate_type'] == 2){
-                        $promoTitle     .=  "打". $promoInfo['rebate']. "折";
-                    }elseif ($promoInfo['rebate_type'] == 3){
-                        $rebate 	= (string) PromoRebate::query()->join('product','promo_rebate.product_id','=','product.id')->where([['promo_id','=',$promoInfo['id']]])->value('product.name');
+                    $promoArr          =   $promoList[$value['product_id']];
+                    $promoTitleList        =   [];
+                    foreach ($promoArr as  $promoInfo){
+                        $promoInfo['price']      =   $value['price'] * $value['buy_num'];
+                        $promoTitle         =   "满". $promoInfo['std_pay']. "元";
+                        if ($promoInfo['rebate_type'] == 1){
+                            $promoTitle     .=  "减". $promoInfo['rebate']. "元";
+                        }elseif ($promoInfo['rebate_type'] == 2){
+                            $promoTitle     .=  "打". $promoInfo['rebate']. "折";
+                        }elseif ($promoInfo['rebate_type'] == 3){
+                            $rebate 	= (string) PromoRebate::query()->join('product','promo_rebate.product_id','=','product.id')->where([['promo_id','=',$promoInfo['id']]])->value('product.name');
 
-                        $promoTitle     .=  "赠送". $rebate;
-                    }
-                    $promoInfoCity      =   [];
-                    if ($promoInfo['city_ids']){
-                        $promoInfoCity      =   explode(',',$promoInfo['city_ids']);
-                    }
-                    // 判断是不是可以参与
-                    if (!$promoInfoCity || in_array($cityId,$promoInfoCity)){
-                        if( $promoInfo['tag_scope']) {
-                            // 解析数组
-                            $promoInfo['tag_scope']	= explode(',',$promoInfo['tag_scope']);
-                            // 标签范围限定时,默认不能参与
-                            $allowJoin 					= 0;
-                            // 判断标签是不是存在
-                            if ($tags){
-                                foreach ($tags as $v) 	{
-                                    // 标签范围内,允许参加
-                                    if( in_array($v['name'],$promoInfo['tag_scope']) )  $allowJoin = 1;
-                                }
-                                // 在范围
-                                if( $allowJoin ) {
-                                    $value['promo_title']     =   $promoTitle;
+                            $promoTitle     .=  "赠送". $rebate;
+                        }
+                        $promoInfoCity      =   [];
+                        if ($promoInfo['city_ids']){
+                            $promoInfoCity      =   explode(',',$promoInfo['city_ids']);
+                        }
+                        // 判断是不是可以参与
+                        if (!$promoInfoCity || in_array($cityId,$promoInfoCity)){
+                            if( $promoInfo['tag_scope']) {
+                                // 解析数组
+                                $promoInfo['tag_scope']	= explode(',',$promoInfo['tag_scope']);
+                                // 标签范围限定时,默认不能参与
+                                $allowJoin 					= 0;
+                                // 判断标签是不是存在
+                                if ($tags){
+                                    foreach ($tags as $v) 	{
+                                        // 标签范围内,允许参加
+                                        if( in_array($v['name'],$promoInfo['tag_scope']) )  $allowJoin = 1;
+                                    }
+                                    // 在范围
+                                    if( $allowJoin ) {
+                                        $promoTitleList[]         =  $promoTitle;
+                                    }
                                 }
+                            }else{
+                                $promoTitleList[]         =  $promoTitle;
                             }
-                        }else{
-                            $value['promo_title']     =   $promoTitle;
                         }
                     }
+                    $value['promo_title']                 = implode(';',$promoTitleList);
                 }
 
             }
@@ -260,7 +265,7 @@ class ShopCart extends Api{
         // 判断结果
         $skusList					= $ProductSkus->getListByIds(array_column($list,'skuid'));
         //查询产品活动
-        $promoList					= $PromoProduct->getListByIds(array_column($list,'product_id'));
+        $promoList					= $PromoProduct->getListByIds_new(array_column($list,'product_id'));
         // 查询用户标签
         $tags                       = empty($custom['weiban_extid']) ? [] : $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
         // 用户所在城市
@@ -300,46 +305,48 @@ class ShopCart extends Api{
             }
             if ($promoList && $cityId){
                 if (isset($promoList[$value['product_id']])){
-                    $promoInfo          =   $promoList[$value['product_id']];
-                    $promoInfo['price']      =   $value['price'] * $value['buy_num'];
-                    $promoTitle         =   "满". $promoInfo['std_pay']. "元";
-                    if ($promoInfo['rebate_type'] == 1){
-                        $promoTitle     .=  "减". $promoInfo['rebate']. "元";
-                    }elseif ($promoInfo['rebate_type'] == 2){
-                        $promoTitle     .=  "打". $promoInfo['rebate']. "折";
-                    }elseif ($promoInfo['rebate_type'] == 3){
-                        $rebate 	= (string) PromoRebate::query()->join('product','promo_rebate.product_id','=','product.id')->where([['promo_id','=',$promoInfo['id']]])->value('product.name');
+                    $promoArr          =   $promoList[$value['product_id']];
+                    $promoTitleList        =   [];
+                    foreach ($promoArr as  $promoInfo){
+                        $promoInfo['price']      =   $value['price'] * $value['buy_num'];
+                        $promoTitle         =   "满". $promoInfo['std_pay']. "元";
+                        if ($promoInfo['rebate_type'] == 1){
+                            $promoTitle     .=  "减". $promoInfo['rebate']. "元";
+                        }elseif ($promoInfo['rebate_type'] == 2){
+                            $promoTitle     .=  "打". $promoInfo['rebate']. "折";
+                        }elseif ($promoInfo['rebate_type'] == 3){
+                            $rebate 	= (string) PromoRebate::query()->join('product','promo_rebate.product_id','=','product.id')->where([['promo_id','=',$promoInfo['id']]])->value('product.name');
 
-                        $promoTitle     .=  "赠送". $rebate;
-                    }
-                    $promoInfoCity      =   [];
-                    if ($promoInfo['city_ids']){
-                        $promoInfoCity      =   explode(',',$promoInfo['city_ids']);
-                    }
-                    // 判断是不是可以参与
-                    if (!$promoInfoCity || in_array($cityId,$promoInfoCity)){
-                        if( $promoInfo['tag_scope']) {
-                            // 解析数组
-                            $promoInfo['tag_scope']	= explode(',',$promoInfo['tag_scope']);
-                            // 标签范围限定时,默认不能参与
-                            $allowJoin 					= 0;
-                            // 判断标签是不是存在
-                            if ($tags){
-                                foreach ($tags as $v) 	{
-                                    // 标签范围内,允许参加
-                                    if( in_array($v['name'],$promoInfo['tag_scope']) )  $allowJoin = 1;
-                                }
-                                // 在范围
-                                if( $allowJoin ) {
-                                    $value['promo_title']     =   $promoTitle;
-                                    $promoProductList[$promoInfo['id']][]    = $promoInfo;
+                            $promoTitle     .=  "赠送". $rebate;
+                        }
+                        $promoInfoCity      =   [];
+                        if ($promoInfo['city_ids']){
+                            $promoInfoCity      =   explode(',',$promoInfo['city_ids']);
+                        }
+                        // 判断是不是可以参与
+                        if (!$promoInfoCity || in_array($cityId,$promoInfoCity)){
+                            if( $promoInfo['tag_scope']) {
+                                // 解析数组
+                                $promoInfo['tag_scope']	= explode(',',$promoInfo['tag_scope']);
+                                // 标签范围限定时,默认不能参与
+                                $allowJoin 					= 0;
+                                // 判断标签是不是存在
+                                if ($tags){
+                                    foreach ($tags as $v) 	{
+                                        // 标签范围内,允许参加
+                                        if( in_array($v['name'],$promoInfo['tag_scope']) )  $allowJoin = 1;
+                                    }
+                                    // 在范围
+                                    if( $allowJoin ) {
+                                        $promoTitleList[]         =  $promoTitle;
+                                    }
                                 }
+                            }else{
+                                $promoTitleList[]         =  $promoTitle;
                             }
-                        }else{
-                            $value['promo_title']     =   $promoTitle;
-                            $promoProductList[$promoInfo['id']][]    = $promoInfo;
                         }
                     }
+                    $value['promo_title']                 = implode(';',$promoTitleList);
                 }
 
             }