success( Notice::orderBy('sort', 'ASC') ->orderBy('id', 'DESC') ->get() ); } public function save(NoticeSave $request) { $data = $request->only([ 'title', 'content', 'img_url', 'tags', 'show', 'popup' ]); if (!$request->input('id')) { if (!Notice::create($data)) { return $this->fail([500, '保存失败']); } } else { try { Notice::find($request->input('id'))->update($data); } catch (\Exception $e) { return $this->fail([500, '保存失败']); } } return $this->success(true); } public function show(Request $request) { if (empty($request->input('id'))) { return $this->fail([500, '公告ID不能为空']); } $notice = Notice::find($request->input('id')); if (!$notice) { return $this->fail([400202, '公告不存在']); } $notice->show = $notice->show ? 0 : 1; if (!$notice->save()) { return $this->fail([500, '保存失败']); } return $this->success(true); } public function drop(Request $request) { if (empty($request->input('id'))) { return $this->fail([422, '公告ID不能为空']); } $notice = Notice::find($request->input('id')); if (!$notice) { return $this->fail([400202, '公告不存在']); } if (!$notice->delete()) { return $this->fail([500, '删除失败']); } return $this->success(true); } public function sort(Request $request) { $params = $request->validate([ 'ids' => 'required|array' ]); try { DB::beginTransaction(); foreach ($params['ids'] as $k => $v) { $notice = Notice::findOrFail($v); $notice->update(['sort' => $k + 1]); } DB::commit(); return $this->success(true); } catch (\Exception $e) { DB::rollBack(); \Log::error($e); return $this->fail([500, '排序保存失败']); } } }