|
|
@@ -120,7 +120,9 @@ class SettleService extends BaseService
|
|
|
$orderId = isset($order['id']) ? $order['id'] : 0;
|
|
|
$orderNo = isset($order['order_no']) ? $order['order_no'] : '';
|
|
|
$orderTotal = isset($order['pay_total']) ? $order['pay_total'] : 0;
|
|
|
- $profitTotal = isset($order['profit_total']) ? $order['profit_total'] : 0;
|
|
|
+ $profitTotal = isset($order['profit_total']) ? $order['profit_total'] : 0; // 毛利
|
|
|
+ $costTotal = isset($order['cost_total']) ? $order['cost_total'] : 0; // 总成本
|
|
|
+ $netProfit = isset($order['net_profit']) ? $order['net_profit'] : 0; // 净利润
|
|
|
$data = [
|
|
|
'order_id' => $orderId,
|
|
|
'user_id' => $userId,
|
|
|
@@ -219,10 +221,8 @@ class SettleService extends BaseService
|
|
|
/* TODO 计算商家佣金 */
|
|
|
$storeInfo = StoreModel::where(['id' => $storeId])->first();
|
|
|
$bonusRate = isset($storeInfo['bonus_rate']) ? floatval($storeInfo['bonus_rate']) : 0;
|
|
|
- $storeBonusRate = ConfigService::make()->getConfigByCode('store_bonus_rate', 0);
|
|
|
- $storeBonusRate = $storeBonusRate > 0 && $storeBonusRate <= 100 ? $storeBonusRate : 0;
|
|
|
- $bonusRate = $bonusRate > 0 && $bonusRate <= 100 ? $bonusRate : $storeBonusRate;
|
|
|
- $bonus = moneyFormat($orderTotal * $bonusRate / 100, 2);
|
|
|
+ $bonusRate = $bonusRate > 0 && $bonusRate < 100 ? $bonusRate : 0;
|
|
|
+ $bonus = $bonusRate? moneyFormat($orderTotal * $bonusRate / 100, 2) : $costTotal;
|
|
|
$data['bonus'] = $bonus;
|
|
|
$data['bonus_rate'] = $bonusRate;
|
|
|
|
|
|
@@ -236,12 +236,14 @@ class SettleService extends BaseService
|
|
|
foreach ($orderGoods as $goods) {
|
|
|
$lsScoreRate = isset($goods['ls_score_rate']) ? $goods['ls_score_rate'] : 0;
|
|
|
$lsScoreRate = $lsScoreRate > 0 && $lsScoreRate <= 50 ? $lsScoreRate : $ptLsScoreRate;
|
|
|
- $profitTotal = isset($goods['profit_total']) ? $goods['profit_total'] : 0;
|
|
|
- if ($profitTotal > 0 && $lsScoreRate > 0) {
|
|
|
- $lsScoreTotal += moneyFormat($profitTotal * $lsScoreRate / 100, 2);
|
|
|
+ //$profitTotal = isset($goods['profit_total']) ? $goods['profit_total'] : 0;
|
|
|
+ $netProfit = isset($goods['net_profit']) ? $goods['net_profit'] : 0;
|
|
|
+ if ($netProfit > 0 && $lsScoreRate > 0) {
|
|
|
+ $lsScoreTotal += moneyFormat($netProfit * $lsScoreRate / 100, 2);
|
|
|
}
|
|
|
$data['ls_score_rates'][$goods['goods_id']] = [
|
|
|
'goods_id' => $goods['goods_id'],
|
|
|
+ 'net_profit' => $netProfit,
|
|
|
'score' => $lsScoreRate
|
|
|
];
|
|
|
}
|
|
|
@@ -255,8 +257,8 @@ class SettleService extends BaseService
|
|
|
$ptPoolRate = $ptPoolRate > 0 && $ptPoolRate < 50 ? $ptPoolRate : 0;
|
|
|
$rewardPropertyRate = ConfigService::make()->getConfigByCode('reward_property_rate', 0);
|
|
|
$rewardPropertyRate = $rewardPropertyRate > 0 && $rewardPropertyRate <= 50 ? $rewardPropertyRate : 0;
|
|
|
- $propertyTotal = moneyFormat($rewardPropertyRate * $profitTotal / 100, 2);
|
|
|
- $poolTotal = moneyFormat($ptPoolRate * $profitTotal / 100, 2);
|
|
|
+ $propertyTotal = moneyFormat($rewardPropertyRate * $netProfit / 100, 2);
|
|
|
+ $poolTotal = moneyFormat($ptPoolRate * $netProfit / 100, 2);
|
|
|
$data['pt_pool_rate'] = $ptPoolRate;
|
|
|
$data['pt_pool'] = $poolTotal;
|
|
|
$data['property'] = $propertyTotal;
|