zhaoyang 1 vuosi sitten
vanhempi
commit
fe63c93e5d

+ 34 - 21
modules/Statistic/Http/Controllers/VideoStatController.php

@@ -27,14 +27,44 @@ class VideoStatController extends CatchController
         if(!$this->isCompanyManager()){
             return [];
         }
-        //$default_end_time = Carbon::now()->subDay();
+
+        $limit = $request->get('limit',15);
+        $where = $this->requestParam($request);
+
+        $result = $this->videoStatByCompany->where($where)->select('day','video_name','video_id','amount','charge_count','charge_user_num','play_count')->paginate($limit);
+        
+        return $result;
+    }
+
+
+    public function stats(Request $request){
+        $stats_obj = [
+            'amount'=>0,
+            'charge_count'=>0,
+            'charge_user_num'=>0
+        ];
+        if(!$this->isCompanyManager()){
+            return  $stats_obj;
+        }
+        $where = $this->requestParam($request);
+        $stats = $this->videoStatByCompany->where($where)->select(DB::raw('sum(amount) as amount,sum(charge_count) as charge_count,sum(charge_user_num) as charge_user_num'))->first();
+        if($stats){
+            $stats_obj = [
+                'amount'=>$stats->amount,
+                'charge_count'=>$stats->charge_count,
+                'charge_user_num'=>$stats->charge_user_num
+            ];
+        }
+        return $stats_obj;
+    }
+
+    private function requestParam(Request $request){
         $default_end_time = Carbon::now();
         $user_id = $this->getLoginUser()->id;
         $video_name = $request->get('video_name');
         $start_date = $request->get('start_date');
         $end_date = $request->get('end_date');
-        $limit = $request->get('limit',15);
-
+        
         if(!$end_date){
             $end_date = $default_end_time;
         }else{
@@ -57,24 +87,7 @@ class VideoStatController extends CatchController
         if(trim($video_name)){
             $where[] = ['video_name','like','%'.trim($video_name).'%'];
         }
-
-        $stats = $this->videoStatByCompany->where($where)->select(DB::raw('sum(amount) as amount,sum(charge_count) as charge_count,sum(charge_user_num) as charge_user_num'))->first();
-        $result = $this->videoStatByCompany->where($where)->select('day','video_name','video_id','amount','charge_count','charge_user_num','play_count')->paginate($limit);
-        if($stats){
-            $stats_obj = [
-                'amount'=>$stats->amount,
-                'charge_count'=>$stats->charge_count,
-                'charge_user_num'=>$stats->charge_user_num
-            ];
-        }else{
-            $stats_obj = [
-                'amount'=>0,
-                'charge_count'=>0,
-                'charge_user_num'=>0
-            ];
-        }
-        
-        return ['result'=>$result,'stats'=>$stats_obj];
+        return $where;
     }
 
  

+ 2 - 1
modules/Statistic/routes/route.php

@@ -13,6 +13,7 @@ Route::prefix('statistic')->group(function(){
 
     // 短剧统计
     Route::prefix('video')->group(function (){
-        Route::get('list',[VideoStatController::class,'index']);//->withoutMiddleware(config('catch.route.middlewares'));
+        Route::get('list',[VideoStatController::class,'index'])->withoutMiddleware(config('catch.route.middlewares'));
+        Route::get('stats',[VideoStatController::class,'stats'])->withoutMiddleware(config('catch.route.middlewares'));
     });
 });

+ 1 - 1
tests/Feature/VideoStatTest.php

@@ -13,7 +13,7 @@ class VideoStatTest extends TestCase
      */
     public function test_example(): void
     {
-        $response = $this->get('/api/statistic/video/list');
+        $response = $this->get('/api/statistic/video/stats');
         echo $response->getContent();
         $response->assertStatus(200);
     }