From f71a52c80bb8442e8ef8c498936f58edcfeb9db8 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Mon, 17 Nov 2025 13:43:25 +0800 Subject: [PATCH] update --- .../Controllers/Admin/OtherController.php | 54 +++++++++++++++++++ routes/api.php | 2 + 2 files changed, 56 insertions(+) diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 921db81..87f0d74 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -101,6 +101,60 @@ class OtherController extends CommonController return $this->success(compact('courseTypes', 'schoolmate', 'company', 'industryTotal', 'suzhou', 'country')); } + /** + * @OA\Get( + * path="/api/admin/other/home-v2", + * tags={"其他"}, + * summary="驾驶舱V2", + * description="", + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Response( + * response="200", + * description="暂无" + * ) + * ) + */ + public function homeV2() + { + // 校友总数 + $schoolmate['schoolmate_total'] = User::where('is_schoolmate', 1)->count(); + // 2025年校友数 + $schoolmate['schoolmate_year'] = User::where('is_schoolmate', 1)->where('created_at', 'like', '%' . date('Y') . '%')->count(); + + // 课程统计 + $courseTypes = CourseType::where('is_chart', 1)->get(); + $start_date = '2020-01-01'; + $end_date = date('Y-m-d'); + foreach ($courseTypes as $courseType) { + // 课程 + $courses = Course::whereIn('type', $courseType->id) + ->get(); + // 已开设期数 + $courseType->course_periods_total = Course::where('type', $courseType->id)->count(); + // 培养人数去重 + $courseType->course_signs_total = CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, $courses->pluck('id'), null, $userIds); + } + // 苏州区域数据 + $suzhou = Company::where('company_city', '苏州市') + // 根据company_area分组查询公司数量和用户数量 + ->leftJoin('users', 'companies.id', '=', 'users.company_id') + ->select( + 'company_area', + DB::raw('count(distinct companies.id) as company_total'), + DB::raw('count(distinct users.id) as user_total') + )->groupBy('company_area') + ->get(); + // 全国数据 + $country = Company::leftJoin('users', 'companies.id', '=', 'users.company_id') + ->select( + 'company_city', + DB::raw('count(distinct companies.id) as company_total'), + DB::raw('count(distinct users.id) as user_total') + )->groupBy('company_city') + ->get(); + return $this->success(compact('courseTypes', 'schoolmate', 'suzhou', 'country')); + } + /** * @OA\Get( * path="/api/admin/other/courses-home", diff --git a/routes/api.php b/routes/api.php index d1b8856..fe03fd5 100755 --- a/routes/api.php +++ b/routes/api.php @@ -35,6 +35,8 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () { Route::get('users/index', [\App\Http\Controllers\Admin\UserController::class, "index"]); Route::get('other/table-fileds', [\App\Http\Controllers\Admin\OtherController::class, "tableFileds"]); Route::get('other/home', [\App\Http\Controllers\Admin\OtherController::class, "home"]); + Route::get('other/home-v2', [\App\Http\Controllers\Admin\OtherController::class, "homeV2"]); + Route::get('other/courses-home', [\App\Http\Controllers\Admin\OtherController::class, "coursesHome"]); // 验证码登陆