From b110e042d8855e2cd46927e075c61178bcf9b33d Mon Sep 17 00:00:00 2001 From: "DESKTOP-GMUNQ1B\\Administrator" <604446095@qq.com> Date: Tue, 17 Dec 2024 14:31:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=88=86=E7=BB=84=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E8=AE=BE=E7=BD=AE=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseProductOfferLogic.php | 83 +++++++++---------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php b/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php index b6e7c8c48..ad3c317c1 100644 --- a/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php +++ b/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php @@ -307,12 +307,6 @@ class PurchaseProductOfferLogic extends BaseLogic public static function setProductGroupPrice($params, $product) { - $productCatePriceRate = StoreCategory::where('id', $product['top_cate_id'])->value('price_rate'); - if (empty($productCatePriceRate)) { - return; - } - $storeProductGroupPrice = StoreProductGroupPrice::where('product_id', $product['id'])->select()->toArray(); - $storeProductGroupPrice = reset_index($storeProductGroupPrice, 'group_id'); $priceConfig = []; $data = [ 'bhoid' => $params['bhoid'], @@ -323,45 +317,50 @@ class PurchaseProductOfferLogic extends BaseLogic 'update_time' => time(), 'status' => 0, ]; - foreach ($productCatePriceRate as $k => $v) { - if ($v['id'] == 4) { - $data['cost_lv'] = bcdiv($v['rate'], 100, 2); - $data['cost'] = bcmul($params['purchase'], bcadd($data['cost_lv'], 1, 2), 2); - continue; - } elseif ($v['id'] == 100001) { - $data['purchase_lv'] = bcdiv($v['rate'], 100, 2); - $data['purchase'] = bcmul($params['purchase'], bcadd($data['purchase_lv'], 1, 2), 2); - continue; - } elseif ($v['id'] == 100002) { - $data['price_lv'] = bcdiv($v['rate'], 100, 2); - $data['price'] = bcmul($params['purchase'], bcadd($data['price_lv'], 1, 2), 1); - if ($product['two_cate_id'] == 15268) { - $lastNum = substr($data['price'], -1); - if ($lastNum <= 2) { - $data['price'] = floor($data['price']); - } elseif ($lastNum < 5) { - $data['price'] = bcadd(floor($data['price']), 0.5, 1); - } else { - $data['price'] = bcadd(floor($data['price']), 1, 1); + $productCatePriceRate = StoreCategory::where('id', $product['top_cate_id'])->value('price_rate'); + if (!empty($productCatePriceRate)) { + $storeProductGroupPrice = StoreProductGroupPrice::where('product_id', $product['id'])->select()->toArray(); + $storeProductGroupPrice = reset_index($storeProductGroupPrice, 'group_id'); + foreach ($productCatePriceRate as $k => $v) { + if ($v['id'] == 4) { + $data['cost_lv'] = bcdiv($v['rate'], 100, 2); + $data['cost'] = bcmul($params['purchase'], bcadd($data['cost_lv'], 1, 2), 2); + continue; + } elseif ($v['id'] == 100001) { + $data['purchase_lv'] = bcdiv($v['rate'], 100, 2); + $data['purchase'] = bcmul($params['purchase'], bcadd($data['purchase_lv'], 1, 2), 2); + continue; + } elseif ($v['id'] == 100002) { + $data['price_lv'] = bcdiv($v['rate'], 100, 2); + $data['price'] = bcmul($params['purchase'], bcadd($data['price_lv'], 1, 2), 1); + if ($product['two_cate_id'] == 15268) { + $lastNum = substr($data['price'], -1); + if ($lastNum <= 2) { + $data['price'] = floor($data['price']); + } elseif ($lastNum < 5) { + $data['price'] = bcadd(floor($data['price']), 0.5, 1); + } else { + $data['price'] = bcadd(floor($data['price']), 1, 1); + } } + continue; } - continue; + $baseRate = 100 + $v['rate']; + $item = [ + 'product_id' => $product['id'], + 'group_id' => $v['id'], + 'group_name' => $v['title'], + 'price' => bcmul($params['purchase'], $baseRate / 100, 2), + 'price_type' => 3, + 'base_rate' => $baseRate, + ]; + if (isset($storeProductGroupPrice[$v['id']])) { + $item['base_rate'] = $storeProductGroupPrice[$v['id']]['base_rate']; + $item['price'] = bcmul($params['purchase'], $item['base_rate'] / 100, 2); + $item['id'] = $storeProductGroupPrice[$v['id']]['id']; + } + $priceConfig[] = $item; } - $baseRate = 100 + $v['rate']; - $item = [ - 'product_id' => $product['id'], - 'group_id' => $v['id'], - 'group_name' => $v['title'], - 'price' => bcmul($params['purchase'], $baseRate / 100, 2), - 'price_type' => 3, - 'base_rate' => $baseRate, - ]; - if (isset($storeProductGroupPrice[$v['id']])) { - $item['base_rate'] = $storeProductGroupPrice[$v['id']]['base_rate']; - $item['price'] = bcmul($params['purchase'], $item['base_rate'] / 100, 2); - $item['id'] = $storeProductGroupPrice[$v['id']]['id']; - } - $priceConfig[] = $item; } $data['price_config'] = $priceConfig; $find = StoreProductPrice::where(['offer_id' => $params['id']])->find();