xielin преди 5 години
родител
ревизия
dd9ddb7d54
променени са 3 файла, в които са добавени 99 реда и са изтрити 56 реда
  1. 17 12
      app/Repositories/Circle/CircleArticleRepository.php
  2. 36 0
      database/migrations/2019_10_12_012729_add_column_is_fine_to_post.php
  3. 46 44
      routes/api.php

+ 17 - 12
app/Repositories/Circle/CircleArticleRepository.php

@@ -22,7 +22,7 @@ use Illuminate\Support\Facades\Redis;
 class CircleArticleRepository
 {
 
-    public function __construct(InterestCircleArticle $interestCircleArticle, Post $post,InterestCircle $interestCircle)
+    public function __construct(InterestCircleArticle $interestCircleArticle, Post $post, InterestCircle $interestCircle)
     {
         $this->interestCircleArticle = $interestCircleArticle;
         $this->post = $post;
@@ -94,7 +94,6 @@ class CircleArticleRepository
         DB::beginTransaction();
         try {
             $article->save();
-
             DB::commit();
             return Response::create();
 
@@ -131,11 +130,12 @@ class CircleArticleRepository
             $this->interestCircle->decrement('article_count');
             $isRef = $this->interestCircleArticle->where('post_id', $request['post_id'])->exists();
             if (!$isRef) {
-                //todo 移出后需要检测该帖子在其他圈子有没有设为精品,如没有,则删除该帖子的精品标识
-                //$this->post->where('id',$request['post_id'])->update();
+                //移出后需要检测该帖子在其他圈子有没有设为精品,如没有,则删除该帖子的精品标识
+                $this->post->where('id', $request['post_id'])->update(['is_fine' => 0]);
+                Redis::HSET('post_info_' . $request['post_id'],'is_fine',0);
             }
-            $key = 'circle_articles_'.$request['circle_id'];
-            Redis::zrem($key,$request['post_id']);
+            $key = 'circle_articles_' . $request['circle_id'];
+            Redis::zrem($key, $request['post_id']);
             DB::commit();
             return Response::create();
 
@@ -149,6 +149,7 @@ class CircleArticleRepository
             ]);
         }
     }
+
     /**
      * 新增精品文章
      */
@@ -167,11 +168,14 @@ class CircleArticleRepository
 
         DB::beginTransaction();
         try {
-            $this->interestCircleArticle->insert(['post_id'=>$request['post_id'],'circle_id'=>$request['circle_id']]);
+            $this->interestCircleArticle->insert(['post_id' => $request['post_id'], 'circle_id' => $request['circle_id']]);
             $this->interestCircle->increment('article_count');
+            //修改帖子为精品贴
+            $this->post->where('id', $request['post_id'])->update(['is_fine' => 1]);
+            Redis::HSET('post_info_' . $request['post_id'],'is_fine',1);
             //将精品文章存入该圈子的有序集合中
-            $key = 'circle_articles_'.$request['circle_id'];
-            Redis::zadd($key,time(),$request['post_id']);
+            $key = 'circle_articles_' . $request['circle_id'];
+            Redis::zadd($key, time(), $request['post_id']);
             DB::commit();
             return Response::create();
 
@@ -191,7 +195,8 @@ class CircleArticleRepository
      * @param $request
      * @return mixed
      */
-    public function postList($request){
+    public function postList($request)
+    {
         $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
         $where = [];
         if (isset($request['type'])) {
@@ -203,8 +208,8 @@ class CircleArticleRepository
         }
 
         if (isset($request['circle_id'])) {
-            $circleInfo = $this->interestCircle->where('id',$request['circle_id'])->first();
-            if($circleInfo && $circleInfo->limit_article_ids){
+            $circleInfo = $this->interestCircle->where('id', $request['circle_id'])->first();
+            if ($circleInfo && $circleInfo->limit_article_ids) {
                 $request['topic_ids'] = "{$circleInfo->limit_article_ids}";
             }
         }

+ 36 - 0
database/migrations/2019_10_12_012729_add_column_is_fine_to_post.php

@@ -0,0 +1,36 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class AddColumnIsFineToPost extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('post', function (Blueprint $table) {
+            //
+            $table->integer('is_fine')
+                ->default(0)
+                ->comment('是否精品 0 否 1是')
+                ->after('is_hide');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('post', function (Blueprint $table) {
+            //
+        });
+    }
+}

+ 46 - 44
routes/api.php

@@ -172,49 +172,51 @@ $api->version('v1', [
             //用户上传音乐列表
             $api->get('music/upload/list', 'MusicController@userMusic');
     });
+        $api->group(['namespace' => 'Circle'], function ($api) {
+            //创建圈子
+            $api->post('circle', 'CircleController@create');
+            //编辑圈子
+            $api->put('circle', 'CircleController@update');
+            //圈子列表
+            $api->get('circle', 'CircleController@index');
+            //查询圈子信息
+            $api->get('circle/detail', 'CircleController@detail');
+            //推荐圈子
+            $api->put('circle/recommend', 'CircleController@recommend');
+            //开启/关闭圈子
+            $api->put('circle/status', 'CircleController@circleStatus');
+            //圈子相册列表
+            $api->get('circle/pictures', 'CircleController@pictureList');
+            //删除相册图片
+            $api->delete('circle/picture', 'CircleController@deletePicture');
+            //圈子精品文章列表
+            $api->get('circle/articles', 'CircleController@articleList');
+            //圈子精品文章来源帖子列表
+            $api->get('circle/posts', 'CircleController@postList');
+            //推荐精品文章
+            $api->put('circle/article/recommend', 'CircleController@articleRecommend');
+            //移出精品文章
+            $api->delete('circle/article', 'CircleController@articleRemove');
+            //加入精品文章
+            $api->post('circle/article', 'CircleController@articleInsert');
+            //圈子用户列表
+            $api->get('circle/members', 'CircleController@memberList');
+            //设置圈子用户黑名单
+            $api->put('circle/member/black', 'CircleController@setCircleBlack');
+            //圈子留言列表
+            $api->get('circle/messages', 'CircleController@messageList');
+            //圈子留言详情
+            $api->get('circle/message', 'CircleController@messageDetail');
+            //圈子留言推荐
+            $api->put('circle/message/recommend', 'CircleController@messageRecommend');
+            //圈子留言删除
+            $api->delete('circle/message', 'CircleController@deleteMessage');
+            //圈子留言评论列表
+            $api->get('circle/message/comments', 'CircleController@commentList');
+            //圈子留言评论删除
+            $api->delete('circle/message/comment', 'CircleController@commentDelete');
+        });
+
+
 
-    $api->group(['namespace' => 'Circle'], function ($api) {
-        //创建圈子
-        $api->post('circle', 'CircleController@create');
-        //编辑圈子
-        $api->put('circle', 'CircleController@update');
-        //圈子列表
-        $api->get('circle', 'CircleController@index');
-        //查询圈子信息
-        $api->get('circle/detail', 'CircleController@detail');
-        //推荐圈子
-        $api->put('circle/recommend', 'CircleController@recommend');
-        //开启/关闭圈子
-        $api->put('circle/status', 'CircleController@circleStatus');
-        //圈子相册列表
-        $api->get('circle/pictures', 'CircleController@pictureList');
-        //删除相册图片
-        $api->delete('circle/picture', 'CircleController@deletePicture');
-        //圈子精品文章列表
-        $api->get('circle/articles', 'CircleController@articleList');
-        //圈子精品文章来源帖子列表
-        $api->get('circle/posts', 'CircleController@postList');
-        //推荐精品文章
-        $api->put('circle/article/recommend', 'CircleController@articleRecommend');
-        //移出精品文章
-        $api->delete('circle/article', 'CircleController@articleRemove');
-        //加入精品文章
-        $api->post('circle/article', 'CircleController@articleInsert');
-        //圈子用户列表
-        $api->get('circle/members', 'CircleController@memberList');
-        //设置圈子用户黑名单
-        $api->put('circle/member/black', 'CircleController@setCircleBlack');
-        //圈子留言列表
-        $api->get('circle/messages', 'CircleController@messageList');
-        //圈子留言详情
-        $api->get('circle/message', 'CircleController@messageDetail');
-        //圈子留言推荐
-        $api->put('circle/message/recommend', 'CircleController@messageRecommend');
-        //圈子留言删除
-        $api->delete('circle/message', 'CircleController@deleteMessage');
-        //圈子留言评论列表
-        $api->get('circle/message/comments', 'CircleController@commentList');
-        //圈子留言评论删除
-        $api->delete('circle/message/comment', 'CircleController@commentDelete');
-    });
 });