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