dbmsv2 init...1

This commit is contained in:
choi.jh 2025-08-19 18:30:56 +09:00
parent ab79f8391b
commit cb92efa856
24 changed files with 179 additions and 201 deletions

View File

@ -4,7 +4,7 @@ namespace App\Controllers\Admin;
use App\Helpers\HomeHelper; use App\Helpers\HomeHelper;
use App\Services\Customer\ServiceService; use App\Services\Customer\ServiceService;
use App\Services\Customer\ServicePaymentService; use App\Services\Customer\PaymentService;
use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RedirectResponse;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
@ -13,7 +13,7 @@ use Psr\Log\LoggerInterface;
class Home extends AdminController class Home extends AdminController
{ {
private $_service = null; private $_service = null;
private ?ServicePaymentService $_servicePaymentService = null; private ?PaymentService $_PaymentService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{ {
parent::initController($request, $response, $logger); parent::initController($request, $response, $logger);
@ -37,12 +37,12 @@ class Home extends AdminController
} }
return $this->_helper; return $this->_helper;
} }
final public function getServicePaymentService(): ServicePaymentService final public function getPaymentService(): PaymentService
{ {
if (!$this->_servicePaymentService) { if (!$this->_PaymentService) {
$this->_servicePaymentService = new ServicePaymentService(); $this->_PaymentService = new PaymentService();
} }
return $this->_servicePaymentService; return $this->_PaymentService;
} }
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
{ {
@ -71,16 +71,12 @@ class Home extends AdminController
$this->initAction(__FUNCTION__); $this->initAction(__FUNCTION__);
//Total 서버 현황 //Total 서버 현황
$this->totalCounts = $this->getService()->getTotalCountsByType(); $this->totalCounts = $this->getService()->getTotalCountsByType();
//LINE,IP,SERVER등 추가 FilterOption 셋팅용
foreach (SERVICE_ITEM_TYPES as $item_type => $label) {
$this->setFilterFieldOption($item_type, $this->getService()->getFilterOptionsByItemType($item_type));
}
//interval을 기준으로 최근 신규 서비스정보 가져오기 //interval을 기준으로 최근 신규 서비스정보 가져오기
$this->interval = intval($this->request->getVar('interval') ?? SERVICE_NEW_INTERVAL); $this->interval = intval($this->request->getVar('interval') ?? SERVICE_NEW_INTERVAL);
$this->newServiceEntities = $this->getService()->getEntitiesByNewService($this->interval); $this->newServiceEntities = $this->getService()->getEntitiesByNewService($this->interval);
$this->newServiceCount = count($this->newServiceEntities); $this->newServiceCount = count($this->newServiceEntities);
//서비스별 미납 Count //서비스별 미납 Count
$this->unPaids = $this->getServicePaymentService()->getUnPaidCountByService(); $this->unPaids = $this->getPaymentService()->getUnPaidCount();
$this->unPaidCount = count($this->unPaids); $this->unPaidCount = count($this->unPaids);
helper(['form']); helper(['form']);
return $this->getResultSuccess(); return $this->getResultSuccess();

View File

@ -4,8 +4,8 @@
"settings": { "settings": {
"width": 3000, "width": 3000,
"height": 3000, "height": 3000,
"scrollTop": -922, "scrollTop": 0,
"scrollLeft": -856, "scrollLeft": -690,
"zoomLevel": 1, "zoomLevel": 1,
"show": 511, "show": 511,
"database": 4, "database": 4,
@ -164,15 +164,15 @@
"JEk5AASiK6MpT9QBRWjMX" "JEk5AASiK6MpT9QBRWjMX"
], ],
"ui": { "ui": {
"x": 791.2462, "x": 865.9298,
"y": 870.1267, "y": 818.2277,
"zIndex": 2, "zIndex": 2,
"widthName": 60, "widthName": 60,
"widthComment": 60, "widthComment": 60,
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1755584376751, "updateAt": 1755592426935,
"createAt": 1745819764137 "createAt": 1745819764137
} }
}, },
@ -237,6 +237,7 @@
"m77kSp3scTgMhInPBjsc3", "m77kSp3scTgMhInPBjsc3",
"9F6QpQqxeEggZ0FHM81O1", "9F6QpQqxeEggZ0FHM81O1",
"tsDqk1dzwzUtvBzpjmarJ", "tsDqk1dzwzUtvBzpjmarJ",
"IiWPO22p9r3zajF_EcPpe",
"bh-W1plz0vCW2rURDnfDR", "bh-W1plz0vCW2rURDnfDR",
"hmZlcR-Pw2C_ife1zzo5o", "hmZlcR-Pw2C_ife1zzo5o",
"AGBQ4FnuIDU-Dy5QoS0Fu", "AGBQ4FnuIDU-Dy5QoS0Fu",
@ -285,6 +286,7 @@
"Djbw3B6xZWKAvwJDto9xl", "Djbw3B6xZWKAvwJDto9xl",
"5LbBaqufhFMN2X15ksCbZ", "5LbBaqufhFMN2X15ksCbZ",
"gf3QFUo-9exbygXX3-0H0", "gf3QFUo-9exbygXX3-0H0",
"IiWPO22p9r3zajF_EcPpe",
"bh-W1plz0vCW2rURDnfDR", "bh-W1plz0vCW2rURDnfDR",
"hmZlcR-Pw2C_ife1zzo5o", "hmZlcR-Pw2C_ife1zzo5o",
"AGBQ4FnuIDU-Dy5QoS0Fu", "AGBQ4FnuIDU-Dy5QoS0Fu",
@ -308,7 +310,7 @@
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1755584140872, "updateAt": 1755593063862,
"createAt": 1745819764137 "createAt": 1745819764137
} }
}, },
@ -971,15 +973,15 @@
"2fzVlWt1Skh-391N_z9Ci" "2fzVlWt1Skh-391N_z9Ci"
], ],
"ui": { "ui": {
"x": 1521.217, "x": 1527.5462,
"y": 1019.8959, "y": 951.5417,
"zIndex": 2395, "zIndex": 2395,
"widthName": 60, "widthName": 60,
"widthComment": 62, "widthComment": 62,
"color": "" "color": ""
}, },
"meta": { "meta": {
"updateAt": 1755584468390, "updateAt": 1755592449163,
"createAt": 1748485662214 "createAt": 1748485662214
} }
}, },
@ -1887,7 +1889,7 @@
"comment": "", "comment": "",
"dataType": "VARCHAR(20)", "dataType": "VARCHAR(20)",
"default": "'normal'", "default": "'normal'",
"options": 0, "options": 8,
"ui": { "ui": {
"keys": 0, "keys": 0,
"widthName": 60, "widthName": 60,
@ -1896,7 +1898,7 @@
"widthDefault": 60 "widthDefault": 60
}, },
"meta": { "meta": {
"updateAt": 1755581807230, "updateAt": 1755592729455,
"createAt": 1745819764137 "createAt": 1745819764137
} }
}, },
@ -3747,7 +3749,7 @@
"comment": "", "comment": "",
"dataType": "VARCHAR(20)", "dataType": "VARCHAR(20)",
"default": "'normal'", "default": "'normal'",
"options": 0, "options": 8,
"ui": { "ui": {
"keys": 0, "keys": 0,
"widthName": 60, "widthName": 60,
@ -3756,7 +3758,7 @@
"widthDefault": 60 "widthDefault": 60
}, },
"meta": { "meta": {
"updateAt": 1755581848746, "updateAt": 1755592723719,
"createAt": 1746409047865 "createAt": 1746409047865
} }
}, },
@ -9944,19 +9946,19 @@
"id": "ptLUIGfIqm89XGRz_V2ww", "id": "ptLUIGfIqm89XGRz_V2ww",
"tableId": "B8haiEbPc1lRBWTv1g25G", "tableId": "B8haiEbPc1lRBWTv1g25G",
"name": "location", "name": "location",
"comment": "지역코드(chiba,tokyo,3center)", "comment": "지역코드(chiba,tokyo,3center)",
"dataType": "VARCHAR(20)", "dataType": "VARCHAR(20)",
"default": "", "default": "",
"options": 0, "options": 0,
"ui": { "ui": {
"keys": 0, "keys": 0,
"widthName": 60, "widthName": 60,
"widthComment": 160, "widthComment": 172,
"widthDataType": 75, "widthDataType": 75,
"widthDefault": 60 "widthDefault": 60
}, },
"meta": { "meta": {
"updateAt": 1755478773346, "updateAt": 1755593517165,
"createAt": 1755237587825 "createAt": 1755237587825
} }
}, },
@ -9964,19 +9966,19 @@
"id": "50a08OnwVq9SXAXX5pq6s", "id": "50a08OnwVq9SXAXX5pq6s",
"tableId": "B8haiEbPc1lRBWTv1g25G", "tableId": "B8haiEbPc1lRBWTv1g25G",
"name": "type", "name": "type",
"comment": "서비스형식((일발, 방어,전용,VPN,대체,,테스트,자사,코로케이션)", "comment": "서비스형식((일반, 자사,코로케이션 등)",
"dataType": "VARCHAR(20)", "dataType": "VARCHAR(20)",
"default": "", "default": "",
"options": 8, "options": 8,
"ui": { "ui": {
"keys": 0, "keys": 0,
"widthName": 60, "widthName": 60,
"widthComment": 336, "widthComment": 205,
"widthDataType": 75, "widthDataType": 75,
"widthDefault": 60 "widthDefault": 60
}, },
"meta": { "meta": {
"updateAt": 1755240220489, "updateAt": 1755593455555,
"createAt": 1755240220488 "createAt": 1755240220488
} }
}, },
@ -10364,19 +10366,19 @@
"id": "hK2hK1Xs1GrDW5nUTroIR", "id": "hK2hK1Xs1GrDW5nUTroIR",
"tableId": "B8haiEbPc1lRBWTv1g25G", "tableId": "B8haiEbPc1lRBWTv1g25G",
"name": "amount", "name": "amount",
"comment": "서비스금액(IP+월별ITEM+CS의 서비스금액의 총합금액)", "comment": "서비스금액(<=서버 최종금액)",
"dataType": "INT", "dataType": "INT",
"default": "0", "default": "0",
"options": 8, "options": 8,
"ui": { "ui": {
"keys": 0, "keys": 0,
"widthName": 60, "widthName": 60,
"widthComment": 298, "widthComment": 161,
"widthDataType": 60, "widthDataType": 60,
"widthDefault": 60 "widthDefault": 60
}, },
"meta": { "meta": {
"updateAt": 1755245428350, "updateAt": 1755593484931,
"createAt": 1755245428349 "createAt": 1755245428349
} }
}, },
@ -12664,19 +12666,19 @@
"id": "ImCmrkHrB4nfB35PilQnf", "id": "ImCmrkHrB4nfB35PilQnf",
"tableId": "ZLEpY5EjuZV21718zf-Y1", "tableId": "ZLEpY5EjuZV21718zf-Y1",
"name": "clientinfo_code", "name": "clientinfo_code",
"comment": "고객코드(이전사용자)", "comment": "고객코드(직전고객)",
"dataType": "VARCHAR(20)", "dataType": "VARCHAR(20)",
"default": "", "default": "",
"options": 0, "options": 0,
"ui": { "ui": {
"keys": 2, "keys": 2,
"widthName": 82, "widthName": 82,
"widthComment": 117, "widthComment": 105,
"widthDataType": 75, "widthDataType": 75,
"widthDefault": 60 "widthDefault": 60
}, },
"meta": { "meta": {
"updateAt": 1755566148910, "updateAt": 1755593539759,
"createAt": 1755566111980 "createAt": 1755566111980
} }
}, },
@ -12759,6 +12761,26 @@
"updateAt": 1755584368408, "updateAt": 1755584368408,
"createAt": 1755584368408 "createAt": 1755584368408
} }
},
"IiWPO22p9r3zajF_EcPpe": {
"id": "IiWPO22p9r3zajF_EcPpe",
"tableId": "B4qGh3KZsXHQ3_4EOgwJZ",
"name": "total_price",
"comment": "최종금액(PART+IP+CS)",
"dataType": "INT",
"default": "0",
"options": 8,
"ui": {
"keys": 0,
"widthName": 60,
"widthComment": 124,
"widthDataType": 60,
"widthDefault": 60
},
"meta": {
"updateAt": 1755593253840,
"createAt": 1755593061849
}
} }
}, },
"relationshipEntities": { "relationshipEntities": {
@ -12781,7 +12803,7 @@
"columnIds": [ "columnIds": [
"f7_MGvRjkwL1xkCWrAgDR" "f7_MGvRjkwL1xkCWrAgDR"
], ],
"x": 2091.7956, "x": 2079.7956,
"y": 1600.8948, "y": 1600.8948,
"direction": 2 "direction": 2
}, },
@ -12809,8 +12831,8 @@
"columnIds": [ "columnIds": [
"Vf3bNvvEPfu1zCs4rcHTU" "Vf3bNvvEPfu1zCs4rcHTU"
], ],
"x": 1917.717, "x": 1858.5462,
"y": 1019.8959, "y": 951.5417,
"direction": 4 "direction": 4
}, },
"meta": { "meta": {
@ -12838,7 +12860,7 @@
"s1Az-lXWK0NlVQqFEEK8o" "s1Az-lXWK0NlVQqFEEK8o"
], ],
"x": 2294.4072, "x": 2294.4072,
"y": 559.0364999999999, "y": 528.3698333333333,
"direction": 1 "direction": 1
}, },
"meta": { "meta": {
@ -13089,8 +13111,8 @@
"columnIds": [ "columnIds": [
"hrPg0uHAdEjamOj--BVzO" "hrPg0uHAdEjamOj--BVzO"
], ],
"x": 1190.9962, "x": 1265.6798,
"y": 870.1267, "y": 818.2277,
"direction": 4 "direction": 4
}, },
"meta": { "meta": {
@ -14284,8 +14306,8 @@
"columnIds": [ "columnIds": [
"1ZM86qoxmCcoKnqOpE2oj" "1ZM86qoxmCcoKnqOpE2oj"
], ],
"x": 2314.217, "x": 2189.5461999999998,
"y": 1215.8959, "y": 1147.5417,
"direction": 2 "direction": 2
}, },
"end": { "end": {
@ -14293,9 +14315,9 @@
"columnIds": [ "columnIds": [
"LRN5qjIRZ18UOhqFbBLuo" "LRN5qjIRZ18UOhqFbBLuo"
], ],
"x": 2609.4072, "x": 2294.4072,
"y": 835.0364999999999, "y": 773.7031666666666,
"direction": 8 "direction": 1
}, },
"meta": { "meta": {
"updateAt": 1755479838515, "updateAt": 1755479838515,
@ -14312,8 +14334,8 @@
"columnIds": [ "columnIds": [
"34psXzS7RLX0sWXZyDGGf" "34psXzS7RLX0sWXZyDGGf"
], ],
"x": 1297.179, "x": 1328.179,
"y": 1828.520766666667, "y": 1848.520766666667,
"direction": 2 "direction": 2
}, },
"end": { "end": {
@ -14397,7 +14419,7 @@
"34psXzS7RLX0sWXZyDGGf" "34psXzS7RLX0sWXZyDGGf"
], ],
"x": 740.179, "x": 740.179,
"y": 1627.8541, "y": 1633.8541,
"direction": 1 "direction": 1
}, },
"end": { "end": {
@ -14480,8 +14502,8 @@
"columnIds": [ "columnIds": [
"1ZM86qoxmCcoKnqOpE2oj" "1ZM86qoxmCcoKnqOpE2oj"
], ],
"x": 1521.217, "x": 1527.5462,
"y": 1313.8959, "y": 1245.5417,
"direction": 1 "direction": 1
}, },
"end": { "end": {
@ -14489,8 +14511,8 @@
"columnIds": [ "columnIds": [
"3fZMQ9qB1DO8y44eJRKdt" "3fZMQ9qB1DO8y44eJRKdt"
], ],
"x": 1297.179, "x": 1328.179,
"y": 1599.1874333333335, "y": 1603.1874333333335,
"direction": 2 "direction": 2
}, },
"meta": { "meta": {
@ -14620,8 +14642,8 @@
"columnIds": [ "columnIds": [
"34psXzS7RLX0sWXZyDGGf" "34psXzS7RLX0sWXZyDGGf"
], ],
"x": 1297.179, "x": 1328.179,
"y": 1713.8541000000002, "y": 1725.8541000000002,
"direction": 2 "direction": 2
}, },
"end": { "end": {
@ -14648,8 +14670,8 @@
"columnIds": [ "columnIds": [
"n7IyDCZLDqfEo49XRYtYR" "n7IyDCZLDqfEo49XRYtYR"
], ],
"x": 1324.2462, "x": 1398.9298,
"y": 1066.1267, "y": 1112.2277,
"direction": 2 "direction": 2
}, },
"end": { "end": {
@ -14657,8 +14679,8 @@
"columnIds": [ "columnIds": [
"0LanT5cVJX_uBb0Foh2NM" "0LanT5cVJX_uBb0Foh2NM"
], ],
"x": 1521.217, "x": 1527.5462,
"y": 1117.8959, "y": 1049.5417,
"direction": 1 "direction": 1
}, },
"meta": { "meta": {
@ -14676,8 +14698,8 @@
"columnIds": [ "columnIds": [
"n7IyDCZLDqfEo49XRYtYR" "n7IyDCZLDqfEo49XRYtYR"
], ],
"x": 1324.2462, "x": 1398.9298,
"y": 935.4600333333333, "y": 916.2277,
"direction": 2 "direction": 2
}, },
"end": { "end": {
@ -14686,7 +14708,7 @@
"QwfRq6xU7Vy-QoenynjXR" "QwfRq6xU7Vy-QoenynjXR"
], ],
"x": 2294.4072, "x": 2294.4072,
"y": 743.0364999999999, "y": 651.0364999999999,
"direction": 1 "direction": 1
}, },
"meta": { "meta": {
@ -14732,8 +14754,8 @@
"columnIds": [ "columnIds": [
"n7IyDCZLDqfEo49XRYtYR" "n7IyDCZLDqfEo49XRYtYR"
], ],
"x": 924.4962, "x": 999.1798,
"y": 870.1267, "y": 818.2277,
"direction": 4 "direction": 4
}, },
"end": { "end": {
@ -14760,8 +14782,8 @@
"columnIds": [ "columnIds": [
"n7IyDCZLDqfEo49XRYtYR" "n7IyDCZLDqfEo49XRYtYR"
], ],
"x": 791.2462, "x": 865.9298,
"y": 968.1267, "y": 916.2277,
"direction": 1 "direction": 1
}, },
"end": { "end": {
@ -14789,7 +14811,7 @@
"34psXzS7RLX0sWXZyDGGf" "34psXzS7RLX0sWXZyDGGf"
], ],
"x": 740.179, "x": 740.179,
"y": 1799.8541, "y": 1817.8541,
"direction": 1 "direction": 1
}, },
"end": { "end": {
@ -14872,8 +14894,8 @@
"columnIds": [ "columnIds": [
"n7IyDCZLDqfEo49XRYtYR" "n7IyDCZLDqfEo49XRYtYR"
], ],
"x": 791.2462, "x": 865.9298,
"y": 1164.1267, "y": 1112.2277,
"direction": 1 "direction": 1
}, },
"end": { "end": {
@ -14900,8 +14922,8 @@
"columnIds": [ "columnIds": [
"n7IyDCZLDqfEo49XRYtYR" "n7IyDCZLDqfEo49XRYtYR"
], ],
"x": 1057.7462, "x": 999.1798,
"y": 1262.1267, "y": 1210.2277,
"direction": 8 "direction": 8
}, },
"end": { "end": {
@ -14909,7 +14931,7 @@
"columnIds": [ "columnIds": [
"hPz83FX0cU7HIyVRRr5sl" "hPz83FX0cU7HIyVRRr5sl"
], ],
"x": 1018.679, "x": 1034.179,
"y": 1541.8541, "y": 1541.8541,
"direction": 4 "direction": 4
}, },
@ -14928,9 +14950,9 @@
"columnIds": [ "columnIds": [
"n7IyDCZLDqfEo49XRYtYR" "n7IyDCZLDqfEo49XRYtYR"
], ],
"x": 1324.2462, "x": 1265.6798,
"y": 1196.7933666666668, "y": 1210.2277,
"direction": 2 "direction": 8
}, },
"end": { "end": {
"tableId": "ZLEpY5EjuZV21718zf-Y1", "tableId": "ZLEpY5EjuZV21718zf-Y1",

File diff suppressed because one or more lines are too long

View File

@ -10,7 +10,7 @@ class MyLogEntity extends CommonEntity
const PK = Model::PK; const PK = Model::PK;
const TITLE = Model::TITLE; const TITLE = Model::TITLE;
const STATUS_SUCCESS = "success"; const STATUS_SUCCESS = "success";
const STATUS_FAILED = "error"; const STATUS_FAILED = "fail";
const DEFAULT_STATUS = self::STATUS_SUCCESS; const DEFAULT_STATUS = self::STATUS_SUCCESS;
//공통부분 //공통부분
//Common Function //Common Function

View File

@ -2,14 +2,14 @@
namespace App\Helpers; namespace App\Helpers;
use App\Models\Customer\ServicePaymentModel; use App\Models\Customer\PaymentModel;
class HomeHelper extends CommonHelper class HomeHelper extends CommonHelper
{ {
public function __construct() public function __construct()
{ {
parent::__construct(); parent::__construct();
$this->setTitleField(field: ServicePaymentModel::TITLE); $this->setTitleField(field: PaymentModel::TITLE);
} }
public function getFieldView(string $field, mixed $value, array $viewDatas, array $extras = []): string|null public function getFieldView(string $field, mixed $value, array $viewDatas, array $extras = []): string|null

View File

@ -11,9 +11,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'status' => 'deposit',
],
"STATUS" => [ "STATUS" => [
'deposit' => "입금", 'deposit' => "입금",
"withdrawal" => "출금", "withdrawal" => "출금",

View File

@ -15,10 +15,6 @@ return [
'created_at' => "등록일", 'created_at' => "등록일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'role' => "user",
'status' => 'normal',
],
"ROLE" => [ "ROLE" => [
"user" => "일반회원", "user" => "일반회원",
"vip" => "VIP회원", "vip" => "VIP회원",

View File

@ -10,9 +10,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'status' => 'deposit'
],
"STATUS" => [ "STATUS" => [
'deposit' => "추가", 'deposit' => "추가",
"withdrawal" => "사용", "withdrawal" => "사용",

View File

@ -15,12 +15,6 @@ return [
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
'countdown' => "납부기한", 'countdown' => "납부기한",
], ],
'DEFAULTS' => [
'item_type' => "server",
'billing_method' => "month",
'pay_method' => "account",
'status' => 'unpaid'
],
"BILLING_METHOD" => [ "BILLING_METHOD" => [
"month" => "매월", "month" => "매월",
"onetime" => "일회성", "onetime" => "일회성",

View File

@ -10,9 +10,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'status' => 'deposit'
],
"STATUS" => [ "STATUS" => [
'deposit' => "입금", 'deposit' => "입금",
"withdrawal" => "출금", "withdrawal" => "출금",

View File

@ -4,9 +4,11 @@ return [
'label' => [ 'label' => [
'user_uid' => "관리자", 'user_uid' => "관리자",
'clientinfo_code' => "고객", 'clientinfo_code' => "고객",
'serverinfo_code' => "서버",
'type' => "서비스형식", 'type' => "서비스형식",
'location' => "위치", 'location' => "위치",
'billing_at' => "결제일", 'billing_at' => "결제일",
'amount' => "서비스금액",
'start_at' => "시작일", 'start_at' => "시작일",
'end_at' => "해지일", 'end_at' => "해지일",
'history' => "사용이력", 'history' => "사용이력",
@ -15,11 +17,6 @@ return [
'created_at' => "신청일", 'created_at' => "신청일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'location' => "chiba",
'type' => "normal",
'status' => 'normal'
],
"LOCATION" => [ "LOCATION" => [
"chiba" => "치바", "chiba" => "치바",
"tokyo" => "도쿄", "tokyo" => "도쿄",

View File

@ -13,10 +13,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'type' => 'VPC-CS',
'status' => 'available'
],
"TYPE" => [ "TYPE" => [
"VPC-CS" => "VPC-CS", "VPC-CS" => "VPC-CS",
"KT-CS" => "KT-CS", "KT-CS" => "KT-CS",

View File

@ -14,9 +14,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'status' => 'available',
],
"STATUS" => [ "STATUS" => [
'available' => "사용가능", 'available' => "사용가능",
'occupied' => "서비스중", 'occupied' => "서비스중",

View File

@ -13,10 +13,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'type' => 'normal',
'status' => 'available'
],
"TYPE" => [ "TYPE" => [
"normal" => "일반", "normal" => "일반",
"dedicated" => "전용", "dedicated" => "전용",

View File

@ -16,10 +16,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'type' => 'hp',
'status' => 'available',
],
"TYPE" => [ "TYPE" => [
'hp' => "HP", 'hp' => "HP",
"del" => "DELL", "del" => "DELL",

View File

@ -8,9 +8,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'status' => 'available',
],
"STATUS" => [ "STATUS" => [
'available' => "사용가능", 'available' => "사용가능",
'occupied' => "서비스중", 'occupied' => "서비스중",

View File

@ -3,21 +3,16 @@ return [
'title' => "Log 정보", 'title' => "Log 정보",
'label' => [ 'label' => [
'uid' => "번호", 'uid' => "번호",
'class_name' => "클래스",
'method_name' => "함수",
'title' => "제목",
'user_uid' => "사용자", 'user_uid' => "사용자",
'title' => "제목",
'content' => "내용", 'content' => "내용",
'status' => "상태", 'status' => "상태",
'updated_at' => "수정일", 'updated_at' => "수정일",
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'status' => 'success'
],
"STATUS" => [ "STATUS" => [
'success' => "완료", 'success' => "성공",
"fail" => "실패", "fail" => "실패",
], ],
]; ];

View File

@ -15,10 +15,6 @@ return [
'created_at' => "작성일", 'created_at' => "작성일",
'deleted_at' => "삭제일", 'deleted_at' => "삭제일",
], ],
'DEFAULTS' => [
'role' => "manager",
'status' => 'normal'
],
"ROLE" => [ "ROLE" => [
"manager" => "관리자", "manager" => "관리자",
"cloudflare" => "Cloudflare관리자", "cloudflare" => "Cloudflare관리자",

View File

@ -15,6 +15,7 @@ class ServiceModel extends CustomerModel
protected $allowedFields = [ protected $allowedFields = [
"user_uid", "user_uid",
"clientinfo_code", "clientinfo_code",
"serverinfo_code",
"type", "type",
"location", "location",
"billing_at", "billing_at",
@ -35,10 +36,12 @@ class ServiceModel extends CustomerModel
} }
switch ($field) { switch ($field) {
case "user_uid": case "user_uid":
case "serverinfo_code":
case "amount": case "amount":
$rule = "required|numeric"; $rule = "required|numeric";
break; break;
case "clientinfo_code": case "clientinfo_code":
case "type":
case "location": case "location":
case "status": case "status":
$rule = "required|trim|string"; $rule = "required|trim|string";

View File

@ -6,7 +6,7 @@ use App\Entities\MyLogEntity;
class MyLogModel extends CommonModel class MyLogModel extends CommonModel
{ {
const TABLE = "logger"; const TABLE = "user_history";
const PK = "uid"; const PK = "uid";
const TITLE = "title"; const TITLE = "title";
protected $table = self::TABLE; protected $table = self::TABLE;
@ -14,8 +14,6 @@ class MyLogModel extends CommonModel
protected $returnType = MyLogEntity::class; protected $returnType = MyLogEntity::class;
protected $allowedFields = [ protected $allowedFields = [
"user_uid", "user_uid",
"class_name",
"method_name",
"title", "title",
"content", "content",
"status", "status",

View File

@ -3,6 +3,7 @@
namespace App\Services\Customer; namespace App\Services\Customer;
use App\Entities\Customer\ServiceEntity; use App\Entities\Customer\ServiceEntity;
use App\Entities\Equipment\ServerEntity;
use App\Models\Customer\ServiceModel; use App\Models\Customer\ServiceModel;
class ServiceService extends CustomerService class ServiceService extends CustomerService
@ -17,6 +18,7 @@ class ServiceService extends CustomerService
{ {
return [ return [
"clientinfo_code", "clientinfo_code",
"serverinfo_code",
"type", "type",
"location", "location",
"billing_at", "billing_at",
@ -28,7 +30,7 @@ class ServiceService extends CustomerService
} }
public function getFilterFields(): array public function getFilterFields(): array
{ {
return ['clientinfo_code', 'type', 'location', 'status']; return ['clientinfo_code', 'serverinfo_code', 'type', 'location', 'status'];
} }
public function getBatchJobFields(): array public function getBatchJobFields(): array
{ {
@ -36,7 +38,7 @@ class ServiceService extends CustomerService
} }
public function getIndexFields(): array public function getIndexFields(): array
{ {
return ['clientinfo_code', 'type', 'location', 'billing_at', 'amount', 'start_at', 'end_at', 'updated_at', 'status', 'user_uid']; return ['clientinfo_code', 'type', 'location', 'serverinfo_code', 'billing_at', 'amount', 'start_at', 'end_at', 'updated_at', 'status', 'user_uid'];
} }
//Entity의 관련객체정의용 //Entity의 관련객체정의용
public function setSearchIp(string $ip): void public function setSearchIp(string $ip): void
@ -70,6 +72,9 @@ class ServiceService extends CustomerService
case 'clientinfo_code': case 'clientinfo_code':
$options = $this->getClientService()->getEntities(); $options = $this->getClientService()->getEntities();
break; break;
case 'serverinfo_code':
$options = $this->getServerService()->getEntities(['status' => ServerEntity::DEFAULT_STATUS]);
break;
default: default:
$options = parent::getFormFieldOption($field, $options); $options = parent::getFormFieldOption($field, $options);
break; break;
@ -84,13 +89,21 @@ class ServiceService extends CustomerService
//서비스 방식에 따른 서비스별 Count //서비스 방식에 따른 서비스별 Count
final public function getTotalCountsByType(): array final public function getTotalCountsByType(): array
{ {
$totalCounts = [
'chiba_total' => 0,
'tokyo_total' => 0,
'all_total' => 0,
'normal' => ['chiba' => 0, 'tokyo' => 0, 'total' => 0],
'defence' => ['chiba' => 0, 'tokyo' => 0, 'total' => 0],
'dedicated' => ['chiba' => 0, 'tokyo' => 0, 'total' => 0],
'alternative' => ['chiba' => 0, 'tokyo' => 0, 'total' => 0],
'test' => ['chiba' => 0, 'tokyo' => 0, 'total' => 0],
];
$sql = "SELECT type, $sql = "SELECT type,
COUNT(CASE WHEN location = 'default' THEN 1 END) AS chiba, COUNT(CASE WHEN location = 'chiba' THEN 1 END) AS chiba,
COUNT(CASE WHEN location = 'tokyo' THEN 1 END) AS tokyo, COUNT(CASE WHEN location = 'tokyo' THEN 1 END) AS tokyo,
COUNT(CASE WHEN location IN ('default', 'tokyo') THEN 1 END) AS total COUNT(CASE WHEN location IN ('chiba', 'tokyo') THEN 1 END) AS total
FROM serviceinfo GROUP BY type;"; FROM serviceinfo GROUP BY type";
$totalCounts = ['chiba_total' => 0, 'tokyo_total' => 0, 'all_total' => 0];
foreach ($this->getModel()->query($sql)->getResult() as $row) { foreach ($this->getModel()->query($sql)->getResult() as $row) {
$totalCounts[$row->type] = [ $totalCounts[$row->type] = [
'chiba' => $row->chiba, 'chiba' => $row->chiba,

View File

@ -4,7 +4,6 @@ namespace App\Services;
use App\Entities\MyLogEntity; use App\Entities\MyLogEntity;
use App\Models\MyLogModel; use App\Models\MyLogModel;
use App\Services\Auth\AuthService;
use App\Libraries\LogCollector; use App\Libraries\LogCollector;
use App\Services\UserService; use App\Services\UserService;
@ -20,8 +19,6 @@ class MyLogService extends CommonService
{ {
return [ return [
"user_uid", "user_uid",
"class_name",
"method_name",
"title", "title",
"content", "content",
"status", "status",
@ -37,7 +34,7 @@ class MyLogService extends CommonService
} }
public function getIndexFields(): array public function getIndexFields(): array
{ {
return ['user_uid', 'class_name', 'method_name', 'title', 'status', 'created_at']; return ['user_uid', 'title', 'status', 'created_at'];
} }
public function getUserService(): UserService public function getUserService(): UserService
{ {
@ -64,9 +61,7 @@ class MyLogService extends CommonService
{ {
$formDatas = [ $formDatas = [
'user_uid' => $user_uid, 'user_uid' => $user_uid,
'class_name' => $class, 'title' => sprintf("%s->%s %s", $class, $method, $title),
'method_name' => $method,
'title' => $title,
'content' => LogCollector::dump(), 'content' => LogCollector::dump(),
]; ];
LogCollector::clear(); LogCollector::clear();

View File

@ -11,14 +11,14 @@
<table class="table table-bordered table-hover align-middle"> <table class="table table-bordered table-hover align-middle">
<thead class="table-light"> <thead class="table-light">
<tr> <tr>
<th>서비스코드</th> <th class="text-center">서비스코드</th>
<th>업체명</th> <th class="text-center">업체명</th>
<th>구분</th> <th class="text-center">구분</th>
<th>장비번호</th> <th class="text-center">장비번호</th>
<th>스위치정보</th> <th class="text-center">스위치정보</th>
<th>IP정보</th> <th class="text-center">IP정보</th>
<th>CS</th> <th class="text-center">CS</th>
<th>등록자</th> <th class="text-center">등록자</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>

View File

@ -11,36 +11,36 @@
<table class="table table-bordered table-hover align-middle"> <table class="table table-bordered table-hover align-middle">
<thead> <thead>
<tr> <tr>
<th rowspan="2">고객명</th> <th rowspan="2" class="text-center">고객명</th>
<th colspan="2">일반</th> <th colspan="2" class="text-center">일반</th>
<th colspan="2">방어</th> <th colspan="2" class="text-center">방어</th>
<th colspan="2">전용</th> <th colspan="2" class="text-center">전용</th>
<th colspan="2">대체</th> <th colspan="2" class="text-center">대체</th>
<th colspan="3">테스트</th> <th colspan="3" class="text-center">테스트</th>
<th colspan="3">합계</th> <th colspan="3" class="text-center">합계</th>
</tr> </tr>
<tr> <tr>
<th>도쿄</th> <th class="text-center">도쿄</th>
<th>치바</th> <th class="text-center">치바</th>
<th>도쿄</th> <th class="text-center">도쿄</th>
<th>치바</th> <th class="text-center">치바</th>
<th>도쿄</th> <th class="text-center">도쿄</th>
<th>치바</th> <th class="text-center">치바</th>
<th>도쿄</th> <th class="text-center">도쿄</th>
<th>치바</th> <th class="text-center">치바</th>
<th>도쿄</th> <th class="text-center">도쿄</th>
<th>치바</th> <th class="text-center">치바</th>
<th>합계</th> <th class="text-center">합계</th>
<th>도쿄</th> <th class="text-center">도쿄</th>
<th>치바</th> <th class="text-center">치바</th>
<th>합계</th> <th class="text-center">합계</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td>PRIME</td> <td class="text-center">PRIME</td>
<td><?= $viewDatas['totalCounts']['default']['tokyo'] ?></td> <td><?= $viewDatas['totalCounts']['normal']['tokyo'] ?></td>
<td><?= $viewDatas['totalCounts']['default']['chiba'] ?></td> <td><?= $viewDatas['totalCounts']['normal']['chiba'] ?></td>
<td><?= $viewDatas['totalCounts']['defence']['tokyo'] ?></td> <td><?= $viewDatas['totalCounts']['defence']['tokyo'] ?></td>
<td><?= $viewDatas['totalCounts']['defence']['chiba'] ?></td> <td><?= $viewDatas['totalCounts']['defence']['chiba'] ?></td>
<td><?= $viewDatas['totalCounts']['dedicated']['tokyo'] ?></td> <td><?= $viewDatas['totalCounts']['dedicated']['tokyo'] ?></td>
@ -55,23 +55,23 @@
<td><?= $viewDatas['totalCounts']['all_total'] ?></td> <td><?= $viewDatas['totalCounts']['all_total'] ?></td>
</tr> </tr>
</tbody> </tbody>
<tfoot class="table-light fw-bold"> <tfoot class=" table-light fw-bold">
<tr> <tr>
<td>총합계</td> <td class="text-center">총합계</td>
<td>31</td> <td>0</td>
<td>557</td> <td>0</td>
<td>6</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>19</td> <td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>0</td> <td>0</td>
<td>7</td>
<td>7</td>
<td>37</td>
<td>576</td>
<td>613</td>
</tr> </tr>
</tfoot> </tfoot>
</table> </table>