wesmiler 1 year ago
parent
commit
014ee1db65

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

@@ -3,6 +3,7 @@
 namespace App\Http\Controllers\Api\v1;
 use App\Http\Controllers\Api\webApp;
 use App\Http\Validator\LiveValidator;
+use App\Services\Api\TaskService;
 use App\Services\LiveService;
 use App\Services\RedisService;
 
@@ -100,6 +101,19 @@ class LiveController extends webApp
     }
 
     /**
+     * 更新观看时长任务
+     * @return array
+     */
+    public function updatePlayTask()
+    {
+        // 观看直播任务
+        $id = request()->post('id',0);
+        $time = request()->post('time',0);
+        TaskService::make()->updateTask($this->userId,1, $id, $time);
+        return showJson(1010,true, []);
+    }
+
+    /**
      * 状态
      * @return array|mixed
      */

+ 5 - 5
app/Services/Api/TaskService.php

@@ -140,7 +140,8 @@ class TaskService extends BaseService
         if($datas){
             return $datas;
         }
-        $datas = $this->model->where(['scene'=> $scene,'status'=>1,'mark'=>1])
+        $where = ['scene'=> $scene,'status'=>1,'mark'=>1];
+        $datas = $this->model->where($where)
             ->select(['id','name','type','num','power','sort','check_type','scene'])
             ->orderBy('sort','desc')
             ->orderBy('id','desc')
@@ -249,7 +250,7 @@ class TaskService extends BaseService
      * @param int $sourceId 来源ID
      * @return false
      */
-    public function updateTask($userId, $scene, $sourceId=0)
+    public function updateTask($userId, $scene, $sourceId=0,$time=0)
     {
         $taskList = $this->getTaskByScene($scene);
         RedisService::set("caches:task:temp_{$userId}_{$scene}_{$sourceId}", ['datas'=>$taskList,'date'=>date('Y-m-d H:i:s')], 600);
@@ -280,7 +281,7 @@ class TaskService extends BaseService
                     $item['log_num'] = $logNum;
                 }
                 // 时长
-                else if($item['check_type'] == 2 && $logNum>0){
+                else if($item['check_type'] == 2 && $logNum>0 && $num <= ($time/60)){
                     $item['status'] = 2;
                     $item['log_num'] = $logNum;
                 }
@@ -315,10 +316,9 @@ class TaskService extends BaseService
                         // 次数
                         if($item['check_type'] == 1 && $num<=$logNum){
                            $completeCount++;
-                            $completeIds[] = $taskId;
                         }
                         // 时长
-                        else if($item['check_type'] == 2 && $logNum>0){
+                        else if($item['check_type'] == 2 && $logNum>0 && $num <= ($time/60)){
                             $completeCount++;
                         }
 

+ 2 - 2
app/Services/LiveService.php

@@ -235,7 +235,7 @@ class LiveService extends BaseService
                 $info['views'] += 1;
 
                 // 观看直播任务
-                TaskService::make()->updateTask($userId,1, $id);
+                TaskService::make()->updateTask($userId,1, $id,1);
             }
 
             // 结束直播
@@ -409,7 +409,7 @@ class LiveService extends BaseService
             RedisService::set("caches:player:live:{$userId}_{$id}", ['user_id'=> $userId,'id'=>$id], rand(6*3600, 86400));
 
             // 观看直播任务
-            TaskService::make()->updateTask($userId,1, $id);
+            TaskService::make()->updateTask($userId,1, $id, 1);
         }
         $this->error = 1010;
         return true;

+ 1 - 0
routes/api.php

@@ -56,6 +56,7 @@ Route::prefix('v1')->group(function(){
     Route::post('/live/giftList', [\App\Http\Controllers\Api\v1\LiveController::class, 'giftList']);
     Route::post('/live/reward', [\App\Http\Controllers\Api\v1\LiveController::class, 'reward']);
     Route::post('/live/play', [\App\Http\Controllers\Api\v1\LiveController::class, 'updatePlay']);
+    Route::post('/live/updatePlayTask', [\App\Http\Controllers\Api\v1\LiveController::class, 'updatePlayTask']);
     Route::post('/live/status', [\App\Http\Controllers\Api\v1\LiveController::class, 'status']);
     Route::post('/live/like', [\App\Http\Controllers\Api\v1\LiveController::class, 'like']);
     Route::post('/live/category/search', [\App\Http\Controllers\Api\v1\LiveCategoryController::class, 'search']);