improve query for getting Character submissions and show submission date also for solved and unsolved submissions
This commit is contained in:
parent
485e72a9d1
commit
1b9eafeee0
3 changed files with 36 additions and 37 deletions
|
|
@ -334,13 +334,6 @@
|
||||||
|
|
||||||
// Get submitted Character submissions waiting for approval
|
// Get submitted Character submissions waiting for approval
|
||||||
$submittedSubmissionCharacters = $this->Characters->getCharactersSubmittedQuest($quest['id']);
|
$submittedSubmissionCharacters = $this->Characters->getCharactersSubmittedQuest($quest['id']);
|
||||||
foreach($submittedSubmissionCharacters as &$submissionCharacter) {
|
|
||||||
$submissionCharacter['submission'] = $this->Quests->getLastQuestStatus($quest['id'], $submissionCharacter['id']);
|
|
||||||
}
|
|
||||||
usort($submittedSubmissionCharacters, function($a, $b) {
|
|
||||||
if($a['created'] == $b['created']) { return 0; }
|
|
||||||
return ($a['created'] > $b['created']) ? -1 : 1;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Get unsolved Character submissions
|
// Get unsolved Character submissions
|
||||||
$unsolvedSubmissionCharacters = $this->Characters->getCharactersUnsolvedQuest($quest['id']);
|
$unsolvedSubmissionCharacters = $this->Characters->getCharactersUnsolvedQuest($quest['id']);
|
||||||
|
|
|
||||||
|
|
@ -343,15 +343,18 @@
|
||||||
public function getCharactersSolvedQuest($questId)
|
public function getCharactersSolvedQuest($questId)
|
||||||
{
|
{
|
||||||
return $data = $this->db->query(
|
return $data = $this->db->query(
|
||||||
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
|
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, quests_characters.created AS submission_created '.
|
||||||
'FROM v_characters AS characters '.
|
'FROM quests_characters '.
|
||||||
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
|
'INNER JOIN v_characters AS characters ON characters.id = quests_characters.character_id '.
|
||||||
'WHERE EXISTS ('.
|
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
|
||||||
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
|
'WHERE quests_characters.quest_id = ? AND quests_characters.status = ? AND NOT EXISTS ('.
|
||||||
')',
|
'SELECT id '.
|
||||||
|
'FROM quests_characters AS qc '.
|
||||||
|
'WHERE qc.character_id = quests_characters.character_id AND qc.created > quests_characters.created'.
|
||||||
|
') '.
|
||||||
|
'ORDER BY quests_characters.created ASC',
|
||||||
'ii',
|
'ii',
|
||||||
$questId,
|
$questId, QuestsModel::QUEST_STATUS_SOLVED
|
||||||
QuestsModel::QUEST_STATUS_SOLVED
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -365,17 +368,18 @@
|
||||||
public function getCharactersUnsolvedQuest($questId)
|
public function getCharactersUnsolvedQuest($questId)
|
||||||
{
|
{
|
||||||
return $data = $this->db->query(
|
return $data = $this->db->query(
|
||||||
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
|
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, quests_characters.created AS submission_created '.
|
||||||
'FROM v_characters AS characters '.
|
'FROM quests_characters '.
|
||||||
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
|
'INNER JOIN v_characters AS characters ON characters.id = quests_characters.character_id '.
|
||||||
'WHERE EXISTS ('.
|
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
|
||||||
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
|
'WHERE quests_characters.quest_id = ? AND quests_characters.status = ? AND NOT EXISTS ('.
|
||||||
') AND NOT EXISTS ('.
|
'SELECT id '.
|
||||||
'SELECT character_id FROM quests_characters WHERE character_id = characters.id AND quest_id = ? AND status = ?'.
|
'FROM quests_characters AS qc '.
|
||||||
')',
|
'WHERE qc.character_id = quests_characters.character_id AND qc.created > quests_characters.created'.
|
||||||
'iiii',
|
') '.
|
||||||
$questId, QuestsModel::QUEST_STATUS_UNSOLVED,
|
'ORDER BY quests_characters.created ASC',
|
||||||
$questId, QuestsModel::QUEST_STATUS_SOLVED
|
'ii',
|
||||||
|
$questId, QuestsModel::QUEST_STATUS_UNSOLVED
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -389,16 +393,16 @@
|
||||||
public function getCharactersSubmittedQuest($questId)
|
public function getCharactersSubmittedQuest($questId)
|
||||||
{
|
{
|
||||||
return $data = $this->db->query(
|
return $data = $this->db->query(
|
||||||
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url '.
|
'SELECT characters.id, characters.created, characters.charactertype_id, characters.name, characters.url, characters.user_id, characters.xps, characters.xplevel, charactertypes.name AS charactertype_name, charactertypes.url AS charactertype_url, quests_characters.created AS submission_created '.
|
||||||
'FROM v_characters AS characters '.
|
'FROM quests_characters '.
|
||||||
'LEFT JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
|
'INNER JOIN v_characters AS characters ON characters.id = quests_characters.character_id '.
|
||||||
'WHERE ('.
|
'INNER JOIN charactertypes ON charactertypes.id = characters.charactertype_id '.
|
||||||
'SELECT status '.
|
'WHERE quests_characters.quest_id = ? AND quests_characters.status = ? AND NOT EXISTS ('.
|
||||||
'FROM quests_characters '.
|
'SELECT id '.
|
||||||
'WHERE quest_id = ? AND character_id = characters.id '.
|
'FROM quests_characters AS qc '.
|
||||||
'ORDER BY created DESC '.
|
'WHERE qc.character_id = quests_characters.character_id AND qc.created > quests_characters.created'.
|
||||||
'LIMIT 1'.
|
') '.
|
||||||
') = ?',
|
'ORDER BY quests_characters.created ASC',
|
||||||
'ii',
|
'ii',
|
||||||
$questId, QuestsModel::QUEST_STATUS_SUBMITTED
|
$questId, QuestsModel::QUEST_STATUS_SUBMITTED
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<?php foreach($submittedSubmissionCharacters as &$character) : ?>
|
<?php foreach($submittedSubmissionCharacters as &$character) : ?>
|
||||||
<li>
|
<li>
|
||||||
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
|
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
|
||||||
<span class="xp"><small><?=sprintf(_('submitted at %s on %s h'), $dateFormatter->format(new \DateTime($character['submission']['created'])), $timeFormatter->format(new \DateTime($character['submission']['created'])))?></small></span>
|
<span class="xp"><small><?=sprintf(_('submitted at %s on %s h'), $dateFormatter->format(new \DateTime($character['submission_created'])), $timeFormatter->format(new \DateTime($character['submission_created'])))?></small></span>
|
||||||
</li>
|
</li>
|
||||||
<?php endforeach?>
|
<?php endforeach?>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
@ -22,6 +22,7 @@
|
||||||
<?php foreach($unsolvedSubmissionCharacters as &$character) : ?>
|
<?php foreach($unsolvedSubmissionCharacters as &$character) : ?>
|
||||||
<li>
|
<li>
|
||||||
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
|
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
|
||||||
|
<span class="xp"><small><?=sprintf(_('submitted at %s on %s h'), $dateFormatter->format(new \DateTime($character['submission_created'])), $timeFormatter->format(new \DateTime($character['submission_created'])))?></small></span>
|
||||||
</li>
|
</li>
|
||||||
<?php endforeach?>
|
<?php endforeach?>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
@ -31,6 +32,7 @@
|
||||||
<?php foreach($solvedSubmissionCharacters as &$character) : ?>
|
<?php foreach($solvedSubmissionCharacters as &$character) : ?>
|
||||||
<li>
|
<li>
|
||||||
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
|
<a href="<?=$linker->link(array('submission',$seminary['url'],$questgroup['url'],$quest['url'],$character['url']),1)?>"><?=$character['name']?></a>
|
||||||
|
<span class="xp"><small><?=sprintf(_('submitted at %s on %s h'), $dateFormatter->format(new \DateTime($character['submission_created'])), $timeFormatter->format(new \DateTime($character['submission_created'])))?></small></span>
|
||||||
</li>
|
</li>
|
||||||
<?php endforeach?>
|
<?php endforeach?>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue