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

View File

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

View File

@ -2,14 +2,14 @@
namespace App\Helpers;
use App\Models\Customer\ServicePaymentModel;
use App\Models\Customer\PaymentModel;
class HomeHelper extends CommonHelper
{
public function __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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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