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] 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) {