|
|
|
|
@ -38,7 +38,7 @@ class TeacherController extends BaseController
|
|
|
|
|
* @OA\Parameter(name="sort_name", in="query", @OA\Schema(type="string"), required=false, description="排序字段名字"),
|
|
|
|
|
* @OA\Parameter(name="sort_type", in="query", @OA\Schema(type="string"), required=false, description="排序类型"),
|
|
|
|
|
* @OA\Parameter(name="theme", in="query", @OA\Schema(type="string"), required=false, description="主题"),
|
|
|
|
|
* @OA\Parameter(name="direction", in="query", @OA\Schema(type="string"), required=false, description="方向"),
|
|
|
|
|
* @OA\Parameter(name="direction", in="query", @OA\Schema(type="string"), required=false, description="课程方向多个英文逗号分隔"),
|
|
|
|
|
* @OA\Parameter(name="keyword", in="query", @OA\Schema(type="string"), required=true, description="搜索关键词"),
|
|
|
|
|
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
|
|
|
|
|
* @OA\Response(
|
|
|
|
|
@ -112,20 +112,28 @@ class TeacherController extends BaseController
|
|
|
|
|
})->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc');
|
|
|
|
|
// 应用与列表一致的筛选
|
|
|
|
|
if (isset($all['theme']) || isset($all['direction'])) {
|
|
|
|
|
$list = $list->whereHas('courseContents', function ($query) use ($all) {
|
|
|
|
|
$list = $list->where(function ($query) use ($all) {
|
|
|
|
|
// 筛选 courseContents 的 theme
|
|
|
|
|
if (isset($all['theme'])) {
|
|
|
|
|
$query->where('theme', $all['theme']);
|
|
|
|
|
$query->whereHas('courseContents', function ($q) use ($all) {
|
|
|
|
|
$q->where('theme', $all['theme']);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (isset($all['direction'])) {
|
|
|
|
|
$query->where('direction', $all['direction']);
|
|
|
|
|
// 只从 teachers 表的 direction 字段筛选
|
|
|
|
|
if (isset($all['direction']) && !empty($all['direction'])) {
|
|
|
|
|
$directions = explode(',', $all['direction']);
|
|
|
|
|
$query->where(function ($q) use ($directions) {
|
|
|
|
|
foreach ($directions as $direction) {
|
|
|
|
|
$q->orWhereRaw('FIND_IN_SET(?, direction)', [trim($direction)]);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (isset($all['keyword'])) {
|
|
|
|
|
$list = $list->where(function ($query) use ($all) {
|
|
|
|
|
$query->whereHas('courseContents', function ($query) use ($all) {
|
|
|
|
|
$query->where('direction', 'like', '%' . $all['keyword'] . '%');
|
|
|
|
|
})->orWhere('name', 'like', '%' . $all['keyword'] . '%');
|
|
|
|
|
$query->where('name', 'like', '%' . $all['keyword'] . '%')
|
|
|
|
|
->orWhere('direction', 'like', '%' . $all['keyword'] . '%');
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
if (isset($all['is_export']) && !empty($all['is_export'])) {
|
|
|
|
|
@ -142,9 +150,10 @@ class TeacherController extends BaseController
|
|
|
|
|
'introduce' => $teacher->introduce ?? '',
|
|
|
|
|
'sex' => $teacher->sex ?? '',
|
|
|
|
|
'mobile' => $teacher->mobile ?? '',
|
|
|
|
|
'teacher_direction' => $teacher->direction ?? '',
|
|
|
|
|
'course_name' => optional($content->course)->name ?? '',
|
|
|
|
|
'theme' => $content->theme ?? '',
|
|
|
|
|
'direction' => $content->direction ?? '',
|
|
|
|
|
'course_direction' => $content->direction ?? '',
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
@ -154,9 +163,10 @@ class TeacherController extends BaseController
|
|
|
|
|
'introduce' => $teacher->introduce ?? '',
|
|
|
|
|
'sex' => $teacher->sex ?? '',
|
|
|
|
|
'mobile' => $teacher->mobile ?? '',
|
|
|
|
|
'teacher_direction' => $teacher->direction ?? '',
|
|
|
|
|
'course_name' => '',
|
|
|
|
|
'theme' => '',
|
|
|
|
|
'direction' => '',
|
|
|
|
|
'course_direction' => '',
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -166,9 +176,10 @@ class TeacherController extends BaseController
|
|
|
|
|
'introduce' => '老师简介',
|
|
|
|
|
'sex' => '性别',
|
|
|
|
|
'mobile' => '联系方式',
|
|
|
|
|
'teacher_direction' => '老师课程方向',
|
|
|
|
|
'course_name' => '课程名称',
|
|
|
|
|
'theme' => '课程主题',
|
|
|
|
|
'direction' => '课程方向',
|
|
|
|
|
'course_direction' => '课程内容方向',
|
|
|
|
|
];
|
|
|
|
|
$fileName = ($all['file_name'] ?? '老师课程_') . date('YmdHis') . '.xlsx';
|
|
|
|
|
return Excel::download(new CommonExport($rows, $exportFields), $fileName);
|
|
|
|
|
@ -298,6 +309,7 @@ class TeacherController extends BaseController
|
|
|
|
|
'remark' => $item['remark'] ?? '',
|
|
|
|
|
'introduce' => $item['introduce'] ?? '',
|
|
|
|
|
'mobile' => $item['mobile'] ?? '',
|
|
|
|
|
'direction' => $item['direction'] ?? '',
|
|
|
|
|
];
|
|
|
|
|
$this->model->updateOrCreate($where, $data);
|
|
|
|
|
}
|
|
|
|
|
|