添加:分销商提成区分为文创等级提成和普通提成

This commit is contained in:
wuhui_zzw 2023-11-23 16:50:37 +08:00
parent b187ffd571
commit 7dd5e3b8ef
5 changed files with 53 additions and 37 deletions

View File

@ -165,23 +165,18 @@ class OrderCreatedListener
$agent['agent']['hierarchy'] = $level;
//获取佣金 计算金额 计算公式 佣金比例 分销订单商品等数据
// 计算普通等级佣金
$commission = CommissionOrderService::getCommission($this->order, $agent['agent'], $this->set);
if ($commission['commission'] > 0) $this->addCommissionOrder($commission, $agent, $hierarchy, $level);
else \Log::debug('订单分销没有佣金 - 普通等级'.$order_id,$agent['agent']);
// 计算文创等级分红
$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']);
if ($commission['commission'] > 0) {
$this->addCommissionOrder($commission, $agent, $hierarchy, $level);
} else {
\Log::debug('订单分销没有佣金'.$order_id,print_r($agent,true));
/*Operation::create([
'uniacid' => $this->order->uniacid,
'order_id' => $this->order->id,
'uid' => $agent['agent']['member_id'],
'buy_uid' => $this->order->uid,
'level_id' => 0,
'ratio' => 0,
'content' => "没有分销金额"
]);*/
}
// 额外分红
if (!$is_additiona_commission) {
@ -191,12 +186,13 @@ class OrderCreatedListener
\Log::debug('分销进入额外分红',$agent);
$is_additiona_commission = true;
$additiona_commission = CommissionOrderService::getAdditionalCommission($this->order, $agent['agent'], $this->set);
if ($additiona_commission['commission'] > 0) {
$this->addCommissionOrder($additiona_commission, $agent, 0, $level);
}
}
}
}
}
@ -217,7 +213,7 @@ class OrderCreatedListener
* @param $hierarchy
* @param $level
*/
public function addCommissionOrder($commission, $agent, $hierarchy, $level)
public function addCommissionOrder($commission, $agent, $hierarchy, $level, $levelType = 0)
{
//分销订单数据
$orderData = [
@ -234,6 +230,7 @@ class OrderCreatedListener
'status' => 0,
'settle_days' => $this->getSettleDays(),
'created_at' => time(),
'level_type' => $levelType,
];
$exist = CommissionOrder::where([
'member_id' => $orderData['member_id'],

View File

@ -41,6 +41,7 @@ class Agents extends BaseModel
public $AgentLevel;
public $CulturalLevel;
/**
* @param $uid
@ -180,7 +181,7 @@ class Agents extends BaseModel
return $query2->select(['uid', 'avatar', 'nickname', 'realname', 'mobile', 'createtime']);
}
]);
$agentModel->with('agentLevel');
$agentModel->with(['agentLevel','culturalLevel']);
if ($search['follow'] >= '0') {
if ($search['follow'] == 2) {
@ -238,7 +239,7 @@ class Agents extends BaseModel
public static function getAgentByMemberId($memberId)
{
return self::uniacid()
->with('agentLevel')
->with(['agentLevel','culturalLevel'])
->where('member_id', $memberId);
}
@ -343,10 +344,7 @@ class Agents extends BaseModel
}
]);
$lowerModel->with([
'agentLevel' => function ($query) {
}
]);
$lowerModel->with(['agentLevel','culturalLevel']);
if (!empty($search) && $search['follow'] >= '0') {
if ($search['follow'] == 2) {
@ -427,10 +425,7 @@ class Agents extends BaseModel
}
]);
$lowerModel->with([
'agentLevel' => function ($query) {
}
]);
$lowerModel->with(['agentLevel','culturalLevel']);
if (!empty($search) && $search['follow'] >= '0') {
if ($search['follow'] == 2) {
@ -482,7 +477,12 @@ class Agents extends BaseModel
$qurey->select('id', 'name', 'first_level', 'second_level', 'third_level')->where(
['uniacid' => \YunShop::app()->uniacid]
);
}
},
'culturalLevel' => function ($qurey) {
$qurey->select('id', 'name', 'first_level', 'second_level', 'third_level')->where(
['uniacid' => \YunShop::app()->uniacid]
);
},
]);
}
@ -613,6 +613,11 @@ class Agents extends BaseModel
return $this->belongsTo('Yunshop\Commission\models\AgentLevel', 'agent_level_id', 'id');
}
public function culturalLevel()
{
return $this->belongsTo('Yunshop\Commission\models\AgentLevel', 'cultural_level_id', 'id');
}
/**
* 定义字段名
* 可使

View File

@ -58,7 +58,9 @@ class CommissionOrder extends BaseModel
});
}
$query->with(['agent' => function ($query4) {
$query4->with('agentLevel');
$query4->with(['agentLevel','culturalLevel'=>function($query){
$query->select(['id','name']);
}]);
}]);
if (!empty($search['member'])) {
@ -190,6 +192,8 @@ class CommissionOrder extends BaseModel
$query->select('member_id', 'agent_level_id');
$query->with(['agentLevel' => function ($query) {
$query->select('id', 'name');
},'culturalLevel'=>function($query){
$query->select(['id','name']);
}]);
}])
->where(function ($query) {
@ -217,6 +221,8 @@ class CommissionOrder extends BaseModel
$query->select('member_id', 'agent_level_id');
$query->with(['agentLevel' => function ($query) {
$query->select('id', 'name');
},'culturalLevel'=>function($query){
$query->select(['id','name']);
}]);
}])
->where('status', '1');

View File

@ -46,24 +46,24 @@ class YzMember extends MemberShopInfo
if (!$agentModel) {
return false;
}
$memberAgent = Agents::where('member_id', $agentModel->member_id)->with('agentLevel')->first();
$memberAgent = Agents::where('member_id', $agentModel->member_id)->with(['agentLevel','culturalLevel'])->first();
if (!empty($memberAgent)) {
$agentModel->setRelation('agent', Agents::where('member_id', $agentModel->member_id)->with('agentLevel')->first());
$agentModel->setRelation('agent', Agents::where('member_id', $agentModel->member_id)->with(['agentLevel','culturalLevel'])->first());
}
if ($agentModel->parent_id) {
$firstParentModel = self::where('member_id', $agentModel->parent_id)->with('hasOneFans')->first();
if (!empty($firstParentModel)) {
$firstParentModel->setRelation('agent', Agents::where('member_id', $agentModel->parent_id)->with('agentLevel')->first());
$firstParentModel->setRelation('agent', Agents::where('member_id', $agentModel->parent_id)->with(['agentLevel','culturalLevel'])->first());
}
if ($firstParentModel->parent_id) {
$secondParentModel = self::where('member_id', $firstParentModel->parent_id)->with('hasOneFans')->first();
if (!empty($secondParentModel)) {
$secondParentModel->setRelation('agent', Agents::where('member_id', $firstParentModel->parent_id)->with('agentLevel')->first());
$secondParentModel->setRelation('agent', Agents::where('member_id', $firstParentModel->parent_id)->with(['agentLevel','culturalLevel'])->first());
}
if ($secondParentModel->parent_id){
$thirdParentModel = self::where('member_id', $secondParentModel->parent_id)->with('hasOneFans')->first();
if (!empty($thirdParentModel)) {
$thirdParentModel->setRelation('agent', Agents::where('member_id', $secondParentModel->parent_id)->with('agentLevel')->first());
$thirdParentModel->setRelation('agent', Agents::where('member_id', $secondParentModel->parent_id)->with(['agentLevel','culturalLevel'])->first());
$secondParentModel->setRelation('belongsToParent', $thirdParentModel);
}
}

View File

@ -190,10 +190,18 @@
{{$row['parentMember']['nickname']}}</a>
</td>
<td>
@if($row->agent['agentLevel']['name'] == '默认等级')
{{$defaultLevelName}}
@if($row['level_type'] == 1)
@if($row->agent['culturalLevel']['name'] == '默认等级')
{{$defaultLevelName}}
@else
{{ $row->agent['culturalLevel']['name'] }}
@endif
@else
{{$row->agent['agentLevel']['name']}}
@if($row->agent['agentLevel']['name'] == '默认等级')
{{$defaultLevelName}}
@else
{{ $row->agent['agentLevel']['name'] }}
@endif
@endif
</br>层级:{{$row['hierarchy']}} - 比例:{{$row['commission_rate']}}</td>
<td>