From 838864aa7395087fa1fe7c95cf2c0da887f3b42a Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Fri, 4 Jul 2025 14:57:49 +0800 Subject: [PATCH] update --- .../Controllers/Admin/CalendarsController.php | 84 +++---------------- 1 file changed, 11 insertions(+), 73 deletions(-) diff --git a/app/Http/Controllers/Admin/CalendarsController.php b/app/Http/Controllers/Admin/CalendarsController.php index 1cf3a38..ac063bb 100644 --- a/app/Http/Controllers/Admin/CalendarsController.php +++ b/app/Http/Controllers/Admin/CalendarsController.php @@ -35,16 +35,7 @@ class CalendarsController extends BaseController * tags={"日历管理"}, * summary="列表", * description="", - * @OA\Parameter(name="is_export", in="query", @OA\Schema(type="string"), required=false, description="是否导出0否1是"), - * @OA\Parameter(name="export_fields", in="query", @OA\Schema(type="string"), required=false, description="需要导出的字段数组"), - * @OA\Parameter(name="filter", in="query", @OA\Schema(type="string"), required=false, description="查询条件。数组"), - * @OA\Parameter(name="show_relation", in="query", @OA\Schema(type="string"), required=false, description="需要输出的关联关系数组,包括:teacher,courseSettings,coursePeriods"), - * @OA\Parameter(name="page_size", in="query", @OA\Schema(type="string"), required=false, description="每页显示的条数"), - * @OA\Parameter(name="page", in="query", @OA\Schema(type="string"), required=false, description="页码"), - * @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="token", in="query", @OA\Schema(type="string"), required=true, description="token"), - * @OA\Parameter(name="keyword", in="query", @OA\Schema(type="string"), required=true, description="关键词"), + * @OA\Parameter(name="month", in="query", @OA\Schema(type="string"), required=true, description="月份"), * @OA\Response( * response="200", * description="暂无" @@ -53,70 +44,17 @@ class CalendarsController extends BaseController */ public function index() { - $all = request()->all(); - $list = $this->model->with('course','courseContent')->where(function ($query) use ($all) { - if (isset($all['filter']) && !empty($all['filter'])) { - foreach ($all['filter'] as $condition) { - $key = $condition['key'] ?? null; - $op = $condition['op'] ?? null; - $value = $condition['value'] ?? null; - if (!isset($key) || !isset($op) || !isset($value)) { - continue; - } - // 等于 - if ($op == 'eq') { - $query->where($key, $value); - } - // 不等于 - if ($op == 'neq') { - $query->where($key, '!=', $value); - } - // 大于 - if ($op == 'gt') { - $query->where($key, '>', $value); - } - // 大于等于 - if ($op == 'egt') { - $query->where($key, '>=', $value); - } - // 小于 - if ($op == 'lt') { - $query->where($key, '<', $value); - } - // 小于等于 - if ($op == 'elt') { - $query->where($key, '<=', $value); - } - // 模糊搜索 - if ($op == 'like') { - $query->where($key, 'like', '%' . $value . '%'); - } - // 否定模糊搜索 - if ($op == 'notlike') { - $query->where($key, 'not like', '%' . $value . '%'); - } - // 范围搜索 - if ($op == 'range') { - list($from, $to) = explode(',', $value); - if (empty($from) || empty($to)) { - continue; - } - $query->whereBetween($key, [$from, $to]); - } - } - } - })->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc'); - if (isset($all['is_export']) && !empty($all['is_export'])) { - $list = $list->get()->toArray(); - $export_fields = $all['export_fields'] ?? []; - // 导出文件名字 - $tableName = $this->model->getTable(); - $filename = (new CustomForm())->getTableComment($tableName); - return Excel::download(new BaseExport($export_fields, $list, $tableName), $filename . date('YmdHis') . '.xlsx'); - } else { - // 输出 - $list = $list->paginate($all['page_size'] ?? 20); + $all = \request()->all(); + $messages = [ + 'month.required' => '月份必填', + ]; + $validator = Validator::make($all, [ + 'month' => 'required', + ], $messages); + if ($validator->fails()) { + return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]); } + $list = Calendar::with('course', 'courseContent')->where('date', 'like', $all['month'] . '%')->orderBy('date')->get(); return $this->success($list); }