visuddhinanda 3 лет назад
Родитель
Сommit
b91c89054c
1 измененных файлов с 20 добавлено и 4 удалено
  1. 20 4
      app/Http/Controllers/WbwLookupController.php

+ 20 - 4
app/Http/Controllers/WbwLookupController.php

@@ -3,6 +3,7 @@
 namespace App\Http\Controllers;
 
 use App\Models\UserDict;
+use App\Models\DictInfo;
 use App\Models\WbwTemplate;
 use Illuminate\Http\Request;
 use App\Tools\CaseMan;
@@ -37,6 +38,16 @@ class WbwLookupController extends Controller
     {
         //
 		$startAt = microtime(true);
+
+        /**
+         * 先查询字典名称
+         */
+        $dict_info = DictInfo::whereIn('id',$this->dictList)->select('id','shortname')->get();
+        $dict_name = [];
+        foreach ($dict_info as $key => $value) {
+            # code...
+            $dict_name[$value->id] = $value->shortname;
+        }
 		$caseman = new CaseMan();
 		$output  = array();
 		$wordPool = array();
@@ -51,16 +62,21 @@ class WbwLookupController extends Controller
 			$deep = $request->get("deep");
 		}
 		for ($i=0; $i < $deep; $i++) {
-			# code...
+			# 查询深度
 			foreach ($wordPool as $word => $info) {
 				# code...
-				if($info['done'] == false){
+				if($info['done'] === false){
 					$wordPool[$word]['done'] = true;
 					$count = 0;
 					foreach ($this->dictList as  $dictId) {
 						# code...
-						$result = Cache::remember("dict/{$dictId}/".$word,1000,function() use($word,$dictId){
-							return UserDict::where('word',$word)->where('dict_id',$dictId)->orderBy('confidence','desc')->get();
+						$result = Cache::remember("dict/{$dictId}/".$word,10,function() use($word,$dictId,$dict_name){
+                            $data = UserDict::where('word',$word)->where('dict_id',$dictId)->orderBy('confidence','desc')->get();
+                            foreach ($data as $key => $value) {
+                                # code...
+                                $value->dict_shortname  = $dict_name[$dictId];
+                            }
+							return $data;
 						});
 						$count += count($result);
 						if(count($result)>0){