WIN-2308041133\Administrator 6 дней назад
Родитель
Сommit
beba237d77

+ 6 - 4
app/models/store/StoreCart.php

@@ -174,6 +174,7 @@ class StoreCart extends BaseModel
         if (!count($list)) return compact('valid', 'invalid');
         $now = time();
         $type_wholesale=1;
+        $agent_product_id = 0;
         foreach ($list as $k => $cart) {
             if ($cart['seckill_id']) {
                 $product = StoreSeckill::field($seckillInfoField)
@@ -208,6 +209,7 @@ class StoreCart extends BaseModel
 
                 if (isset($product['is_wholesale'])&&$product['is_wholesale'] == 1){  //是否有批发商品
                     $type_wholesale = 2;
+                    $agent_product_id = $product['id'];
                 }
                 if ($cart['seckill_id']) {
                     $config = SystemGroupData::get($product['time_id']);
@@ -241,8 +243,8 @@ class StoreCart extends BaseModel
                             $cart['truePrice'] = $attrInfo['price'];
                             $cart['vip_truePrice'] = 0;
                         } else {
-                            $cart['truePrice'] = (float)StoreProduct::setLevelPrice($attrInfo['price'], $uid, true,$type_wholesale);
-                            $cart['vip_truePrice'] = (float)StoreProduct::setLevelPrice($attrInfo['price'], $uid,false,$type_wholesale);
+                            $cart['truePrice'] = (float)StoreProduct::setLevelPrice($attrInfo['price'], $uid, true,$type_wholesale,$agent_product_id);
+                            $cart['vip_truePrice'] = (float)StoreProduct::setLevelPrice($attrInfo['price'], $uid,false,$type_wholesale,$agent_product_id);
                         }
                         $cart['trueStock'] = $attrInfo['stock'];
                         $cart['costPrice'] = $attrInfo['cost'];
@@ -260,8 +262,8 @@ class StoreCart extends BaseModel
                         $cart['productInfo']['attrInfo']['weight'] = $product['weight'];
                         $cart['productInfo']['attrInfo']['volume'] = $product['volume'];
                     } else {
-                        $cart['truePrice'] = (float)StoreProduct::setLevelPrice($cart['productInfo']['price'], $uid, true,$type_wholesale);
-                        $cart['vip_truePrice'] = (float)StoreProduct::setLevelPrice($cart['productInfo']['price'], $uid,false,$type_wholesale);
+                        $cart['truePrice'] = (float)StoreProduct::setLevelPrice($cart['productInfo']['price'], $uid, true,$type_wholesale,$agent_product_id);
+                        $cart['vip_truePrice'] = (float)StoreProduct::setLevelPrice($cart['productInfo']['price'], $uid,false,$type_wholesale,$agent_product_id);
                     }
                     $cart['trueStock'] = $cart['productInfo']['stock'];
                     $cart['costPrice'] = $cart['productInfo']['cost'];

+ 1 - 1
app/models/store/StoreOrder.php

@@ -340,7 +340,7 @@ class StoreOrder extends BaseModel
 
                 if ($is_wholesale != -1) {
                     if ($is_wholesale != intval($cart['productInfo']['is_wholesale'])) {
-                        return self::setErrorInfo('批发商品和普通商品不能混合购买!', true);
+                        return self::setErrorInfo('批发商品不能混合购买!', true);
                     }
                 }
                 $is_wholesale = intval($cart['productInfo']['is_wholesale']);

+ 3 - 3
app/models/store/StoreProduct.php

@@ -280,7 +280,7 @@ class StoreProduct extends BaseModel
      * @param int $uid 用户uid
      * @return array
      * */
-    public static function setLevelPrice($list, $uid, $isSingle = false,$type = 1)
+    public static function setLevelPrice($list, $uid, $isSingle = false,$type = 1,$product_id = 0)
     {
         if (is_object($list)) $list = count($list) ? $list->toArray() : [];
         if (!sys_config('vip_open')) {
@@ -298,8 +298,8 @@ class StoreProduct extends BaseModel
             }
         }else if ($type == 2){
             $levelId = User::where('uid',$uid)->value('agent');
-            if ($levelId > 0) {
-                $discount = SystemUserAgentLevel::where('id',$levelId)->value('discount');
+            if ($levelId > 0&&$product_id>0) {
+                $discount = StoreProductLevel::where('product_id',$product_id)->where('level_id',$levelId)->where('type',$type)->value('discount');
                 $discount = bcsub(1, bcdiv($discount, 100, 2), 2);
             } else {
                 $discount = 100;