修复:分销商文创等级提成未成功到账

修复:文创空间新用户 通过购买商品获得的第一笔贡献值不会成功到账
This commit is contained in:
wuhui_zzw 2023-11-24 18:26:44 +08:00
parent fc4cb9a9ed
commit 60bcb3aa10
4 changed files with 27 additions and 77 deletions

View File

@ -173,10 +173,10 @@ class OrderCreatedListener
// 计算文创等级分红
$culturalAgent = $agent;
$culturalAgent['agent']['agent_level'] = $culturalAgent['agent']['cultural_level'];
$culturalCommission = CommissionOrderService::getCommission($this->order, $culturalAgent, $this->set);
if ($culturalCommission['commission'] > 0) $this->addCommissionOrder($culturalCommission, $culturalAgent, $hierarchy, $level, 1);
else \Log::debug('订单分销没有佣金 - 文创等级'.$order_id,$agent['agent']);
$culturalCommission = CommissionOrderService::getCommission($this->order, $culturalAgent['agent'], $this->set,1);
if ($culturalCommission['commission'] > 0) $this->addCommissionOrder($culturalCommission, $culturalAgent, $hierarchy, $level, 1);
else \Log::debug('订单分销没有佣金 - 文创等级'.$order_id,$culturalAgent['agent']);
// 额外分红
if (!$is_additiona_commission) {

View File

@ -9,9 +9,11 @@ use app\common\facades\Setting;
use app\common\helpers\PaginationHelper;
use app\common\helpers\Url;
use app\common\models\Member;
use app\common\models\Order;
use app\common\services\ExportService;
use app\common\services\Session;
use app\exports\FromArray;
use Yunshop\Commission\Listener\OrderCreatedListener;
use Yunshop\Commission\models\AgentLevel;
use Yunshop\Commission\models\Agents;
use Yunshop\Commission\models\Log;
@ -369,4 +371,10 @@ class AgentController extends BaseController
// });
// })->export('xls');
}
public function test(){
// (new OrderCreatedListener())->handler(Order::find(213));
}
}

View File

@ -180,30 +180,8 @@ class CommissionOrderService
if ($storeSetting) {
$set = $storeSetting->value;
if (empty($agent['agent_level'])) {
/*Operation::create([
'uniacid' => $orderModel->uniacid,
'order_id' => $orderModel->id,
'uid' => $agent['member_id'],
'buy_uid' => $orderModel->uid,
'level_id' => $agent['agent_level_id'],
'ratio' => $set[$agent['hierarchy']],
'content' => "没有分销等级,返回门店默认比例[{$set[$agent['hierarchy']]}]"
]);*/
return $set[$agent['hierarchy']];
} else {
/*Operation::create([
'uniacid' => $orderModel->uniacid,
'order_id' => $orderModel->id,
'uid' => $agent['member_id'],
'buy_uid' => $orderModel->uid,
'level_id' => $agent['agent_level_id'],
'ratio' => $set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate'],
'content' => "返回门店默认等级比例[{$set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate']}]"
]);*/
return $set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate'];
}
}
@ -214,56 +192,16 @@ class CommissionOrderService
if ($hotelSetting) {
$set = $hotelSetting->value;
if (empty($agent['agent_level'])) {
/*Operation::create([
'uniacid' => $orderModel->uniacid,
'order_id' => $orderModel->id,
'uid' => $agent['member_id'],
'buy_uid' => $orderModel->uid,
'level_id' => $agent['agent_level_id'],
'ratio' => $set[$agent['hierarchy']],
'content' => "没有分销等级,返回门店默认比例[{$set[$agent['hierarchy']]}]"
]);*/
return $set[$agent['hierarchy']];
} else {
/*Operation::create([
'uniacid' => $orderModel->uniacid,
'order_id' => $orderModel->id,
'uid' => $agent['member_id'],
'buy_uid' => $orderModel->uid,
'level_id' => $agent['agent_level_id'],
'ratio' => $set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate'],
'content' => "返回门店默认等级比例[{$set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate']}]"
]);*/
return $set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate'];
}
}
}
if (empty($agent['agent_level'])) {
/*Operation::create([
'uniacid' => $orderModel->uniacid,
'order_id' => $orderModel->id,
'uid' => $agent['member_id'],
'buy_uid' => $orderModel->uid,
'level_id' => $agent['agent_level_id'],
'ratio' => $set[$agent['hierarchy']],
'content' => "没有分销等级,返回分销默认比例[{$set[$agent['hierarchy']]}]"
]);*/
return $set[$agent['hierarchy']];
} else {
/*Operation::create([
'uniacid' => $orderModel->uniacid,
'order_id' => $orderModel->id,
'uid' => $agent['member_id'],
'buy_uid' => $orderModel->uid,
'level_id' => $agent['agent_level_id'],
'ratio' => $agent['agent_level'][$agent['hierarchy']],
'content' => "返回分销等级比例[{$agent['agent_level'][$agent['hierarchy']]}]"
]);*/
return $agent['agent_level'][$agent['hierarchy']];
}
}
@ -504,7 +442,7 @@ class CommissionOrderService
* @return array
* 获取佣金 计算金额 计算公式 佣金比例 分销订单商品等数据
*/
public static function getCommission($orderModel, $agent, $set){
public static function getCommission($orderModel, $agent, $set, $levelType = 0){
$orderGoods = $orderModel->hasManyOrderGoods;
$commissionAmount = 0;
$formula = '';
@ -536,6 +474,15 @@ class CommissionOrderService
}
}
//临时解决分销等级删除后,分销订单不能使用默认等级计算问题
if ($agent['cultural_level_id']) {
$agentLevelModel = AgentLevel::uniacid()->where('id', $agent['cultural_level_id'])->first();
if (!$agentLevelModel) {
$agent['cultural_level_id'] = 0;
}
}
foreach ($orderGoods as $key => $og) {
$payment_amount = $og['payment_amount'];
@ -586,7 +533,7 @@ class CommissionOrderService
// $commissionAmount += $amount_dividend; //分佣计算金额
// $formula .= '+'.$countAmount['method'];//分佣计算方式
$rule = unserialize($commissionGoods['rule']);
$agentRule = $rule['level_' . $agent['agent_level_id']];
$agentRule = $rule['level_' . ($levelType == 1 ? $agent['cultural_level_id'] : $agent['agent_level_id'])];
if ($agentRule[$agent['hierarchy'] . '_rate'] > 0) {
$is_general = $countAmount['is_general'];
$commissionRate = $agentRule[$agent['hierarchy'] . '_rate'];

View File

@ -121,6 +121,7 @@ class CulturalSpace extends BaseModel
}
}
// 数据操作
if (count($changeList) > 0) {
$newMemberList = [];
foreach($memberList as $key => $val){
@ -135,9 +136,6 @@ class CulturalSpace extends BaseModel
DB::commit();
} catch (\Exception $e) {
debug($e->getMessage());
\Log::debug('文创空间 - 购买商品奖励贡献值 - 错误抛出', $e->getMessage());
DB::rollBack();
}
@ -291,27 +289,24 @@ class CulturalSpace extends BaseModel
->toArray();
// 循环处理:不存在则添加,并且赋值默认值;存在则使用已经存在的信息
$memberList = [];
$insertData = [];
foreach ($ids as $userId) {
if ($list[$userId]) {
// 存在
$memberList[$userId] = $list[$userId];
} else {
// 不存在
$insertData[] = [
$id = self::insertGetId([
'uniacid' => \YunShop::app()->uniacid,
'uid' => $userId,
];
]);
$memberList[$userId] = [
'uniacid' => \YunShop::app()->uniacid,
'uid' => $userId,
'contribution' => 0
'contribution' => 0,
'id' => $id
];
}
}
if ($insertData) self::insert($insertData);
return $memberList;
}
/**