wesmiler 2 år sedan
förälder
incheckning
f7e81f0789
3 ändrade filer med 52 tillägg och 1 borttagningar
  1. 14 0
      app/Http/Controllers/Api/v1/VideoController.php
  2. 37 0
      app/Services/Api/VideoService.php
  3. 1 1
      routes/api.php

+ 14 - 0
app/Http/Controllers/Api/v1/VideoController.php

@@ -93,6 +93,20 @@ class VideoController extends webApp
     }
 
     /**
+     * 播放与浏览
+     * @return array
+     */
+    public function updatePlay()
+    {
+        $id = request()->post('id',0);
+        if(!$result = VideoService::make()->updatePlay($this->userId, $id)){
+            return message(VideoService::make()->getError(), false);
+        }else{
+            return message(VideoService::make()->getError(), true, $result);
+        }
+    }
+
+    /**
      * 状态/上下架
      * @return array|mixed
      */

+ 37 - 0
app/Services/Api/VideoService.php

@@ -304,6 +304,43 @@ class VideoService extends BaseService
     }
 
     /**
+     * 更新播放浏览历史
+     * @param $userId 用户ID
+     * @param $id 视频ID
+     * @return false
+     */
+    public function updatePlay($userId, $id)
+    {
+        // 浏览历史
+        if(!VideoCollectService::make()->getCollectCacheInfo($userId, $id, 1)){
+            $info = $this->model->from('videos as a')
+                ->where(['a.id'=> $id,'a.mark'=>1])
+                ->select(['a.id','a.tags','a.user_id'])
+                ->first();
+
+            if(empty($info)){
+                return false;
+            }
+
+            $data = [
+                'user_id'=> $userId,
+                'type'=> 1,
+                'collect_id'=> $id,
+                'collect_uid'=> isset($info['user_id'])? $info['user_id'] : 0,
+                'tags'=> isset($info['tags'])? $info['tags'] : '',
+                'create_time'=> time(),
+                'status'=> 1,
+            ];
+            VideoCollectModel::insert($data);
+            RedisService::set("caches:videos:collect:temp_{$userId}_{$id}_1", $data, rand(10,30));
+            RedisService::clear("caches:videos:recommend:{$userId}");
+        }
+
+        // 浏览量
+        $this->updateView($userId, $id);
+    }
+
+    /**
      * 更新浏览量
      * @param $userId
      * @param $dynamicId

+ 1 - 1
routes/api.php

@@ -64,7 +64,7 @@ Route::prefix('v1')->group(function(){
     Route::post('/video/publish', [\App\Http\Controllers\Api\v1\VideoController::class, 'publish']);
     Route::post('/video/collect', [\App\Http\Controllers\Api\v1\VideoController::class, 'collect']);
     Route::post('/video/like', [\App\Http\Controllers\Api\v1\VideoController::class, 'like']);
-    Route::post('/video/view', [\App\Http\Controllers\Api\v1\VideoController::class, 'updateView']);
+    Route::post('/video/play', [\App\Http\Controllers\Api\v1\VideoController::class, 'updatePlay']);
     Route::post('/video/setting', [\App\Http\Controllers\Api\v1\VideoController::class, 'setting']);
     Route::post('/video/delete', [\App\Http\Controllers\Api\v1\VideoController::class, 'delete']);