瀏覽代碼

推荐、删除、隐藏

wzq 5 年之前
父節點
當前提交
92d96fbacd
共有 3 個文件被更改,包括 158 次插入1 次删除
  1. 42 0
      app/Http/Controllers/Post/PostController.php
  2. 109 1
      app/Repositories/Post/PostRepository.php
  3. 7 0
      routes/api.php

+ 42 - 0
app/Http/Controllers/Post/PostController.php

@@ -89,4 +89,46 @@ class PostController extends Controller
         return  $this->postRepository->create($request->all());
     }
 
+    /**
+     * 推荐内容
+     */
+    public function suggest(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->postRepository->suggest($request->all());
+    }
+
+    /**
+     * 删除内容
+     */
+    public function delete(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->postRepository->delete($request->all());
+    }
+
+    /**
+     * 隐藏内容
+     */
+    public function hide(Request $request)
+    {
+        $validator = Validator::make($request->all(), [
+            'id' => 'required|integer',
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->postRepository->hide($request->all());
+    }
+
 }

+ 109 - 1
app/Repositories/Post/PostRepository.php

@@ -54,7 +54,10 @@ class PostRepository
         $topicIds = $this->topic->whereIn('id', explode(',', $request['topic_ids']))->pluck('id')->toArray();
         $topicCount = count($topicIds);
         if($topicCount == 0 || $topicCount >= 5){
-            throw new HttpException(500, '所选话题必须1-5个');
+            return Response::create([
+                'message'  => '所选话题必须1-5个',
+                'status_code'   => 500
+            ]);
         }
         $topicIds = implode(',', $topicIds);
 
@@ -189,4 +192,109 @@ class PostRepository
             ->paginate($perPage);
     }
 
+    /**
+     * 推荐内容
+     */
+    public function suggest($request)
+    {
+        $post = $this->post->where('id', $request['id'])->first();
+        if(!$post){
+            return Response::create([
+                'message'  => '获取内容信息失败',
+                'status_code'   => 500
+            ]);
+        }
+
+        if($post->is_suggest == 1){
+            $post->is_suggest = 0;
+        }else{
+            $post->is_suggest = 1;
+        }
+
+        DB::beginTransaction();
+        try{
+            $post->save();
+
+            DB::commit();
+            return Response::create();
+
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('推荐内容:'.$request['id'].$exception->getMessage());
+            return Response::create([
+                'message'  => '操作失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+
+    /**
+     * 删除内容
+     */
+    public function delete($request)
+    {
+        $post = $this->post->where('id', $request['id'])->first();
+        if(!$post){
+            return Response::create([
+                'message'  => '获取内容信息失败',
+                'status_code'   => 500
+            ]);
+        }
+
+        DB::beginTransaction();
+        try{
+            $post->delete();
+
+            DB::commit();
+            return Response::create();
+
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('删除内容:'.$request['id'].$exception->getMessage());
+            return Response::create([
+                'message'  => '操作失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+
+    /**
+     * 隐藏内容
+     */
+    public function hide($request)
+    {
+        $post = $this->post->where('id', $request['id'])->first();
+        if(!$post){
+            return Response::create([
+                'message'  => '获取内容信息失败',
+                'status_code'   => 500
+            ]);
+        }
+
+        if($post->is_hide == 1){
+            $post->is_hide = 0;
+        }else{
+            $post->is_hide = 1;
+        }
+
+        DB::beginTransaction();
+        try{
+            $post->save();
+
+            DB::commit();
+            return Response::create();
+
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('隐藏内容:'.$request['id'].$exception->getMessage());
+            return Response::create([
+                'message'  => '操作失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+
 }

+ 7 - 0
routes/api.php

@@ -40,6 +40,13 @@ $api->version('v1', [
         $api->post('post', 'PostController@create');
         //内容列表
         $api->get('post', 'PostController@index');
+        //推荐内容
+        $api->put('post/suggest', 'PostController@suggest');
+        //删除内容
+        $api->delete('post/delete', 'PostController@delete');
+        //隐藏内容
+        $api->put('post/hide', 'PostController@hide');
+
     });
 
     $api->group(['middleware' => 'jwt.chxq_auth'], function ($api) {