startup = $startup; } /** * 启动页列表 */ public function lists($request) { $perPage = isset($request['per_page']) ? $request['per_page'] : 20; return $this->startup ->where(function ($query) use ($request){ if(isset($request['keyword']) && $request['keyword']){ $query->where('id', $request['keyword']) ->orWhere('title', 'like', "%{$request['keyword']}%"); } }) ->orderBy('is_open','desc') ->orderBy('id','desc') ->paginate($perPage); } /** * 创建启动页 */ public function create($request) { $data = [ 'title' => $request['title'], 'img' => $request['img'], 'url' => $request['url']??'' ]; DB::beginTransaction(); try{ $this->startup->create($data); DB::commit(); return Response::create(); }catch (QueryException $exception){ DB::rollBack(); Log::error('创建启动页失败:'.$exception->getMessage()); return Response::create([ 'message' => '添加失败,请重试', 'error' => $exception->getMessage(), 'status_code' => 500 ]); } } /** * 编辑启动页 */ public function update($request) { $startup = $this->startup->find($request['id']); if(!$startup){ return Response::create([ 'message' => '获取启动页信息失败', 'status_code' => 500 ]); } if($startup->is_open){ return Response::create([ 'message' => '开启中不能编辑', 'status_code' => 500 ]); } $startup->title = $request['title']; $startup->img = $request['img']; $startup->url = $request['url'] ?? ''; DB::beginTransaction(); try{ $startup->save(); DB::commit(); return Response::create(); }catch (QueryException $exception){ DB::rollBack(); Log::error('编辑启动页失败:'.$exception->getMessage()); return Response::create([ 'message' => '编辑失败,请重试', 'error' => $exception->getMessage(), 'status_code' => 500 ]); } } /** * 启动页详情 */ public function detail($request) { return $this->startup->find($request['id']); } /** * 发送启动页 */ public function send($request) { $notice = $this->startup->find($request['id']); if(!$notice || $notice->notice_status != 0){ return Response::create([ 'message' => '只能发送未发送启动页', 'status_code' => 500 ]); } $notice->send_time = Carbon::now()->toDateTimeString(); DB::beginTransaction(); try{ $notice->save(); DB::commit(); return Response::create(); }catch (QueryException $exception){ DB::rollBack(); Log::debug('发送启动页失败:'.$exception->getMessage()); return Response::create([ 'message' => '发送失败,请重试', 'error' => $exception->getMessage(), 'status_code' => 500 ]); } } /** * 删除启动页 */ public function delete($request) { $startup = $this->startup->find($request['id']); if(!$startup){ return Response::create([ 'message' => '获取启动页信息失败', 'status_code' => 500 ]); } if($startup->is_open){ return Response::create([ 'message' => '开启中不能删除', 'status_code' => 500 ]); } DB::beginTransaction(); try{ $startup->delete(); DB::commit(); return Response::create(); }catch (QueryException $exception){ DB::rollBack(); Log::debug('删除启动页失败:'.$exception->getMessage()); return Response::create([ 'message' => '删除失败,请重试', 'error' => $exception->getMessage(), 'status_code' => 500 ]); } } /** * 修改启动页状态 */ public function updateStatus($request) { $startup = $this->startup->find($request['id']); if(!$startup){ return Response::create([ 'message' => '获取启动页信息失败', 'status_code' => 500 ]); } DB::beginTransaction(); try{ if($startup->is_open){ $startup->is_open = 0; }else{ $this->startup->where('is_open', 1)->update(['is_open' => 0]); $startup->is_open = 1; } $startup->save(); DB::commit(); return Response::create(); }catch (QueryException $exception){ DB::rollBack(); Log::error('更新启动页状态:'.$request['id'].$exception->getMessage()); return Response::create([ 'message' => '修改失败,请重试', 'error' => $exception->getMessage(), 'status_code' => 500 ]); } } }