setReadOnly(); if ($session->userGrade < 5) { header('location:_admin4.php'); die(); } $btn = Util::getPost('btn'); $genlist = Util::getPost('genlist', 'array_int'); $msg = Util::getPost('msg', 'string', '메시지'); $db = DB::db(); //NOTE: 왜 기능이 admin2와 admin4가 같이 있는가? //NOTE: 왜 블럭 시 admin4에선 금쌀을 없애지 않는가? switch ($btn) { case "블럭 해제": DB::db()->query('update general set block=0 where no IN %li', $genlist); break; case "1단계 블럭": $date = TimeUtil::now(); $db = DB::db(); $db->query('update general set block=1,killturn=24 where no IN %li', $genlist); //FIXME: subquery로 하는게 더 빠를 듯. $uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist); RootDB::db()->query('update member set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid); break; case "2단계 블럭": $date = TimeUtil::now(); $db = DB::db(); $db->query('update general set block=2,killturn=24 where no IN %li', $genlist); $uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist); RootDB::db()->query('update member set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid); break; case "3단계 블럭": $date = TimeUtil::now(); $db = DB::db(); $db->query('update general set block=3,killturn=24 where no IN %li', $genlist); $uid = $db->queryFirstColumn('select owner from general where no IN %li', $genlist); RootDB::db()->query('update member set block_num=block_num+1,block_date=%s where id IN %ls', $date, $uid); break; case "무한삭턴": DB::db()->query('update general set killturn=8000 where no IN %li', $genlist); break; case "강제 사망": $date = TimeUtil::now(true); $db->update('general', [ 'killturn' => 0, 'turntime' => $date, ], '`no` IN %li', $genlist); $db->update('general_turn', [ 'action' => '휴식', 'arg' => '{}', 'brief' => '휴식' ], 'general_id IN %li AND turn_idx = 0', $genlist); break; case "메세지 전달": $date = TimeUtil::now(); $src = MessageTarget::buildQuick($session->generalID); foreach($genlist as $generalID){ $msgObj = new Message( MessageType::private, $src, MessageTarget::buildQuick($generalID), $msg, new \DateTime(), new \DateTime('9999-12-31'), [] ); if ($msgObj) { $msgObj->send(true); } } break; } header('location:_admin4.php');