diff --git a/app/admin/logic/store_product_price/StoreProductPriceLogic.php b/app/admin/logic/store_product_price/StoreProductPriceLogic.php index 47aa10ac1..931eb57e4 100644 --- a/app/admin/logic/store_product_price/StoreProductPriceLogic.php +++ b/app/admin/logic/store_product_price/StoreProductPriceLogic.php @@ -61,7 +61,7 @@ class StoreProductPriceLogic extends BaseLogic if ($find) { $changePurchase = false; if ($find['purchase_lv'] != $params['purchase_lv']) { - $params = self::updateProductPriceList($find['product_id'], StoreProductPriceList::PriceTypeSupply, $params['purchase_lv'], $params, 'purchase', $find['purchase_price']); + $params = self::updateProductPriceList2($find['product_id'], 'supply_rate', $params['purchase_lv'], $params, 'purchase', $find['purchase_price']); $changePurchase = true; } if ($changePurchase) { @@ -70,13 +70,13 @@ class StoreProductPriceLogic extends BaseLogic $params['price'] = bcmul($params['purchase'], $params['price_lv'], 2); } if ($find['cost_lv'] != $params['cost_lv']) { - $params = self::updateProductPriceList($find['product_id'], StoreProductPriceList::PriceTypeBusiness, $params['cost_lv'], $params, 'cost', $params['purchase']); + $params = self::updateProductPriceList2($find['product_id'], 'merchant_rate', $params['cost_lv'], $params, 'cost', $find['purchase']); } if ($find['vip_lv'] != $params['vip_lv']) { - $params = self::updateProductPriceList($find['product_id'], StoreProductPriceList::PriceTypeVip, $params['vip_lv'], $params, 'vip_price', $params['purchase']); + $params = self::updateProductPriceList2($find['product_id'], 'vip_rate', $params['vip_lv'], $params, 'vip_price', $find['purchase']); } if ($find['price_lv'] != $params['price_lv']) { - $params = self::updateProductPriceList($find['product_id'], StoreProductPriceList::PriceTypeRetail, $params['price_lv'], $params, 'price', $params['purchase']); + $params = self::updateProductPriceList2($find['product_id'], 'price_rate', $params['price_lv'], $params, 'price', $find['purchase']); } $find->save([ 'status' => 1, @@ -112,6 +112,21 @@ class StoreProductPriceLogic extends BaseLogic } } + public static function updateProductPriceList2($productId, $field, $rate, $params, $index, $basePrice) + { + $id = StoreProductPriceList::where('product_id', $productId)->value('id'); + if (empty($id)) { + StoreProductPriceList::create([ + 'product_id' => $productId, + $field => $rate * 100, + ]); + } else { + StoreProductPriceList::where('id', $id)->update([$field => $rate * 100]); + } + $params[$index] = bcmul($basePrice, $rate, 2); + return $params; + } + public static function updateProductPriceList($productId, $priceType, $rate, $params, $field, $basePrice) { $id = StoreProductPriceList::where('product_id', $productId)->where('price_type', $priceType)->value('id');