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("非法提交"); } }