public function actionScoreCookbook()
 {
     $accountId = $this->getAccountId();
     $mobile = $this->getParams('mobile', '');
     if (strlen($mobile) == 0) {
         return ['code' => 1202, 'msg' => 'mobile is required.'];
     }
     $cookbookId = $this->getParams('cookbookId', '');
     if (strlen($cookbookId) == 0) {
         return ['code' => 1202, 'msg' => 'cookbookId is required.'];
     }
     $score = $this->getParams('score', 0);
     if (strlen($score) == 0) {
         return ['code' => 1202, 'msg' => 'score is required.'];
     }
     $userCookbook = UserCookbook::find()->where(['mobile' => $mobile, 'cookbookId' => $cookbookId])->one();
     $isScored = true;
     $oldScore = 0;
     if ($userCookbook == null) {
         $userCookbook = new UserCookbook();
         $isScored = false;
     } else {
         $oldScore = $userCookbook->score;
     }
     $userCookbook->mobile = $mobile;
     $userCookbook->cookbookId = $cookbookId;
     $userCookbook->score = $score;
     $userCookbook->accountId = $accountId;
     $userCookbook->save();
     //average score
     $cookbook = Cookbook::find()->where(['_id' => $cookbookId])->one();
     if ($cookbook == null) {
         return ['code' => 1204, 'msg' => 'cookbook not found.'];
     }
     //score number
     $query = new Query();
     $query->from('uhkklpUserCookbook')->where(['cookbookId' => $cookbookId]);
     $scorerNumber = $query->count();
     $averageScore = 0.0;
     if (!isset($cookbook['averageScore'])) {
         $averageScore = $score;
     } else {
         if ($isScored) {
             $averageScore = ($score - $oldScore + $cookbook['averageScore'] * $scorerNumber) / $scorerNumber;
         } else {
             $averageScore = ($score + $cookbook['averageScore'] * ($scorerNumber - 1)) / $scorerNumber;
         }
     }
     $averageScore = round($averageScore, 1);
     $cookbook->averageScore = $averageScore;
     $cookbook->save();
     $result['averageScore'] = $averageScore;
     $result['scorerNumber'] = $scorerNumber;
     Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
     return ['code' => 200, 'msg' => 'OK', 'result' => $result];
 }