This commit is contained in:
coderkun 2014-04-28 15:31:35 +02:00
commit c13e8211ea
3 changed files with 15 additions and 12 deletions

View file

@ -145,7 +145,7 @@
// Get ranking
$ranking = array(
'superior' => $this->Characters->getSuperiorCharacters($seminary['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range']),
'inferior' => $this->Characters->getInferiorCharacters($seminary['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range'])
'inferior' => $this->Characters->getInferiorCharacters($seminary['id'], $character['id'], $character['xps'], \nre\configs\AppConfig::$misc['ranking_range'])
);
// Get Quest topics

View file

@ -114,15 +114,18 @@
public function getSeldomAchievements($seminaryId, $count, $alsoWithDeadline=true)
{
return $this->db->query(
'SELECT id, title, url, description, progress, hidden, unachieved_achievementsmedia_id, achieved_achievementsmedia_id, count(DISTINCT character_id) AS c '.
'SELECT achievements.id, achievements.title, achievements.url, achievements.description, achievements.progress, achievements.hidden, achievements.unachieved_achievementsmedia_id, achievements.achieved_achievementsmedia_id, count(DISTINCT achievements_characters.character_id) AS c '.
'FROM achievements_characters '.
'INNER JOIN characters_characterroles ON characters_characterroles.character_id = achievements_characters.character_id '.
'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '.
'LEFT JOIN achievements ON achievements.id = achievements_characters.achievement_id '.
'WHERE achievements.seminary_id = ? AND only_once = 0 '.
'WHERE achievements.seminary_id = ? AND achievements.only_once = 0 '.
(!$alsoWithDeadline ? 'AND achievements.deadline IS NULL ' : null).
'GROUP BY achievement_id '.
'ORDER BY count(DISTINCT character_id) ASC '.
'GROUP BY achievements_characters.achievement_id '.
'ORDER BY count(DISTINCT achievements_characters.character_id) ASC '.
'LIMIT ?',
'ii',
'sii',
'user',
$seminaryId,
$count
);

View file

@ -299,7 +299,7 @@
'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.id '.
'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '.
'WHERE charactertypes.seminary_id = ? AND characters.xps > ? '.
'ORDER BY characters.xps ASC '.
'ORDER BY characters.xps ASC, RAND() '.
'LIMIT ?',
'sidd',
'user',
@ -316,7 +316,7 @@
* @param int $count Count of Characters to determine
* @return array List of inferior Characters
*/
public function getInferiorCharacters($seminaryId, $xps, $count)
public function getInferiorCharacters($seminaryId, $characterId, $xps, $count)
{
return $this->db->query(
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.xps, characters.xplevel, characters.avatar_id, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
@ -324,12 +324,12 @@
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
'INNER JOIN characters_characterroles ON characters_characterroles.character_id = characters.id '.
'INNER JOIN characterroles ON characterroles.id = characters_characterroles.characterrole_id AND characterroles.name = ? '.
'WHERE charactertypes.seminary_id = ? AND characters.xps < ? '.
'ORDER BY characters.xps DESC '.
'WHERE charactertypes.seminary_id = ? AND characters.xps <= ? AND characters.id <> ? '.
'ORDER BY characters.xps DESC, RAND() '.
'LIMIT ?',
'sidd',
'sidid',
'user',
$seminaryId, $xps, $count
$seminaryId, $xps, $characterId, $count
);
}