From bc66ebbe619770817805bd683bd2bd1d567a34c0 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Thu, 8 Jan 2026 09:55:17 +0800 Subject: [PATCH] update --- .../Controllers/Admin/OtherController.php | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index a3713ab..7d37dcf 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -494,21 +494,30 @@ class OtherController extends CommonController break; case 'course_signs_pass_unique': - // 审核通过人数去重明细 - 使用courseSignsTotalByUnique方法获取列表 + // 审核通过人数去重明细 - 使用courseSignsTotalByUnique方法获取列表(与coursesHome保持一致) $users = CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, $course_ids, true); foreach ($users as $user) { - // 获取该学员报名的课程列表(与coursesHome逻辑保持一致) - $userCourseSigns = CourseSign::where('user_id', $user->id) + // 获取该学员报名的课程列表 - 使用与getStudentList完全一致的逻辑 + $userCourseSigns = CourseSign::where(function ($query) use ($course_ids) { + // status = 1 + $query->where('status', 1); + // course_ids筛选 + if ($course_ids && $course_ids->isNotEmpty()) { + $query->whereIn('course_id', $course_ids); + } + }) ->whereHas('course', function ($query) use ($start_date, $end_date) { + $query->where('is_chart', 1); // 开始结束日期的筛选。or查询 - $query->whereBetween('start_date', [$start_date, $end_date]) - ->whereBetween('end_date', [$start_date, $end_date]); - })->where('status', 1) - ->where(function ($query) use ($course_ids) { - if ($course_ids->isNotEmpty()) { - $query->whereIn('course_id', $course_ids); + if ($start_date && $end_date) { + $query->where(function ($q) use ($start_date, $end_date) { + $q->whereBetween('start_date', [$start_date, $end_date]) + ->orWhereBetween('end_date', [$start_date, $end_date]); + }); } - })->whereNotIn('status', [4, 5]) + }) + ->whereNotIn('status', [4, 5, 6]) + ->where('user_id', $user->id) ->with('course') ->get(); $courseNames = $userCourseSigns->pluck('course.name')->filter()->unique()->implode("\n\r");