コード例 #1
0
 /**
  * @desc 表赛报告
  */
 public function actionGameData()
 {
     $gameId = Yii::app()->request->getQuery('game', '');
     $teamId = Yii::app()->request->getQuery('team', '');
     $tournament = new TournamentModel();
     $gameDatas = $tournament->findByObjectId($gameId);
     $gameData = array();
     if (isset($gameDatas[0])) {
         $gameData = $gameDatas[0];
     }
     $playerScoreModel = new PlayerScoreModel();
     $userModel = new UserModel();
     //$playerData = $playerScoreModel->findByLeague($leagueId);
     $teamMembers = array();
     $tempData = $gameDatas[0];
     $playMembers = $playerScoreModel->findScorePlayer($gameId, $teamId);
     //		print_r($gameData  );exit("dafafdas");
     //$playerData = $playerScoreModel->findByGameId($teamId);
     $playerData = $playerScoreModel->findCompetitionTeamPlayerScore($gameId, $teamId);
     //找到属于该联赛的所有球员
     $playerArr = array();
     foreach ($playerData as $playerScore) {
         $playerId = $playerScore->player->objectId;
         if (!in_array($playerId, $playerArr)) {
             array_push($playerArr, $playerId);
         }
     }
     //统计球员在某个联赛的进球总数
     $playerGoalArr = array();
     foreach ($playerArr as $playerId) {
         $playerGoals = 0;
         foreach ($playerData as $playerScore) {
             if ($playerId == $playerScore->player->objectId && isset($playerScore->goals) && is_numeric($playerScore->goals)) {
                 $playerGoals += $playerScore->goals;
             }
         }
         $playerGoalArr[$playerId] = $playerGoals;
     }
     arsort($playerGoalArr);
     //合并球员的一些信息
     $playerRangeArr = array();
     foreach ($playerGoalArr as $playerRange => $playerGoal) {
         foreach ($playerData as $playerScore) {
             if ($playerRange == $playerScore->player->objectId) {
                 if (!isset($playerScore->player->nickname) || empty($playerScore->player->nickname)) {
                     $playerScore->player->nickname = '匿名';
                 }
                 if (!isset($playerScore->team->name) || empty($playerScore->team->name)) {
                     $playerScore->team->name = '匿名球队';
                 }
                 $playerRangeArr[$playerRange] = array('totalGoals' => $playerGoal, 'name' => $playerScore->player->nickname, 'team' => $playerScore->team->name);
             }
         }
     }
     //统计球员在某个联赛的助攻总数
     $playerAssistsArr = array();
     foreach ($playerArr as $playerId) {
         $playerAssists = 0;
         foreach ($playerData as $playerScore) {
             if ($playerId == $playerScore->player->objectId && isset($playerScore->assists) && is_numeric($playerScore->assists)) {
                 $playerAssists += $playerScore->assists;
             }
         }
         $playerAssistsArr[$playerId] = $playerAssists;
     }
     arsort($playerAssistsArr);
     //合并球员的一些信息
     $playerAssistsRangeArr = array();
     foreach ($playerAssistsArr as $playerRange => $playerAssists) {
         foreach ($playerData as $playerScore) {
             if ($playerRange == $playerScore->player->objectId) {
                 if (!isset($playerScore->player->nickname) || empty($playerScore->player->nickname)) {
                     $playerScore->player->nickname = '匿名';
                 }
                 if (!isset($playerScore->team->name) || empty($playerScore->team->name)) {
                     $playerScore->team->name = '匿名球队';
                 }
                 $playerAssistsRangeArr[$playerRange] = array('totalAssists' => $playerAssists, 'name' => $playerScore->player->nickname, 'team' => $playerScore->team->name);
             }
         }
     }
     $this->render('gameData', array("teamId" => $teamId, 'gameData' => $gameData, 'playMembers' => $playMembers, 'playerRangeArr' => $playerRangeArr, 'playerAssistsRangeArr' => $playerAssistsRangeArr));
 }
コード例 #2
0
 /**
  * @desc 修复android严重比赛结果后没保存TeamScore的问题
  */
 public function actionTestSaveTeamScore()
 {
     $masterId = CommonFunction::getUserId();
     $gameId = "b404c1fc88";
     $homeTeamScore = "8";
     $opponentTeamScore = "0";
     $leagueModel = new LeagueModel();
     $res = $leagueModel->findByMaster($masterId, 1);
     if (empty($res)) {
         throw new CHttpException(500, '该用户无权限管理联赛');
     }
     $leagueId = $res[0]->objectId;
     $gameModel = new TournamentModel();
     $userModel = new UserModel();
     $gameArr = $gameModel->findByObjectId($gameId);
     if (isset($gameArr[0])) {
         $game = $gameArr[0];
         if (isset($game->home_court->captain->objectId)) {
             $homeTeamCaptainId = $game->home_court->captain->objectId;
             $homeTeamCaptain = $userModel->getByObjectId($homeTeamCaptainId);
             if (!empty($homeTeamCaptain)) {
                 if (isset($homeTeamCaptain->username) && !empty($homeTeamCaptain->username)) {
                     $homeTeamCaptainUsername = $homeTeamCaptain->username;
                 }
             }
         }
         if (isset($game->opponent->captain->objectId)) {
             $opponentTeamCaptainId = $game->opponent->captain->objectId;
             $opponentTeamCaptain = $userModel->getByObjectId($opponentTeamCaptainId);
         }
     }
     //		var_dump($game);exit;
     $res = '';
     try {
         //			$res = $gameModel->updateScore($gameId,$homeTeamScore,$opponentTeamScore);
     } catch (Exception $e) {
         //echo $e;
     }
     if (true) {
         if (isset($gameArr[0])) {
             $game = $gameArr[0];
             $teamScoreModel = new TeamScoreModel();
             if (isset($game->home_court->objectId)) {
                 $homeTeamId = $game->home_court->objectId;
                 if (isset($game->home_court->name)) {
                     $homeTeamName = $game->home_court->name;
                 }
                 $diffScore = $homeTeamScore - $opponentTeamScore;
                 $win = false;
                 $draw = false;
                 $loss = false;
                 $score = 0;
                 if ($diffScore > 0) {
                     $win = true;
                     $score = 3;
                 } elseif ($diffScore == 0) {
                     $draw = true;
                     $score = 1;
                 } elseif ($diffScore < 0) {
                     $loss = true;
                 }
                 $homeTeamBasic = array('league' => array("__type" => "Pointer", "className" => "League", "objectId" => $leagueId), 'competition' => array("__type" => "Pointer", "className" => "Tournament", "objectId" => $gameId), 'team' => array("__type" => "Pointer", "className" => "Team", "objectId" => $homeTeamId), 'name' => $homeTeamName);
                 $homeTeamDev = array('goals' => $homeTeamScore, 'goals_against' => $opponentTeamScore, 'goal_difference' => $diffScore, 'win' => $win, 'draw' => $draw, 'loss' => $loss, 'score' => $score);
                 $hasData = $teamScoreModel->findByCompetitionTeam($gameId, $homeTeamId);
                 if (!isset($hasData[0]->objectId)) {
                     $homeTeamData = array_merge($homeTeamBasic, $homeTeamDev);
                     $teamScoreModel->save($homeTeamData);
                 } else {
                     $teamScoreId = $hasData[0]->objectId;
                     $teamScoreModel->update($teamScoreId, $homeTeamDev);
                 }
             }
             if (isset($game->opponent->objectId)) {
                 $opponentTeamId = $game->opponent->objectId;
                 if (isset($game->opponent->name)) {
                     $opponentTeamName = $game->opponent->name;
                 }
                 $diffScore = $opponentTeamScore - $homeTeamScore;
                 $win2 = false;
                 $draw2 = false;
                 $loss2 = false;
                 $score2 = 0;
                 if ($diffScore > 0) {
                     $win2 = true;
                     $score2 = 3;
                 } elseif ($diffScore == 0) {
                     $draw2 = true;
                     $score2 = 1;
                 } elseif ($diffScore < 0) {
                     $loss2 = true;
                 }
                 $opponentTeamBasic = array('league' => array("__type" => "Pointer", "className" => "League", "objectId" => $leagueId), 'competition' => array("__type" => "Pointer", "className" => "Tournament", "objectId" => $gameId), 'team' => array("__type" => "Pointer", "className" => "Team", "objectId" => $opponentTeamId), 'name' => $opponentTeamName);
                 $opponentTeamDev = array('goals' => $opponentTeamScore, 'goals_against' => $homeTeamScore, 'goal_difference' => $diffScore, 'win' => $win2, 'draw' => $draw2, 'loss' => $loss2, 'score' => $score2);
                 $hasData2 = $teamScoreModel->findByCompetitionTeam($gameId, $opponentTeamId);
                 if (!isset($hasData2[0]->objectId)) {
                     $opponentTeamData = array_merge($opponentTeamBasic, $opponentTeamDev);
                     $teamScoreModel->save($opponentTeamData);
                 } else {
                     $teamScoreId2 = $hasData2[0]->objectId;
                     $teamScoreModel->update($teamScoreId2, $opponentTeamDev);
                 }
             }
         }
         $response = 'success';
     } else {
         $response = 'fail';
     }
 }