visuddhinanda před 1 rokem
rodič
revize
15e6a64366
1 změnil soubory, kde provedl 27 přidání a 6 odebrání
  1. 27 6
      app/Http/Controllers/UserStatisticController.php

+ 27 - 6
app/Http/Controllers/UserStatisticController.php

@@ -53,31 +53,48 @@ class UserStatisticController extends Controller
      * @param  \App\Models\UserOperationDaily  $userOperationDaily
      * @return \Illuminate\Http\Response
      */
-    public function show(string $userName)
+    public function show(Request $request,string $userName)
     {
         //
         $queryUserId = UserApi::getIntIdByName($userName);
         $queryUserUuid = UserApi::getIdByName($userName);
         $cacheExpiry = config('mint.cache.expire');
+
+        $expSum = 0;
+        $wbwCount = 0;
+        $lookupCount = 0;
+        $translationCount = 0;
+        $translationCountPub = 0;
+        $termCount = 0;
+        $termCountWithNote = 0;
+        $myDictCount = 0;
         //总经验值
-        $expSum = RedisClusters::remember("user/{$userName}/exp/sum",$cacheExpiry,function() use($queryUserId){
-			return UserOperationDaily::where('user_id',$queryUserId)
-                                     ->sum('duration');
-		});
+        if(!$request->has('view') || $request->get('view') === 'exp-sum'){
+            $expSum = RedisClusters::remember("user/{$userName}/exp/sum",$cacheExpiry,function() use($queryUserId){
+                return UserOperationDaily::where('user_id',$queryUserId)
+                                        ->sum('duration');
+            });
+        }
 
         //逐词解析
+        if(!$request->has('view') || $request->get('view') === 'wbw-count'){
         $wbwCount = RedisClusters::remember("user/{$userName}/wbw/count",$cacheExpiry,function() use($queryUserId){
                     return Wbw::where('editor_id',$queryUserId)
                         ->count();
                         });
+        }
+
         //查字典次数
+        if(!$request->has('view') || $request->get('view') === 'lookup-count'){
         $lookupCount = RedisClusters::remember("user/{$userName}/lookup/count",$cacheExpiry,function() use($queryUserId){
                             return UserOperationLog::where('user_id',$queryUserId)
                                                     ->where('op_type','dict_lookup')
                                                     ->count();
                                 });
+        }
         //译文
         //TODO 判断是否是译文channel
+        if(!$request->has('view') || $request->get('view') === 'translation-count'){
         $translationCount = RedisClusters::remember("user/{$userName}/translation/count",$cacheExpiry,function() use($queryUserUuid){
                             return Sentence::where('editor_uid',$queryUserUuid)
                                            ->count();
@@ -87,7 +104,9 @@ class UserStatisticController extends Controller
                                     ->where('status',30)
                                     ->count();
                                 });
+        }
         //术语
+        if(!$request->has('view') || $request->get('view') === 'term-count'){
         $termCount = RedisClusters::remember("user/{$userName}/term/count",$cacheExpiry,function() use($queryUserId){
                         return DhammaTerm::where('editor_id',$queryUserId)
                                     ->count();
@@ -97,12 +116,14 @@ class UserStatisticController extends Controller
                                                     ->where('note',"<>","")
                                                     ->count();
                                 });
+        }
         //单词本
+        if(!$request->has('view') || $request->get('view') === 'my-dict-count'){
         $myDictCount = RedisClusters::remember("user/{$userName}/dict/count",$cacheExpiry,function() use($queryUserId){
                             return UserDict::where('creator_id',$queryUserId)
                                         ->count();
                         });
-
+        }
         return $this->ok([
             "exp" => ["sum"=>(int)$expSum],
             "wbw" => ["count"=>(int)$wbwCount],