visuddhinanda 2 лет назад
Родитель
Сommit
84c2b8664d
1 измененных файлов с 34 добавлено и 4 удалено
  1. 34 4
      app/Console/Commands/UpgradeWbwWeight.php

+ 34 - 4
app/Console/Commands/UpgradeWbwWeight.php

@@ -60,9 +60,32 @@ class UpgradeWbwWeight extends Command
                 $start = -1;
                 $bold = 0;
                 $katama = false;
+                $katamaDis = 0;
+                $katamaWeight = 1;
+                $arrKatama = array();//katama 权重结果
+                //先计算katama权重
                 for ($iWord=0; $iWord < count($words); $iWord++) {
-                    WbwTemplate::where('id',$words[$iWord]->id)->update(['weight'=>1]);
-                    if($words[$iWord]->style === 'bld'){
+                    //计算katama加分
+                    if(empty($words[$iWord]->real)){
+                        $katama = false;
+                        $katamaWeight = 0;
+                    }
+                    if($katama){
+                        $katamaDis++;
+                        $katamaWeight = 463 * (pow(0.2, ($katamaDis-1))+1);
+                    }
+                    $arrKatama[] = $katamaWeight;
+                    if(mb_substr($words[$iWord]->real,0,5,"UTF-8") === 'katam'){
+                        $katama = true;
+                        $katamaDis = 0;
+                    }
+                }
+                for ($iWord=0; $iWord < count($words); $iWord++) {
+                    $wid = $words[$iWord]->wid;
+                    $weight = 1.01;
+                    WbwTemplate::where('id',$words[$iWord]->id)->update(['weight'=>$weight*1000]);
+
+                    if($words[$iWord]->style === 'bld' && !empty($words[$iWord]->real)){
                         if($start === -1){
                             $start = $iWord;
                             $bold = 1;
@@ -71,13 +94,20 @@ class UpgradeWbwWeight extends Command
                         }
                     }else{
                         if($start>=0){
-                            $weight = 1 +  100 / pow($bold,2);
+                            //前面的词是黑体字
+                            $result = WbwTemplate::where('id',$words[$iWord]->id)
+                                                    ->update(['weight'=>floor(($weight+$arrKatama[$iWord])*1000)]);
+                            $weight = 1.01+23*pow(10,(2-$bold));
                             for ($i=$start; $i < $iWord ; $i++) {
                                 $result = WbwTemplate::where('id',$words[$i]->id)
-                                                    ->update(['weight'=>(int)$weight]);
+                                                    ->update(['weight'=>floor(($weight+$arrKatama[$i])*1000)]);
                             }
+
                             $start = -1;
                             $bold = 0;
+                        }else{
+                            $result = WbwTemplate::where('id',$words[$iWord]->id)
+                                        ->update(['weight'=>floor(($weight+$arrKatama[$iWord])*1000)]);
                         }
                     }
                 }