diff --git a/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php b/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php index 7caa7a63f..d1c286d2a 100644 --- a/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php +++ b/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php @@ -431,14 +431,30 @@ class PurchaseProductOfferLogic extends BaseLogic public static function getProductCatePriceRate($product) { $productCatePriceRate = StoreCategory::where('id', $product['cate_id'])->value('price_rate'); - if (!empty($productCatePriceRate)) { + if (!empty($productCatePriceRate) && self::hasPurchase($productCatePriceRate)) { return $productCatePriceRate; } $productCatePriceRate = StoreCategory::where('id', $product['two_cate_id'])->value('price_rate'); - if (!empty($productCatePriceRate)) { + if (!empty($productCatePriceRate) && self::hasPurchase($productCatePriceRate)) { return $productCatePriceRate; } - return StoreCategory::where('id', $product['top_cate_id'])->value('price_rate'); + $productCatePriceRate = StoreCategory::where('id', $product['top_cate_id'])->value('price_rate'); + if (!empty($productCatePriceRate) && self::hasPurchase($productCatePriceRate)) { + return $productCatePriceRate; + } + return []; + } + + public static function hasPurchase(array $productCatePriceRate): bool + { + $res = true; + foreach ($productCatePriceRate as $item) { + if ($item['id'] == 21 && empty($item['rate'])) { + $res = false; + break; + } + } + return $res; } }