Browse Source

Merge branch 'zhongqi-itemUpdate' into dev

shizhongqi 4 months ago
parent
commit
8811394571

+ 12 - 7
biz-ghs/product/classes/ProductClass.php

@@ -819,12 +819,17 @@ class ProductClass extends BaseClass
 
             //超出限购情况的价格计算
             if ($limitBuy > 0 && $totalBuyNum > $limitBuy) {
-                $overBuyNum = $totalBuyNum - $limitBuy;
-                $overBuyPrice = bcmul($overBuyNum, $oldPrice, 2); // 超出限购部分的价格
+                $hasBuyNum = $totalBuyNum - $buyNum;
+                if ($hasBuyNum >= $limitBuy) {
+                    $price = $oldPrice;
+                } else {
+                    $overBuyNum = $totalBuyNum - $limitBuy;
+                    $overBuyPrice = bcmul($overBuyNum, $oldPrice, 2); // 超出限购部分的价格
 
-                $leftBuyNum = $buyNum - $overBuyNum;
-                $leftBuyPrice = bcmul($leftBuyNum, $price, 2); // 未超出限购部分的价格
-                $price = bcdiv($overBuyPrice + $leftBuyPrice, $buyNum, 2); // 最终价格
+                    $leftBuyNum = $buyNum - $overBuyNum;
+                    $leftBuyPrice = bcmul($leftBuyNum, $price, 2); // 未超出限购部分的价格
+                    $price = bcdiv($overBuyPrice + $leftBuyPrice, $buyNum, 2); // 最终价格
+                }
             }
         }
 
@@ -2825,7 +2830,7 @@ class ProductClass extends BaseClass
             if ($lastNum > $limitBuy) {
                 // 如果有特价,则超过的数量按原价卖;否则中断
                 if ($product['hjDiscountPrice'] > 0 && $product['discountPrice'] > 0 && $product['skDiscountPrice'] > 0) {
-                    Yii::$app->redis->executeCommand('HSET', [$limitKey, $customId, $limitBuy]);
+                    Yii::$app->redis->executeCommand('HSET', [$limitKey, $customId, $lastNum]);
                     return;
                 }
 
@@ -2837,7 +2842,7 @@ class ProductClass extends BaseClass
             if ($num > $limitBuy) {
                 // 如果有特价,则超过的数量按原价卖;否则中断
                 if ($product['hjDiscountPrice'] > 0 && $product['discountPrice'] > 0 && $product['skDiscountPrice'] > 0) {
-                    Yii::$app->redis->executeCommand('HSET', [$limitKey, $customId, $limitBuy]);
+                    Yii::$app->redis->executeCommand('HSET', [$limitKey, $customId, $num]);
                     return;
                 }
 

+ 2 - 2
biz-hd/product/classes/ProductClass.php

@@ -452,7 +452,7 @@ class ProductClass extends BaseClass
             if ($lastNum > $limitBuy) {
                 // 如果有特价,则超过的数量按原价卖;否则中断
                 if ($product['hjDiscountPrice'] > 0 && $product['discountPrice'] > 0 && $product['skDiscountPrice'] > 0) {
-                    Yii::$app->redis->executeCommand('HSET', [$limitKey, $customId, $limitBuy]);
+                    Yii::$app->redis->executeCommand('HSET', [$limitKey, $customId, $lastNum]);
                     return;
                 }
 
@@ -464,7 +464,7 @@ class ProductClass extends BaseClass
             if ($num > $limitBuy) {
                 // 如果有特价,则超过的数量按原价卖;否则中断
                 if ($product['hjDiscountPrice'] > 0 && $product['discountPrice'] > 0 && $product['skDiscountPrice'] > 0) {
-                    Yii::$app->redis->executeCommand('HSET', [$limitKey, $customId, $limitBuy]);
+                    Yii::$app->redis->executeCommand('HSET', [$limitKey, $customId, $num]);
                     return;
                 }
                 util::error(-1, '超出限购数', ['productId'=>$productId, 'limitBuy'=>$limitBuy, 'exceed'=>$num - $limitBuy]);

+ 0 - 4
biz-hd/purchase/classes/PurchaseClass.php

@@ -6,8 +6,6 @@ use biz\ghs\classes\GhsClass;
 use biz\product\classes\XjClass;
 use biz\shop\classes\ShopCapitalClass;
 use biz\shop\classes\ShopClass;
-use biz\shop\classes\ShopCouponClass;
-use biz\sj\classes\SjClass;
 use biz\stat\classes\StatCgClass;
 use biz\stat\classes\StatCgGhsClass;
 use biz\stat\classes\StatOutClass;
@@ -21,12 +19,10 @@ use bizGhs\order\traits\OrderTrait;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stock\classes\OnStockRecordClass;
 use bizGhs\stock\classes\StockRecordClass;
-use bizGhs\stock\services\StockRecordService;
 use bizHd\cg\classes\CgRefundClass;
 use bizHd\cg\classes\CgXjClass;
 use bizHd\shop\classes\MainClass;
 use bizHd\stat\classes\StatIncomeClass;
-use bizHd\wx\classes\WxOpenClass;
 use common\components\dict;
 use common\components\imgUtil;
 use common\components\IntraCityExpress;