refac,wip: GeneralQueryMode 분리
- GeneralQueryMode - General 생성용 - GeneralLiteQueryMode - GeneralLite 생성용 - 이를 통해 확실한 에러 메시지를 내줄 것으로..
This commit is contained in:
+1
-1
@@ -569,7 +569,7 @@ if ($str3) {
|
||||
[$prizeColumn->value, $gameColumn->value, $winColumn->value, $drawColumn->value, $loseColumn->value, 'leadership', 'strength', 'intel', 'no', 'npc', 'name'],
|
||||
GeneralQueryMode::Core
|
||||
);
|
||||
usort($tournamentRankerList, function (General $lhs, General $rhs) use ($gameColumn, $winColumn, $drawColumn, $loseColumn) {
|
||||
usort($tournamentRankerList, function (GeneralLite $lhs, GeneralLite $rhs) use ($gameColumn, $winColumn, $drawColumn, $loseColumn) {
|
||||
$result = - ($lhs->getRankVar($gameColumn) <=> $rhs->getRankVar($gameColumn));
|
||||
if ($result !== 0) return $result;
|
||||
$result = - (
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\Enums;
|
||||
|
||||
// mergeQueryColumn, createGeneralLiteObjListFromDB, createGeneralLiteObjFromDB 호출시 column 특수 모드 지정
|
||||
enum GeneralLiteQueryMode: int
|
||||
{
|
||||
/** 장수 식별을 위한 최소한의 정보, logger 초기화 없음 */
|
||||
case Core = 0;
|
||||
/** 게임 내에서 필수 이벤트 처리를 위한 정보 */
|
||||
case Lite = 1;
|
||||
/** 게임 내 모든 이벤트 처리를 위한 정보 */
|
||||
case Full = 2;
|
||||
}
|
||||
@@ -5,12 +5,6 @@ namespace sammo\Enums;
|
||||
// mergeQueryColumn, createGeneralObjListFromDB, createGeneralObjFromDB 호출시 column 특수 모드 지정
|
||||
enum GeneralQueryMode: int
|
||||
{
|
||||
/** 장수 식별을 위한 최소한의 정보, logger 초기화 없음 */
|
||||
case Core = 0;
|
||||
/** 게임 내에서 필수 이벤트 처리를 위한 정보, iAction 제외 */
|
||||
case Lite = 1;
|
||||
/** 게임 내 모든 이벤트 처리를 위한 정보, iAction 제외 */
|
||||
case FullWithoutIAction = 2;
|
||||
/** 게임 내 모든 이벤트 처리를 위한 정보, iAction 포함 */
|
||||
case Full = 3;
|
||||
/** 접속 정보를 포함한 모든 정보 */
|
||||
|
||||
@@ -927,10 +927,6 @@ class General extends GeneralBase implements iAction
|
||||
return [];
|
||||
}
|
||||
|
||||
if($queryMode < GeneralQueryMode::Full){
|
||||
throw new \InvalidArgumentException('충분하지 않은 queryMode:' . $queryMode->name);
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
[$year, $month] = $gameStor->getValuesAsArray(['year', 'month']);
|
||||
@@ -1013,10 +1009,6 @@ class General extends GeneralBase implements iAction
|
||||
|
||||
static public function createGeneralObjFromDB(int $generalID, ?array $column = null, GeneralQueryMode $queryMode = GeneralQueryMode::Full): self
|
||||
{
|
||||
if($queryMode < GeneralQueryMode::Full){
|
||||
throw new \InvalidArgumentException('충분하지 않은 queryMode:' . $queryMode->name);
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
[$year, $month] = $gameStor->getValuesAsArray(['year', 'month']);
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace sammo;
|
||||
|
||||
use Ds\Map;
|
||||
use sammo\Enums\GeneralAccessLogColumn;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\Enums\RankColumn;
|
||||
|
||||
@@ -145,7 +146,7 @@ abstract class GeneralBase
|
||||
|
||||
abstract function applyDB($db): bool;
|
||||
|
||||
static public function mergeQueryColumn(?array $reqColumns = null, GeneralQueryMode $queryMode = GeneralQueryMode::Full): array
|
||||
static public function mergeQueryColumn(?array $reqColumns = null, GeneralQueryMode|GeneralLiteQueryMode $queryMode = GeneralQueryMode::Full): array
|
||||
{
|
||||
$minimumColumn = ['no', 'name', 'owner', 'npc', 'city', 'nation', 'officer_level', 'officer_city'];
|
||||
$defaultEventColumn = [
|
||||
@@ -170,11 +171,11 @@ abstract class GeneralBase
|
||||
|
||||
if ($reqColumns === null) {
|
||||
switch ($queryMode) {
|
||||
case GeneralQueryMode::Core:
|
||||
case GeneralLiteQueryMode::Core:
|
||||
return [$minimumColumn, [], []];
|
||||
case GeneralQueryMode::Lite:
|
||||
case GeneralLiteQueryMode::Lite:
|
||||
return [$defaultEventColumn, [], []];
|
||||
case GeneralQueryMode::FullWithoutIAction:
|
||||
case GeneralLiteQueryMode::Full:
|
||||
case GeneralQueryMode::Full:
|
||||
return [$fullColumn, RankColumn::cases(), []];
|
||||
case GeneralQueryMode::FullWithAccessLog:
|
||||
@@ -211,11 +212,11 @@ abstract class GeneralBase
|
||||
}
|
||||
|
||||
switch ($queryMode) {
|
||||
case GeneralQueryMode::Core:
|
||||
case GeneralLiteQueryMode::Core:
|
||||
return [array_unique(array_merge($minimumColumn, $subColumn)), $rankColumn, $accessLogColumn];
|
||||
case GeneralQueryMode::Lite:
|
||||
case GeneralLiteQueryMode::Lite:
|
||||
return [array_unique(array_merge($defaultEventColumn, $subColumn)), $rankColumn, $accessLogColumn];
|
||||
case GeneralQueryMode::FullWithoutIAction:
|
||||
case GeneralLiteQueryMode::Full:
|
||||
case GeneralQueryMode::Full:
|
||||
return [array_unique(array_merge($fullColumn, $subColumn)), $rankColumn, $accessLogColumn];
|
||||
case GeneralQueryMode::FullWithAccessLog:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace sammo;
|
||||
|
||||
use Ds\Map;
|
||||
use sammo\Enums\GeneralQueryMode;
|
||||
use sammo\Enums\GeneralLiteQueryMode;
|
||||
use sammo\Enums\RankColumn;
|
||||
|
||||
class GeneralLite extends GeneralBase
|
||||
@@ -64,17 +64,17 @@ class GeneralLite extends GeneralBase
|
||||
/**
|
||||
* @param ?int[] $generalIDList
|
||||
* @param null|array<string|RankColumn> $column
|
||||
* @param GeneralQueryMode $queryMode
|
||||
* @param GeneralLiteQueryMode $queryMode
|
||||
* @return \sammo\GeneralLite[]
|
||||
* @throws MustNotBeReachedException
|
||||
*/
|
||||
static public function createGeneralLiteObjListFromDB(?array $generalIDList, ?array $column = null, GeneralQueryMode $queryMode = GeneralQueryMode::FullWithoutIAction): array
|
||||
static public function createGeneralLiteObjListFromDB(?array $generalIDList, ?array $column = null, GeneralLiteQueryMode $queryMode = GeneralLiteQueryMode::Full): array
|
||||
{
|
||||
if ($generalIDList === []) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if($queryMode > GeneralQueryMode::FullWithoutIAction){
|
||||
if($queryMode > GeneralLiteQueryMode::Full){
|
||||
throw new \InvalidArgumentException('지원하지 않는 queryMode:' . $queryMode->name);
|
||||
}
|
||||
|
||||
@@ -136,12 +136,8 @@ class GeneralLite extends GeneralBase
|
||||
return $result;
|
||||
}
|
||||
|
||||
static public function createGeneralLiteObjFromDB(int $generalID, ?array $column = null, GeneralQueryMode $queryMode = GeneralQueryMode::FullWithoutIAction): self
|
||||
static public function createGeneralLiteObjFromDB(int $generalID, ?array $column = null, GeneralLiteQueryMode $queryMode = GeneralLiteQueryMode::Full): self
|
||||
{
|
||||
if($queryMode > GeneralQueryMode::FullWithoutIAction){
|
||||
throw new \InvalidArgumentException('지원하지 않는 queryMode:' . $queryMode->name);
|
||||
}
|
||||
|
||||
$db = DB::db();
|
||||
if ($queryMode->value > 0) {
|
||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||
|
||||
Reference in New Issue
Block a user