Przeglądaj źródła

Merge remote-tracking branch 'origin/develop' into develop

wzq 5 lat temu
rodzic
commit
2f4847c5b6

+ 9 - 8
app/Console/Commands/RankingList.php

@@ -5,6 +5,7 @@
  * Date: 2019/6/20
  * Time: 下午2:27
  */
+
 namespace App\Console\Commands;
 
 
@@ -57,13 +58,12 @@ class RankingList extends Command
     {
         $yesterday_start = Carbon::now()->addDays(-1)->startOfDay()->toDateTimeString();
         $yesterday_end = Carbon::now()->addDays(-1)->endOfDay()->toDateTimeString();
-        return  $model->select(DB::raw('count(*) as count'),'generation_quantity','content_author_id','related_content_id')
-            ->whereBetween('created_at', [$yesterday_start,$yesterday_end])
-            ->groupBy('generation_quantity','related_content_id','content_author_id')
-            ->orderBy('generation_quantity','desc')
+        return $model->select(DB::raw('count(*) as num'), 'generation_quantity', 'content_author_id', DB::raw('sum(generation_quantity) as count'))
+            ->whereBetween('created_at', [$yesterday_start, $yesterday_end])
+            ->groupBy('generation_quantity', 'content_author_id')
+            ->orderBy('count', 'desc')
             ->limit(10)
             ->get();
-
     }
 
     /**
@@ -96,15 +96,16 @@ class RankingList extends Command
         }
         $release_author = $this->releaseRecord
             ->whereBetween('created_at', [$yesterday_start, $yesterday_end])
-            ->select(DB::raw('count(*) as count'), 'generation_quantity', 'uid as content_author_id', 'related_content_id')
-            ->groupBy('generation_quantity', 'content_author_id', 'related_content_id')->orderBy('generation_quantity', 'desc')->limit(10)->get();
+            ->select(DB::raw('count(*) as num'), 'generation_quantity', 'uid as content_author_id', DB::raw('sum(generation_quantity) as count'))
+            ->groupBy('generation_quantity', 'content_author_id')->orderBy('count', 'desc')->limit(10)->get();
+
         $release_best_author = $release_author->toArray();
         foreach ($release_best_author as $k => $v) {
             $release_best_author[$k]['type'] = 'release';
         }
         $all_best_author = array_merge($comment_best_author, $general_best_author, $release_best_author);
 
-        $column = array_column($all_best_author, 'generation_quantity');
+        $column = array_column($all_best_author, 'count');
         array_multisort($column, SORT_DESC, $all_best_author);
 
         $all_best_author = array_slice($all_best_author, 0, 10);

+ 5 - 7
app/Http/Controllers/V1/BeanDetailController.php

@@ -21,18 +21,16 @@ class BeanDetailController extends Controller
     //排行榜
     public function rankingList(Request $request)
     {
-        $validator = Validator::make($request->all(), [
+        $data = $request->all();
+        $validator = Validator::make($data, [
             'type' => ['required',Rule::in([0,1, 2])],
         ]);
         if ($validator->fails()) {
             return $this->jsonError($validator->errors()->first());
         }
-        $top_most = $this->beanRepository->rankingList($request->all());
-        if ($top_most){
-            return $this->jsonSuccess($top_most);
-        }else{
-            return $this->jsonSuccess();
-        }
+        $top_most = $this->beanRepository->rankingList($data);
+
+            return success(['list'=>$top_most]);
     }
 
     //分享/邀请首页

+ 2 - 0
app/Repositories/BeanRepository.php

@@ -101,6 +101,7 @@ class BeanRepository
                 if ($user_data){
                     foreach ($registered_most as $k=>$v){
                         if(!isset($user_data[$v['superior_uid']])) continue;
+                        $registered_most[$k]['count'] = intval($v['count']);
                         $registered_most[$k]['follow_status'] = $user_data[$v['superior_uid']]['follow_status'];
                         $username = subtext($user_data[$v['superior_uid']]['username'], 10);
 
@@ -121,6 +122,7 @@ class BeanRepository
                 if ($user_data){
                     foreach ($all_best_author as $k=>$v){
                         if(!isset($user_data[$v['content_author_id']])) continue;
+                        $all_best_author[$k]['count'] = intval($v['count']);
                         $all_best_author[$k]['follow_status'] = $user_data[$v['content_author_id']]['follow_status'];
                         $username = subtext($user_data[$v['content_author_id']]['username'], 10);