|
@@ -0,0 +1,224 @@
|
|
|
|
+<?php
|
|
|
|
+
|
|
|
|
+namespace App\Repositories;
|
|
|
|
+
|
|
|
|
+use App\Models\Startup;
|
|
|
|
+use App\Traits\PostTrait;
|
|
|
|
+use Illuminate\Database\QueryException;
|
|
|
|
+use Dingo\Api\Http\Response;
|
|
|
|
+use Illuminate\Support\Carbon;
|
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
|
+use Illuminate\Support\Facades\Log;
|
|
|
|
+
|
|
|
|
+class StartupRepository
|
|
|
|
+{
|
|
|
|
+ use PostTrait;
|
|
|
|
+ public function __construct(Startup $startup)
|
|
|
|
+ {
|
|
|
|
+ $this->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
|
|
|
|
+ ]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|