refac: API/Troop 의 $me를 GeneralLite로 변경

- StaticEventHandler 처리도 추가
This commit is contained in:
2024-09-18 14:54:40 +00:00
parent 477b77b59f
commit 3d12de3838
5 changed files with 64 additions and 30 deletions
+20 -5
View File
@@ -6,6 +6,9 @@ use sammo\Session;
use DateTimeInterface;
use sammo\DB;
use sammo\Enums\APIRecoveryType;
use sammo\Enums\GeneralLiteQueryMode;
use sammo\GeneralLite;
use sammo\StaticEventHandler;
class ExitTroop extends \sammo\BaseAPI
{
@@ -24,23 +27,35 @@ class ExitTroop extends \sammo\BaseAPI
$generalID = $session->generalID;
$db = DB::db();
$troopID = $db->queryFirstField('SELECT troop FROM general WHERE no = %i', $generalID);
$me = GeneralLite::createObjFromDB($generalID, ['troop'], GeneralLiteQueryMode::Lite);
if (!$me) {
return '장수 정보를 불러올 수 없습니다.';
}
$troopID = $me->getVar('troop');
if($troopID == 0){
return '부대에 소속되어 있지 않습니다.';
}
if($generalID != $troopID){
$db->update('general', [
'troop' => 0,
], '`no` = %i', $generalID);
if($troopID != $generalID){
StaticEventHandler::handleEvent($me, null, $this::class, [
"isTroopLeader" => false,
], $this->args);
$me->setVar('troop', 0);
$me->applyDB($db);
return null;
}
//부대장이다.
StaticEventHandler::handleEvent($me, null, $this::class, [
"isTroopLeader" => true,
], $this->args);
$db->update('general', [
'troop' => 0,
], '`troop` = %i', $troopID);
$db->delete('troop', 'troop_leader = %i', $troopID);
$me->setVar('troop', 0);
$me->applyDB($db);
return null;
}