dbmsv3 init...1

This commit is contained in:
choi.jh 2025-10-02 13:50:51 +09:00
parent ae61fe2584
commit 4a6016bed7
28 changed files with 265 additions and 87 deletions

View File

@ -405,10 +405,30 @@ define("SERVICE", [
//서버파트 관련 //서버파트 관련
define("SERVERPART", [ define("SERVERPART", [
"CNT_RANGE" => array_combine(range(1, 10), range(1, 10)), "CNT_RANGE" => array_combine(range(1, 10), range(1, 10)),
"STOCK_PARTTYPES" => ['RAM', 'DISK'],
"SERVER_PARTTYPES" => ['CPU', 'RAM', 'DISK'], "SERVER_PARTTYPES" => ['CPU', 'RAM', 'DISK'],
"SERVICE_PARTTYPES" => ['SWITCH', 'IP', 'OS', 'SOFTWARE', 'CS'], "SERVICE_PARTTYPES" => ['SWITCH', 'IP', 'OS', 'SOFTWARE', 'CS'],
"ALL_PARTTYPES" => ['CPU', 'RAM', 'DISK', 'OS', 'SOFTWARE', 'SWITCH', 'IP', 'CS'], "ALL_PARTTYPES" => ['CPU', 'RAM', 'DISK', 'OS', 'SOFTWARE', 'SWITCH', 'IP', 'CS'],
"CPU" => [
"ATYPE" => [["UID" => 1, "CNT" => 1, "EXTRA" => ""]],
"BTYPE" => [["UID" => 2, "CNT" => 1, "EXTRA" => ""]],
"CTYPE" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
"DTYPE" => [["UID" => 4, "CNT" => 2, "EXTRA" => ""]],
"ETYPE" => [["UID" => 5, "CNT" => 2, "EXTRA" => ""]],
],
"RAM" => [
"ATYPE" => [["UID" => 3, "CNT" => 1, "EXTRA" => ""]],
"BTYPE" => [["UID" => 3, "CNT" => 1, "EXTRA" => ""]],
"CTYPE" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
"DTYPE" => [["UID" => 3, "CNT" => 2, "EXTRA" => ""]],
"ETYPE" => [["UID" => 3, "CNT" => 4, "EXTRA" => ""]],
],
"DISK" => [
"ATYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
"BTYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
"CTYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
"DTYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
"ETYPE" => [["UID" => 8, "CNT" => 2, "EXTRA" => "RAID1"], ["UID" => 9, "CNT" => 2, "EXTRA" => "RAID1"],],
]
]); ]);
//결제 관련 //결제 관련
define("PAYMENT", [ define("PAYMENT", [

View File

@ -270,6 +270,7 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->post('batchjob', 'DISKController::batchjob'); $routes->post('batchjob', 'DISKController::batchjob');
$routes->post('batchjob_delete', 'DISKController::batchjob_delete'); $routes->post('batchjob_delete', 'DISKController::batchjob_delete');
$routes->get('download/(:alpha)', 'DISKController::download/$1'); $routes->get('download/(:alpha)', 'DISKController::download/$1');
$routes->get('complete/(:num)', 'DISKController::complete/$1');
}); });
$routes->group('os', ['namespace' => 'App\Controllers\Admin\Part'], function ($routes) { $routes->group('os', ['namespace' => 'App\Controllers\Admin\Part'], function ($routes) {
$routes->get('/', 'OSController::index'); $routes->get('/', 'OSController::index');

View File

@ -49,9 +49,6 @@ class ServiceController extends CustomerController
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
{ {
switch ($this->getService()->getAction()) { switch ($this->getService()->getAction()) {
case 'addServer':
$result = "대체서버 추가가 완료되었습니다.";
break;
case 'create_form': case 'create_form':
case 'modify_form': case 'modify_form':
case 'addServer_form': case 'addServer_form':
@ -164,7 +161,7 @@ class ServiceController extends CustomerController
$formDatas['type'] = 'alternative'; //대체서버로 등록하기위해 필요 $formDatas['type'] = 'alternative'; //대체서버로 등록하기위해 필요
$this->entity = $this->getService()->addServer($entity, $formDatas); $this->entity = $this->getService()->addServer($entity, $formDatas);
$db->transCommit(); $db->transCommit();
return $this->getResultSuccess(); return $this->getResultSuccess("대체서버추가가 완료되었습니다.");
} catch (\Exception $e) { } catch (\Exception $e) {
$db->transRollback(); $db->transRollback();
return $this->getResultFail($e->getMessage()); return $this->getResultFail($e->getMessage());
@ -196,7 +193,7 @@ class ServiceController extends CustomerController
//서버정보설정 //서버정보설정
$this->getService()->changeServere($entity, $formDatas); $this->getService()->changeServere($entity, $formDatas);
$db->transCommit(); $db->transCommit();
return $this->getResultSuccess(); return $this->getResultSuccess('메인서버 설정이 바뀌었습니다.');
} catch (\Exception $e) { } catch (\Exception $e) {
$db->transRollback(); $db->transRollback();
return $this->getResultFail($e->getMessage()); return $this->getResultFail($e->getMessage());
@ -221,7 +218,7 @@ class ServiceController extends CustomerController
$formDatas = $this->getService()->getFormDatas(); $formDatas = $this->getService()->getFormDatas();
$this->getService()->terminateServer($entity, $formDatas); $this->getService()->terminateServer($entity, $formDatas);
$db->transCommit(); $db->transCommit();
return $this->getResultSuccess(); return $this->getResultSuccess('서버해지가 완료되었습니다.');
} catch (\Exception $e) { } catch (\Exception $e) {
$db->transRollback(); $db->transRollback();
return $this->getResultFail($e->getMessage()); return $this->getResultFail($e->getMessage());

View File

@ -30,6 +30,9 @@ class ServerController extends EquipmentController
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
{ {
switch ($this->getService()->getAction()) { switch ($this->getService()->getAction()) {
case 'create_form':
case 'modify_form':
case 'index':
case 'index': case 'index':
case 'view': case 'view':
$this->service = $this->getService(); $this->service = $this->getService();

View File

@ -2,12 +2,14 @@
namespace App\Controllers\Admin\Part; namespace App\Controllers\Admin\Part;
use App\Entities\Part\DISKEntity;
use App\Services\Part\DISKService;
use CodeIgniter\HTTP\RedirectResponse;
use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use App\Services\Part\DISKService;
class DISKController extends PartController class DISKController extends PartController
{ {
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger) public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
@ -26,5 +28,29 @@ class DISKController extends PartController
} }
return $this->_service; return $this->_service;
} }
public function complete(int $uid): RedirectResponse|string
{
//Transaction Start
$db = \Config\Database::connect();
$db->transStart();
try {
$this->getService()->setAction(__FUNCTION__);
//기존 Entity 가져오기
$entity = $this->getService()->getEntity($uid);
if (!$entity instanceof DISKEntity) {
throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다.");
}
$formDatas = [];
$formDatas['format'] = 0;
$formDatas['stock'] = $entity->getStock() + $entity->getFormat();
$this->entity = $this->getService()->modify($entity, $formDatas);
$db->transCommit();
return $this->getResultSuccess("포맷완료 처리가되었습니다.");
} catch (\Exception $e) {
$db->transRollback();
return $this->getResultFail($e->getMessage());
}
}
//Index,FieldForm관 //Index,FieldForm관
} }

View File

@ -156,7 +156,7 @@ CREATE TABLE `cpuinfo` (
LOCK TABLES `cpuinfo` WRITE; LOCK TABLES `cpuinfo` WRITE;
/*!40000 ALTER TABLE `cpuinfo` DISABLE KEYS */; /*!40000 ALTER TABLE `cpuinfo` DISABLE KEYS */;
INSERT INTO `cpuinfo` VALUES (1,'Xeon E5530 2.4Ghz 4Core',50000,97,'available','2025-09-25 04:13:04','2025-09-25 01:15:29',NULL),(2,'Xeon E5540 2.4Ghz 4Core',50000,100,'available',NULL,'2025-09-25 01:15:29',NULL),(3,'Xeon X5560 2.8Ghz 8Core',80000,99,'available','2025-09-25 04:14:07','2025-09-25 01:15:29',NULL),(4,'Xeon X5650 2.6Ghz 12Core',100000,99,'available','2025-09-25 04:15:13','2025-09-25 01:15:29',NULL),(5,'Xeon E5-2690v2 2.6Ghz 12Core',100000,99,'available','2025-09-25 04:08:25','2025-09-25 01:15:29',NULL),(6,'Xeon E5-2690v4 3.0Ghz 20Core',150000,98,'available','2025-10-01 08:17:17','2025-09-25 01:15:29',NULL); INSERT INTO `cpuinfo` VALUES (1,'Xeon E5530 2.4Ghz 4Core',50000,97,'available','2025-09-25 04:13:04','2025-09-25 01:15:29',NULL),(2,'Xeon E5540 2.4Ghz 4Core',50000,100,'available',NULL,'2025-09-25 01:15:29',NULL),(3,'Xeon X5560 2.8Ghz 8Core',80000,97,'available','2025-10-02 03:58:53','2025-09-25 01:15:29',NULL),(4,'Xeon X5650 2.6Ghz 12Core',100000,97,'available','2025-10-02 04:02:16','2025-09-25 01:15:29',NULL),(5,'Xeon E5-2690v2 2.6Ghz 12Core',100000,99,'available','2025-09-25 04:08:25','2025-09-25 01:15:29',NULL),(6,'Xeon E5-2690v4 3.0Ghz 20Core',150000,98,'available','2025-10-01 08:17:17','2025-09-25 01:15:29',NULL);
/*!40000 ALTER TABLE `cpuinfo` ENABLE KEYS */; /*!40000 ALTER TABLE `cpuinfo` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@ -230,7 +230,7 @@ CREATE TABLE `diskinfo` (
LOCK TABLES `diskinfo` WRITE; LOCK TABLES `diskinfo` WRITE;
/*!40000 ALTER TABLE `diskinfo` DISABLE KEYS */; /*!40000 ALTER TABLE `diskinfo` DISABLE KEYS */;
INSERT INTO `diskinfo` VALUES (1,'SATA 128G',50000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(2,'SATA 256G',70000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(3,'SATA 512G',90000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(4,'SAS 128G',60000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(5,'SAS 256G',80000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(6,'SAS 512G',100000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(7,'SSD 128G',60000,98,1,'available','2025-09-30 05:35:07','2025-09-25 01:15:29',NULL),(8,'SSD 256G',80000,95,0,'available','2025-09-30 05:35:30','2025-09-25 01:15:29',NULL),(9,'SSD 512G',100000,98,0,'available','2025-09-25 04:14:51','2025-09-25 01:15:29',NULL),(10,'SSD 1T',120000,99,1,'available','2025-09-30 01:48:53','2025-09-25 01:15:29',NULL),(11,'SSD 2T',150000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(12,'NVME 512G',120000,97,3,'available','2025-09-30 05:09:41','2025-09-25 01:15:29',NULL),(13,'NVME 1T',150000,98,1,'available','2025-10-01 08:17:55','2025-09-25 01:15:29',NULL),(14,'NVME 2T',180000,98,1,'available','2025-09-30 01:54:27','2025-09-25 01:15:29',NULL); INSERT INTO `diskinfo` VALUES (1,'SATA 128G',50000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(2,'SATA 256G',70000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(3,'SATA 512G',90000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(4,'SAS 128G',60000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(5,'SAS 256G',80000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(6,'SAS 512G',100000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(7,'SSD 128G',60000,98,1,'available','2025-09-30 05:35:07','2025-09-25 01:15:29',NULL),(8,'SSD 256G',80000,91,0,'available','2025-10-02 04:02:16','2025-09-25 01:15:29',NULL),(9,'SSD 512G',100000,94,0,'available','2025-10-02 04:02:16','2025-09-25 01:15:29',NULL),(10,'SSD 1T',120000,99,1,'available','2025-09-30 01:48:53','2025-09-25 01:15:29',NULL),(11,'SSD 2T',150000,100,0,'available',NULL,'2025-09-25 01:15:29',NULL),(12,'NVME 512G',120000,97,3,'available','2025-09-30 05:09:41','2025-09-25 01:15:29',NULL),(13,'NVME 1T',150000,99,0,'available','2025-10-02 01:48:58','2025-09-25 01:15:29',NULL),(14,'NVME 2T',180000,97,1,'available','2025-10-02 00:07:28','2025-09-25 01:15:29',NULL);
/*!40000 ALTER TABLE `diskinfo` ENABLE KEYS */; /*!40000 ALTER TABLE `diskinfo` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@ -372,7 +372,7 @@ CREATE TABLE `payment` (
CONSTRAINT `FK_clientinfo_TO_payment` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`), CONSTRAINT `FK_clientinfo_TO_payment` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`),
CONSTRAINT `FK_serviceinfo_TO_payment` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`), CONSTRAINT `FK_serviceinfo_TO_payment` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`),
CONSTRAINT `FK_user_TO_payment` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`) CONSTRAINT `FK_user_TO_payment` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8 COMMENT='결제정보'; ) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8 COMMENT='결제정보';
/*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET character_set_client = @saved_cs_client */;
-- --
@ -381,7 +381,7 @@ CREATE TABLE `payment` (
LOCK TABLES `payment` WRITE; LOCK TABLES `payment` WRITE;
/*!40000 ALTER TABLE `payment` DISABLE KEYS */; /*!40000 ALTER TABLE `payment` DISABLE KEYS */;
INSERT INTO `payment` VALUES (17,1,820,52,'HP DL360 Gen6',NULL,800000,'month','2025-09-25',NULL,'unpaid','2025-09-30 07:03:03','2025-09-25 06:29:25',NULL),(18,1,1161,53,'HP DL360 Gen7',NULL,900000,'month','2025-09-25',NULL,'unpaid','2025-09-25 08:14:06','2025-09-25 06:31:18',NULL),(19,1,820,52,'2G',NULL,40000,'onetime','2025-09-25',NULL,'unpaid','2025-09-25 08:27:17','2025-09-25 08:15:08',NULL),(20,1,1087,54,'HP DL360 Gen8',NULL,900000,'month','2025-09-25',NULL,'unpaid',NULL,'2025-09-25 08:36:43',NULL),(21,1,820,52,'16G',NULL,300000,'onetime','2025-09-26',NULL,'unpaid',NULL,'2025-09-26 07:03:50',NULL),(22,1,820,52,'NVME 512G',NULL,120000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 00:56:19',NULL),(23,1,820,52,'NVME 512G',NULL,240000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 01:02:43',NULL),(24,1,820,52,'NVME 1T',NULL,150000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 01:50:08',NULL),(25,1,820,52,'test.co.kr 도메인외 구매','test.co.kr\r\ntest1.co.kr\r\ntest2.co.kr',150000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 04:54:33',NULL),(26,1,820,52,'test.co.kr 도메인외 구매','test.co.kr\r\ntest1.co.kr\r\ntest2.co.kr',150000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 04:55:01',NULL),(27,1,820,52,'test.co.kr 도메인외 구매','test.co.kr\r\ntest1.co.kr\r\ntest2.co.kr',150000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 04:55:25',NULL),(28,1,820,52,'SSD 256G',NULL,160000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 05:35:30',NULL),(29,1,820,56,'Hitach HA3000',NULL,1200000,'month','2025-10-01',NULL,'unpaid',NULL,'2025-10-01 00:08:02',NULL),(30,1,820,56,'Hitach HA3000',NULL,1250000,'month','2025-10-01',NULL,'unpaid',NULL,'2025-10-01 00:09:49',NULL),(31,1,820,56,'Hitach HA3000',NULL,1350000,'month','2025-10-01',NULL,'unpaid',NULL,'2025-10-01 00:10:16',NULL),(32,1,819,57,'INTEL I5',NULL,600000,'month','2025-10-01',NULL,'unpaid',NULL,'2025-10-01 08:19:25',NULL); INSERT INTO `payment` VALUES (17,1,820,52,'HP DL360 Gen6',NULL,800000,'month','2025-09-25',NULL,'unpaid','2025-10-01 09:44:01','2025-09-25 06:29:25',NULL),(18,1,1161,53,'HP DL360 Gen7',NULL,900000,'month','2025-09-25',NULL,'unpaid','2025-09-25 08:14:06','2025-09-25 06:31:18',NULL),(19,1,820,52,'2G',NULL,40000,'onetime','2025-09-25',NULL,'unpaid','2025-09-25 08:27:17','2025-09-25 08:15:08',NULL),(20,1,1087,54,'HP DL360 Gen8',NULL,900000,'month','2025-09-25',NULL,'unpaid',NULL,'2025-09-25 08:36:43',NULL),(21,1,820,52,'16G',NULL,300000,'onetime','2025-09-26',NULL,'unpaid',NULL,'2025-09-26 07:03:50',NULL),(22,1,820,52,'NVME 512G',NULL,120000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 00:56:19',NULL),(23,1,820,52,'NVME 512G',NULL,240000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 01:02:43',NULL),(24,1,820,52,'NVME 1T',NULL,150000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 01:50:08',NULL),(28,1,820,52,'SSD 256G',NULL,160000,'onetime','2025-09-30',NULL,'unpaid',NULL,'2025-09-30 05:35:30',NULL),(29,1,820,56,'Hitach HA3000',NULL,1200000,'month','2025-10-01',NULL,'unpaid',NULL,'2025-10-01 00:08:02',NULL),(32,1,819,57,'INTEL I5',NULL,600000,'month','2025-10-01',NULL,'unpaid',NULL,'2025-10-01 08:19:25',NULL),(33,1,820,52,'NVME 2T',NULL,180000,'onetime','2025-10-02',NULL,'unpaid',NULL,'2025-10-02 00:07:28',NULL),(34,1,711,58,'HP DL360 Gen8',NULL,1300000,'month','2025-10-02',NULL,'unpaid',NULL,'2025-10-02 04:03:45',NULL);
/*!40000 ALTER TABLE `payment` ENABLE KEYS */; /*!40000 ALTER TABLE `payment` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@ -446,7 +446,7 @@ CREATE TABLE `raminfo` (
LOCK TABLES `raminfo` WRITE; LOCK TABLES `raminfo` WRITE;
/*!40000 ALTER TABLE `raminfo` DISABLE KEYS */; /*!40000 ALTER TABLE `raminfo` DISABLE KEYS */;
INSERT INTO `raminfo` VALUES (1,'2G',20000,98,'available','2025-10-01 08:17:38','2025-09-25 01:15:29',NULL),(2,'4G',30000,97,'available','2025-09-25 04:11:36','2025-09-25 01:15:29',NULL),(3,'8G',40000,99,'available','2025-09-25 04:13:26','2025-09-25 01:15:29',NULL),(4,'16G',60000,99,'available','2025-09-30 05:09:41','2025-09-25 01:15:29',NULL),(5,'32G',100000,99,'available','2025-09-25 04:15:33','2025-09-25 01:15:29',NULL),(6,'64G',100000,100,'available',NULL,'2025-09-25 01:15:29',NULL); INSERT INTO `raminfo` VALUES (1,'2G',20000,98,'available','2025-10-01 08:17:38','2025-09-25 01:15:29',NULL),(2,'4G',30000,97,'available','2025-09-25 04:11:36','2025-09-25 01:15:29',NULL),(3,'8G',40000,95,'available','2025-10-02 04:02:16','2025-09-25 01:15:29',NULL),(4,'16G',60000,99,'available','2025-09-30 05:09:41','2025-09-25 01:15:29',NULL),(5,'32G',100000,99,'available','2025-09-25 04:15:33','2025-09-25 01:15:29',NULL),(6,'64G',100000,100,'available',NULL,'2025-09-25 01:15:29',NULL);
/*!40000 ALTER TABLE `raminfo` ENABLE KEYS */; /*!40000 ALTER TABLE `raminfo` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@ -477,7 +477,7 @@ CREATE TABLE `serverinfo` (
KEY `FK_clientinfo_TO_serverinfo` (`clientinfo_uid`), KEY `FK_clientinfo_TO_serverinfo` (`clientinfo_uid`),
CONSTRAINT `FK_clientinfo_TO_serverinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`), CONSTRAINT `FK_clientinfo_TO_serverinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`),
CONSTRAINT `FK_serviceinfo_TO_serverinfo` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`) CONSTRAINT `FK_serviceinfo_TO_serverinfo` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8 COMMENT='서버정보'; ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='서버정보';
/*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET character_set_client = @saved_cs_client */;
-- --
@ -486,7 +486,7 @@ CREATE TABLE `serverinfo` (
LOCK TABLES `serverinfo` WRITE; LOCK TABLES `serverinfo` WRITE;
/*!40000 ALTER TABLE `serverinfo` DISABLE KEYS */; /*!40000 ALTER TABLE `serverinfo` DISABLE KEYS */;
INSERT INTO `serverinfo` VALUES (17,820,52,'250922-M1','normal','HP DL360 Gen6',500000,'2025-08-31 15:00:00','2025-09-29 15:00:00','occupied','2025-10-01 09:32:07','2025-09-22 02:19:25',NULL),(18,1161,53,'250922-M18','normal','HP DL360 Gen7',400000,'2025-09-01 15:00:00',NULL,'occupied','2025-09-26 01:28:35','2025-09-22 02:21:51',NULL),(19,1087,54,'250922-M19','normal','HP DL360 Gen8',500000,'2025-09-02 15:00:00',NULL,'occupied','2025-09-26 01:28:44','2025-09-22 02:22:14',NULL),(20,820,52,'250922-M20','alternative','HP DL360 Gen9',600000,'2025-09-03 15:00:00',NULL,'occupied','2025-09-26 04:02:28','2025-09-22 02:22:39',NULL),(21,820,52,'250922-M21','alternative','HP DL360 Gen10',700000,'2025-09-04 15:00:00',NULL,'occupied','2025-09-26 06:47:57','2025-09-22 02:23:08',NULL),(22,820,56,'250922-M22','alternative','Hitach HA3000',800000,'2025-09-05 15:00:00','2025-09-29 15:00:00','occupied','2025-10-01 00:08:02','2025-09-22 02:23:36',NULL),(23,819,57,'254XX-M23','event','INTEL I5',200000,'2025-10-01 15:00:00',NULL,'occupied','2025-10-01 08:19:25','2025-10-01 08:16:56',NULL),(24,819,57,'254XX-M24','alternative','INTEL I7',200000,'2025-10-01 15:00:00',NULL,'occupied','2025-10-01 08:52:41','2025-10-01 08:52:19',NULL); INSERT INTO `serverinfo` VALUES (17,820,52,'2526A-M1','normal','HP DL360 Gen6',500000,'2025-08-31 15:00:00','2025-09-30 15:00:00','occupied','2025-10-02 04:19:51','2025-09-22 02:19:25',NULL),(18,1161,53,'2537B-M18','normal','HP DL360 Gen7',400000,'2025-09-01 15:00:00',NULL,'occupied','2025-10-02 04:19:37','2025-09-22 02:21:51',NULL),(19,1087,54,'2528C-M19','normal','HP DL360 Gen8',500000,'2025-09-02 15:00:00',NULL,'occupied','2025-10-02 04:20:06','2025-09-22 02:22:14',NULL),(20,820,52,'2529D-M20','alternative','HP DL360 Gen9',600000,'2025-09-03 15:00:00','2025-10-01 15:00:00','occupied','2025-10-02 04:20:18','2025-09-22 02:22:39',NULL),(21,NULL,NULL,'2520Z-M21','normal','HP DL360 Gen10',700000,'2025-09-04 15:00:00','2025-10-01 15:00:00','available','2025-10-02 04:17:10','2025-09-22 02:23:08',NULL),(22,820,56,'2530Z-M22','alternative','Hitach HA3000',800000,'2025-09-05 15:00:00','2025-09-29 15:00:00','occupied','2025-10-02 04:19:21','2025-09-22 02:23:36',NULL),(23,819,57,'JPN-S23','event','INTEL I5',200000,'2025-10-01 15:00:00',NULL,'occupied','2025-10-02 04:21:24','2025-10-01 08:16:56',NULL),(24,NULL,NULL,'JPN-S24','alternative','INTEL I7',200000,'2025-10-01 15:00:00','2025-09-30 15:00:00','available','2025-10-02 04:21:41','2025-10-01 08:52:19',NULL),(25,NULL,NULL,'2548E-M25','normal','HP DL360 Gen8',700000,'2025-09-30 15:00:00',NULL,'available',NULL,'2025-10-02 03:55:46',NULL),(26,NULL,NULL,'2547C-M26','normal','HP DL360 Gen7',500000,'2025-09-30 15:00:00',NULL,'available',NULL,'2025-10-02 03:58:53',NULL),(27,711,58,'2548D-M27','normal','HP DL360 Gen8',900000,'2025-10-01 15:00:00',NULL,'occupied','2025-10-02 04:03:45','2025-10-02 04:02:16',NULL);
/*!40000 ALTER TABLE `serverinfo` ENABLE KEYS */; /*!40000 ALTER TABLE `serverinfo` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@ -519,7 +519,7 @@ CREATE TABLE `serverpartinfo` (
CONSTRAINT `FK_payment_TO_serverpartinfo` FOREIGN KEY (`payment_uid`) REFERENCES `payment` (`uid`), CONSTRAINT `FK_payment_TO_serverpartinfo` FOREIGN KEY (`payment_uid`) REFERENCES `payment` (`uid`),
CONSTRAINT `FK_serverinfo_TO_serverpartinfo` FOREIGN KEY (`serverinfo_uid`) REFERENCES `serverinfo` (`uid`), CONSTRAINT `FK_serverinfo_TO_serverpartinfo` FOREIGN KEY (`serverinfo_uid`) REFERENCES `serverinfo` (`uid`),
CONSTRAINT `FK_serviceinfo_TO_serverpartinfo` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`) CONSTRAINT `FK_serviceinfo_TO_serverpartinfo` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=74 DEFAULT CHARSET=utf8 COMMENT='서버파트정보'; ) ENGINE=InnoDB AUTO_INCREMENT=83 DEFAULT CHARSET=utf8 COMMENT='서버파트정보';
/*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET character_set_client = @saved_cs_client */;
-- --
@ -528,7 +528,7 @@ CREATE TABLE `serverpartinfo` (
LOCK TABLES `serverpartinfo` WRITE; LOCK TABLES `serverpartinfo` WRITE;
/*!40000 ALTER TABLE `serverpartinfo` DISABLE KEYS */; /*!40000 ALTER TABLE `serverpartinfo` DISABLE KEYS */;
INSERT INTO `serverpartinfo` VALUES (19,NULL,NULL,5,17,NULL,'Xeon E5-2690v2 2.6Ghz 12Core','CPU','base',100000,1,NULL,NULL,'2025-09-25 04:08:25'),(20,NULL,NULL,1,17,NULL,'2G','RAM','base',20000,1,NULL,NULL,'2025-09-25 04:09:26'),(22,NULL,NULL,6,18,NULL,'Xeon E5-2690v4 3.0Ghz 20Core','CPU','base',150000,1,NULL,NULL,'2025-09-25 04:10:09'),(23,NULL,NULL,2,18,NULL,'4G','RAM','base',30000,1,NULL,NULL,'2025-09-25 04:10:27'),(24,NULL,NULL,8,18,NULL,'SSD 256G','DISK','base',80000,1,NULL,NULL,'2025-09-25 04:10:49'),(25,NULL,NULL,1,19,NULL,'Xeon E5530 2.4Ghz 4Core','CPU','base',50000,2,NULL,'2025-09-25 04:12:26','2025-09-25 04:11:12'),(26,NULL,NULL,2,19,NULL,'4G','RAM','base',30000,2,NULL,NULL,'2025-09-25 04:11:36'),(27,NULL,NULL,8,19,NULL,'SSD 256G','DISK','base',80000,2,'RAID1',NULL,'2025-09-25 04:12:06'),(28,NULL,NULL,1,20,NULL,'Xeon E5530 2.4Ghz 4Core','CPU','base',50000,1,NULL,NULL,'2025-09-25 04:13:04'),(29,NULL,NULL,3,20,NULL,'8G','RAM','base',40000,1,NULL,NULL,'2025-09-25 04:13:26'),(30,NULL,NULL,9,20,NULL,'SSD 512G','DISK','base',100000,1,NULL,NULL,'2025-09-25 04:13:45'),(31,NULL,NULL,3,21,NULL,'Xeon X5560 2.8Ghz 8Core','CPU','base',80000,1,NULL,NULL,'2025-09-25 04:14:07'),(32,NULL,NULL,4,21,NULL,'16G','RAM','base',60000,1,NULL,NULL,'2025-09-25 04:14:28'),(33,NULL,NULL,9,21,NULL,'SSD 512G','DISK','base',100000,1,NULL,NULL,'2025-09-25 04:14:51'),(34,NULL,NULL,4,22,NULL,'Xeon X5650 2.6Ghz 12Core','CPU','base',100000,1,NULL,NULL,'2025-09-25 04:15:13'),(35,NULL,NULL,5,22,NULL,'32G','RAM','base',100000,1,NULL,NULL,'2025-09-25 04:15:33'),(40,1161,NULL,661,18,53,'C01PA46','SWITCH','base',0,1,NULL,NULL,'2025-09-25 08:10:52'),(41,1161,NULL,263,18,53,'13.220.20.6','IP','base',0,1,NULL,'2025-09-25 08:11:57','2025-09-25 08:11:12'),(42,1161,NULL,9,18,53,'CentOS 9','OS','base',10000,1,NULL,NULL,'2025-09-25 08:11:31'),(43,1161,NULL,264,18,53,'13.220.20.7','IP','month',100000,1,NULL,NULL,'2025-09-25 08:14:06'),(46,1087,NULL,40,19,54,'C02PA09','SWITCH','base',0,1,NULL,NULL,'2025-09-25 08:37:15'),(47,1087,NULL,268,19,54,'13.220.20.11','IP','base',0,1,NULL,NULL,'2025-09-25 08:37:43'),(48,1087,NULL,3,19,54,'Windows NT 2008R2','OS','base',30000,1,NULL,NULL,'2025-09-25 08:38:06'),(52,NULL,NULL,14,22,NULL,'NVME 2T','DISK','base',180000,1,NULL,NULL,'2025-09-30 01:49:18'),(55,820,NULL,7,17,52,'SSD 128G','DISK','base',60000,1,NULL,NULL,'2025-09-30 05:35:07'),(56,820,28,8,17,52,'SSD 256G','DISK','onetime',80000,2,'RAID1','2025-09-30 05:35:30','2025-09-30 05:35:30'),(57,820,NULL,463,17,52,'C03PA01','SWITCH','base',0,1,NULL,NULL,'2025-09-30 05:36:24'),(58,820,NULL,262,17,52,'13.220.20.5','IP','base',0,1,NULL,NULL,'2025-09-30 05:36:42'),(59,820,NULL,3,17,52,'Windows NT 2008R2','OS','base',30000,1,NULL,NULL,'2025-09-30 05:37:06'),(60,820,NULL,1,17,52,'닷디펜더','SOFTWARE','base',50000,1,NULL,NULL,'2025-09-30 05:37:23'),(61,820,NULL,337,22,56,'C03PA15','SWITCH','base',0,1,NULL,NULL,'2025-10-01 00:08:45'),(62,820,NULL,28,22,56,'23.125.207.27','IP','base',0,1,NULL,NULL,'2025-10-01 00:09:09'),(63,820,NULL,2,22,56,'Windows 11','OS','base',20000,1,NULL,NULL,'2025-10-01 00:09:31'),(64,820,NULL,2,22,56,'딥파인더','SOFTWARE','month',50000,1,NULL,NULL,'2025-10-01 00:09:49'),(65,820,NULL,5,22,56,'41.24.35.20','CS','month',100000,1,NULL,NULL,'2025-10-01 00:10:16'),(66,NULL,NULL,6,23,NULL,'Xeon E5-2690v4 3.0Ghz 20Core','CPU','base',150000,1,NULL,NULL,'2025-10-01 08:17:17'),(67,NULL,NULL,1,23,NULL,'2G','RAM','base',20000,1,NULL,NULL,'2025-10-01 08:17:38'),(68,NULL,NULL,13,23,NULL,'NVME 1T','DISK','base',150000,1,NULL,NULL,'2025-10-01 08:17:55'),(69,819,NULL,229,23,57,'C05PA03','SWITCH','base',0,1,NULL,'2025-10-01 08:46:19','2025-10-01 08:19:50'),(70,819,NULL,258,23,57,'13.220.20.1','IP','base',0,1,NULL,'2025-10-01 08:47:08','2025-10-01 08:46:45'),(71,819,NULL,7,23,57,'CentOS 7','OS','base',10000,1,NULL,NULL,'2025-10-01 08:47:26'),(73,819,NULL,1,23,57,'닷디펜더','SOFTWARE','month',50000,1,NULL,NULL,'2025-10-01 08:51:20'); INSERT INTO `serverpartinfo` VALUES (19,NULL,NULL,5,17,NULL,'Xeon E5-2690v2 2.6Ghz 12Core','CPU','base',100000,1,NULL,NULL,'2025-09-25 04:08:25'),(20,NULL,NULL,1,17,NULL,'2G','RAM','base',20000,1,NULL,NULL,'2025-09-25 04:09:26'),(22,NULL,NULL,6,18,NULL,'Xeon E5-2690v4 3.0Ghz 20Core','CPU','base',150000,1,NULL,NULL,'2025-09-25 04:10:09'),(23,NULL,NULL,2,18,NULL,'4G','RAM','base',30000,1,NULL,NULL,'2025-09-25 04:10:27'),(24,NULL,NULL,8,18,NULL,'SSD 256G','DISK','base',80000,1,NULL,NULL,'2025-09-25 04:10:49'),(25,NULL,NULL,1,19,NULL,'Xeon E5530 2.4Ghz 4Core','CPU','base',50000,2,NULL,'2025-09-25 04:12:26','2025-09-25 04:11:12'),(26,NULL,NULL,2,19,NULL,'4G','RAM','base',30000,2,NULL,NULL,'2025-09-25 04:11:36'),(27,NULL,NULL,8,19,NULL,'SSD 256G','DISK','base',80000,2,'RAID1',NULL,'2025-09-25 04:12:06'),(28,NULL,NULL,1,20,NULL,'Xeon E5530 2.4Ghz 4Core','CPU','base',50000,1,NULL,NULL,'2025-09-25 04:13:04'),(29,NULL,NULL,3,20,NULL,'8G','RAM','base',40000,1,NULL,NULL,'2025-09-25 04:13:26'),(30,NULL,NULL,9,20,NULL,'SSD 512G','DISK','base',100000,1,NULL,NULL,'2025-09-25 04:13:45'),(31,NULL,NULL,3,21,NULL,'Xeon X5560 2.8Ghz 8Core','CPU','base',80000,1,NULL,NULL,'2025-09-25 04:14:07'),(32,NULL,NULL,4,21,NULL,'16G','RAM','base',60000,1,NULL,NULL,'2025-09-25 04:14:28'),(33,NULL,NULL,9,21,NULL,'SSD 512G','DISK','base',100000,1,NULL,NULL,'2025-09-25 04:14:51'),(34,NULL,NULL,4,22,NULL,'Xeon X5650 2.6Ghz 12Core','CPU','base',100000,1,NULL,NULL,'2025-09-25 04:15:13'),(35,NULL,NULL,5,22,NULL,'32G','RAM','base',100000,1,NULL,NULL,'2025-09-25 04:15:33'),(40,1161,NULL,661,18,53,'C01PA46','SWITCH','base',0,1,NULL,NULL,'2025-09-25 08:10:52'),(41,1161,NULL,263,18,53,'13.220.20.6','IP','base',0,1,NULL,'2025-09-25 08:11:57','2025-09-25 08:11:12'),(42,1161,NULL,9,18,53,'CentOS 9','OS','base',10000,1,NULL,NULL,'2025-09-25 08:11:31'),(43,1161,NULL,264,18,53,'13.220.20.7','IP','month',100000,1,NULL,NULL,'2025-09-25 08:14:06'),(46,1087,NULL,40,19,54,'C02PA09','SWITCH','base',0,1,NULL,NULL,'2025-09-25 08:37:15'),(47,1087,NULL,268,19,54,'13.220.20.11','IP','base',0,1,NULL,NULL,'2025-09-25 08:37:43'),(48,1087,NULL,3,19,54,'Windows NT 2008R2','OS','base',30000,1,NULL,NULL,'2025-09-25 08:38:06'),(52,NULL,NULL,14,22,NULL,'NVME 2T','DISK','base',180000,1,NULL,NULL,'2025-09-30 01:49:18'),(55,820,NULL,7,17,52,'SSD 128G','DISK','base',60000,1,NULL,NULL,'2025-09-30 05:35:07'),(56,820,28,8,17,52,'SSD 256G','DISK','onetime',80000,2,'RAID1','2025-09-30 05:35:30','2025-09-30 05:35:30'),(57,820,NULL,463,17,52,'C03PA01','SWITCH','base',0,1,NULL,NULL,'2025-09-30 05:36:24'),(58,820,NULL,262,17,52,'13.220.20.5','IP','base',0,1,NULL,NULL,'2025-09-30 05:36:42'),(59,820,NULL,3,17,52,'Windows NT 2008R2','OS','base',30000,1,NULL,NULL,'2025-09-30 05:37:06'),(60,820,NULL,1,17,52,'닷디펜더','SOFTWARE','month',200000,1,NULL,'2025-10-01 09:47:11','2025-09-30 05:37:23'),(61,820,NULL,337,22,56,'C03PA15','SWITCH','base',0,1,NULL,NULL,'2025-10-01 00:08:45'),(62,820,NULL,28,22,56,'23.125.207.27','IP','base',0,1,NULL,NULL,'2025-10-01 00:09:09'),(63,820,NULL,2,22,56,'Windows 11','OS','base',20000,1,NULL,NULL,'2025-10-01 00:09:31'),(64,820,NULL,2,22,56,'딥파인더','SOFTWARE','month',50000,1,NULL,NULL,'2025-10-01 00:09:49'),(65,820,NULL,5,22,56,'41.24.35.20','CS','month',100000,1,NULL,NULL,'2025-10-01 00:10:16'),(66,NULL,NULL,6,23,NULL,'Xeon E5-2690v4 3.0Ghz 20Core','CPU','base',150000,1,NULL,NULL,'2025-10-01 08:17:17'),(67,NULL,NULL,1,23,NULL,'2G','RAM','base',20000,1,NULL,NULL,'2025-10-01 08:17:38'),(68,NULL,NULL,13,23,NULL,'NVME 1T','DISK','base',150000,1,NULL,NULL,'2025-10-01 08:17:55'),(69,819,NULL,229,23,57,'C05PA03','SWITCH','base',0,1,NULL,'2025-10-01 08:46:19','2025-10-01 08:19:50'),(70,819,NULL,258,23,57,'13.220.20.1','IP','base',0,1,NULL,'2025-10-01 08:47:08','2025-10-01 08:46:45'),(71,819,NULL,7,23,57,'CentOS 7','OS','base',10000,1,NULL,NULL,'2025-10-01 08:47:26'),(73,819,NULL,1,23,57,'닷디펜더','SOFTWARE','month',50000,1,NULL,NULL,'2025-10-01 08:51:20'),(74,820,33,14,20,52,'NVME 2T','DISK','onetime',180000,1,NULL,'2025-10-02 00:07:28','2025-10-02 00:07:28'),(75,NULL,NULL,3,26,NULL,'Xeon X5560 2.8Ghz 8Core','CPU','base',80000,2,NULL,NULL,'2025-10-02 03:58:53'),(76,NULL,NULL,3,26,NULL,'8G','RAM','base',40000,2,NULL,NULL,'2025-10-02 03:58:53'),(77,NULL,NULL,8,26,NULL,'SSD 256G','DISK','base',80000,2,'RAID1',NULL,'2025-10-02 03:58:53'),(78,NULL,NULL,9,26,NULL,'SSD 512G','DISK','base',100000,2,'RAID1',NULL,'2025-10-02 03:58:53'),(79,NULL,NULL,4,27,NULL,'Xeon X5650 2.6Ghz 12Core','CPU','base',100000,2,NULL,NULL,'2025-10-02 04:02:16'),(80,NULL,NULL,3,27,NULL,'8G','RAM','base',40000,2,NULL,NULL,'2025-10-02 04:02:16'),(81,NULL,NULL,8,27,NULL,'SSD 256G','DISK','base',80000,2,'RAID1',NULL,'2025-10-02 04:02:16'),(82,NULL,NULL,9,27,NULL,'SSD 512G','DISK','base',100000,2,'RAID1',NULL,'2025-10-02 04:02:16');
/*!40000 ALTER TABLE `serverpartinfo` ENABLE KEYS */; /*!40000 ALTER TABLE `serverpartinfo` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@ -570,7 +570,7 @@ CREATE TABLE `serviceinfo` (
CONSTRAINT `FK_payment_TO_serviceinfo` FOREIGN KEY (`payment_uid`) REFERENCES `payment` (`uid`), CONSTRAINT `FK_payment_TO_serviceinfo` FOREIGN KEY (`payment_uid`) REFERENCES `payment` (`uid`),
CONSTRAINT `FK_serverinfo_TO_serviceinfo` FOREIGN KEY (`serverinfo_uid`) REFERENCES `serverinfo` (`uid`), CONSTRAINT `FK_serverinfo_TO_serviceinfo` FOREIGN KEY (`serverinfo_uid`) REFERENCES `serverinfo` (`uid`),
CONSTRAINT `FK_user_TO_serviceinfo` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`) CONSTRAINT `FK_user_TO_serviceinfo` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8 COMMENT='서비스정보'; ) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8 COMMENT='서비스정보';
/*!40101 SET character_set_client = @saved_cs_client */; /*!40101 SET character_set_client = @saved_cs_client */;
-- --
@ -579,7 +579,7 @@ CREATE TABLE `serviceinfo` (
LOCK TABLES `serviceinfo` WRITE; LOCK TABLES `serviceinfo` WRITE;
/*!40000 ALTER TABLE `serviceinfo` DISABLE KEYS */; /*!40000 ALTER TABLE `serviceinfo` DISABLE KEYS */;
INSERT INTO `serviceinfo` VALUES (52,1,820,17,17,'prime_s68d4e145a474d','prime','chiba',100000,300000,'2025-09-25',100000,800000,'2025-09-25',NULL,NULL,'available','2025-10-01 09:32:07','2025-09-25 06:29:25',NULL),(53,1,1161,18,18,'itsolution_s68d4e1b6','itsolution','chiba',100000,300000,'2025-09-25',0,900000,'2025-09-25',NULL,NULL,'available','2025-09-25 08:14:06','2025-09-25 06:31:18',NULL),(54,1,1087,19,20,'gdidc_s68d4ff1b03fab','gdidc','chiba',100000,300000,'2025-09-25',0,900000,'2025-09-25',NULL,NULL,'available','2025-09-25 08:36:43','2025-09-25 08:36:43',NULL),(56,1,820,22,29,'gdidc_s68dc70e2edb68','gdidc','chiba',100000,300000,'2025-10-01',0,1350000,'2025-10-01',NULL,NULL,'available','2025-10-01 00:10:16','2025-10-01 00:08:02',NULL),(57,1,819,23,NULL,'prime_s68dce40dd65df','prime','chiba',100000,300000,'2025-10-01',100000,550000,'2025-10-01',NULL,NULL,'available','2025-10-01 08:51:20','2025-10-01 08:19:25',NULL); INSERT INTO `serviceinfo` VALUES (52,1,820,17,17,'prime_s68d4e145a474d','prime','chiba',100000,300000,'2025-09-25',100000,1000000,'2025-09-25',NULL,NULL,'available','2025-10-02 04:19:51','2025-09-25 06:29:25',NULL),(53,1,1161,18,18,'itsolution_s68d4e1b6','itsolution','chiba',100000,300000,'2025-09-25',0,900000,'2025-09-25',NULL,NULL,'available','2025-10-02 04:19:37','2025-09-25 06:31:18',NULL),(54,1,1087,19,20,'gdidc_s68d4ff1b03fab','gdidc','chiba',100000,300000,'2025-09-25',0,900000,'2025-09-25',NULL,NULL,'available','2025-10-02 04:20:06','2025-09-25 08:36:43',NULL),(56,1,820,22,29,'gdidc_s68dc70e2edb68','gdidc','chiba',100000,300000,'2025-10-01',0,1350000,'2025-10-01',NULL,NULL,'available','2025-10-01 00:10:16','2025-10-01 00:08:02',NULL),(57,1,819,23,32,'prime_s68dce40dd65df','prime','chiba',100000,300000,'2025-10-01',100000,550000,'2025-10-01',NULL,NULL,'available','2025-10-02 04:21:24','2025-10-01 08:19:25',NULL),(58,1,711,27,NULL,'prime_s68ddf9a191864','prime','chiba',100000,300000,'2025-10-02',200000,1300000,'2025-10-02',NULL,NULL,'available','2025-10-02 04:03:45','2025-10-02 04:03:45',NULL);
/*!40000 ALTER TABLE `serviceinfo` ENABLE KEYS */; /*!40000 ALTER TABLE `serviceinfo` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@ -610,7 +610,7 @@ CREATE TABLE `softwareinfo` (
LOCK TABLES `softwareinfo` WRITE; LOCK TABLES `softwareinfo` WRITE;
/*!40000 ALTER TABLE `softwareinfo` DISABLE KEYS */; /*!40000 ALTER TABLE `softwareinfo` DISABLE KEYS */;
INSERT INTO `softwareinfo` VALUES (1,'닷디펜더',50000,98,'available','2025-10-01 08:51:20','2025-09-25 01:15:29',NULL),(2,'딥파인더',50000,99,'available','2025-10-01 00:09:49','2025-09-25 01:15:29',NULL); INSERT INTO `softwareinfo` VALUES (1,'닷디펜더',50000,92,'available','2025-10-01 09:47:11','2025-09-25 01:15:29',NULL),(2,'딥파인더',50000,99,'available','2025-10-01 00:09:49','2025-09-25 01:15:29',NULL);
/*!40000 ALTER TABLE `softwareinfo` ENABLE KEYS */; /*!40000 ALTER TABLE `softwareinfo` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
@ -728,4 +728,4 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2025-10-01 18:32:24 -- Dump completed on 2025-10-02 13:23:04

View File

@ -47,7 +47,10 @@ class ServiceEntity extends CustomerEntity
return $this->attributes['payment_uid'] ?? null; return $this->attributes['payment_uid'] ?? null;
} }
//기본기능용 //기본기능용
public function getTitle(): string
{
return $this->getServerEntity()->getTitle();
}
final public function getSite(): string final public function getSite(): string
{ {
return $this->attributes['site'] ?? ""; return $this->attributes['site'] ?? "";

View File

@ -222,7 +222,7 @@ class CommonHelper
default: default:
// required가 있으면 class 추가 // required가 있으면 class 추가
$extras = (strpos($viewDatas['control']['field_rules'][$field], 'required') !== false) ? ["class" => "text-danger", "required" => "", ...$extras] : $extras; $extras = (strpos($viewDatas['control']['field_rules'][$field], 'required') !== false) ? ["class" => "text-danger", "required" => "", ...$extras] : $extras;
$label = form_label($label, $field, $extras); $label = form_label($label, $field, ['class' => 'form-label-sm', ...$extras]);
break; break;
} }
return $label; return $label;
@ -428,7 +428,7 @@ class CommonHelper
{ {
switch ($action) { switch ($action) {
case 'create': case 'create':
$extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-outline btn-primary btn-circle form-label-sm", "target" => "_self", ...$extras];
$action = form_label( $action = form_label(
$label ? $label : '입력', $label ? $label : '입력',
$action, $action,
@ -457,12 +457,13 @@ class CommonHelper
"data-src" => current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK() . '?' . $viewDatas['uri']->getQuery(), "data-src" => current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK() . '?' . $viewDatas['uri']->getQuery(),
"data-bs-toggle" => "modal", "data-bs-toggle" => "modal",
"data-bs-target" => "#index_action_form", "data-bs-target" => "#index_action_form",
'class' => 'form-label-sm',
...$extras ...$extras
] ]
); );
break; break;
case 'view': case 'view':
$extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-outline btn-primary btn-circle form-label-sm", "target" => "_self", ...$extras];
$action = form_label( $action = form_label(
$label ? $label : ICONS['SEARCH'], $label ? $label : ICONS['SEARCH'],
$action, $action,
@ -475,7 +476,7 @@ class CommonHelper
); );
break; break;
case 'delete': case 'delete':
$extras = ["class" => "btn btn-sm btn-danger btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-sm btn-danger btn-circle form-label-sm", "target" => "_self", ...$extras];
$action = anchor( $action = anchor(
current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK(), current_url() . '/' . $action . '/' . $viewDatas['entity']->getPK(),
$label ? $label : ICONS['DELETE'], $label ? $label : ICONS['DELETE'],

View File

@ -22,7 +22,7 @@ class ClientHelper extends CustomerHelper
$value = $this->getMyAuth()->isAccessRole(['security']) ? parent::getFieldView($field, $value, $viewDatas, $extras) : "***********"; $value = $this->getMyAuth()->isAccessRole(['security']) ? parent::getFieldView($field, $value, $viewDatas, $extras) : "***********";
break; break;
case 'account_balance': case 'account_balance':
$extras = ["class" => "btn btn-link", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-link form-label-sm", "target" => "_self", ...$extras];
$value = form_label( $value = form_label(
number_format(intval($value)) . "", number_format(intval($value)) . "",
'index', 'index',
@ -35,7 +35,7 @@ class ClientHelper extends CustomerHelper
); );
break; break;
case 'coupon_balance': case 'coupon_balance':
$extras = ["class" => "btn btn-link", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-link form-label-sm", "target" => "_self", ...$extras];
$value = form_label( $value = form_label(
number_format(intval($value)) . "", number_format(intval($value)) . "",
'index', 'index',
@ -48,7 +48,7 @@ class ClientHelper extends CustomerHelper
); );
break; break;
case 'point_balance': case 'point_balance':
$extras = ["class" => "btn btn-link", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-link form-label-sm", "target" => "_self", ...$extras];
$value = form_label( $value = form_label(
number_format(intval($value)) . "", number_format(intval($value)) . "",
'index', 'index',

View File

@ -107,7 +107,7 @@ class ServiceHelper extends CustomerHelper
$action = parent::getListButton($action, $label, $viewDatas, $extras); $action = parent::getListButton($action, $label, $viewDatas, $extras);
break; break;
case 'addServer': case 'addServer':
$extras = ["class" => "btn btn-outline btn-info btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-outline btn-info btn-circle form-label-sm", "target" => "_self", ...$extras];
$action = form_label( $action = form_label(
$label ? $label : ICONS['REBOOT'], $label ? $label : ICONS['REBOOT'],
$action, $action,
@ -120,7 +120,7 @@ class ServiceHelper extends CustomerHelper
); );
break; break;
case 'onetime': case 'onetime':
$extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-outline btn-primary btn-circle form-label-sm", "target" => "_self", ...$extras];
$action = form_label( $action = form_label(
$label ? $label : ICONS['ONETIME'], $label ? $label : ICONS['ONETIME'],
$action, $action,
@ -133,7 +133,7 @@ class ServiceHelper extends CustomerHelper
); );
break; break;
case 'history': case 'history':
$extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-outline btn-primary btn-circle form-label-sm", "target" => "_self", ...$extras];
$action = form_label( $action = form_label(
$label ? $label : ICONS['HISTORY'], $label ? $label : ICONS['HISTORY'],
$action, $action,

View File

@ -63,7 +63,7 @@ class ServerHelper extends EquipmentHelper
$action = parent::getListButton($action, $viewDatas['entity']->getCode(), $viewDatas, $extras); $action = parent::getListButton($action, $viewDatas['entity']->getCode(), $viewDatas, $extras);
break; break;
case 'history': case 'history':
$extras = ["class" => "btn btn-outline btn-primary btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-outline btn-primary btn-circle form-label-sm", "target" => "_self", ...$extras];
$action = $label ? $label : form_label( $action = $label ? $label : form_label(
$label ? $label : ICONS['HISTORY'], $label ? $label : ICONS['HISTORY'],
$action, $action,

View File

@ -81,10 +81,10 @@ class ServerPartHelper extends EquipmentHelper
"[" . lang("Equipment/Server.TYPE")[$viewDatas['serverEntity']->getType()] . "] " . $viewDatas['serverEntity']->getCode(), "[" . lang("Equipment/Server.TYPE")[$viewDatas['serverEntity']->getType()] . "] " . $viewDatas['serverEntity']->getCode(),
$field, $field,
[ [
"data-src" => "/admin/equipment/server/modify/{$viewDatas['serverEntity']->getPK()}?ActionTemplate=popup", "data-src" => "/admin/equipment/server/modify/{$viewDatas['serverEntity']->getPK()}?ActionTemplate=popup/server",
"data-bs-toggle" => "modal", "data-bs-toggle" => "modal",
"data-bs-target" => "#index_action_form", "data-bs-target" => "#index_action_form",
"class" => "btn btn-sm btn-outline btn-circle", "class" => "btn btn-sm btn-outline btn-circle form-label-sm",
"target" => "_self", "target" => "_self",
] ]
); );
@ -113,7 +113,7 @@ class ServerPartHelper extends EquipmentHelper
"data-src" => "/admin/equipment/serverpart/modify/{$viewDatas['entity']->getPK()}?type={$viewDatas['entity']->getType()}&ActionTemplate=popup", "data-src" => "/admin/equipment/serverpart/modify/{$viewDatas['entity']->getPK()}?type={$viewDatas['entity']->getType()}&ActionTemplate=popup",
"data-bs-toggle" => "modal", "data-bs-toggle" => "modal",
"data-bs-target" => "#index_action_form", "data-bs-target" => "#index_action_form",
"class" => "btn btn-sm btn-outline btn-circle", "class" => "btn btn-sm btn-outline btn-circle form-label-sm",
"target" => "_self", "target" => "_self",
] ]
); );
@ -140,7 +140,7 @@ class ServerPartHelper extends EquipmentHelper
case 'OS': case 'OS':
case 'SOFTWARE': case 'SOFTWARE':
$extras = [ $extras = [
"class" => "btn btn-sm btn-outline btn-circle", "class" => "btn btn-sm btn-outline btn-circle form-label-sm",
"target" => "_self", "target" => "_self",
...$extras, ...$extras,
]; ];

View File

@ -34,7 +34,7 @@ class HomeHelper extends CommonHelper
{ {
switch ($action) { switch ($action) {
case 'new_service_view': case 'new_service_view':
$extras = ["class" => "btn btn-outline btn-light btn-circle", "target" => "_self", ...$extras]; $extras = ["class" => "btn btn-outline btn-light btn-circle form-label-sm", "target" => "_self", ...$extras];
$action = form_label( $action = form_label(
$label ? $label : ICONS['SEARCH'], $label ? $label : ICONS['SEARCH'],
$action, $action,

View File

@ -11,4 +11,24 @@ class DISKHelper extends PartHelper
parent::__construct(); parent::__construct();
$this->setTitleField(field: DISKModel::TITLE); $this->setTitleField(field: DISKModel::TITLE);
} }
public function getFieldView(string $field, mixed $value, array $viewDatas, array $extras = []): string|null
{
switch ($field) {
case 'format':
$value = sprintf(
"<div class=\"text-center\"><a href=\"/admin/part/disk/complete/%s\" class=\"btn btn-outline btn-secondary btn-circle form-label-sm\">%s</a></div>",
$viewDatas['entity']->getPK(),
number_format($value),
);
break;
default:
$value = parent::getFieldView($field, $value, $viewDatas, $extras);
break;
}
if (is_array($value)) {
throw new \Exception(__METHOD__ . "에서 오류: {$field}의 값이 Array형태입니다");
}
return $value;
}
} }

View File

@ -6,7 +6,7 @@ return [
'clientinfo_uid' => "고객번호", 'clientinfo_uid' => "고객번호",
'serviceinfo_uid' => "서비스번호", 'serviceinfo_uid' => "서비스번호",
'serverinfo_uid' => "서버번호", 'serverinfo_uid' => "서버번호",
'title' => "", 'title' => "",
'type' => "항목형식", 'type' => "항목형식",
'billing' => "결제방식", 'billing' => "결제방식",
'amount' => "제공단가", 'amount' => "제공단가",

View File

@ -216,8 +216,9 @@ class ServiceService extends CustomerService
//서버등록 //서버등록
$entity = $entity->setServerEntity($this->getServerService()->setService('create', $entity, $formDatas)); $entity = $entity->setServerEntity($this->getServerService()->setService('create', $entity, $formDatas));
//전체 서비스금액 설정 //전체 서비스금액 설정
$entity = $entity->setPaymentEntity($this->getPaymentService()->setService('create', $entity, $formDatas)); $paymentEntity = $this->getPaymentService()->setService('create', $entity, $formDatas);
return $entity; $entity = $entity->setPaymentEntity($paymentEntity);
return parent::modify($entity, ['paymentifo_uid' => $paymentEntity->getPK()]);
} }
//수정 //수정
public function modify(mixed $entity, array $formDatas): ServiceEntity public function modify(mixed $entity, array $formDatas): ServiceEntity
@ -235,14 +236,13 @@ class ServiceService extends CustomerService
$entity = $entity->setServerEntity($this->getServerService()->setService('create', $entity, $formDatas)); $entity = $entity->setServerEntity($this->getServerService()->setService('create', $entity, $formDatas));
} }
//전체 서비스금액 설정 //전체 서비스금액 설정
$entity = $entity->setPaymentEntity($this->getPaymentService()->setService('modify', $entity)); return $entity->setPaymentEntity($this->getPaymentService()->setService('modify', $entity, $formDatas));
return $entity;
} }
//삭제 //삭제
public function delete(mixed $entity): ServiceEntity public function delete(mixed $entity): ServiceEntity
{ {
//서버해지 //서버해지
$entity = $entity->setServerEntity($this->getServerService()->setService('delete', $entity)); $entity = $entity->setServerEntity($this->getServerService()->setService('delete', $entity, []));
return parent::delete($entity); return parent::delete($entity);
} }
@ -262,7 +262,7 @@ class ServiceService extends CustomerService
throw new \Exception(__METHOD__ . "에서 오류발생: 기존 메인 서버정보를 찾을수 없습니다."); throw new \Exception(__METHOD__ . "에서 오류발생: 기존 메인 서버정보를 찾을수 없습니다.");
} }
//기존메인서버 정보회수처리용 //기존메인서버 정보회수처리용
$entity = $entity->setServerEntity($this->getServerService()->setService('delete', $entity)); $entity = $entity->setServerEntity($this->getServerService()->setService('delete', $entity, $formDatas));
//메인서버로 선정된 대체서버정보 //메인서버로 선정된 대체서버정보
$formDatas['type'] = $serverEntity->getType(); $formDatas['type'] = $serverEntity->getType();
$this->getServerService()->setService('create', $entity, $formDatas); $this->getServerService()->setService('create', $entity, $formDatas);
@ -270,7 +270,7 @@ class ServiceService extends CustomerService
$formDatas['amount'] = $this->getCaculatedAmount($entity); $formDatas['amount'] = $this->getCaculatedAmount($entity);
$entity = parent::modify($entity, $formDatas); $entity = parent::modify($entity, $formDatas);
//전체 서비스금액 설정 //전체 서비스금액 설정
$entity = $entity->setPaymentEntity($this->getPaymentService()->setService('modify', $entity)); $entity = $entity->setPaymentEntity($this->getPaymentService()->setService('modify', $entity, $formDatas));
return $entity; return $entity;
} }
//대체서버해지(대체서버는 해지는 가격변동은 없음) //대체서버해지(대체서버는 해지는 가격변동은 없음)

View File

@ -4,6 +4,9 @@ namespace App\Services\Equipment;
use App\Entities\Equipment\ServerEntity; use App\Entities\Equipment\ServerEntity;
use App\Entities\Equipment\ServerPartEntity; use App\Entities\Equipment\ServerPartEntity;
use App\Entities\Part\CPUEntity;
use App\Entities\Part\DISKEntity;
use App\Entities\Part\RAMEntity;
use App\Entities\PaymentEntity; use App\Entities\PaymentEntity;
use App\Helpers\Equipment\ServerPartHelper; use App\Helpers\Equipment\ServerPartHelper;
use App\Models\Equipment\ServerPartModel; use App\Models\Equipment\ServerPartModel;
@ -68,7 +71,7 @@ class ServerPartService extends EquipmentService
return [ return [
"serverinfo_uid", "serverinfo_uid",
"type", "type",
"part_uid", "title",
"billing", "billing",
"amount", "amount",
"cnt", "cnt",
@ -200,10 +203,45 @@ class ServerPartService extends EquipmentService
} }
return $service; return $service;
} }
//서버 코드의 Type에 따라 서버파트 등록
private function setDefaultPartByServer(string $parttype, array $formDatas): array
{
if (!array_key_exists('part_uid', $formDatas)) {
throw new \Exception(__METHOD__ . "에서 오류발생: 파트번호를 지정하지 않으셨습니다.");
}
$partEntity = $this->getPartService($parttype)->getEntity($formDatas['part_uid']);
if (!$partEntity) {
throw new \Exception(__METHOD__ . "에서 오류발생: 파트기본정보를 찾을수 없습니다.");
}
$formDatas['title'] = $partEntity->getTitle();
$formDatas['amount'] = $partEntity->getPrice();
return $formDatas;
}
//서버정보 설정 //서버정보 설정
final public function setServer(string $action, ServerEntity $serverEntity, array $serverFormDatas = []): void final public function setServer(string $action, ServerEntity $serverEntity, array $serverFormDatas): void
{ {
switch ($action) { switch ($action) {
case 'create':
// 각 변수에 배정
$codes = str_split($serverEntity->getCode());
// $server_ year = $codes[0].$codes[1]; // 1,2번째(ex: 21-> 21년)
// $server_quarter = $codes[2]; // 3번째(ex: 1-> 1분기)
// $server_brand = $codes[3]; // 4번째(ex: 6-> HP DL360 Gen6)
$server_type = strtoupper($codes[4]) . "TYPE"; // 5번째(ex: A-> ATYPE Server)
foreach (SERVERPART['SERVER_PARTTYPES'] as $parttype) {
foreach (SERVERPART[$parttype][$server_type] as $serverpart) {
$formDatas = [];
$formDatas['serverinfo_uid'] = $serverEntity->getPK();
$formDatas["part_uid"] = $serverpart["UID"];
$formDatas['billing'] = PAYMENT['BILLING']['BASE'];
$formDatas['type'] = $parttype;
$formDatas['cnt'] = $serverpart["CNT"];
$formDatas['extra'] = $serverpart["EXTRA"];
$formDatas = $this->setDefaultPartByServer($parttype, $formDatas);
$this->create($formDatas);
}
}
break;
case 'delete': case 'delete':
//기존 ServerPart정보 삭제(서버파트정보 (월비용,일회성) 상품 회수처리) //기존 ServerPart정보 삭제(서버파트정보 (월비용,일회성) 상품 회수처리)
foreach ($this->getEntities(['serverinfo_uid' => $serverEntity->getPK()]) as $entity) { foreach ($this->getEntities(['serverinfo_uid' => $serverEntity->getPK()]) as $entity) {
@ -366,11 +404,8 @@ class ServerPartService extends EquipmentService
//삭제 //삭제
public function delete(mixed $entity): ServerPartEntity public function delete(mixed $entity): ServerPartEntity
{ {
//수정전 정보
$oldEntity = clone $entity; //반드시 clone 할것
$entity = parent::delete($entity);
//Type에 따른 부품서비스 정의 //Type에 따른 부품서비스 정의
$this->getPartService($entity->getType())->setServerPart('delete', $oldEntity, $entity, []); $this->getPartService($entity->getType())->setServerPart('delete', $entity, $entity, []);
//삭제시는 월비용 서비스만 처리 //삭제시는 월비용 서비스만 처리
if ($entity->getBilling() === PAYMENT['BILLING']['MONTH']) { if ($entity->getBilling() === PAYMENT['BILLING']['MONTH']) {
//서비스가 정의되어 있으면 실행 //서비스가 정의되어 있으면 실행
@ -379,6 +414,6 @@ class ServerPartService extends EquipmentService
$entity = $this->getServiceService()->setAmount($serviceEntity); $entity = $this->getServiceService()->setAmount($serviceEntity);
} }
} }
return $entity; return parent::delete($entity);
} }
} }

View File

@ -122,12 +122,12 @@ class ServerService extends EquipmentService
return $totalCounts; return $totalCounts;
} }
//서비스정보 설정 //서비스정보 설정
final public function setService(string $action, ServiceEntity $serviceEntity, array $serviceFormDatas = []): ServerEntity final public function setService(string $action, ServiceEntity $serviceEntity, array $serviceFormDatas): ServerEntity
{ {
switch ($action) { switch ($action) {
case 'create': case 'create':
if (!array_key_exists('serverinfo_uid', $serviceFormDatas)) { if (!array_key_exists('serverinfo_uid', $serviceFormDatas)) {
throw new \Exception(__METHOD__ . "에서 오류발생: 서버가 지정되지 않았습니다."); throw new \Exception(__METHOD__ . "/{$action}에서 오류발생: 서버가 지정되지 않았습니다.");
} }
$entity = $this->getEntity($serviceFormDatas['serverinfo_uid']); $entity = $this->getEntity($serviceFormDatas['serverinfo_uid']);
if (!$entity instanceof ServerEntity || $entity->getStatus() != STATUS['AVAILABLE']) { if (!$entity instanceof ServerEntity || $entity->getStatus() != STATUS['AVAILABLE']) {
@ -145,7 +145,7 @@ class ServerService extends EquipmentService
break; break;
case 'delete': case 'delete':
if (!array_key_exists('serverinfo_uid', $serviceFormDatas)) { if (!array_key_exists('serverinfo_uid', $serviceFormDatas)) {
throw new \Exception(__METHOD__ . "에서 오류발생: 서버가 지정되지 않았습니다."); throw new \Exception(__METHOD__ . "/{$action}에서 오류발생: 서버가 지정되지 않았습니다.");
} }
$entity = $this->getEntity($serviceFormDatas['serverinfo_uid']); $entity = $this->getEntity($serviceFormDatas['serverinfo_uid']);
if (!$entity instanceof ServerEntity) { if (!$entity instanceof ServerEntity) {
@ -181,6 +181,8 @@ class ServerService extends EquipmentService
public function create(array $formDatas): ServerEntity public function create(array $formDatas): ServerEntity
{ {
$entity = parent::create($formDatas); $entity = parent::create($formDatas);
//서버파트정보등록
$this->getServerPartService()->setServer('create', $entity, []);
return $entity; return $entity;
} }
//수정 //수정
@ -209,7 +211,7 @@ class ServerService extends EquipmentService
$this->getServiceService()->setAmount($serviceEntity); $this->getServiceService()->setAmount($serviceEntity);
} }
//서버파트정보해지 //서버파트정보해지
$this->getServerPartService()->setServer('dedete', $entity); $this->getServerPartService()->setServer('dedete', $entity, []);
return parent::delete($entity); return parent::delete($entity);
} }
//List 검색용 //List 검색용

View File

@ -49,7 +49,7 @@ class RAMService extends PartService implements ServerPartInterface
//OrderBy 처리 //OrderBy 처리
public function setOrderBy(mixed $field = null, mixed $value = null): void public function setOrderBy(mixed $field = null, mixed $value = null): void
{ {
$this->getModel()->orderBy('title ASC'); $this->getModel()->orderBy('uid ASC');
parent::setOrderBy($field, $value); parent::setOrderBy($field, $value);
} }
} }

View File

@ -117,7 +117,7 @@ class PaymentService extends CommonService
return $unPaids; return $unPaids;
} }
//서비스정보 설정 //서비스정보 설정
final public function setService(string $action, ServiceEntity $serviceEntity, array $serviceFormDatas = []): PaymentEntity final public function setService(string $action, ServiceEntity $serviceEntity, array $serviceFormDatas): PaymentEntity
{ {
switch ($action) { switch ($action) {
case 'create': case 'create':
@ -125,7 +125,7 @@ class PaymentService extends CommonService
$formDatas['clientinfo_uid'] = $serviceEntity->getClientInfoUID(); $formDatas['clientinfo_uid'] = $serviceEntity->getClientInfoUID();
$formDatas['serviceinfo_uid'] = $serviceEntity->getPK(); $formDatas['serviceinfo_uid'] = $serviceEntity->getPK();
$formDatas['serverinfo_uid'] = $serviceEntity->getServerInfoUID(); $formDatas['serverinfo_uid'] = $serviceEntity->getServerInfoUID();
$formDatas['title'] = $serviceEntity->getServerEntity()->getTitle(); $formDatas['title'] = $serviceEntity->getTitle();
$formDatas['amount'] = $serviceEntity->getAmount(); $formDatas['amount'] = $serviceEntity->getAmount();
$formDatas['billing'] = PAYMENT['BILLING']['MONTH']; $formDatas['billing'] = PAYMENT['BILLING']['MONTH'];
$formDatas['billing_at'] = $serviceEntity->getBillingAt(); $formDatas['billing_at'] = $serviceEntity->getBillingAt();
@ -140,7 +140,7 @@ class PaymentService extends CommonService
$formDatas['clientinfo_uid'] = $serviceEntity->getClientInfoUID(); $formDatas['clientinfo_uid'] = $serviceEntity->getClientInfoUID();
$formDatas['serviceinfo_uid'] = $serviceEntity->getPK(); $formDatas['serviceinfo_uid'] = $serviceEntity->getPK();
$formDatas['serverinfo_uid'] = $serviceEntity->getServerInfoUID(); $formDatas['serverinfo_uid'] = $serviceEntity->getServerInfoUID();
$formDatas['title'] = $serviceEntity->getServerEntity()->getTitle(); $formDatas['title'] = $serviceEntity->getTitle();
$formDatas['amount'] = $serviceEntity->getAmount(); $formDatas['amount'] = $serviceEntity->getAmount();
$formDatas['billing'] = PAYMENT['BILLING']['MONTH']; $formDatas['billing'] = PAYMENT['BILLING']['MONTH'];
$formDatas['billing_at'] = $serviceEntity->getBillingAt(); $formDatas['billing_at'] = $serviceEntity->getBillingAt();
@ -152,7 +152,7 @@ class PaymentService extends CommonService
} }
return $entity; return $entity;
} }
final public function setServerPart(string $action, ServerPartEntity $serverPartEntity, array $servicePartFormDatas = []): PaymentEntity final public function setServerPart(string $action, ServerPartEntity $serverPartEntity, array $servicePartFormDatas): PaymentEntity
{ {
switch ($action) { switch ($action) {
case 'create': case 'create':

View File

@ -0,0 +1,40 @@
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
<?= $this->section('content') ?>
<?php if ($error = session('error')): echo $viewDatas['service']->getHelper()->alert($error) ?><?php endif ?>
<div id="container" class="content">
<div class="form_top"><?= $this->include("templates/{$viewDatas['layout']}/form_content_top"); ?></div>
<table class="table table-bordered">
<tr>
<th>서버정보</th>
<th>추가정보</th>
</tr>
<tr>
<td nowrap>
<div class="action_form">
<?= form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
<table class="table table-bordered">
<?php foreach ($viewDatas['control']['actionFields'] as $field): ?>
<tr>
<th nowrap class="text-end"><?= $viewDatas['service']->getHelper()->getFieldLabel($field, lang("{$viewDatas['class_path']}.label.{$field}"), $viewDatas) ?></th>
<td nowrap class="text-start">
<?= $viewDatas['service']->getHelper()->getFieldForm($field, old($field) ?? ($viewDatas['entity']->$field ?? null), $viewDatas) ?>
<span><?= validation_show_error($field); ?></span>
</td>
</tr>
<?php endforeach; ?>
</table>
<div class="text-center"><?= form_submit('', '수정', array("class" => "btn btn-outline btn-primary")); ?></div>
<?= form_close(); ?>
</div>
</td>
<td>
<?= view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [
'serverinfo_uid' => $viewDatas['entity']->getPK(),
'types' => SERVERPART['ALL_PARTTYPES']
]) ?>
</td>
</tr>
</table>
<div class="form_bottom"><?= $this->include("templates/{$viewDatas['layout']}/form_content_bottom"); ?></div>
</div>
<?= $this->endSection() ?>

View File

@ -3,10 +3,17 @@
<?php if ($error = session('error')): echo $viewDatas['service']->getHelper()->alert($error) ?><?php endif ?> <?php if ($error = session('error')): echo $viewDatas['service']->getHelper()->alert($error) ?><?php endif ?>
<div id="container" class="content"> <div id="container" class="content">
<div class="form_top"><?= $this->include("templates/{$viewDatas['layout']}/form_content_top"); ?></div> <div class="form_top"><?= $this->include("templates/{$viewDatas['layout']}/form_content_top"); ?></div>
<?= form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
<div class="action_form">
<table class="table table-bordered"> <table class="table table-bordered">
<?php foreach (["code", "type", "title", "price", "manufactur_at", "format_at", "status",] as $field): ?> <tr>
<th>서버정보</th>
<th>추가정보</th>
</tr>
<tr>
<td nowrap>
<div class="action_form">
<?= form_open(current_url(), $viewDatas['forms']['attributes'], $viewDatas['forms']['hiddens']) ?>
<table class="table table-bordered">
<?php foreach ($viewDatas['control']['actionFields'] as $field): ?>
<tr> <tr>
<th nowrap class="text-end"><?= $viewDatas['service']->getHelper()->getFieldLabel($field, lang("{$viewDatas['class_path']}.label.{$field}"), $viewDatas) ?></th> <th nowrap class="text-end"><?= $viewDatas['service']->getHelper()->getFieldLabel($field, lang("{$viewDatas['class_path']}.label.{$field}"), $viewDatas) ?></th>
<td nowrap class="text-start"> <td nowrap class="text-start">
@ -19,6 +26,15 @@
<div class="text-center"><?= form_submit('', '수정', array("class" => "btn btn-outline btn-primary")); ?></div> <div class="text-center"><?= form_submit('', '수정', array("class" => "btn btn-outline btn-primary")); ?></div>
<?= form_close(); ?> <?= form_close(); ?>
</div> </div>
</td>
<td>
<?= view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [
'serverinfo_uid' => $viewDatas['entity']->getPK(),
'types' => SERVERPART['ALL_PARTTYPES']
]) ?>
</td>
</tr>
</table>
<div class="form_bottom"><?= $this->include("templates/{$viewDatas['layout']}/form_content_bottom"); ?></div> <div class="form_bottom"><?= $this->include("templates/{$viewDatas['layout']}/form_content_bottom"); ?></div>
</div> </div>
<?= $this->endSection() ?> <?= $this->endSection() ?>

View File

@ -19,10 +19,12 @@
<?php endforeach ?> <?php endforeach ?>
</table> </table>
</td> </td>
<td><?= view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [ <td>
<?= view_cell("\App\Cells\Equipment\ServerPartCell::parttable", [
'serverinfo_uid' => $viewDatas['entity']->getPK(), 'serverinfo_uid' => $viewDatas['entity']->getPK(),
'types' => SERVERPART['ALL_PARTTYPES'] 'types' => SERVERPART['ALL_PARTTYPES']
]) ?></td>> ]) ?>
</td>
</tr> </tr>
</table> </table>
</div> </div>

View File

@ -36,7 +36,7 @@
<th class="index_head_short_column" style="width:40px;">번호</th> <th class="index_head_short_column" style="width:40px;">번호</th>
<th class="index_head_short_column"> <th class="index_head_short_column">
<?= $viewDatas['service']->getHelper()->getListLabel('site', lang("{$viewDatas['class_path']}.label.site"), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getListLabel('site', lang("{$viewDatas['class_path']}.label.site"), $viewDatas) ?>
/ <?= $viewDatas['service']->getHelper()->getListLabel('location', lang("{$viewDatas['class_path']}.label.location"), $viewDatas) ?> /<?= $viewDatas['service']->getHelper()->getListLabel('location', lang("{$viewDatas['class_path']}.label.location"), $viewDatas) ?>
</th> </th>
<th class="index_head_short_column"> <th class="index_head_short_column">
<?= $viewDatas['service']->getHelper()->getListLabel('clientinfo_uid', lang("{$viewDatas['class_path']}.label.clientinfo_uid"), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getListLabel('clientinfo_uid', lang("{$viewDatas['class_path']}.label.clientinfo_uid"), $viewDatas) ?>
@ -70,7 +70,7 @@
<td nowrap><?= $viewDatas['service']->getHelper()->getListButton('modify', $num, $viewDatas) ?></td> <td nowrap><?= $viewDatas['service']->getHelper()->getListButton('modify', $num, $viewDatas) ?></td>
<td nowrap> <td nowrap>
<?= $viewDatas['service']->getHelper()->getFieldView('site', $entity->site, $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getFieldView('site', $entity->site, $viewDatas) ?>
/ <?= $viewDatas['service']->getHelper()->getFieldView('location', $entity->getLocation(), $viewDatas) ?> <BR><?= $viewDatas['service']->getHelper()->getFieldView('location', $entity->getLocation(), $viewDatas) ?>
</td> </td>
<td nowrap> <td nowrap>
<?= $viewDatas['service']->getHelper()->getFieldView('clientinfo_uid', $entity->getClientInfoUID(), $viewDatas) ?> <?= $viewDatas['service']->getHelper()->getFieldView('clientinfo_uid', $entity->getClientInfoUID(), $viewDatas) ?>

View File

@ -24,7 +24,7 @@
ICONS['SETUP'] . "정보수정", ICONS['SETUP'] . "정보수정",
"modify", "modify",
[ [
"class" => "dropdown-item", "class" => "dropdown-item form-label-sm",
"data-src" => "/admin/user/profile_modify/" . $viewDatas['myAuthUID'], "data-src" => "/admin/user/profile_modify/" . $viewDatas['myAuthUID'],
"data-bs-toggle" => "modal", "data-bs-toggle" => "modal",
"data-bs-target" => "#index_action_form" "data-bs-target" => "#index_action_form"

View File

@ -20,7 +20,7 @@
ICONS['SETUP'] . "정보수정", ICONS['SETUP'] . "정보수정",
"modify", "modify",
[ [
"class" => "dropdown-item", "class" => "dropdown-item form-label-sm",
"data-src" => "/user/modify/" . $viewDatas['myAuthUID'], "data-src" => "/user/modify/" . $viewDatas['myAuthUID'],
"data-bs-toggle" => "modal", "data-bs-toggle" => "modal",
"data-bs-target" => "#index_action_form" "data-bs-target" => "#index_action_form"

View File

@ -1,3 +1,9 @@
.form-label {
font-size: 12px;
margin: 0 !important;
padding: 0 !important;
}
/* create,modify,view 페이지용 */ /* create,modify,view 페이지용 */
div.action_form { div.action_form {
/* 블록 요소로 변경 */ /* 블록 요소로 변경 */

View File

@ -1,3 +1,9 @@
.form-label {
font-size: 12px;
margin: 0 !important;
padding: 0 !important;
}
/* create,modify,view 페이지용 */ /* create,modify,view 페이지용 */
table.action_form { table.action_form {
/* 블록 요소로 변경 */ /* 블록 요소로 변경 */