user()->userInfo; // 升级规则 $rules = config('agent.upgrade_rules'); switch ($userInfo->agent_level) { case UserInfo::AGENT_LEVEL_VIP: $data = [ // 是否显示 'display' => true, // 业绩 'team_sales_value' => [ 'label' => '业绩', 'current_team_sales_value' => $userInfo->team_sales_value, 'upgrade_team_sales_value' => '-1', ], // 代理 'agents_count' => [ 'label' => '店铺', 'current_agents_count' => $userInfo->getVipAgentsCount(), 'upgrade_agents_count' => $rules['community']['vips_agents_count'], ], ]; break; case UserInfo::AGENT_LEVEL_COMMUNITY: $data = [ 'display' => true, 'team_sales_value' => [ 'label' => '业绩', 'current_team_sales_value' => $userInfo->team_sales_value, 'upgrade_team_sales_value' => (string) $rules['district']['team_sales_value'], ], 'agents_count' => [ 'label' => '店铺', 'current_agents_count' => $userInfo->getVipAgentsCount(), 'upgrade_agents_count' => $rules['district']['vips_agents_count'], ], ]; break; case UserInfo::AGENT_LEVEL_DISTRICT: $data = [ 'display' => true, 'team_sales_value' => [ 'label' => '业绩', 'current_team_sales_value' => $userInfo->team_sales_value, 'upgrade_team_sales_value' => (string) $rules['city']['team_sales_value'], ], 'agents_count' => [ 'label' => '区代', 'current_agents_count' => $userInfo->getDistrictAgentsCountOnDifferentLines(), 'upgrade_agents_count' => $rules['city']['district_agents_count'], ], ]; break; case UserInfo::AGENT_LEVEL_CITY: $data = [ 'display' => true, 'team_sales_value' => [ 'label' => '市代', 'current_team_sales_value' => $userInfo->team_sales_value, 'upgrade_team_sales_value' => (string) $rules['province']['team_sales_value'], ], 'agents_count' => [ 'label' => '店铺', 'current_agents_count' => $userInfo->getCityAgentsCountOnDifferentLines(), 'upgrade_agents_count' => $rules['province']['city_agents_count'], ], ]; break; case UserInfo::AGENT_LEVEL_PROVINCE: $data = [ 'display' => true, 'team_sales_value' => [ 'label' => '业绩', 'current_team_sales_value' => $userInfo->team_sales_value, 'upgrade_team_sales_value' => (string) $rules['branch']['team_sales_value'], ], 'agents_count' => [ 'label' => '省代', 'current_agents_count' => $userInfo->getProvinceAgentsCountOnDifferentLines(), 'upgrade_agents_count' => $rules['branch']['province_agents_count'], ], ]; break; default: $data = [ 'display' => false, 'team_sales_value' => [ 'label' => '', 'current_team_sales_value' => '0', 'upgrade_team_sales_value' => '-1', ], 'agents_count' => [ 'label' => '', 'current_agents_count' => 0, 'upgrade_agents_count' => -1, ], ]; break; } return response()->json($data); } /** * 代理统计 * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\JsonResponse */ public function statistics(Request $request) { $path = $request->user()->userInfo->full_path; $statistics = UserInfo::selectRaw('count(1) as aggregate, agent_level') ->where('agent_level', '>=', 0) ->where('path', 'like', "{$path}%") ->groupBy('agent_level') ->pluck('aggregate', 'agent_level'); $data = []; foreach ([ UserInfo::AGENT_LEVEL_VIP => 'vip', UserInfo::AGENT_LEVEL_COMMUNITY => 'community', UserInfo::AGENT_LEVEL_DISTRICT => 'district', UserInfo::AGENT_LEVEL_CITY => 'city', UserInfo::AGENT_LEVEL_PROVINCE => 'province', UserInfo::AGENT_LEVEL_BRANCH => 'branch', ] as $k => $v) { $data[$v] = $statistics[$k] ?? 0; } return response()->json($data); } }