xielin 5 anos atrás
pai
commit
c55f86f170

+ 1 - 1
app/Console/Commands/PostStatistics.php

@@ -137,7 +137,7 @@ class PostStatistics extends Command
         $data['like_count'] = $likeCount;
         $data['collect_count'] = $collectCount;
         $data['comment_count'] = $commentCount;
-        $this->postStatistics->insert($data);
+        $this->postStatistics->create($data);
         Log::info(date('Y-m-d H:i:s').'统计'.$yesterdayStart.'最终记录数据:'.json_encode($data));
     }
 }

+ 2 - 2
app/Http/Controllers/Post/PostController.php

@@ -310,8 +310,8 @@ class PostController extends Controller
 
     public function statistics(Request $request){
         $request = $request->all();
-        $start = Carbon::parse(isset($request['start']) ? $request['start'] : Carbon::yesterday())->startOfDay()->toDateTimeString();
-        $end = Carbon::parse(isset($request['end']) ? $request['end'] : Carbon::yesterday())->endOfDay()->toDateTimeString();
+        $start = Carbon::parse(isset($request['start']) ? Carbon::parse($request['start'])->startOfDay()->toDateTimeString() : Carbon::yesterday())->startOfDay()->toDateTimeString();
+        $end = Carbon::parse(isset($request['end']) ? Carbon::parse($request['end'])->endOfDay()->toDateTimeString() : Carbon::yesterday())->endOfDay()->toDateTimeString();
         return $this->postRepository->statistics($start,$end);
     }
 }

+ 32 - 14
app/Repositories/Post/PostRepository.php

@@ -797,6 +797,13 @@ class PostRepository
             ->where('created_at', '>=', $start)
             ->where('created_at', '<=', $end)
             ->get()->toArray();
+        $stimestamp = strtotime($start);
+        $etimestamp = strtotime($end);
+        $days = ($etimestamp - $stimestamp) / 86400;
+        $date = array();
+        for ($i = 0; $i < $days; $i++) {
+            $date[] = date('Y-m-d', $stimestamp + (86400 * $i));
+        }
         $totalRead = 0;
         $totalPost = 0;
         $totalShare = 0;
@@ -804,22 +811,33 @@ class PostRepository
         $totalCollect = 0;
         $totalComment = 0;
         $info = [];
-        foreach($result as $row){
-            if($row){
-                $info['read'][date('Y-m-d',$row['created_at'])]=$row['read_count'];
-                $info['post'][date('Y-m-d',$row['created_at'])]=$row['post_count'];
-                $info['share'][date('Y-m-d',$row['created_at'])]=$row['share_count'];
-                $info['like'][date('Y-m-d',$row['created_at'])]=$row['like_count'];
-                $info['collect'][date('Y-m-d',$row['created_at'])]=$row['collect_count'];
-                $info['comment'][date('Y-m-d',$row['created_at'])]=$row['comment_count'];
-                $totalRead += $row['read_count'];
-                $totalPost += $row['post_count'];
-                $totalShare += $row['share_count'];
-                $totalLike += $row['like_count'];
-                $totalCollect += $row['collect_count'];
-                $totalComment += $row['comment_count'];
+        foreach ($date as $key => $value) {
+            $info[$value] = [
+                'read' => 0,
+                'post' => 0,
+                'share' => 0,
+                'like' => 0,
+                'collect' => 0,
+                'comment' => 0,
+            ];
+            foreach ($result as $row) {
+                if ($value == date('Y-m-d', strtotime($row['created_at']))) {
+                    $info[$value]['read'] = $row['read_count'];
+                    $info[$value]['post'] = $row['post_count'];
+                    $info[$value]['share'] = $row['share_count'];
+                    $info[$value]['like'] = $row['like_count'];
+                    $info[$value]['collect'] = $row['collect_count'];
+                    $info[$value]['comment'] = $row['comment_count'];
+                    $totalRead += $row['read_count'];
+                    $totalPost += $row['post_count'];
+                    $totalShare += $row['share_count'];
+                    $totalLike += $row['like_count'];
+                    $totalCollect += $row['collect_count'];
+                    $totalComment += $row['comment_count'];
+                }
             }
         }
+
         $info['total_read'] = $totalRead;
         $info['total_post'] = $totalPost;
         $info['total_share'] = $totalShare;

+ 1 - 4
routes/api.php

@@ -16,10 +16,6 @@ $api = app('Dingo\Api\Routing\Router');
 $api->version('v1', [
     'namespace' => 'App\Http\Controllers',
 ], function ($api) {
-    //内容统计
-    $api->group(['namespace' => 'Post'], function ($api) {
-        $api->get('statistics', 'PostController@statistics');
-    });
     $api->group(['middleware' => 'jwt.chxq_auth'], function ($api) {
         //配置
         $api->get('config', 'ConfigController@index');
@@ -31,6 +27,7 @@ $api->version('v1', [
 
         $api->group(['namespace' => 'Post'], function ($api) {
 
+            $api->get('statistics', 'PostController@statistics');
             //发布内容
             $api->post('post', 'PostController@create');
             //内容列表