diff --git a/plugins/commission/src/Listener/OrderCreatedListener.php b/plugins/commission/src/Listener/OrderCreatedListener.php index 6a748a39..715c13f7 100644 --- a/plugins/commission/src/Listener/OrderCreatedListener.php +++ b/plugins/commission/src/Listener/OrderCreatedListener.php @@ -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'], diff --git a/plugins/commission/src/models/Agents.php b/plugins/commission/src/models/Agents.php index 96db60a6..98440345 100644 --- a/plugins/commission/src/models/Agents.php +++ b/plugins/commission/src/models/Agents.php @@ -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'); + } + /** * 定义字段名 * 可使 diff --git a/plugins/commission/src/models/CommissionOrder.php b/plugins/commission/src/models/CommissionOrder.php index 8ddd9eb7..8ddc743d 100644 --- a/plugins/commission/src/models/CommissionOrder.php +++ b/plugins/commission/src/models/CommissionOrder.php @@ -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'); diff --git a/plugins/commission/src/models/YzMember.php b/plugins/commission/src/models/YzMember.php index d72d217b..43f18522 100644 --- a/plugins/commission/src/models/YzMember.php +++ b/plugins/commission/src/models/YzMember.php @@ -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); } } diff --git a/plugins/commission/views/admin/commission_order.blade.php b/plugins/commission/views/admin/commission_order.blade.php index 8e863df4..0e516978 100644 --- a/plugins/commission/views/admin/commission_order.blade.php +++ b/plugins/commission/views/admin/commission_order.blade.php @@ -190,10 +190,18 @@ {{$row['parentMember']['nickname']}}