public static function findTotalRank()
 {
     $user = Yii::$app->session->get('user');
     $result = ExamScore::find()->select('count(*)')->where(['provinceId' => $user['provinceId'], 'majorJobId' => $user['majorJobId']])->asArray()->one();
     if ($result) {
         return $result['count(*)'];
     } else {
         return 0;
     }
 }
 public function actionOver()
 {
     $request = Yii::$app->request;
     if ($request->isPost) {
         $result = $request->post('result');
         $time = $request->post('time');
         $result = json_decode($result, true);
         //重新以testLibraryId索引数组,确保同testLibraryId只存在最后一个数据
         $result = ArrayHelper::index($result, 'testLibraryId');
         $examTemplate = Yii::$app->session->get('examTemplate');
         $examTemplatePa1 = explode('|', $examTemplate['pa1']);
         $number_pa1 = $examTemplatePa1[0];
         $score_pa1 = $examTemplatePa1[1];
         if ($number_pa1 != 0) {
             $singleScore_pa1 = $score_pa1 / $number_pa1;
         } else {
             $singleScore_pa1 = 0;
         }
         $examTemplatePa2 = explode('|', $examTemplate['pa2']);
         $number_pa2 = $examTemplatePa2[0];
         $score_pa2 = $examTemplatePa2[1];
         if ($number_pa2 != 0) {
             $singleScore_pa2 = $score_pa2 / $number_pa2;
         } else {
             $singleScore_pa2 = 0;
         }
         $examTemplatePa3 = explode('|', $examTemplate['pa3']);
         $number_pa3 = $examTemplatePa3[0];
         $score_pa3 = $examTemplatePa3[1];
         if ($number_pa3 != 0) {
             $singleScore_pa3 = $score_pa3 / $number_pa3;
         } else {
             $singleScore_pa3 = 0;
         }
         $examTemplatePa4 = explode('|', $examTemplate['pa4']);
         $number_pa4 = $examTemplatePa4[0];
         $score_pa4 = $examTemplatePa4[1];
         if ($number_pa4 != 0) {
             $singleScore_pa4 = $score_pa4 / $number_pa4 / 5;
         } else {
             $singleScore_pa4 = 0;
         }
         $examTemplatePb1 = explode('|', $examTemplate['pb1']);
         $number_pb1 = $examTemplatePb1[0];
         $score_pb1 = $examTemplatePb1[1];
         if ($number_pb1 != 0) {
             $singleScore_pb1 = $score_pb1 / $number_pb1;
         } else {
             $singleScore_pb1 = 0;
         }
         $examTemplatePb2 = explode('|', $examTemplate['pb2']);
         $number_pb2 = $examTemplatePb2[0];
         $score_pb2 = $examTemplatePb2[1];
         if ($number_pb2 != 0) {
             $singleScore_pb2 = $score_pb2 / $number_pb2;
         } else {
             $singleScore_pb2 = 0;
         }
         $examTemplatePb3 = explode('|', $examTemplate['pb3']);
         $number_pb3 = $examTemplatePb3[0];
         $score_pb3 = $examTemplatePb3[1];
         if ($number_pb3 != 0) {
             $singleScore_pb3 = $score_pb3 / $number_pb3;
         } else {
             $singleScore_pb3 = 0;
         }
         $examTemplatePb4 = explode('|', $examTemplate['pb4']);
         $number_pb4 = $examTemplatePb4[0];
         $score_pb4 = $examTemplatePb4[1];
         if ($number_pb4 != 0) {
             $singleScore_pb4 = $score_pb4 / $number_pb4 / 5;
         } else {
             $singleScore_pb4 = 0;
         }
         $totalScore = $score_pa1 + $score_pa2 + $score_pa3 + $score_pa4 + $score_pb1 + $score_pb2 + $score_pb3 + $score_pb4;
         $finalScore = 0;
         foreach ($result as $r) {
             if ($r['answerType'] == 1) {
                 //答案正确
                 if ($r['preType'] == 1) {
                     //专业基础
                     switch ($r['testType']) {
                         //根据测试类型获得分数
                         case 1:
                             $finalScore += $singleScore_pa1;
                             break;
                         case 2:
                             $finalScore += $singleScore_pa2;
                             break;
                         case 3:
                             $finalScore += $singleScore_pa3;
                             break;
                         case 4:
                             $finalScore += $singleScore_pa4;
                             break;
                     }
                 } elseif ($r['preType'] == 2) {
                     //管理实务
                     switch ($r['testType']) {
                         //根据测试类型获得分数
                         case 1:
                             $finalScore += $singleScore_pb1;
                             break;
                         case 2:
                             $finalScore += $singleScore_pb2;
                             break;
                         case 3:
                             $finalScore += $singleScore_pb3;
                             break;
                         case 4:
                             $finalScore += $singleScore_pb4;
                             break;
                     }
                 }
             }
         }
         $totalRank = ExamScore::findTotalRank();
         ExamScore::recordOne($finalScore, $totalScore);
         $rank = ExamScore::findRank($finalScore, $totalScore);
         return $this->render('over', ['time' => $time, 'totalScore' => $totalScore, 'finalScore' => $finalScore, 'rank' => $rank, 'totalRank' => $totalRank]);
     } else {
         throw new Exception("非法提交");
     }
 }