Browse Source

获取最多人用的术语列表,用laravel重写

visuddhinanda@gmail.com 4 years ago
parent
commit
2717cd6809
2 changed files with 52 additions and 7 deletions
  1. 33 0
      app/Http/Controllers/DhammaTermController.php
  2. 19 7
      public/app/palicanon/palicanon.js

+ 33 - 0
app/Http/Controllers/DhammaTermController.php

@@ -4,6 +4,8 @@ namespace App\Http\Controllers;
 
 use App\Models\DhammaTerm;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Cache;
+use Illuminate\Support\Facades\DB;
 
 class DhammaTermController extends Controller
 {
@@ -50,6 +52,37 @@ class DhammaTermController extends Controller
 									->orderBy('created_at','desc')
 									->get();
 				break;
+            case 'hot-meaning':
+                $key='term/hot_meaning';
+                $value = Cache::get($key, function()use($request) {
+                    $hotMeaning=[];
+                    $words = DhammaTerm::select('word')
+                                ->where('language',$request->get("language"))
+                                ->groupby('word')
+                                ->get();
+                    
+                    foreach ($words as $key => $word) {
+                        # code...
+                        $result = DhammaTerm::select(DB::raw('count(*) as word_count, meaning'))
+                                ->where('language',$request->get("language"))
+                                ->where('word',$word['word'])
+                                ->groupby('meaning')
+                                ->orderby('word_count','desc')
+                                ->first();
+                        if($result){
+                            $hotMeaning[]=[
+                                'word'=>$word['word'],
+                                'meaning'=>$result['meaning'],
+                                'language'=>$request->get("language"),
+                                'owner'=>'',
+                            ];
+                        }
+                    }
+                    Cache::put($key, $hotMeaning, 3600);
+                    return $hotMeaning;
+                });
+                return $this->ok(["rows"=>$value,"count"=>count($value)]);
+                break;
 			default:
 				# code...
 				break;

+ 19 - 7
public/app/palicanon/palicanon.js

@@ -22,18 +22,30 @@ function palicanon_onload() {
 }
 
 function palicanon_load_term() {
-	$.post(
-		"../term/get_term_index.php",
+    let lang =getCookie("language");
+    switch (lang) {
+        case 'zh-cn':
+            lang = 'zh-hans';
+            break;
+        case 'zh-tw':
+            lang = 'zh-hant';
+            break;    
+        case '':
+            lang = 'en';
+            break;  
+    }
+	$.get(
+		"/api/v2/terms",
 		{
-			lang: getCookie("language"),
+            view:'hot-meaning',
+			language: lang,
 		},
 		function (data) {
-			let result = JSON.parse(data);
-			if (result.status == 0) {
-				arrMyTerm = result.data;
+			if (data.ok) {
+				arrMyTerm = data.data.rows;
 				render_main_tag();
 			} else {
-				alert(result.error);
+				alert(data.message);
 			}
 		}
 	);