From b187ffd5718987c96ffc59552505ee9fd978b7ca Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Thu, 23 Nov 2023 15:41:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=9A=E5=88=86=E9=94=80?= =?UTF-8?q?=E5=95=86=E7=AD=89=E7=BA=A7=E5=8C=BA=E5=88=86=E4=B8=BA=E6=99=AE?= =?UTF-8?q?=E9=80=9A=E7=AD=89=E7=BA=A7=E5=92=8C=E6=96=87=E5=88=9B=E7=AD=89?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commission/src/admin/AgentController.php | 54 ++++--- plugins/commission/src/models/AgentLevel.php | 1 + plugins/commission/src/models/Agents.php | 36 ++++- .../src/services/UpgradeService.php | 144 ++++++++++-------- .../views/admin/agent_list.blade.php | 82 +++++----- .../views/admin/level_info.blade.php | 15 ++ .../views/admin/level_list.blade.php | 52 ++++--- .../src/models/CulturalSpace.php | 3 + 8 files changed, 230 insertions(+), 157 deletions(-) diff --git a/plugins/commission/src/admin/AgentController.php b/plugins/commission/src/admin/AgentController.php index 4b5e9279..696bcd8c 100644 --- a/plugins/commission/src/admin/AgentController.php +++ b/plugins/commission/src/admin/AgentController.php @@ -33,23 +33,31 @@ class AgentController extends BaseController $page = PaginationHelper::show($pageList->total(), $pageList->currentPage(), $pageList->perPage()); $agentLevels = AgentLevel::getLevels()->get(); $defaultLevelName = AgentLevel::getDefaultLevelName(); - $level_list = AgentLevel::uniacid()->orderBy('level', 'ASC')->select('id', 'name')->get()->toArray(); + + // 普通等级获取 + $level_list = AgentLevel::uniacid()->where('level_type',0)->orderBy('level', 'ASC')->select('id', 'name')->get()->toArray(); array_unshift($level_list, ['id' => 0, 'name' => $defaultLevelName]); + // 文创等级获取 + $cultural_level = AgentLevel::uniacid()->where('level_type',1)->orderBy('level', 'ASC')->select('id', 'name')->get()->toArray(); + array_unshift($cultural_level, ['id' => 0, 'name' => $defaultLevelName]); + $pageList->each(function ($v) use ($level_list,$cultural_level) { + if (!in_array($v->agent_level_id, array_column($level_list, 'id'))) { + $v->agent_level_id = 0; + } + if (!in_array($v->cultural_level_id, array_column($cultural_level, 'id'))) { + $v->cultural_level_id = 0; + } + }); + + $passwordSet = Setting::getByGroup('pay_password') ?: []; if(!$search['time']){ $search['time']['start'] = date("Y-m-d H:i:s",time()); $search['time']['end'] = date("Y-m-d H:i:s",time()); } - - $pageList->each(function ($v) use ($level_list) { - if (!in_array($v->agent_level_id, array_column($level_list, 'id'))) { - $v->agent_level_id = 0; - } - }); - - $passwordSet = Setting::getByGroup('pay_password') ?: []; return view('Yunshop\Commission::admin.agent_list', [ 'level_list' => $level_list, + 'cultural_level' => $cultural_level, 'set' => $set, 'list' => $agents, 'total' => $pageList->total(), @@ -65,19 +73,25 @@ class AgentController extends BaseController ])->render(); } - public function changeLevel() - { - if (!$agent = Agents::uniacid()->find(request()->id)) { - return $this->errorJson('分销商不存在'); - } + public function changeLevel(){ + $level_type = request()->input('level_type','default'); + // 基本参数获取 + if (!$agent = Agents::uniacid()->find(request()->id)) return $this->errorJson('分销商不存在'); $level_id = intval(request()->value) ? : 0; - if ($level_id && !$level = AgentLevel::uniacid()->find($level_id)){ - return $this->errorJson('分销商等级不存在'); + if ($level_id && !$level = AgentLevel::uniacid()->find($level_id)) return $this->errorJson('分销商等级不存在'); + // 获取等级类型 判断修改的等级 等级类型:0=普通等级,1=文创等级 + $levelType = (int)AgentLevel::uniacid()->where('id',$level_id)->value('level_type'); + if($level_type == 'cultural'){ + $before_level_id = $agent->cultural_level_id; + $agent->cultural_level_id = $level_id; + $agent->save(); + }else{ + $before_level_id = $agent->agent_level_id; + $agent->agent_level_id = $level_id; + $agent->save(); } - $before_level_id = $agent->agent_level_id; - $agent->agent_level_id = $level_id; - $agent->save(); - Log::addLog($before_level_id, $agent->agent_level_id, $agent, '后台修改'); + + Log::addLog($before_level_id, $level_id, $agent, '后台修改'); return $this->successJson('修改成功'); } diff --git a/plugins/commission/src/models/AgentLevel.php b/plugins/commission/src/models/AgentLevel.php index 6e909f80..a2d3d9c7 100644 --- a/plugins/commission/src/models/AgentLevel.php +++ b/plugins/commission/src/models/AgentLevel.php @@ -97,6 +97,7 @@ class AgentLevel extends BaseModel //'level' => 'required|unique:yz_agent_level', 'level' => ['required', Rule::unique($this->table) ->ignore($this->id) + ->where('level_type', $this->level_type) ->where('uniacid', \YunShop::app()->uniacid)] ]; $arr += static::getOpenLevel(); diff --git a/plugins/commission/src/models/Agents.php b/plugins/commission/src/models/Agents.php index cdd631a8..96db60a6 100644 --- a/plugins/commission/src/models/Agents.php +++ b/plugins/commission/src/models/Agents.php @@ -37,7 +37,7 @@ class Agents extends BaseModel /** * @var array */ - protected $appends = ['agent_level']; + protected $appends = ['agent_level','cultural_level']; public $AgentLevel; @@ -97,6 +97,26 @@ class Agents extends BaseModel return $this->AgentLevel; } + public function getCulturalLevelAttribute() + { + $set = \Setting::get('plugin.commission'); + if (!isset($this->CulturalLevel)) { + $this->CulturalLevel = AgentLevel::getAgentLevelByid($this->cultural_level_id); + if (!isset($this->CulturalLevel)) { + $this->CulturalLevel['name'] = AgentLevel::getDefaultLevelName(); + if ($set['level'] >= 1) { + $this->CulturalLevel['first_level'] = $set['first_level']; + } elseif ($set['level'] >= 2) { + $this->CulturalLevel['second_level'] = $set['second_level']; + } elseif ($set['level'] >= 3) { + $this->CulturalLevel['third_level'] = $set['third_level']; + } + } + } + return $this->CulturalLevel; + } + + /** * @return mixed @@ -485,10 +505,16 @@ class Agents extends BaseModel * @return mixed * 修改分销商等级 */ - public static function updatedLevelByMemberId($levelId, $memberID) - { - return self::where('member_id', $memberID) - ->update(['agent_level_id' => $levelId, 'updated_at' => time()]); + public static function updatedLevelByMemberId($levelId, $memberID){ + //等级类型:0=普通等级,1=文创等级 + $levelType = AgentLevel::uniacid()->where('id',$levelId)->value('level_type'); + $update = [ + 'updated_at' => time() + ]; + if($levelType == 1) $update['cultural_level_id'] = $levelId; + else $update['agent_level_id'] = $levelId; + + return self::where('member_id', $memberID)->update($update); } diff --git a/plugins/commission/src/services/UpgradeService.php b/plugins/commission/src/services/UpgradeService.php index f399a519..675c3494 100644 --- a/plugins/commission/src/services/UpgradeService.php +++ b/plugins/commission/src/services/UpgradeService.php @@ -19,8 +19,8 @@ use Yunshop\Love\Common\Services\ConstService; use Yunshop\Merchant\common\services\CenterUpgradeService; use Yunshop\TeamDividend\admin\models\MemberChild; -class UpgradeService -{ +class UpgradeService{ + /** * 订单升级入口 * @param int $memberId @@ -116,7 +116,7 @@ class UpgradeService // \Log::debug('分销商升级 - 直推间推人数 - 升级条件:',$oneOrTwo); // 循环所有上级 判断是否可以升级到当前等级 foreach($parentAgent as $parentUser){ - if((int)$parentUser['agent_level']['level'] < (int)$levelItem['level']){ + if(($levelItem['level_type'] == 1 ? (int)$parentUser['cultural_level']['level'] : (int)$parentUser['agent_level']['level']) < (int)$levelItem['level']){ $oneLvAndTwoLvNum = MemberParent::getOneOrTwoList($parentUser['member_id']); $subMemberIds = array_column($oneLvAndTwoLvNum,'member_id'); $hasNum = (int)\Yunshop\Commission\models\Log::uniacid() @@ -126,10 +126,10 @@ class UpgradeService // 判断:是否达到升级要求 需求人数小于等于当前人数-达成升级条件 $people = (int)$oneOrTwo['one_or_two_people'] > 0 ? (int)$oneOrTwo['one_or_two_people'] : 1; $isReach = (boolean)($people <= $hasNum); - $validateResult = static::validate($levelItem['level'], $parentUser['member_id']); + $validateResult = static::validate($levelItem, $parentUser['member_id']); // \Log::debug('分销商升级 - 直推间推人数 - 升级:',[ // '当前分销商uid' => $parentUser['member_id'], - // '当前分销商等级权重' => $parentUser['agent_level']['level'], + // '当前分销商等级权重' => ($levelItem['level_type'] == 1 ? (int)$parentUser['cultural_level']['level'] : (int)$parentUser['agent_level']['level']), // '升级后等级权重' => (int)$levelItem['level'], // '一二下级id' => implode(',',$subMemberIds), // '拥有的人数' => $hasNum, @@ -139,7 +139,7 @@ class UpgradeService // ]); if($isReach && $validateResult) { \Yunshop\Commission\models\Log::addLog( - $validateResult['agent_level_id'], + $levelItem['level_type'] == 1 ? $validateResult['cultural_level_id'] : $validateResult['agent_level_id'], $levelItem['id'], $validateResult, "直推间推{$levelNameList[$oneOrTwo['one_or_two_level_id']]}满{$people}人" @@ -173,7 +173,7 @@ class UpgradeService $parentMemberIds = array_column($parents,'parent_id'); $parentMemberIds[] = $memberId; $parentAgent = Agents::uniacid() - ->select(['member_id','agent_level_id','is_black']) + ->select(['member_id','agent_level_id','cultural_level_id','is_black']) ->whereIn('member_id',$parentMemberIds) ->get() ->toArray(); @@ -186,9 +186,13 @@ class UpgradeService return $parentAgent; } - - - // 升级条件判断 - 团队业绩满多少 + /** + * Common: 升级条件判断 - 团队业绩满多少 + * Author: wu-hui + * Time: 2023/11/23 14:07 + * @param $memberId + * @param string $type + */ public static function teamPerformance($memberId, $type = 'order_receive'){ try{ // 等级 升级条件 @@ -200,6 +204,8 @@ class UpgradeService // 获取全部上级 $parentAgent = self::getParentsCommission($memberId); foreach($levels as $levelIndex => $levelItem){ + // \Log::debug('分销商升级 - 团队业绩满多少 - 开始处理:',$levelItem); + $upgraded = $levelItem['upgraded'] ?? []; $teamPerformance = $upgraded['team_performance'] ?? []; // 判断:支付后 完成后 是否存在对应的设置 @@ -207,7 +213,7 @@ class UpgradeService // \Log::debug('分销商升级 - 团队业绩满多少 - 升级条件:',$teamPerformance); // 循环所有上级 判断是否可以升级到当前等级 foreach($parentAgent as $parentUser){ - if((int)$parentUser['agent_level']['level'] < (int)$levelItem['level']){ + if(($levelItem['level_type'] == 1 ? (int)$parentUser['cultural_level']['level'] : (int)$parentUser['agent_level']['level']) < (int)$levelItem['level']){ // 获取直推下级列表 $subIds = MemberChild::uniacid() ->where('level',1) @@ -225,10 +231,10 @@ class UpgradeService if((int)$teamPerformance['team_performance_close_max'] == 1) $maxAmount = max($subPerformance); $teamOrderPrice = (float)sprintf("%.2f",array_sum($subPerformance) - $maxAmount); // 是否达到升级条件 - $validateResult = static::validate($levelItem['level'], $parentUser['member_id']); + $validateResult = static::validate($levelItem, $parentUser['member_id']); if($teamOrderPrice >= (float)$teamPerformance['team_performance_total'] && $validateResult) { \Yunshop\Commission\models\Log::addLog( - $validateResult['agent_level_id'], + $levelItem['level_type'] == 1 ? $validateResult['cultural_level_id'] : $validateResult['agent_level_id'], $levelItem['id'], $validateResult, "团队业绩满{$teamPerformance['team_performance_total']}元" @@ -249,9 +255,9 @@ class UpgradeService { $isUpgrade = UpgrateConditionsService::teamBuySum($uid,$level_model,'', ''); - if ($isUpgrade && $result = static::validate($level_model['level'], $uid)){ + if ($isUpgrade && $result = static::validate($level_model, $uid)){ \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level_model['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level_model['id'], $result, '[或]团队下级购买指定ID商品满[实际-' . $level_model . ']条件-[' . $level_model['upgraded']['team_buy_sum'] . ']' @@ -280,10 +286,10 @@ class UpgradeService $sum += 1; } if ($sum >= $level_model['upgraded']['buy_and_sum']['sum']) { - $result = static::validate($level_model['level'], $uid); + $result = static::validate($level_model, $uid); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level_model['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level_model['id'], $result, '[或]分销订单金额[实际-' . $level_model . ']条件-[' . $level_model['upgraded']['buy_and_sum'] . ']' @@ -304,10 +310,10 @@ class UpgradeService public static function orderMoney($sum_price, $level, $memberId) { if ($sum_price >= $level['upgraded']['order_money']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]分销订单金额[实际-' . $sum_price . ']条件-[' . $level['upgraded']['order_money'] . ']' @@ -327,10 +333,10 @@ class UpgradeService public static function orderCount($count_id, $level, $memberId) { if ($count_id >= $level['upgraded']['order_count']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]分销订单数量[实际-' . $count_id . '条件-' . $level['upgraded']['order_count'] . ']' @@ -351,10 +357,10 @@ class UpgradeService } $sum_price = $orderModel->where('status', '>=', $status)->sum("price"); if ($sum_price >= $level['upgraded']['self_buy_money']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]自购订单金额[实际-' . $sum_price . '条件-' . $level['upgraded']['self_buy_money'] . ']' @@ -392,11 +398,11 @@ class UpgradeService if (bccomp($sum, $level['upgraded']['self_love'] ?: 0, 2) == -1) { return; } - if (!$result = static::validate($level['level'], $uid)) { + if (!$result = static::validate($level, $uid)) { return; } \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]累计获得自购赠送冻结爱心值满[实际-' . $sum . '条件-' . $level['upgraded']['self_love_after_black'] . ']' @@ -443,11 +449,11 @@ class UpgradeService if (bccomp($sum, $level['upgraded']['self_love_after_black'] ?: 0, 2) == -1) { return; } - if (!$result = static::validate($level['level'], $uid)) { + if (!$result = static::validate($level, $uid)) { return; } \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]取消黑名单后累计获得自购赠送冻结爱心值满[实际-' . $sum . '条件-' . $level['upgraded']['self_love_after_black'] . ']' @@ -471,10 +477,10 @@ class UpgradeService } $count_id = $orderModel->where('status', '>=', $status)->count("id"); if ($count_id >= $level['upgraded']['self_buy_count']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]自购订单数量[实际-' . $count_id . '条件-' . $level['upgraded']['self_buy_count'] . ']' @@ -496,10 +502,10 @@ class UpgradeService \Log::debug("监听一级订单"); \Log::debug("监听upgraded", [$sum_price, $level['upgraded']['first_order_money']]); if ($sum_price >= $level['upgraded']['first_order_money']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]一级分销订单金额[实际-' . $sum_price . '条件-' . $level['upgraded']['first_order_money'] . ']' @@ -519,10 +525,10 @@ class UpgradeService public static function firstOrderCount($count_id, $level, $memberId) { if ($count_id >= $level['upgraded']['first_order_count']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]一级分销订单数量[实际-' . $count_id . '条件-' . $level['upgraded']['first_order_count'] . ']' @@ -667,10 +673,10 @@ class UpgradeService $count_member_id = $memberPraentData->count('member_id'); if ($count_member_id >= $level['upgraded']['lower_count']) { - $result = static::validate($level['level'], $member['member_id']); + $result = static::validate($level, $member['member_id']); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]下线人数[实际-' . $count_member_id . '条件-' . $level['upgraded']['lower_count'] . ']' @@ -695,10 +701,10 @@ class UpgradeService $memberPraentData = YzMember::getLowerData($member['member_id'], '1')->get(); $count_member_id = $memberPraentData->count('member_id'); if ($count_member_id >= $level['upgraded']['first_lower_count']) { - $result = static::validate($level['level'], $member['member_id']); + $result = static::validate($level, $member['member_id']); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]一级下线人数[实际-' . $count_member_id . '条件-' . $level['upgraded']['first_lower_count'] . ']' @@ -749,10 +755,10 @@ class UpgradeService $count_id = $agentPraentData->count('id'); if ($count_id >= $level['upgraded']['lower_agent_count']) { - $result = static::validate($level['level'], $member['member_id']); + $result = static::validate($level, $member['member_id']); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]下级分销人数[实际-' . $count_id . '条件-' . $level['upgraded']['lower_agent_count'] . ']' @@ -776,10 +782,10 @@ class UpgradeService $count_id = $agentPraentData->count('id'); if ($count_id >= $level['upgraded']['first_lower_agent_count']) { - $result = static::validate($level['level'], $member['member_id']); + $result = static::validate($level, $member['member_id']); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]下级一级分销人数[实际-' . $count_id . '条件-' . $level['upgraded']['first_lower_agent_count'] . ']' @@ -811,10 +817,10 @@ class UpgradeService foreach ($levels as $level) { if (isset($level['upgraded']['settle_money'])) { if ($agentModel->commission_total >= $level['upgraded']['settle_money']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]佣金[实际-' . $agentModel->commission_total . '条件-' . $level['upgraded']['settle_money'] . ']' @@ -847,10 +853,10 @@ class UpgradeService foreach ($levels as $level) { if (isset($level['upgraded']['goods'])) { if ($goodsId == $level['upgraded']['goods']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]购买指定商品[实际-' . $goodsId . '条件-' . json_encode($level['upgraded']['goods'], true) . ']' @@ -884,10 +890,10 @@ class UpgradeService if (isset($level['upgraded']['many_good'])) { // if (empty(($level['upgraded']['self_order_after']))) { if (in_array($goodsId, $level['upgraded']['many_good'])) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]购买指定商品之一[实际-' . $goodsId . '条件-' . json_encode( @@ -925,10 +931,10 @@ class UpgradeService if (isset($level['upgraded']['goods'])) { if ($level['upgraded']['self_order_after'] == 1) { if ($goodsId == $level['upgraded']['goods']) { - $result = static::validate($level['level'], $memberId); + $result = static::validate($level, $memberId); if ($result) { \Yunshop\Commission\models\Log::addLog( - $result['agent_level_id'], + $level['level_type'] == 1 ? $result['cultural_level_id'] : $result['agent_level_id'], $level['id'], $result, '[或]购买指定商品付款后[实际-' . $goodsId . '条件-' . json_encode( @@ -946,17 +952,18 @@ class UpgradeService return; } - /** - * @return array - */ - public static function getLevelUpgraded() - { - $result = AgentLevel::getLevels()->orderBy('level', 'desc')->get(); + + // 获取等级信息 + public static function getLevelUpgraded(){ + $result = AgentLevel::getLevels() + ->orderBy('level', 'desc') + ->get(); $levelData = []; foreach ($result as $key => $level) { $levelData[$key] = [ 'id' => $level['id'], 'level' => $level['level'], + 'level_type' => $level['level_type'], 'name' => $level['name'], 'upgraded' => unserialize($level['upgraded']), ]; @@ -975,15 +982,26 @@ class UpgradeService if ($agentModel->agent_not_upgrade) { return false; } - $agentLevel = isset($agentModel->agentLevel['level']) ? $agentModel->agentLevel['level'] : 0; - if ($level <= $agentLevel) { + + $levelWeight = isset($agentModel->agentLevel['level']) ? $agentModel->agentLevel['level'] : 0; + if((int)$level['level_type'] == 1 ) $levelWeight = isset($agentModel->culturalLevel['level']) ? $agentModel->culturalLevel['level'] : 0; + if ((int)$level['level'] <= $levelWeight) { return false; } + return $agentModel; } public static function upgrade($level, $memberId, $agent) { + + // \Log::debug("分销商升级 - 升级开始", [ + // '新等级' => $level, + // '用户id' => $memberId, + // '旧普通等级' => $agent->agent_level_id, + // '旧文创等级' => $agent->cultural_level_id, + // ]); + $set = Setting::get('plugin.commission'); $newLevel = AgentLevel::getAgentLevelByid($level['id']); if (!$newLevel) { @@ -991,13 +1009,13 @@ class UpgradeService return; } $newLevel = $newLevel->toArray(); - $oldLevel = AgentLevel::getAgentLevelByid($agent->agent_level_id); + $oldLevel = AgentLevel::getAgentLevelByid($level['level_type'] == 1 ? $agent->cultural_level_id : $agent->agent_level_id); // 判断:如果当前等级人数已经达到限制 则不升级(上限小于等于已存在数量 不能升级到该等级) $hasNum = (int)\Yunshop\Commission\models\Log::uniacid()->where('after_level_id',$level['id'])->where('uid','!=',$memberId)->count(DB::raw('DISTINCT(uid)')); if((int)$newLevel['number_limit'] <= $hasNum && (int)$newLevel['number_limit'] > 0) { \Log::debug("分销商等级变更 - 人数限制判断", [ 'next_lv_id' => $level['id'], - 'current_lv_id' => $agent->agent_level_id, + 'current_lv_id' => $level['level_type'] == 1 ? $agent->cultural_level_id : $agent->agent_level_id, 'next_lv_limit' => $newLevel['number_limit'], 'has_num' => $hasNum, ]); @@ -1067,6 +1085,8 @@ class UpgradeService 'settle_money' => '结算佣金总额满' . $data['settle_money'] . '元', 'self_love' => '累计获得自购赠送冻结' . (defined(LOVE_NAME) ? LOVE_NAME : '爱心值') . '满' . $data['self_love'], 'self_love_after_black' => '移出黑名单后累计获得自购赠送冻结' . (defined(LOVE_NAME) ? LOVE_NAME : '爱心值') . '满' . $data['self_love_after_black'], + 'one_or_two' => "直推间推某个等级满{$data['one_or_two']['one_or_two_people']}人", + 'team_performance' => "团队业绩满{$data['team_performance']['team_performance_total']}元" . ($data['team_performance']['team_performance_close_max'] == 1 ? ';去除最大的那条线' : ''), ]; $remark = '[与]'; @@ -1075,6 +1095,10 @@ class UpgradeService } $remark = rtrim($remark, '~'); } - \Yunshop\Commission\models\Log::addLog($agentModel['agent_level_id'], $level['id'], $agentModel, $remark); + \Yunshop\Commission\models\Log::addLog( + $level['level_type'] == 1 ? $agentModel['cultural_level_id'] : $agentModel['agent_level_id'], + $level['id'], + $agentModel, + $remark); } } \ No newline at end of file diff --git a/plugins/commission/views/admin/agent_list.blade.php b/plugins/commission/views/admin/agent_list.blade.php index 1f0d3390..c47d2f52 100644 --- a/plugins/commission/views/admin/agent_list.blade.php +++ b/plugins/commission/views/admin/agent_list.blade.php @@ -123,23 +123,23 @@ - - - - - - - - - - + + + + + + + + + + @foreach($list as $row) - - + - - - - - - - - - + + + - @endforeach
会员ID推荐人昵称姓名
手机
分销商等级
下级分销商人数
累计佣金
已打款佣金
关注黑名单操作会员ID推荐人昵称姓名
手机
分销商等级
文创等级
下级分销商人数累计佣金
已打款佣金
关注黑名单操作
{{$row['member_id']}} + {{$row['member_id']}} @if($row->toParent) @@ -149,51 +149,39 @@ @endif +
{{$row->Member['nickname']}}
- {{$row->Member['realname']}} -
- {{$row->Member['mobile']}} +
+ {{$row->Member['realname'] ?? '/'}} +
+ {{$row->Member['mobile'] ?? '/'}}
- + + -{{-- @if($row->agentLevel['name'] == '默认等级')--}} -{{-- {{$defaultlevelname}}--}} -{{-- @else--}} -{{-- {{$row->agentLevel['name']}}--}} -{{-- @endif--}} -
{{$row['lowers']}}人
- {{$row['commission_total']}} -
- {{$row['commission_pay']}} -
- @if($row['fans']['follow']) 已关注 @else 未关注 @endif - - @if($row['is_black']) 是 @else 否 @endif + {{$row['lowers']}}人 + {{$row['commission_total'] ?? '0.00'}} +
+ {{$row['commission_pay'] ?? '0.00'}}
@if($row['fans']['follow']) 已关注 @else 未关注 @endif@if($row['is_black']) 是 @else 否 @endif
@@ -289,13 +276,14 @@ $('.tpl-agent-level').change(function () { var agencyId = $(this).data('agencyid'); + var leveltype = $(this).data('leveltype'); var levelId = $(this).val(); var old_level_id = $(this).data('oldlevelid'); if(confirm('确定要修改分销商等级吗') === true){ $.ajax({ url: "{!! yzWebUrl('plugin.commission.admin.agent.changeLevel') !!}", type: "post", - data: {id: agencyId, value: levelId}, + data: {id: agencyId, value: levelId, level_type: leveltype}, cache: false, success: function ($data) { // console.log($data); diff --git a/plugins/commission/views/admin/level_info.blade.php b/plugins/commission/views/admin/level_info.blade.php index 18831b1f..01bc039d 100644 --- a/plugins/commission/views/admin/level_info.blade.php +++ b/plugins/commission/views/admin/level_info.blade.php @@ -23,6 +23,21 @@ +
+ +
+
+ + +
+ 用户升级到普通等级会改变经销商等级不会改变文创等级,升级到文创等级则不会改变经销商等级只会改变文创等级 +
+
+
diff --git a/plugins/commission/views/admin/level_list.blade.php b/plugins/commission/views/admin/level_list.blade.php index a37e8c79..a023fb25 100644 --- a/plugins/commission/views/admin/level_list.blade.php +++ b/plugins/commission/views/admin/level_list.blade.php @@ -2,6 +2,11 @@ @section('content') @section('title', trans('分销等级管理')) +
    @@ -16,33 +21,32 @@ - - - @if($set['level']>=1) - @endif - @if($set['level']>=2) - @endif - @if($set['level']>=3) - @endif + + + + @if($set['level']>=1) @endif + @if($set['level']>=2) @endif + @if($set['level']>=3) @endif - - + + @foreach($list as $row) - - - @if($set['level']>=1) - - @endif - @if($set['level']>=2) - - @endif - @if($set['level']>=3) - - @endif + + + + @if($set['level']>=1)@endif + @if($set['level']>=2)@endif + @if($set['level']>=3)@endif - - +
    等级权重等级名称一级比例二级比例三级比例等级权重等级名称等级类型一级比例二级比例三级比例升级条件等级人数操作等级人数操作
    {{$row->level}}{{$row->name}}{{$row->first_level}}%{{$row->second_level}}%{{$row->third_level}}%{{$row->level}}{{$row->name}} + @if($row->level_type == 1) + 文创等级 + @else + 普通等级 + @endif + {{$row->first_level}}%{{$row->second_level}}%{{$row->third_level}}% @if($row['upgrades']) @foreach($row['upgrades'] as $type => $upgrade) @@ -59,10 +63,8 @@ 无升级条件 @endif - {{$row->agent_count}} - + {{$row->agent_count}} $row['id']])}}">编辑 $row['id']])}}" onclick="return confirm('确认删除此等级吗?');return false;">删除 diff --git a/plugins/cultural-space/src/models/CulturalSpace.php b/plugins/cultural-space/src/models/CulturalSpace.php index c4ac16fc..535474d3 100644 --- a/plugins/cultural-space/src/models/CulturalSpace.php +++ b/plugins/cultural-space/src/models/CulturalSpace.php @@ -333,6 +333,8 @@ class CulturalSpace extends BaseModel $teamAmount = $this->getTeamOrderAmount($uid); // 获取加权收益 $weightIncome = ShareholderDividendModel::getIncome((int)$uid,(int)1)->sum('yz_member_income.amount'); + // 分享奖励 + $shareReward = 0; // $isPartner = 0; $list = [ @@ -346,6 +348,7 @@ class CulturalSpace extends BaseModel 'team_performance' => ['key_name' => 'team_performance','title' => '团队总业绩','num' => $teamAmount['team_amount'],'sort' => 8], 'weight_income' => ['key_name' => 'weight_income','title' => '加权收益','num' => $weightIncome,'sort' => 9], 'shareholding_income' => ['key_name' => 'shareholding_income','title' => '股权收益','num' => 0,'sort' => 10], + 'share_reward' => ['key_name' => 'shareholding_income','title' => '分享奖励','num' => $shareReward,'sort' => 11], ]; // 合伙人等级增加显示加权收益,不显示服务收益、贡献收益、贡献值分红 // if($isPartner) unset($list['service_income'],$list['contribution_income'],$list['contribution_bonus']);