|
|
|
|
@ -51,6 +51,9 @@ class CourseContentCheckController extends BaseController
|
|
|
|
|
* @OA\Parameter(name="sort_type", in="query", @OA\Schema(type="string"), required=false, description="排序类型"),
|
|
|
|
|
* @OA\Parameter(name="course_id", in="query", @OA\Schema(type="string"), required=false, description="course_id"),
|
|
|
|
|
* @OA\Parameter(name="course_content_id", in="query", @OA\Schema(type="string"), required=false, description="course_content_id"),
|
|
|
|
|
* @OA\Parameter(name="has_check", in="query", @OA\Schema(type="string"), required=false, description="是否签到0否1是"),
|
|
|
|
|
* @OA\Parameter(name="name", in="query", @OA\Schema(type="string"), required=false, description="name"),
|
|
|
|
|
* @OA\Parameter(name="mobile", in="query", @OA\Schema(type="string"), required=false, description="mobile"),
|
|
|
|
|
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
|
|
|
|
|
* @OA\Response(
|
|
|
|
|
* response="200",
|
|
|
|
|
@ -61,14 +64,34 @@ class CourseContentCheckController extends BaseController
|
|
|
|
|
public function index()
|
|
|
|
|
{
|
|
|
|
|
$all = request()->all();
|
|
|
|
|
$list = CourseSign::with(['course.typeDetail', 'user', 'courseContentCheck' => function ($query) use ($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']);
|
|
|
|
|
}
|
|
|
|
|
}])->where(function ($query) use ($all) {
|
|
|
|
|
})->get();
|
|
|
|
|
|
|
|
|
|
$list = CourseSign::with(['course.typeDetail', 'user'])->whereHas('user', function ($query) use ($all) {
|
|
|
|
|
if (isset($all['name'])) {
|
|
|
|
|
$query->where('name', 'like', '%' . $all['name'] . '%');
|
|
|
|
|
}
|
|
|
|
|
if (isset($all['mobile'])) {
|
|
|
|
|
$query->where('mobile', 'like', '%' . $all['mobile'] . '%');
|
|
|
|
|
}
|
|
|
|
|
})->where(function ($query) use ($all, $courseContentCheck) {
|
|
|
|
|
if (isset($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'])) {
|
|
|
|
|
foreach ($all['filter'] as $condition) {
|
|
|
|
|
$key = $condition['key'] ?? null;
|
|
|
|
|
@ -107,10 +130,40 @@ class CourseContentCheckController extends BaseController
|
|
|
|
|
->orderBy('created_at', 'desc');
|
|
|
|
|
if (isset($all['is_export']) && !empty($all['is_export'])) {
|
|
|
|
|
$list = $list->limit(5000)->get()->toArray();
|
|
|
|
|
foreach ($list as &$item) {
|
|
|
|
|
$courseContentCheck = CourseContentCheck::where('user_id', $item['user_id'])
|
|
|
|
|
->where(function ($query) use ($all) {
|
|
|
|
|
if (isset($all['course_content_id'])) {
|
|
|
|
|
$query->where('course_content_id', $all['course_content_id']);
|
|
|
|
|
}
|
|
|
|
|
if (isset($all['course_id'])) {
|
|
|
|
|
$query->where('course_id', $all['course_id']);
|
|
|
|
|
}
|
|
|
|
|
})->first();
|
|
|
|
|
// 是否存在courseContentCheck
|
|
|
|
|
$item['course_content_check_created_at'] = '';
|
|
|
|
|
if ($courseContentCheck) {
|
|
|
|
|
$item['course_content_check_text'] = '已签到';
|
|
|
|
|
$item['course_content_check_created_at'] = $courseContentCheck->created_at;
|
|
|
|
|
} else {
|
|
|
|
|
$item['course_content_check_text'] = '未签到';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return Excel::download(new CommonExport($list, $all['export_fields'] ?? ''), $all['file_name'] ?? '' . date('YmdHis') . '.xlsx');
|
|
|
|
|
} else {
|
|
|
|
|
// 输出
|
|
|
|
|
$list = $list->paginate($all['page_size'] ?? 20);
|
|
|
|
|
foreach ($list as $item) {
|
|
|
|
|
$item->course_content_check = CourseContentCheck::where('user_id', $item->user_id)
|
|
|
|
|
->where(function ($query) use ($all) {
|
|
|
|
|
if (isset($all['course_content_id'])) {
|
|
|
|
|
$query->where('course_content_id', $all['course_content_id']);
|
|
|
|
|
}
|
|
|
|
|
if (isset($all['course_id'])) {
|
|
|
|
|
$query->where('course_id', $all['course_id']);
|
|
|
|
|
}
|
|
|
|
|
})->first();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return $this->success($list);
|
|
|
|
|
}
|
|
|
|
|
|