From 3de9bce2761d0f293d21cf86eb8fbdd576fe53dd Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 10:43:27 +0800 Subject: [PATCH 01/12] update --- .../Controllers/Admin/OtherController.php | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 7912f9e..fd25a62 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -46,12 +46,29 @@ class OtherController extends CommonController $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(); - // 上市企业总市值 - $company['company_market'] = Company::where('company_market', 1)->sum('market_value'); + + // 开课场次(全部) + $calendar = Calendar::get(); + $company['course_total'] = $calendar->count(); + $company['course_day_total'] = $calendar->sum(function ($course) { + $start = Carbon::parse($course->start_time); + $end = Carbon::parse($course->end_time); + return $end->diffInDays($start) + 1; // 包含起始和结束日期 + }); + // 开课场次(当年) + $calendarYear = Calendar::where('date', 'like', '%' . date('Y') . '%')->get(); + $company['course_total_year'] = $calendarYear->count(); + $company['course_day_total_year'] = $calendarYear->sum(function ($course) { + $start = Carbon::parse($course->start_time); + $end = Carbon::parse($course->end_time); + return $end->diffInDays($start) + 1; // 包含起始和结束日期 + }); + // 校友企业总融资额 $company['company_fund'] = Company::where('is_schoolmate', 1)->sum('company_fund'); // 校友企业总估值 $company['valuation'] = Company::where('is_schoolmate', 1)->sum('valuation'); + // 校友企业所属领域 $industryTotal = []; $industries = ParameterDetail::where('parameter_id', 4)->get(); From 9c02a5a4b96caf3d29a8570714e4bf8572a2fbd8 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 11:09:54 +0800 Subject: [PATCH 02/12] update --- database/migrations/2025_06_19_105447_alert_users_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2025_06_19_105447_alert_users_table.php b/database/migrations/2025_06_19_105447_alert_users_table.php index 87851b4..ab17322 100644 --- a/database/migrations/2025_06_19_105447_alert_users_table.php +++ b/database/migrations/2025_06_19_105447_alert_users_table.php @@ -13,7 +13,7 @@ return new class extends Migration { public function up() { Schema::table('users', function (Blueprint $table) { - $table->string('no')->nullable()->comment('学号'); + // $table->string('no')->nullable()->comment('学号'); $table->integer('company_id')->nullable()->comment('企业id'); $table->date('birthday')->nullable()->comment('生日')->change(); // no字段唯一索引 From d0458d635916dca7d390815ed54ffb20161413dd Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 11:10:38 +0800 Subject: [PATCH 03/12] update --- database/migrations/2025_06_19_105447_alert_users_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2025_06_19_105447_alert_users_table.php b/database/migrations/2025_06_19_105447_alert_users_table.php index ab17322..9f4fb9f 100644 --- a/database/migrations/2025_06_19_105447_alert_users_table.php +++ b/database/migrations/2025_06_19_105447_alert_users_table.php @@ -14,7 +14,7 @@ return new class extends Migration { { Schema::table('users', function (Blueprint $table) { // $table->string('no')->nullable()->comment('学号'); - $table->integer('company_id')->nullable()->comment('企业id'); + // $table->integer('company_id')->nullable()->comment('企业id'); $table->date('birthday')->nullable()->comment('生日')->change(); // no字段唯一索引 $table->unique('no'); From 01903fd33d9811ad11dc5dfb2525a989ef586c7f Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 11:11:22 +0800 Subject: [PATCH 04/12] update --- database/migrations/2025_06_19_105447_alert_users_table.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/database/migrations/2025_06_19_105447_alert_users_table.php b/database/migrations/2025_06_19_105447_alert_users_table.php index 9f4fb9f..87851b4 100644 --- a/database/migrations/2025_06_19_105447_alert_users_table.php +++ b/database/migrations/2025_06_19_105447_alert_users_table.php @@ -13,8 +13,8 @@ return new class extends Migration { public function up() { Schema::table('users', function (Blueprint $table) { - // $table->string('no')->nullable()->comment('学号'); - // $table->integer('company_id')->nullable()->comment('企业id'); + $table->string('no')->nullable()->comment('学号'); + $table->integer('company_id')->nullable()->comment('企业id'); $table->date('birthday')->nullable()->comment('生日')->change(); // no字段唯一索引 $table->unique('no'); From 57de129aa89f6d3ef22ff4d50be2b37d225389c5 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 11:22:02 +0800 Subject: [PATCH 05/12] update --- app/Models/User.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/Models/User.php b/app/Models/User.php index 3eda1ab..cbdadd7 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -90,6 +90,15 @@ class User extends Authenticatable implements Auditable return $this->username; } + public function getMobileAttribute($value) + { + // 如果url中包含admin字符串,则所有的手机号显示中间4位星号代替 + if (strpos(request()->url(), 'admin') !== false && env('APP_ENV') == 'local') { + return substr_replace($value, '****', 3, 4); + } + return $value; + } + public function getAppointmentTotalAttribute($value) { $now = date('Y-m-d H:i:s'); From 69643fe3339ee23178bc213dd2d2436985ada251 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 11:28:22 +0800 Subject: [PATCH 06/12] update --- app/Http/Controllers/Admin/AuthController.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Admin/AuthController.php b/app/Http/Controllers/Admin/AuthController.php index adaaad5..79b978c 100755 --- a/app/Http/Controllers/Admin/AuthController.php +++ b/app/Http/Controllers/Admin/AuthController.php @@ -136,11 +136,13 @@ class AuthController extends Controller return $item->url && $item->visible ? true : false; })->pluck("id")->toArray(); - foreach ($admin_permissions as $admin_permission) { - $pids = get_pid($all_permissions, $admin_permission->id, "pid", $permission_has_url_ids); - foreach ($pids as $pid) { - if (in_array($pid, $permission_has_url_ids)) continue; - $permission_has_url_ids[] = $pid; + if($admin->id != 1){ + foreach ($admin_permissions as $admin_permission) { + $pids = get_pid($all_permissions, $admin_permission->id, "pid", $permission_has_url_ids); + foreach ($pids as $pid) { + if (in_array($pid, $permission_has_url_ids)) continue; + $permission_has_url_ids[] = $pid; + } } } From 68eb3d7cfeac9b01f01ad97b901150bc5dcbaafe Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 11:29:21 +0800 Subject: [PATCH 07/12] update --- app/Http/Controllers/Admin/AuthController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Http/Controllers/Admin/AuthController.php b/app/Http/Controllers/Admin/AuthController.php index 79b978c..6d3c67e 100755 --- a/app/Http/Controllers/Admin/AuthController.php +++ b/app/Http/Controllers/Admin/AuthController.php @@ -144,6 +144,8 @@ class AuthController extends Controller $permission_has_url_ids[] = $pid; } } + }else{ + $permission_has_url_ids = array_column($all_permissions, "id"); } $admin_permissions = new Permission(); From b35184f74b90c1bfea611951239158c54916222d Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 11:30:27 +0800 Subject: [PATCH 08/12] update --- app/Http/Controllers/Admin/AuthController.php | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Admin/AuthController.php b/app/Http/Controllers/Admin/AuthController.php index 6d3c67e..adaaad5 100755 --- a/app/Http/Controllers/Admin/AuthController.php +++ b/app/Http/Controllers/Admin/AuthController.php @@ -136,16 +136,12 @@ class AuthController extends Controller return $item->url && $item->visible ? true : false; })->pluck("id")->toArray(); - if($admin->id != 1){ - foreach ($admin_permissions as $admin_permission) { - $pids = get_pid($all_permissions, $admin_permission->id, "pid", $permission_has_url_ids); - foreach ($pids as $pid) { - if (in_array($pid, $permission_has_url_ids)) continue; - $permission_has_url_ids[] = $pid; - } + foreach ($admin_permissions as $admin_permission) { + $pids = get_pid($all_permissions, $admin_permission->id, "pid", $permission_has_url_ids); + foreach ($pids as $pid) { + if (in_array($pid, $permission_has_url_ids)) continue; + $permission_has_url_ids[] = $pid; } - }else{ - $permission_has_url_ids = array_column($all_permissions, "id"); } $admin_permissions = new Permission(); From fc358909b916959119b00c54636e9d5a414541a4 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 13:14:05 +0800 Subject: [PATCH 09/12] update --- ..._08_27_130530_alert_course_types_table.php | 38 +++++++++++++++++++ ...025_08_27_130837_alert_calendars_table.php | 33 ++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 database/migrations/2025_08_27_130530_alert_course_types_table.php create mode 100644 database/migrations/2025_08_27_130837_alert_calendars_table.php diff --git a/database/migrations/2025_08_27_130530_alert_course_types_table.php b/database/migrations/2025_08_27_130530_alert_course_types_table.php new file mode 100644 index 0000000..b3a9252 --- /dev/null +++ b/database/migrations/2025_08_27_130530_alert_course_types_table.php @@ -0,0 +1,38 @@ +string('color')->nullable()->comment('颜色'); + $table->tinyInteger('is_arrange')->nullable()->comment('是否排课-0否1是'); + $table->tinyInteger('is_fee')->nullable()->comment('是否缴费-0否1是'); + $table->boolean('show_txl')->default(1)->comment('是否显示通讯录-0否1是 默认1'); + $table->boolean('show_mobile')->default(1)->comment('是否显示手机号-0否1是 默认1'); + $table->boolean('auto_schoolmate')->default(false)->comment('已审核学员是否自动进入校友库0否1是'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('course_types', function (Blueprint $table) { + // + }); + } +}; diff --git a/database/migrations/2025_08_27_130837_alert_calendars_table.php b/database/migrations/2025_08_27_130837_alert_calendars_table.php new file mode 100644 index 0000000..7de42ea --- /dev/null +++ b/database/migrations/2025_08_27_130837_alert_calendars_table.php @@ -0,0 +1,33 @@ +string('color')->nullable()->comment('颜色'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('calendars', function (Blueprint $table) { + // + }); + } +}; From 6a308d34e99dafd5355df0446cfc2c33cd69a31c Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 13:19:24 +0800 Subject: [PATCH 10/12] update --- .../2025_08_27_130530_alert_course_types_table.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/database/migrations/2025_08_27_130530_alert_course_types_table.php b/database/migrations/2025_08_27_130530_alert_course_types_table.php index b3a9252..0c78538 100644 --- a/database/migrations/2025_08_27_130530_alert_course_types_table.php +++ b/database/migrations/2025_08_27_130530_alert_course_types_table.php @@ -18,9 +18,9 @@ return new class extends Migration $table->string('color')->nullable()->comment('颜色'); $table->tinyInteger('is_arrange')->nullable()->comment('是否排课-0否1是'); $table->tinyInteger('is_fee')->nullable()->comment('是否缴费-0否1是'); - $table->boolean('show_txl')->default(1)->comment('是否显示通讯录-0否1是 默认1'); - $table->boolean('show_mobile')->default(1)->comment('是否显示手机号-0否1是 默认1'); - $table->boolean('auto_schoolmate')->default(false)->comment('已审核学员是否自动进入校友库0否1是'); + $table->boolean('show_txl')->nullable()->comment('是否显示通讯录-0否1是 默认1'); + $table->boolean('show_mobile')->nullable()->comment('是否显示手机号-0否1是 默认1'); + $table->boolean('auto_schoolmate')->nullable()->comment('已审核学员是否自动进入校友库0否1是'); }); } From 46bf21c039fcbae8ccdd39ce66f27560810ffb88 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 13:53:01 +0800 Subject: [PATCH 11/12] update --- app/Http/Controllers/Admin/UserController.php | 1 + database/migrations/2025_08_14_105924_alert_users_table.php | 2 ++ 2 files changed, 3 insertions(+) diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index 28ba2a3..76cdfb5 100755 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -408,6 +408,7 @@ class UserController extends BaseController * @OA\Parameter(name="remark", in="query", @OA\Schema(type="string"), description="备注"), * @OA\Parameter(name="is_black", in="query", @OA\Schema(type="string"), description="是否黑名单0否1是"), * @OA\Parameter(name="has_appointment_total", in="query", @OA\Schema(type="string"), description="预约剩余次数"), + * @OA\Parameter(name="from", in="query", @OA\Schema(type="string"), description="来源"), * @OA\Response( * response=200, * description="操作成功" diff --git a/database/migrations/2025_08_14_105924_alert_users_table.php b/database/migrations/2025_08_14_105924_alert_users_table.php index 868ef19..30c1bff 100644 --- a/database/migrations/2025_08_14_105924_alert_users_table.php +++ b/database/migrations/2025_08_14_105924_alert_users_table.php @@ -16,6 +16,8 @@ return new class extends Migration Schema::table('users', function (Blueprint $table) { // 是否黑名单 $table->boolean('is_black')->default(0)->comment('是否黑名单'); + // 来源 + $table->string('from')->nullable()->comment('来源'); }); } From 9e3aadf7ec712441b626c9242e6078e8a238b04b Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Wed, 27 Aug 2025 15:42:55 +0800 Subject: [PATCH 12/12] update --- .../Controllers/Admin/CourseController.php | 17 ++++++++++--- .../Admin/CourseSignController.php | 24 +++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/Admin/CourseController.php b/app/Http/Controllers/Admin/CourseController.php index ed904b8..3e8ca9b 100755 --- a/app/Http/Controllers/Admin/CourseController.php +++ b/app/Http/Controllers/Admin/CourseController.php @@ -44,6 +44,9 @@ class CourseController extends BaseController * @OA\Parameter(name="sort_type", in="query", @OA\Schema(type="string"), required=false, description="排序类型"), * @OA\Parameter(name="has_course_forms", in="query", @OA\Schema(type="string"), required=true, description="是否有自定义表单0否1是"), * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Parameter(name="start_date", in="query", @OA\Schema(type="string"), required=true, description="开始日期"), + * @OA\Parameter(name="end_date", in="query", @OA\Schema(type="string"), required=true, description="结束日期"), + * @OA\Parameter(name="course_type_id", in="query", @OA\Schema(type="string"), required=true, description="课程体系id,多个英文逗号"), * @OA\Response( * response="200", * description="暂无" @@ -56,8 +59,7 @@ class CourseController extends BaseController $list = $this->model->with(underlineToHump($all['show_relation'] ?? [])) ->withCount(['courseSigns' => function ($query) { $query->whereNotIn('status', [4, 5]); - }]) - ->withCount(['courseSigns as sign_pass_total' => function ($query) { + }])->withCount(['courseSigns as sign_pass_total' => function ($query) { $query->where('status', 1)->whereHas('user'); }])->withCount(['courseSigns as sign_wait_total' => function ($query) { $query->where('status', 0)->whereHas('user'); @@ -75,7 +77,16 @@ class CourseController extends BaseController if (isset($all['has_course_forms']) && !empty($all['has_course_forms'])) { $query->whereHas('courseForms'); } - + if (isset($all['start_date'])) { + $query->where('start_date', '>=', $all['start_date']); + } + if (isset($all['end_date'])) { + $query->where('end_date', '<=', $all['end_date']); + } + if (isset($all['course_type_id'])) { + $course_type_id = explode(',', $all['course_type_id']); + $query->whereIn('type', $course_type_id); + } if (isset($all['filter']) && !empty($all['filter'])) { foreach ($all['filter'] as $condition) { $key = $condition['key'] ?? null; diff --git a/app/Http/Controllers/Admin/CourseSignController.php b/app/Http/Controllers/Admin/CourseSignController.php index eed18b4..4b2df63 100755 --- a/app/Http/Controllers/Admin/CourseSignController.php +++ b/app/Http/Controllers/Admin/CourseSignController.php @@ -61,6 +61,9 @@ class CourseSignController extends BaseController * @OA\Parameter(name="mobile", in="query", @OA\Schema(type="string"), required=true, description="手机号"), * @OA\Parameter(name="education", in="query", @OA\Schema(type="string"), required=true, description="education学历"), * @OA\Parameter(name="filter_date", in="query", @OA\Schema(type="string"), required=true, description="自定义字段筛选二维数组,包含键名name,value"), + * @OA\Parameter(name="start_date", in="query", @OA\Schema(type="string"), required=true, description="开始日期"), + * @OA\Parameter(name="end_date", in="query", @OA\Schema(type="string"), required=true, description="结束日期"), + * @OA\Parameter(name="course_type_id", in="query", @OA\Schema(type="string"), required=true, description="课程体系id,多个英文逗号"), * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Response( * response="200", @@ -126,6 +129,27 @@ class CourseSignController extends BaseController } } })->where(function ($query) use ($all) { + if (isset($all['start_date'])) { + $query->whereDate('created_at', '>=', $all['start_date']); + } + if (isset($all['end_date'])) { + $query->whereDate('created_at', '<=', $all['end_date']); + } + if (isset($all['course_type_id'])) { + $course_type_id = explode(',', $all['course_type_id']); + $courses = Course::where(function ($query) use ($all) { + if (isset($all['start_date'])) { + $query->where('start_date', '>=', $all['start_date']); + } + if (isset($all['end_date'])) { + $query->where('start_date', '<=', $all['end_date']); + } + })->whereIn('type', $course_type_id)->get(); + $query->whereNotIn('status', [4, 5]) + ->where(function ($query) use ($courses) { + $query->whereIn('course_id', $courses->pluck('id')); + }); + } if (isset($all['name'])) { $query->where(function ($q) use ($all) { $q->whereHas('user', function ($q) use ($all) {