master
cody 3 months ago
parent 1debf5b24b
commit 08a72aefef

@ -64,6 +64,16 @@ class CourseContentCheckController extends BaseController
public function index() public function index()
{ {
$all = request()->all(); $all = request()->all();
// 签到用户
$courseContentCheck = CourseContentCheck::where(function ($query) use ($all) {
if (isset($all['course_id'])) {
$query->where('course_id', $all['course_id']);
}
if (isset($all['course_content_id'])) {
$query->where('course_content_id', $all['course_content_id']);
}
})->get();
$list = CourseSign::with(['course.typeDetail', 'user'])->whereHas('user', function ($query) use ($all) { $list = CourseSign::with(['course.typeDetail', 'user'])->whereHas('user', function ($query) use ($all) {
if (isset($all['name'])) { if (isset($all['name'])) {
$query->where('name', 'like', '%' . $all['name'] . '%'); $query->where('name', 'like', '%' . $all['name'] . '%');
@ -71,10 +81,17 @@ class CourseContentCheckController extends BaseController
if (isset($all['mobile'])) { if (isset($all['mobile'])) {
$query->where('mobile', 'like', '%' . $all['mobile'] . '%'); $query->where('mobile', 'like', '%' . $all['mobile'] . '%');
} }
})->where(function ($query) use ($all) { })->where(function ($query) use ($all, $courseContentCheck) {
if (isset($all['course_id'])) { if (isset($all['course_id'])) {
$query->where('course_id', $all['course_id']); $query->where('course_id', $all['course_id']);
} }
if (isset($all['has_check'])) {
if ($all['has_check'] == 1) {
$query->whereIn('user_id', $courseContentCheck->pluck('user_id'));
} else {
$query->whereNotIn('user_id', $courseContentCheck->pluck('user_id'));
}
}
if (isset($all['filter']) && !empty($all['filter'])) { if (isset($all['filter']) && !empty($all['filter'])) {
foreach ($all['filter'] as $condition) { foreach ($all['filter'] as $condition) {
$key = $condition['key'] ?? null; $key = $condition['key'] ?? null;
@ -111,21 +128,6 @@ class CourseContentCheckController extends BaseController
} }
})->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc') })->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc')
->orderBy('created_at', 'desc'); ->orderBy('created_at', 'desc');
if (isset($all['has_check'])) {
if ($all['has_check'] == 1) {
$list = $list->whereHas('courseContentCheck', function ($query) use ($all) {
if (isset($all['course_content_id'])) {
$query->where('course_content_id', $all['course_content_id']);
}
});
} else {
$list = $list->whereDoesntHave('courseContentCheck', function ($query) use ($all) {
if (isset($all['course_content_id'])) {
$query->where('course_content_id', $all['course_content_id']);
}
});
}
}
if (isset($all['is_export']) && !empty($all['is_export'])) { if (isset($all['is_export']) && !empty($all['is_export'])) {
$list = $list->limit(5000)->get()->toArray(); $list = $list->limit(5000)->get()->toArray();
foreach ($list as $item) { foreach ($list as $item) {
@ -137,9 +139,9 @@ class CourseContentCheckController extends BaseController
})->first(); })->first();
// 是否存在courseContentCheck // 是否存在courseContentCheck
if ($courseContentChecks) { if ($courseContentChecks) {
$item->course_content_check_text = '已签到'; $item['course_content_check_text'] = '已签到';
} else { } else {
$item->course_content_check_text = '未签到'; $item['course_content_check_text'] = '未签到';
} }
} }
return Excel::download(new CommonExport($list, $all['export_fields'] ?? ''), $all['file_name'] ?? '' . date('YmdHis') . '.xlsx'); return Excel::download(new CommonExport($list, $all['export_fields'] ?? ''), $all['file_name'] ?? '' . date('YmdHis') . '.xlsx');
@ -147,7 +149,7 @@ class CourseContentCheckController extends BaseController
// 输出 // 输出
$list = $list->paginate($all['page_size'] ?? 20); $list = $list->paginate($all['page_size'] ?? 20);
foreach ($list as $item) { foreach ($list as $item) {
$item->courseContentChecks = CourseContentCheck::where('course_id', $item->course_id) $item->course_content_checks = CourseContentCheck::where('course_id', $item->course_id)
->where(function ($query) use ($all) { ->where(function ($query) use ($all) {
if (isset($all['course_content_id'])) { if (isset($all['course_content_id'])) {
$query->where('course_content_id', $all['course_content_id']); $query->where('course_content_id', $all['course_content_id']);

Loading…
Cancel
Save