diff --git a/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php b/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php index 96cceca80..782f1c028 100644 --- a/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php +++ b/app/admin/logic/purchase_product_offer/PurchaseProductOfferLogic.php @@ -225,6 +225,7 @@ class PurchaseProductOfferLogic extends BaseLogic return true; } catch (\Throwable $e) { Db::rollback(); + d($e); throw new BusinessException($e->getMessage()); } } @@ -358,18 +359,26 @@ class PurchaseProductOfferLogic extends BaseLogic if (!empty($productCatePriceRate)) { $storeProductGroupPrice = StoreProductGroupPrice::where('product_id', $product['id'])->select()->toArray(); $storeProductGroupPrice = reset_index($storeProductGroupPrice, 'group_id'); + $purchase=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) { + if ($v['id'] == 100001) { + //供货 $data['purchase_lv'] = bcdiv($v['rate'], 100, 2); $data['purchase'] = bcmul($params['purchase'], bcadd($data['purchase_lv'], 1, 2), 2); + $purchase=$data['purchase']; + break; + } + } + foreach ($productCatePriceRate as $k => $v) { + if ($v['id'] == 4 &&$purchase>0) { + //商户 + $data['cost_lv'] = bcdiv($v['rate'], 100, 2); + $data['cost'] = bcmul($purchase, bcadd($data['cost_lv'], 1, 2), 2); continue; - } elseif ($v['id'] == 100002) { + }elseif ($v['id'] == 100002 &&$purchase>0) { + //零售 $data['price_lv'] = bcdiv($v['rate'], 100, 2); - $data['price'] = bcmul($params['purchase'], bcadd($data['price_lv'], 1, 2), 1); + $data['price'] = bcmul($purchase, bcadd($data['price_lv'], 1, 2), 1); if ($product['two_cate_id'] == 15268) { $lastNum = substr($data['price'], -1); if ($lastNum <= 2) { @@ -383,20 +392,22 @@ class PurchaseProductOfferLogic extends BaseLogic 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']; + if($purchase>0){ + $item = [ + 'product_id' => $product['id'], + 'group_id' => $v['id'], + 'group_name' => $v['title'], + 'price' => bcmul($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($purchase, $item['base_rate'] / 100, 2); + $item['id'] = $storeProductGroupPrice[$v['id']]['id']; + } + $priceConfig[] = $item; } - $priceConfig[] = $item; } } $data['price_config'] = $priceConfig;