_getSelfMysql(), 't_circuit_battle', array( 'account_id' => myself()->_getAccountId(), 'season' => $season ), array( 'cumulative_score' => $score, 'modifytime' => myself()->_getNowTime() ), array( 'account_id' => myself()->_getAccountId(), 'season' => $season, 'cumulative_score' => $score, 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime() ) ); } public static function updatePhaseScore($season,$phase,$score){ SqlHelper::upsert( myself()->_getSelfMysql(), 't_circuit_battle_phase', array( 'account_id' => myself()->_getAccountId(), 'season' => $season, 'phase' => $phase, ), array( 'cumulative_score' => $score, 'modifytime' => myself()->_getNowTime() ), array( 'account_id' => myself()->_getAccountId(), 'season' => $season, 'phase' => $phase, 'cumulative_score' => $score, 'createtime' => myself()->_getNowTime(), 'modifytime' => myself()->_getNowTime() ) ); } public static function getMyScore($season){ $row = SqlHelper::ormSelectOne( myself()->_getSelfMysql(), 't_circuit_battle', array( 'account_id' => myself()->_getAccountId(), 'season' => $season ) ); return $row ? $row['cumulative_score'] : 0; } public static function getMyPhaseScore($season,$phase){ $row = SqlHelper::ormSelectOne( myself()->_getSelfMysql(), 't_circuit_battle_phase', array( 'account_id' => myself()->_getAccountId(), 'season' => $season, 'phase' => $phase, ) ); return $row ? $row['cumulative_score'] : 0; } public static function getRankingList($season){ $sql = "select * from t_circuit_battle where season=:season and cumulative_score >= 0" . "order by cumulative_score desc,modifytime asc"; $whereKv = array( ":season" => $season, ); $rows = myself()->_getMysql('')->execQuery($sql,$whereKv); if (!$rows){ $rows = array(); } return $rows; } public static function getCircuitList($season){ $rows = SqlHelper::ormSelect( myself()->_getMysql(''), 't_circuit_battle', array( 'season' => $season ) ); foreach ($rows as &$row){ $codeDb = UserInvitationCode::findCodeByAccount($row['account_id']); $count = UserInvitationCode::getMyCodeBindCount($codeDb['invitation_code']); $boost = min($count * 3 / 100,60 / 100); $boostScore = $row['cumulative_score'] * $boost; $row['score_boost'] = $boostScore; $row['cumulative_score'] += $boostScore; } return $rows; } public static function getPhaseRankingList($season,$phase){ $sql = "select * from t_circuit_battle_phase where season=:season and phase=:phase " . "and cumulative_score >= 0 order by cumulative_score desc,modifytime asc"; $whereKv = array( ":season" => $season, ":phase" => $phase, ); $rows = myself()->_getMysql('')->execQuery($sql,$whereKv); if (!$rows){ $rows = array(); } return $rows; } public static function getCircuitPhaseList($season,$phase){ $rows = SqlHelper::ormSelect( myself()->_getMysql(''), 't_circuit_battle_phase', array( 'season' => $season, 'phase' => $phase, ) ); foreach ($rows as &$row){ $codeDb = UserInvitationCode::findCodeByAccount($row['account_id']); $count = UserInvitationCode::getMyCodeBindCount($codeDb['invitation_code']); $boost = min($count * 3 / 100,60 / 100); $boostScore = $row['cumulative_score'] * $boost; $row['score_boost'] = $boostScore; $row['cumulative_score'] += $boostScore; } return $rows; } public static function getCurrentMyScore(){ $circuitMeta = myself()->_callMtStatic('CircuitTime', 'getCurrentCircuit'); if (empty($circuitMeta)) { return 0; } return self::getMyScore($circuitMeta['circuit_season']); } }