diff --git a/plugins/team-dividend/src/admin/TeamAgencyController.php b/plugins/team-dividend/src/admin/TeamAgencyController.php index e51c6989..b787a526 100644 --- a/plugins/team-dividend/src/admin/TeamAgencyController.php +++ b/plugins/team-dividend/src/admin/TeamAgencyController.php @@ -397,7 +397,7 @@ class TeamAgencyController extends BaseController // $set = \Setting::get('plugin.team_dividend'); // (new NewUpgrateJob($model->uid, $set, $model->uniacid, TeamDividendLevelUpgrade::ORDER_PAY, $model))->handle(); - // $order = Order::find(87); + // $order = Order::find(169); // $TeamReturnService = ReturnConfig::getClass(); // if (app('plugins')->isEnabled('team-sideways')) debug('经销商订单创建终止:team-sideways'); // $set = $order->getSetting('plugin.team_dividend'); diff --git a/plugins/team-dividend/src/services/GetAgentsService.php b/plugins/team-dividend/src/services/GetAgentsService.php index ffecfdac..c74fdaf6 100644 --- a/plugins/team-dividend/src/services/GetAgentsService.php +++ b/plugins/team-dividend/src/services/GetAgentsService.php @@ -29,9 +29,9 @@ class GetAgentsService $parents = MemberParent::with([ 'hasOneTeam' => function ($team) { $team->with(['hasOneLevel'=>function($query){ - $query->select(['id','award_gratitude','award_ratio','dividend_ratio','level_weight']); + // $query->select(['id','award_gratitude','award_ratio','dividend_ratio','level_weight']); },'culturalLevel'=>function($query){ - $query->select(['id','award_gratitude','award_ratio','dividend_ratio','level_weight']); + // $query->select(['id','award_gratitude','award_ratio','dividend_ratio','level_weight']); }]); } ])->whereHas('hasOneParentMember') diff --git a/plugins/team-dividend/src/services/TeamReturnService.php b/plugins/team-dividend/src/services/TeamReturnService.php index b090e763..cac14c94 100644 --- a/plugins/team-dividend/src/services/TeamReturnService.php +++ b/plugins/team-dividend/src/services/TeamReturnService.php @@ -107,7 +107,6 @@ class TeamReturnService // 额外分红 $this->extraDividend($agent); } - } private function totalDividend() @@ -179,13 +178,12 @@ class TeamReturnService // 经销商奖励 private function dividendAward($agent) { - //平级跳出 - if ($this->dividend_level_ids[$agent['level']]) { + if ($this->dividend_level_ids[$this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level']]) { return; } // 平级奖处理初始化 - $this->dividend_level_ids[$agent['level']]['hierarchy'] = 0; + $this->dividend_level_ids[$this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level']]['hierarchy'] = 0; $this->hierarchy_uid = $agent['uid']; // 分红比例 @@ -245,21 +243,13 @@ class TeamReturnService private function hierarchyAward($agent) { // 是否开启平级奖 - if (!$this->set['is_flat_prize']) { - return; - } + if (!$this->set['is_flat_prize']) return; // 商品是否开启平级奖 - if (!$this->amount_service->isHierarchy()) { - return; - } - - if ($this->flat_prize_limit) { - \Log::debug('经销商平级奖限制,取消平级奖', $this->order->id.'_'.$this->order_goods->id.'_'.$agent['uid']); - return; - } + if (!$this->amount_service->isHierarchy()) return; + if ($this->flat_prize_limit) return; // 经销商奖励层级 经销商等级奖励层级 >= 当前奖励层级 - $dividend_level = $this->dividend_level_ids[$agent['level']]; + $dividend_level = $this->dividend_level_ids[$this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level']]; if ($dividend_level == null) { return; } @@ -268,6 +258,7 @@ class TeamReturnService if ($dividend_level && ($award_hierarchy <= $dividend_level['hierarchy'] || $this->hierarchy_uid == $agent['uid'])) { return; } + // 平级奖奖励比例 $award_ratio = $this->amount_service->getAwardHierarchyRatio(); if (!isset($award_ratio) || $award_ratio <= 0) { @@ -290,7 +281,7 @@ class TeamReturnService // 是否开启平级奖下级获得经销商奖励计算方式 if ($this->set['calculate_formula'] == 1) { - $finishPrice = $this->obtainInfos[$agent['level']]; + $finishPrice = $this->obtainInfos[$this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level']]; if (!$finishPrice) { return; } @@ -367,7 +358,7 @@ class TeamReturnService } // 平级奖层数增加 - $this->dividend_level_ids[$agent['level']]['hierarchy'] += 1; + $this->dividend_level_ids[$this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level']]['hierarchy'] += 1; } //额外分红 @@ -382,12 +373,12 @@ class TeamReturnService return; } - if (!$dividend_extra['level_' . $agent['level']]) { + if (!$dividend_extra['level_' . ($this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level'])]) { return; } //计算总获得分红 - $dividendData['amount'] = $this->order_goods->total * $dividend_extra['level_' . $agent['level']]; + $dividendData['amount'] = $this->order_goods->total * $dividend_extra['level_' . ($this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level'])]; if($this->dividendType == 1) { $agent['cultural_level']['dividend_ratio'] = 1; @@ -430,7 +421,7 @@ class TeamReturnService } $dividendData['member_id'] = $agent['uid']; - $dividendData['agent_level'] = $agent['level']; + $dividendData['agent_level'] = $this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level']; $dividendData['dividend_rate'] = 0; $dividendData['type'] = 3; $dividendData['lower_level_rate'] = $this->finish_ratio; @@ -472,7 +463,7 @@ class TeamReturnService 'member_id' => $agent['uid'], 'order_sn' => $this->order->order_sn, 'order_amount' => $this->order->price, - 'agent_level' => $agent['level'], + 'agent_level' => $this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level'], 'status' => 0, 'create_month' => date('Y-m'), 'settle_days' => $this->set['settle_days'] ?: 0, @@ -517,7 +508,7 @@ class TeamReturnService // $this->dividend_level_ids[$agent['level']]['hierarchy'] = 0; // 获得奖励的UID $this->award_uid = $agent['uid']; - $this->obtainInfos[$agent['level']] = $dividend_amount; + $this->obtainInfos[$this->dividendType == 1 ? $agent['cultural_level_id'] : $agent['level']] = $dividend_amount; } /** diff --git a/plugins/team-dividend/views/admin/dividend-list.blade.php b/plugins/team-dividend/views/admin/dividend-list.blade.php index 32d6f489..18c78865 100644 --- a/plugins/team-dividend/views/admin/dividend-list.blade.php +++ b/plugins/team-dividend/views/admin/dividend-list.blade.php @@ -168,9 +168,7 @@