diff --git a/app/Controllers/Admin/Customer/ServiceItemController.php b/app/Controllers/Admin/Customer/ServiceItemController.php index 3ba7185..ceebc6f 100644 --- a/app/Controllers/Admin/Customer/ServiceItemController.php +++ b/app/Controllers/Admin/Customer/ServiceItemController.php @@ -2,6 +2,7 @@ namespace App\Controllers\Admin\Customer; + use CodeIgniter\HTTP\RedirectResponse; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface; @@ -9,6 +10,7 @@ use Psr\Log\LoggerInterface; use App\Helpers\Customer\ServiceItemHelper; use App\Services\Customer\ServiceItemService; +use App\Entities\Customer\ServiceEntity; use App\Services\Customer\ServiceService; class ServiceItemController extends CustomerController @@ -84,12 +86,9 @@ class ServiceItemController extends CustomerController //Index,FieldForm관련 //도메인의 경우 domaininfo에 등록 후 ServiceItemEntity의 item_uid에 넣고 create해야함 - private function createDomain(array $formDatas): array + private function createDomain(ServiceEntity $serviceEntity, array $formDatas): array { - $serviceEntity = $this->getServiceService()->getEntity($formDatas['serviceinfo_uid']); - if (!$serviceEntity) { - throw new \Exception("{$formDatas['serviceinfo_uid']}에 대한 서비스정보를 찾을수 없습니다."); - } + //DomainService에 먼저 create후 결과 uid를 item_uid로 전달함 $equipmentEntity = $this->getService()->getEquipmentService($formDatas['item_type'])->create([ 'clientinfo_uid' => $serviceEntity->getClientUID(), 'domain' => $formDatas['item_uid'] @@ -100,9 +99,13 @@ class ServiceItemController extends CustomerController } protected function create_process(array $formDatas): RedirectResponse|string { + $serviceEntity = $this->getServiceService()->getEntity($formDatas['serviceinfo_uid']); + if (!$serviceEntity) { + throw new \Exception("{$formDatas['serviceinfo_uid']}에 대한 서비스정보를 찾을수 없습니다."); + } // item_type이 도메인의 경우 domaininfo에 등록 후 ServiceItemEntity의 item_uid에 넣고 create해야함 if ($formDatas['item_type'] === 'DOMAIN') { - $formDatas = $this->createDomain($formDatas); + $formDatas = $this->createDomain($serviceEntity, $formDatas); } return parent::create_process($formDatas); } diff --git a/app/Database/dbms_init_all.sq b/app/Database/dbms_init_all.sq new file mode 100644 index 0000000..f88e5c8 --- /dev/null +++ b/app/Database/dbms_init_all.sq @@ -0,0 +1,746 @@ +-- MySQL dump 10.19 Distrib 10.3.28-MariaDB, for Linux (x86_64) +-- +-- Host: localhost Database: dbms +-- ------------------------------------------------------ +-- Server version 10.3.28-MariaDB-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `accountinfo` +-- + +DROP TABLE IF EXISTS `accountinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `accountinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `clientinfo_uid` int(11) NOT NULL, + `title` varchar(255) NOT NULL, + `alias` varchar(50) NOT NULL COMMENT '입출금자명', + `amount` int(11) NOT NULL DEFAULT 0 COMMENT '압출금액', + `status` varchar(20) NOT NULL DEFAULT 'default', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_clientinfo_TO_accountinfo` (`clientinfo_uid`), + CONSTRAINT `FK_clientinfo_TO_accountinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='예치금계좌'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `accountinfo` +-- + +LOCK TABLES `accountinfo` WRITE; +/*!40000 ALTER TABLE `accountinfo` DISABLE KEYS */; +INSERT INTO `accountinfo` VALUES (1,1,'5월예치금입금','Test111',100000,'default','2025-05-29 06:08:43'),(2,1,'5월예치금출금','Test111',50000,'out','2025-05-29 06:09:07'); +/*!40000 ALTER TABLE `accountinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `clientinfo` +-- + +DROP TABLE IF EXISTS `clientinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `clientinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `role` varchar(50) NOT NULL DEFAULT 'user', + `name` varchar(100) NOT NULL, + `phone` varchar(50) DEFAULT NULL, + `email` varchar(50) NOT NULL, + `account_balance` int(11) NOT NULL DEFAULT 0 COMMENT '예치금', + `coupon_balance` int(11) NOT NULL DEFAULT 0 COMMENT '쿠폰수', + `point_balance` int(11) NOT NULL DEFAULT 0 COMMENT '포인트', + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='고객정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `clientinfo` +-- + +LOCK TABLES `clientinfo` WRITE; +/*!40000 ALTER TABLE `clientinfo` DISABLE KEYS */; +INSERT INTO `clientinfo` VALUES (1,'user','Test111','1111','test111@co.kr',50000,0,0,'default','2025-05-29 06:09:07','2025-05-29 06:07:37'),(2,'user,vip','Test222','222','test222@co.kr',0,50,0,'default','2025-05-29 06:10:10','2025-05-29 06:07:54'),(3,'user,vip,reseller','Test333','3333','test333@co.kr',0,0,50000,'default','2025-05-29 06:10:55','2025-05-29 06:08:07'),(4,'user','Test444','4444','test444@co.kr',0,0,0,'default','2025-06-09 07:38:48','2025-05-29 06:08:17'); +/*!40000 ALTER TABLE `clientinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `codeinfo` +-- + +DROP TABLE IF EXISTS `codeinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `codeinfo` ( + `code` varchar(20) NOT NULL COMMENT '서버코드', + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`code`), + UNIQUE KEY `UQ_code` (`code`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='코드표'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `codeinfo` +-- + +LOCK TABLES `codeinfo` WRITE; +/*!40000 ALTER TABLE `codeinfo` DISABLE KEYS */; +INSERT INTO `codeinfo` VALUES ('JPN130','occupied','2025-06-10 08:11:11','2025-06-10 03:52:44'),('JPN140','default','2025-06-10 08:11:11','2025-06-10 03:52:49'),('JPN150','default',NULL,'2025-06-10 03:53:05'),('MP350','default','2025-06-10 10:11:53','2025-06-10 03:53:54'),('MP360','default','2025-06-10 10:20:51','2025-06-10 03:53:59'),('MP370','occupied','2025-06-10 10:20:51','2025-06-10 03:54:04'),('XP230','default',NULL,'2025-06-10 03:53:30'),('XP240','occupied','2025-06-11 08:20:37','2025-06-10 03:53:35'),('XP250','default',NULL,'2025-06-10 03:53:40'); +/*!40000 ALTER TABLE `codeinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `couponinfo` +-- + +DROP TABLE IF EXISTS `couponinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `couponinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `clientinfo_uid` int(11) NOT NULL, + `title` varchar(100) NOT NULL, + `amount` int(11) NOT NULL DEFAULT 0 COMMENT '갯수', + `status` varchar(20) NOT NULL DEFAULT 'default', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_clientinfo_TO_couponinfo` (`clientinfo_uid`), + CONSTRAINT `FK_clientinfo_TO_couponinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='쿠폰정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `couponinfo` +-- + +LOCK TABLES `couponinfo` WRITE; +/*!40000 ALTER TABLE `couponinfo` DISABLE KEYS */; +INSERT INTO `couponinfo` VALUES (1,2,'5월쿠폰추가',100,'default','2025-05-29 06:09:41'),(2,2,'5월쿠폰사용',50,'out','2025-05-29 06:10:10'); +/*!40000 ALTER TABLE `couponinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `cpuinfo` +-- + +DROP TABLE IF EXISTS `cpuinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `cpuinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `model` varchar(50) NOT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_model` (`model`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='CPU 정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `cpuinfo` +-- + +LOCK TABLES `cpuinfo` WRITE; +/*!40000 ALTER TABLE `cpuinfo` DISABLE KEYS */; +INSERT INTO `cpuinfo` VALUES (1,'Xeon(R) CPU E5-2690 v2 @3.00GHz','default',NULL,'2025-05-29 07:25:04'),(2,'Xeon(R) CPU E5-2690 v4 @ 2.60GHz','default',NULL,'2025-05-29 07:25:17'),(3,'Intel i3','default',NULL,'2025-05-29 07:25:56'),(4,'Intel i5','default',NULL,'2025-05-29 07:26:08'),(5,'Intel i7','default',NULL,'2025-05-29 07:26:22'); +/*!40000 ALTER TABLE `cpuinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `defenceinfo` +-- + +DROP TABLE IF EXISTS `defenceinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `defenceinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `type` varchar(20) NOT NULL, + `ip` varchar(50) DEFAULT NULL, + `accountid` varchar(50) DEFAULT NULL, + `domain` varchar(100) DEFAULT NULL, + `description` text DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_uid` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='방어(CS)정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `defenceinfo` +-- + +LOCK TABLES `defenceinfo` WRITE; +/*!40000 ALTER TABLE `defenceinfo` DISABLE KEYS */; +INSERT INTO `defenceinfo` VALUES (2,'VPC-CS','21.238.234.34','VPC-X21',NULL,NULL,'default','2025-06-09 07:44:42','2025-05-29 07:20:50'),(3,'KT-CS','13.23.4.2','KT-X23',NULL,NULL,'default',NULL,'2025-05-29 07:22:55'); +/*!40000 ALTER TABLE `defenceinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `domaininfo` +-- + +DROP TABLE IF EXISTS `domaininfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `domaininfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `clientinfo_uid` int(11) NOT NULL, + `domain` varchar(20) NOT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_domain` (`domain`), + KEY `FK_clientinfo_TO_domaininfo` (`clientinfo_uid`), + CONSTRAINT `FK_clientinfo_TO_domaininfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='도메인 정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `domaininfo` +-- + +LOCK TABLES `domaininfo` WRITE; +/*!40000 ALTER TABLE `domaininfo` DISABLE KEYS */; +INSERT INTO `domaininfo` VALUES (1,2,'Ckoa.kk','default',NULL,'2025-06-09 08:44:41'); +/*!40000 ALTER TABLE `domaininfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `invoiceinfo` +-- + +DROP TABLE IF EXISTS `invoiceinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `invoiceinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `clientinfo_uid` int(11) NOT NULL, + `issue_at` date DEFAULT NULL COMMENT '발행일', + `due_at` date DEFAULT NULL COMMENT '지급기한일', + `total_amount` int(11) NOT NULL DEFAULT 0 COMMENT '총금액', + `status` varchar(20) NOT NULL DEFAULT 'default' COMMENT '상태', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_clientinfo_TO_invoiceinfo` (`clientinfo_uid`), + CONSTRAINT `FK_clientinfo_TO_invoiceinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='청구서정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `invoiceinfo` +-- + +LOCK TABLES `invoiceinfo` WRITE; +/*!40000 ALTER TABLE `invoiceinfo` DISABLE KEYS */; +/*!40000 ALTER TABLE `invoiceinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `invoiceinfo_items` +-- + +DROP TABLE IF EXISTS `invoiceinfo_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `invoiceinfo_items` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `invoiceinfo_uid` int(11) NOT NULL, + `item_type` varchar(20) NOT NULL, + `item_uid` int(11) NOT NULL, + `billing_cyle` varchar(20) NOT NULL, + `amount` int(11) NOT NULL DEFAULT 0 COMMENT '청구금액', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_invoiceinfo_TO_invoiceinfo_items` (`invoiceinfo_uid`), + CONSTRAINT `FK_invoiceinfo_TO_invoiceinfo_items` FOREIGN KEY (`invoiceinfo_uid`) REFERENCES `invoiceinfo` (`uid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='청구서Item정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `invoiceinfo_items` +-- + +LOCK TABLES `invoiceinfo_items` WRITE; +/*!40000 ALTER TABLE `invoiceinfo_items` DISABLE KEYS */; +/*!40000 ALTER TABLE `invoiceinfo_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `ipinfo` +-- + +DROP TABLE IF EXISTS `ipinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `ipinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `lineinfo_uid` int(11) NOT NULL, + `ip` char(16) NOT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_ip` (`ip`), + KEY `FK_lineinfo_TO_ipinfo` (`lineinfo_uid`), + CONSTRAINT `FK_lineinfo_TO_ipinfo` FOREIGN KEY (`lineinfo_uid`) REFERENCES `lineinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=129 DEFAULT CHARSET=utf8 COMMENT=' IP 정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `ipinfo` +-- + +LOCK TABLES `ipinfo` WRITE; +/*!40000 ALTER TABLE `ipinfo` DISABLE KEYS */; +INSERT INTO `ipinfo` VALUES (1,8,'27.125.207.128','default','2025-06-09 06:09:21','2025-05-29 06:45:34'),(2,8,'27.125.207.129','default',NULL,'2025-05-29 06:45:34'),(3,8,'27.125.207.130','default',NULL,'2025-05-29 06:45:34'),(4,8,'27.125.207.131','default',NULL,'2025-05-29 06:45:34'),(5,8,'27.125.207.132','default',NULL,'2025-05-29 06:45:34'),(6,8,'27.125.207.133','default',NULL,'2025-05-29 06:45:34'),(7,8,'27.125.207.134','default',NULL,'2025-05-29 06:45:34'),(8,8,'27.125.207.135','default',NULL,'2025-05-29 06:45:34'),(9,8,'27.125.207.136','default',NULL,'2025-05-29 06:45:34'),(10,8,'27.125.207.137','default',NULL,'2025-05-29 06:45:34'),(11,8,'27.125.207.138','default',NULL,'2025-05-29 06:45:34'),(12,8,'27.125.207.139','default',NULL,'2025-05-29 06:45:34'),(13,8,'27.125.207.140','default',NULL,'2025-05-29 06:45:34'),(14,8,'27.125.207.141','default',NULL,'2025-05-29 06:45:34'),(15,8,'27.125.207.142','default',NULL,'2025-05-29 06:45:34'),(16,8,'27.125.207.143','default',NULL,'2025-05-29 06:45:34'),(17,8,'27.125.207.144','default',NULL,'2025-05-29 06:45:34'),(18,8,'27.125.207.145','default',NULL,'2025-05-29 06:45:34'),(19,8,'27.125.207.146','default',NULL,'2025-05-29 06:45:34'),(20,8,'27.125.207.147','default',NULL,'2025-05-29 06:45:34'),(21,8,'27.125.207.148','default',NULL,'2025-05-29 06:45:34'),(22,8,'27.125.207.149','default',NULL,'2025-05-29 06:45:34'),(23,8,'27.125.207.150','default',NULL,'2025-05-29 06:45:34'),(24,8,'27.125.207.151','default',NULL,'2025-05-29 06:45:34'),(25,8,'27.125.207.152','default',NULL,'2025-05-29 06:45:34'),(26,8,'27.125.207.153','default',NULL,'2025-05-29 06:45:34'),(27,8,'27.125.207.154','default',NULL,'2025-05-29 06:45:34'),(28,8,'27.125.207.155','default',NULL,'2025-05-29 06:45:34'),(29,8,'27.125.207.156','default',NULL,'2025-05-29 06:45:34'),(30,8,'27.125.207.157','default',NULL,'2025-05-29 06:45:34'),(31,8,'27.125.207.158','default',NULL,'2025-05-29 06:45:34'),(32,8,'27.125.207.159','default',NULL,'2025-05-29 06:45:34'),(33,8,'27.125.207.160','default',NULL,'2025-05-29 06:45:34'),(34,8,'27.125.207.161','default',NULL,'2025-05-29 06:45:34'),(35,8,'27.125.207.162','default',NULL,'2025-05-29 06:45:34'),(36,8,'27.125.207.163','default',NULL,'2025-05-29 06:45:34'),(37,8,'27.125.207.164','default',NULL,'2025-05-29 06:45:34'),(38,8,'27.125.207.165','default',NULL,'2025-05-29 06:45:34'),(39,8,'27.125.207.166','default',NULL,'2025-05-29 06:45:34'),(40,8,'27.125.207.167','default',NULL,'2025-05-29 06:45:34'),(41,8,'27.125.207.168','default',NULL,'2025-05-29 06:45:34'),(42,8,'27.125.207.169','default',NULL,'2025-05-29 06:45:34'),(43,8,'27.125.207.170','default',NULL,'2025-05-29 06:45:34'),(44,8,'27.125.207.171','default',NULL,'2025-05-29 06:45:34'),(45,8,'27.125.207.172','default',NULL,'2025-05-29 06:45:34'),(46,8,'27.125.207.173','default',NULL,'2025-05-29 06:45:34'),(47,8,'27.125.207.174','default',NULL,'2025-05-29 06:45:34'),(48,8,'27.125.207.175','default',NULL,'2025-05-29 06:45:34'),(49,8,'27.125.207.176','default',NULL,'2025-05-29 06:45:34'),(50,8,'27.125.207.177','default',NULL,'2025-05-29 06:45:34'),(51,8,'27.125.207.178','default',NULL,'2025-05-29 06:45:34'),(52,8,'27.125.207.179','default',NULL,'2025-05-29 06:45:34'),(53,8,'27.125.207.180','default',NULL,'2025-05-29 06:45:34'),(54,8,'27.125.207.181','default',NULL,'2025-05-29 06:45:34'),(55,8,'27.125.207.182','default',NULL,'2025-05-29 06:45:34'),(56,8,'27.125.207.183','default',NULL,'2025-05-29 06:45:34'),(57,8,'27.125.207.184','default',NULL,'2025-05-29 06:45:34'),(58,8,'27.125.207.185','default',NULL,'2025-05-29 06:45:34'),(59,8,'27.125.207.186','default',NULL,'2025-05-29 06:45:34'),(60,8,'27.125.207.187','default',NULL,'2025-05-29 06:45:34'),(61,8,'27.125.207.188','default',NULL,'2025-05-29 06:45:34'),(62,8,'27.125.207.189','default',NULL,'2025-05-29 06:45:34'),(63,8,'27.125.207.190','default',NULL,'2025-05-29 06:45:34'),(64,8,'27.125.207.191','default',NULL,'2025-05-29 06:45:34'),(65,8,'27.125.207.192','default',NULL,'2025-05-29 06:45:34'),(66,8,'27.125.207.193','default',NULL,'2025-05-29 06:45:34'),(67,8,'27.125.207.194','default',NULL,'2025-05-29 06:45:35'),(68,8,'27.125.207.195','default',NULL,'2025-05-29 06:45:35'),(69,8,'27.125.207.196','default',NULL,'2025-05-29 06:45:35'),(70,8,'27.125.207.197','default',NULL,'2025-05-29 06:45:35'),(71,8,'27.125.207.198','default',NULL,'2025-05-29 06:45:35'),(72,8,'27.125.207.199','default',NULL,'2025-05-29 06:45:35'),(73,8,'27.125.207.200','default',NULL,'2025-05-29 06:45:35'),(74,8,'27.125.207.201','default',NULL,'2025-05-29 06:45:35'),(75,8,'27.125.207.202','default',NULL,'2025-05-29 06:45:35'),(76,8,'27.125.207.203','default',NULL,'2025-05-29 06:45:35'),(77,8,'27.125.207.204','default',NULL,'2025-05-29 06:45:35'),(78,8,'27.125.207.205','default',NULL,'2025-05-29 06:45:35'),(79,8,'27.125.207.206','default',NULL,'2025-05-29 06:45:35'),(80,8,'27.125.207.207','default',NULL,'2025-05-29 06:45:35'),(81,8,'27.125.207.208','default',NULL,'2025-05-29 06:45:35'),(82,8,'27.125.207.209','default',NULL,'2025-05-29 06:45:35'),(83,8,'27.125.207.210','default',NULL,'2025-05-29 06:45:35'),(84,8,'27.125.207.211','default',NULL,'2025-05-29 06:45:35'),(85,8,'27.125.207.212','default',NULL,'2025-05-29 06:45:35'),(86,8,'27.125.207.213','default',NULL,'2025-05-29 06:45:35'),(87,8,'27.125.207.214','default',NULL,'2025-05-29 06:45:35'),(88,8,'27.125.207.215','default',NULL,'2025-05-29 06:45:35'),(89,8,'27.125.207.216','default',NULL,'2025-05-29 06:45:35'),(90,8,'27.125.207.217','default',NULL,'2025-05-29 06:45:35'),(91,8,'27.125.207.218','default',NULL,'2025-05-29 06:45:35'),(92,8,'27.125.207.219','default',NULL,'2025-05-29 06:45:35'),(93,8,'27.125.207.220','default',NULL,'2025-05-29 06:45:35'),(94,8,'27.125.207.221','default',NULL,'2025-05-29 06:45:35'),(95,8,'27.125.207.222','default',NULL,'2025-05-29 06:45:35'),(96,8,'27.125.207.223','default',NULL,'2025-05-29 06:45:35'),(97,8,'27.125.207.224','default',NULL,'2025-05-29 06:45:35'),(98,8,'27.125.207.225','default',NULL,'2025-05-29 06:45:35'),(99,8,'27.125.207.226','default',NULL,'2025-05-29 06:45:35'),(100,8,'27.125.207.227','default',NULL,'2025-05-29 06:45:35'),(101,8,'27.125.207.228','default',NULL,'2025-05-29 06:45:35'),(102,8,'27.125.207.229','default',NULL,'2025-05-29 06:45:35'),(103,8,'27.125.207.230','default',NULL,'2025-05-29 06:45:35'),(104,8,'27.125.207.231','default',NULL,'2025-05-29 06:45:35'),(105,8,'27.125.207.232','default',NULL,'2025-05-29 06:45:35'),(106,8,'27.125.207.233','default',NULL,'2025-05-29 06:45:35'),(107,8,'27.125.207.234','default',NULL,'2025-05-29 06:45:35'),(108,8,'27.125.207.235','default',NULL,'2025-05-29 06:45:35'),(109,8,'27.125.207.236','default',NULL,'2025-05-29 06:45:35'),(110,8,'27.125.207.237','default',NULL,'2025-05-29 06:45:35'),(111,8,'27.125.207.238','default',NULL,'2025-05-29 06:45:35'),(112,8,'27.125.207.239','default',NULL,'2025-05-29 06:45:35'),(113,8,'27.125.207.240','default',NULL,'2025-05-29 06:45:35'),(114,8,'27.125.207.241','default',NULL,'2025-05-29 06:45:35'),(115,8,'27.125.207.242','default',NULL,'2025-05-29 06:45:35'),(116,8,'27.125.207.243','default',NULL,'2025-05-29 06:45:35'),(117,8,'27.125.207.244','default',NULL,'2025-05-29 06:45:35'),(118,8,'27.125.207.245','default',NULL,'2025-05-29 06:45:35'),(119,8,'27.125.207.246','default',NULL,'2025-05-29 06:45:35'),(120,8,'27.125.207.247','default',NULL,'2025-05-29 06:45:35'),(121,8,'27.125.207.248','default',NULL,'2025-05-29 06:45:35'),(122,8,'27.125.207.249','default',NULL,'2025-05-29 06:45:35'),(123,8,'27.125.207.250','default',NULL,'2025-05-29 06:45:35'),(124,8,'27.125.207.251','default',NULL,'2025-05-29 06:45:35'),(125,8,'27.125.207.252','default',NULL,'2025-05-29 06:45:35'),(126,8,'27.125.207.253','default',NULL,'2025-05-29 06:45:35'),(127,8,'27.125.207.254','default',NULL,'2025-05-29 06:45:35'),(128,8,'27.125.207.255','default',NULL,'2025-05-29 06:45:35'); +/*!40000 ALTER TABLE `ipinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `lineinfo` +-- + +DROP TABLE IF EXISTS `lineinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `lineinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `clientinfo_uid` int(11) DEFAULT NULL COMMENT '소유자정보', + `type` varchar(20) NOT NULL COMMENT '회선구분', + `title` varchar(100) NOT NULL, + `bandwith` varchar(20) NOT NULL COMMENT 'IP 대역', + `status` varchar(20) NOT NULL DEFAULT 'default', + `start_at` date DEFAULT NULL COMMENT '개통일', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_title` (`title`), + KEY `FK_clientinfo_TO_lineinfo` (`clientinfo_uid`), + CONSTRAINT `FK_clientinfo_TO_lineinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='회선 정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `lineinfo` +-- + +LOCK TABLES `lineinfo` WRITE; +/*!40000 ALTER TABLE `lineinfo` DISABLE KEYS */; +INSERT INTO `lineinfo` VALUES (8,NULL,'default','Softbank회선','27.125.207.128/25','default','2025-05-01','2025-06-03 03:26:52','2025-05-29 06:45:34'); +/*!40000 ALTER TABLE `lineinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `logger` +-- + +DROP TABLE IF EXISTS `logger`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `logger` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `user_uid` int(11) NOT NULL, + `class_name` varchar(255) DEFAULT NULL, + `method_name` varchar(255) DEFAULT NULL, + `title` varchar(255) NOT NULL, + `content` text NOT NULL, + `status` varchar(20) DEFAULT 'default', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_user_TO_logger` (`user_uid`), + CONSTRAINT `FK_user_TO_logger` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='작업 기록 로그'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `logger` +-- + +LOCK TABLES `logger` WRITE; +/*!40000 ALTER TABLE `logger` DISABLE KEYS */; +/*!40000 ALTER TABLE `logger` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `paymentinfo` +-- + +DROP TABLE IF EXISTS `paymentinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `paymentinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `invoiceinfo_uid` int(11) NOT NULL, + `alias` varchar(50) NOT NULL COMMENT '결제자명', + `type` varchar(20) NOT NULL COMMENT '결제방식', + `amount` int(11) NOT NULL DEFAULT 0 COMMENT '결제금액', + `paid_at` date DEFAULT NULL COMMENT '결제일', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_invoiceinfo_TO_paymentinfo` (`invoiceinfo_uid`), + CONSTRAINT `FK_invoiceinfo_TO_paymentinfo` FOREIGN KEY (`invoiceinfo_uid`) REFERENCES `invoiceinfo` (`uid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='결제정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `paymentinfo` +-- + +LOCK TABLES `paymentinfo` WRITE; +/*!40000 ALTER TABLE `paymentinfo` DISABLE KEYS */; +/*!40000 ALTER TABLE `paymentinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `pointinfo` +-- + +DROP TABLE IF EXISTS `pointinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `pointinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `clientinfo_uid` int(11) NOT NULL, + `title` varchar(255) NOT NULL, + `amount` int(11) NOT NULL DEFAULT 0 COMMENT '압출금액', + `status` varchar(20) NOT NULL DEFAULT 'default', + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_clientinfo_TO_pointinfo` (`clientinfo_uid`), + CONSTRAINT `FK_clientinfo_TO_pointinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='포인트정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `pointinfo` +-- + +LOCK TABLES `pointinfo` WRITE; +/*!40000 ALTER TABLE `pointinfo` DISABLE KEYS */; +INSERT INTO `pointinfo` VALUES (1,3,'5월포인트입금',100000,'default','2025-05-29 06:10:41'),(2,3,'5월포인트출금',50000,'out','2025-05-29 06:10:55'); +/*!40000 ALTER TABLE `pointinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `raminfo` +-- + +DROP TABLE IF EXISTS `raminfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `raminfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `model` varchar(50) NOT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_model` (`model`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='RAM 정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `raminfo` +-- + +LOCK TABLES `raminfo` WRITE; +/*!40000 ALTER TABLE `raminfo` DISABLE KEYS */; +INSERT INTO `raminfo` VALUES (1,'ECC 2G','default',NULL,'2025-06-02 07:53:26'),(2,'ECC 4G','default',NULL,'2025-06-02 07:53:40'),(3,'ECC 8G','default',NULL,'2025-06-02 07:54:04'),(4,'ECC 16G','default',NULL,'2025-06-02 07:54:18'),(5,'ECC 32G','default',NULL,'2025-06-02 07:54:36'); +/*!40000 ALTER TABLE `raminfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `serverinfo` +-- + +DROP TABLE IF EXISTS `serverinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `serverinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `model` varchar(50) NOT NULL, + `description` text DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_uid` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COMMENT='서버정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `serverinfo` +-- + +LOCK TABLES `serverinfo` WRITE; +/*!40000 ALTER TABLE `serverinfo` DISABLE KEYS */; +INSERT INTO `serverinfo` VALUES (3,'HP DL360 Gen 6',NULL,'default',NULL,'2025-06-02 03:27:07'),(4,'HP DL360 Gen 7',NULL,'default',NULL,'2025-06-02 03:28:06'),(5,'HP DL360 Gen 8',NULL,'default',NULL,'2025-06-02 03:28:35'),(6,'3,4,5세대 PC',NULL,'default',NULL,'2025-06-02 03:29:22'),(7,'6,7,8세대 PC',NULL,'default',NULL,'2025-06-02 03:29:55'),(8,'12,13,14세대 MiniPC',NULL,'default','2025-06-03 03:27:21','2025-06-02 03:30:31'),(9,'HP DL360 Gen 9',NULL,'default','2025-06-03 03:27:07','2025-06-02 08:36:15'); +/*!40000 ALTER TABLE `serverinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `serviceinfo` +-- + +DROP TABLE IF EXISTS `serviceinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `serviceinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `clientinfo_uid` int(11) NOT NULL, + `ownerinfo_uid` int(11) NOT NULL, + `title` varchar(255) NOT NULL, + `switch` varchar(20) NOT NULL, + `code` varchar(20) NOT NULL, + `location` varchar(20) DEFAULT NULL, + `type` varchar(20) NOT NULL, + `raid` varchar(20) NOT NULL, + `billing_at` date NOT NULL COMMENT '청구일', + `start_at` date NOT NULL COMMENT '시작일', + `status` varchar(20) NOT NULL DEFAULT 'default' COMMENT '상태', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_title` (`title`), + KEY `FK_clientinfo_TO_serviceinfo` (`clientinfo_uid`), + CONSTRAINT `FK_clientinfo_TO_serviceinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='서비스정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `serviceinfo` +-- + +LOCK TABLES `serviceinfo` WRITE; +/*!40000 ALTER TABLE `serviceinfo` DISABLE KEYS */; +INSERT INTO `serviceinfo` VALUES (1,1,1,'TEST111 서비스1','R45P20','MP370','tokyo','defence','RAID1','2025-06-25','2025-06-02','default','2025-06-10 10:20:51','2025-06-02 03:37:30'),(2,2,3,'Test2222 서비스명','R45P20','JPN130','default','default','default','2025-06-25','2025-06-04','default','2025-06-10 08:11:11','2025-06-09 08:23:13'),(3,4,4,'TEST444 서비스1','R35P10','XP240','default','dedicated','RAID5','2025-06-25','2025-06-04','default',NULL,'2025-06-11 08:20:37'); +/*!40000 ALTER TABLE `serviceinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `serviceinfo_history` +-- + +DROP TABLE IF EXISTS `serviceinfo_history`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `serviceinfo_history` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `serviceinfo_uid` int(11) NOT NULL, + `title` varchar(255) NOT NULL, + `description` text DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default' COMMENT '상태', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_serviceinfo_TO_serviceinfo_history` (`serviceinfo_uid`), + CONSTRAINT `FK_serviceinfo_TO_serviceinfo_history` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='서비스정보_history'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `serviceinfo_history` +-- + +LOCK TABLES `serviceinfo_history` WRITE; +/*!40000 ALTER TABLE `serviceinfo_history` DISABLE KEYS */; +INSERT INTO `serviceinfo_history` VALUES (1,2,'히스토리1111','

히스토리1111
히스토리1111

','default',NULL,'2025-06-10 02:24:48'),(2,2,'히스토리222','

히스토리222
히스토리222

','default',NULL,'2025-06-10 02:25:21'),(3,1,'히스토리12222','

히스토리12222
히스토리12222

','default',NULL,'2025-06-10 02:25:57'),(4,1,'히스토리22222222','

히스토리22222222
히스토리22222222

','default',NULL,'2025-06-10 02:26:18'),(5,2,'sadfsf',NULL,'default',NULL,'2025-06-11 01:38:31'); +/*!40000 ALTER TABLE `serviceinfo_history` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `serviceinfo_items` +-- + +DROP TABLE IF EXISTS `serviceinfo_items`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `serviceinfo_items` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `serviceinfo_uid` int(11) NOT NULL, + `item_type` varchar(20) NOT NULL, + `item_uid` int(11) NOT NULL, + `billing_cycle` varchar(20) NOT NULL, + `price` int(11) NOT NULL DEFAULT 0 COMMENT '소비자금액', + `amount` int(11) NOT NULL DEFAULT 0 COMMENT '청구금액', + `start_at` date DEFAULT NULL COMMENT '시작일', + `status` varchar(20) NOT NULL DEFAULT 'default' COMMENT '상태', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_serviceinfo_TO_serviceinfo_items` (`serviceinfo_uid`), + CONSTRAINT `FK_serviceinfo_TO_serviceinfo_items` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`) +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='서비스Item정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `serviceinfo_items` +-- + +LOCK TABLES `serviceinfo_items` WRITE; +/*!40000 ALTER TABLE `serviceinfo_items` DISABLE KEYS */; +INSERT INTO `serviceinfo_items` VALUES (1,1,'LINE',8,'month',1000000,500000,'2025-06-11','default','2025-06-03 06:04:25','2025-06-02 07:19:58'),(2,1,'IP',12,'month',50000,40000,'2025-06-13','default',NULL,'2025-06-02 07:28:27'),(3,1,'IP',11,'month',50000,40000,'2025-06-13','default',NULL,'2025-06-02 07:28:57'),(4,1,'SERVER',3,'month',150000,100000,'2025-06-13','default','2025-06-09 06:06:43','2025-06-02 07:35:12'),(5,1,'CPU',1,'month',50000,40000,'2025-06-13','default',NULL,'2025-06-02 07:36:08'),(6,1,'CPU',1,'month',50000,40000,'2025-06-20','reservation','2025-06-04 00:40:06','2025-06-02 07:36:49'),(7,1,'RAM',2,'onetime',2000,2000,'2025-06-13','default',NULL,'2025-06-02 07:42:56'),(8,1,'RAM',2,'onetime',2000,2000,'2025-06-13','default',NULL,'2025-06-02 07:43:27'),(9,1,'STORAGE',1,'month',100000,50000,'2025-06-13','default',NULL,'2025-06-02 08:11:10'),(10,1,'STORAGE',1,'onetime',100000,100000,'2025-06-25','reservation',NULL,'2025-06-02 08:11:50'),(11,1,'SOFTWARE',1,'onetime',10000,10000,'2025-06-13','default',NULL,'2025-06-02 08:12:55'),(12,1,'SOFTWARE',4,'month',10000,10000,'2025-06-13','default',NULL,'2025-06-02 08:13:40'),(13,1,'SOFTWARE',5,'month',5000,5000,'2025-06-25','reservation',NULL,'2025-06-02 08:14:12'),(14,1,'DEFENCE',3,'month',50000,50000,'2025-06-13','default',NULL,'2025-06-02 08:14:43'),(15,1,'RAM',4,'onetime',4000,2000,'2025-06-20','reservation',NULL,'2025-06-03 07:12:04'),(17,2,'LINE',8,'month',200000,150000,'2025-06-11','default',NULL,'2025-06-09 08:28:10'),(18,2,'IP',16,'month',50000,40000,'2025-06-11','default','2025-06-09 08:38:19','2025-06-09 08:38:01'),(19,2,'SERVER',5,'month',250000,200000,'2025-06-11','default',NULL,'2025-06-09 08:39:51'),(20,2,'CPU',2,'month',100000,100000,'2025-06-11','default',NULL,'2025-06-09 08:40:18'),(21,2,'CPU',2,'month',100000,100000,'2025-06-11','default',NULL,'2025-06-09 08:40:39'),(22,2,'RAM',3,'month',5000,5000,'2025-06-11','default',NULL,'2025-06-09 08:41:15'),(23,2,'RAM',3,'onetime',5000,5000,'2025-06-11','default','2025-06-10 00:33:41','2025-06-09 08:41:37'),(24,2,'STORAGE',3,'onetime',150000,100000,'2025-06-11','default','2025-06-09 08:42:59','2025-06-09 08:42:10'),(25,2,'STORAGE',3,'onetime',150000,100000,'2025-06-11','default',NULL,'2025-06-09 08:42:37'),(26,2,'SOFTWARE',1,'month',1000,1000,'2025-06-11','default',NULL,'2025-06-09 08:43:37'),(27,2,'SOFTWARE',4,'month',200000,100000,'2025-06-11','default',NULL,'2025-06-09 08:44:07'),(28,2,'DOMAIN',1,'onetime',50000,40000,'2025-06-11','default',NULL,'2025-06-09 08:44:41'); +/*!40000 ALTER TABLE `serviceinfo_items` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `serviceinfo_payment` +-- + +DROP TABLE IF EXISTS `serviceinfo_payment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `serviceinfo_payment` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `serviceinfo_uid` int(11) NOT NULL COMMENT '서비스정보', + `item_type` varchar(20) NOT NULL, + `item_uid` int(11) NOT NULL, + `billing_cycle` varchar(20) NOT NULL COMMENT '청구방식', + `amount` int(11) NOT NULL DEFAULT 0 COMMENT '청구금액', + `billing_at` date DEFAULT NULL COMMENT '(청구)지급기한일', + `issue_at` date DEFAULT NULL COMMENT '발행일', + `status` varchar(20) NOT NULL DEFAULT 'default' COMMENT '상태', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + KEY `FK_serviceinfo_TO_serviceinfo_payment` (`serviceinfo_uid`), + CONSTRAINT `FK_serviceinfo_TO_serviceinfo_payment` FOREIGN KEY (`serviceinfo_uid`) REFERENCES `serviceinfo` (`uid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='결제정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `serviceinfo_payment` +-- + +LOCK TABLES `serviceinfo_payment` WRITE; +/*!40000 ALTER TABLE `serviceinfo_payment` DISABLE KEYS */; +/*!40000 ALTER TABLE `serviceinfo_payment` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `softwareinfo` +-- + +DROP TABLE IF EXISTS `softwareinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `softwareinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `type` varchar(20) NOT NULL, + `model` varchar(50) NOT NULL, + `description` text DEFAULT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_model` (`model`) +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='소프트웨어 정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `softwareinfo` +-- + +LOCK TABLES `softwareinfo` WRITE; +/*!40000 ALTER TABLE `softwareinfo` DISABLE KEYS */; +INSERT INTO `softwareinfo` VALUES (1,'Windows','Windows 2008R2 Ent',NULL,'default',NULL,'2025-05-29 07:23:17'),(2,'Windows','Windows 10',NULL,'default',NULL,'2025-05-29 07:23:36'),(3,'Linux','CentOS 7.9',NULL,'default',NULL,'2025-05-29 07:23:53'),(4,'Security','닷디펜더',NULL,'default',NULL,'2025-05-29 07:24:14'),(5,'Virus','비트디펜더',NULL,'default',NULL,'2025-05-29 07:24:36'); +/*!40000 ALTER TABLE `softwareinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `storageinfo` +-- + +DROP TABLE IF EXISTS `storageinfo`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `storageinfo` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `model` varchar(50) NOT NULL, + `status` varchar(20) NOT NULL DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_model` (`model`) +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='DISK 정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `storageinfo` +-- + +LOCK TABLES `storageinfo` WRITE; +/*!40000 ALTER TABLE `storageinfo` DISABLE KEYS */; +INSERT INTO `storageinfo` VALUES (1,'Samsung SSD 860 256G','default',NULL,'2025-06-02 07:55:16'),(2,'Samsung SSD 870 EVO 500G','default',NULL,'2025-06-02 07:55:38'),(3,'Samsung SSD 870 Pro 500G','default',NULL,'2025-06-02 07:55:49'); +/*!40000 ALTER TABLE `storageinfo` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `user` +-- + +DROP TABLE IF EXISTS `user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user` ( + `uid` int(11) NOT NULL AUTO_INCREMENT, + `id` varchar(20) NOT NULL, + `passwd` varchar(255) NOT NULL, + `name` varchar(20) NOT NULL, + `email` varchar(50) NOT NULL, + `mobile` varchar(20) DEFAULT NULL, + `role` varchar(50) DEFAULT NULL, + `status` varchar(20) DEFAULT 'default', + `updated_at` timestamp NULL DEFAULT NULL, + `created_at` timestamp NOT NULL DEFAULT current_timestamp(), + PRIMARY KEY (`uid`), + UNIQUE KEY `UQ_id` (`id`), + UNIQUE KEY `UQ_email` (`email`) +) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COMMENT='관리자정보'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `user` +-- + +LOCK TABLES `user` WRITE; +/*!40000 ALTER TABLE `user` DISABLE KEYS */; +INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$9kUte0xrvEkxtI9CzVaeKeCAxzOR4pKPpsCaQHR1YW7dXsCrTLWeC','최준흠','choi.jh@prime-idc.jp','','manager,cloudflare,firewall,director,master','default','2023-05-31 14:55:51','2023-03-23 06:50:04'),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-30 14:35:55','2023-03-24 02:20:48'),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:21:50','2023-03-24 02:21:50'),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,cloudflare,director','default','2023-03-24 02:23:18','2023-03-24 02:23:18'),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:23:52','2023-03-24 02:23:52'),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-29 16:32:52','2023-03-24 02:24:21'),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare','default','2023-07-21 06:48:39','2023-03-24 02:25:00'),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-22 23:59:07','2023-03-24 02:25:48'),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-02 02:07:19','2023-03-24 02:26:31'),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp',NULL,'manager,cloudflare,firewall','default','2023-10-16 23:08:51','2023-03-24 02:27:05'),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp',NULL,'manager,cloudflare','default','2024-06-12 00:21:07','2023-03-24 02:27:59'),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp',NULL,'manager,cloudflare','default','2023-05-31 14:22:43','2023-03-24 02:28:31'),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp',NULL,'manager,cloudflare','default','2023-03-24 02:29:00','2023-03-24 02:29:00'),(15,'park.sm','$2y$10$BwMxw0uvw2tAdQ0EZQ2/hu.Q7zYu7mbuBPPRTaa14bwG3VLf0cXfu','박선미','park.sm@idcjp.jp',NULL,'manager,cloudflare','default','2024-03-12 02:14:09','2023-03-24 02:29:34'),(19,'park.hg','$2y$10$x7QQOkOEJHVKOnghbHBqYuI12Vsa9KLV8W4wgebCWy1pZiM93/W.e','박혁규','park.hg@prime-idc.jp',NULL,'manager','pause','2023-09-04 10:27:32','2023-09-04 09:48:02'),(21,'masakuni','$2y$10$di6Y7CqJGbbf72kDyCrOCOafJgk3vqJCYg6N3EtBUc3J6r24/7SFe','김창국','masakuni@prime-idc.jp',NULL,'cloudflare','pause','2023-12-18 08:56:29','2023-12-18 08:56:29'),(22,'bjh','$2y$10$LnEQ6kz4igRPZeDYwe7UluRiSaMVGN9Jj1fW3QqUUp6zPeLJW9goS','배장훈','bjh@prime-idc.jp',NULL,'cloudflare','pause','2024-06-06 23:51:19','2024-02-26 01:26:20'),(23,'cho.sh','$2y$10$jmmNrEsFmb2.Zj3OkBXDHuktrIj.NCP/tO2k9kquFBTBssa/lNG6y','조성호','cho.sh@prime-idc.jp','','manager','pause','2024-10-02 00:45:19','2024-10-02 00:32:30'),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare','default',NULL,'2024-10-29 06:30:19'),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp',NULL,'manager,cloudflare','default','2025-01-23 00:30:13','2025-01-23 00:29:46'),(38,'choi.jh234222222','$2y$10$zCgVXnCClLbftgeGxH0rk.v3o1zHkoO8Ywq2UDmGkdjIhK5mLJhvu','adfasdfas2222','postfixadmin@idcjp.jp2222222','043443432722222','cloudflare','pause','2025-06-11 08:12:39','2025-05-02 04:49:19'),(40,'choi.jh2342222224','$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y','adfasdfas22222221234','postfixadmin@idcjp.jp3234343','04344343271234','manager,cloudflare','pause','2025-06-11 08:12:01','2025-05-02 06:34:43'),(41,'test333334','$2y$10$eQXPQIvkuvnBc11hURs/K.mO44cHovtEdVpQ9QMLbu7H7bsspmJEO','test333334','test@test.co.kr2','1111112222','manager,cloudflare','pause','2025-06-11 08:12:39','2025-06-11 07:36:53'); +/*!40000 ALTER TABLE `user` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2025-06-11 18:52:37 diff --git a/app/Database/erp2_2.vuerd.json b/app/Database/erp2_2.vuerd.json index fa07155..8483e92 100644 --- a/app/Database/erp2_2.vuerd.json +++ b/app/Database/erp2_2.vuerd.json @@ -4,7 +4,7 @@ "settings": { "width": 3000, "height": 3000, - "scrollTop": -1061.8844, + "scrollTop": -861.8844, "scrollLeft": -401.9322, "zoomLevel": 0.79, "show": 511, @@ -868,7 +868,6 @@ "lxUgXPeRzv3HQPUFzEcVJ", "Ol6qG-agay9yBKxGBtmsr", "jBf8G_J3BpioZN7TJnRMa", - "2-eG3lx3U3LRKw_qRA9qI", "pxuIGPFD7CNh-bnlYRsy6", "s1P-DaXO-MWos67f0R__G", "XydKmlBJZHPj4xqkxUH24" @@ -890,15 +889,15 @@ "mzjynvHZERYSmrLQ3_gX7" ], "ui": { - "x": 145.0137, - "y": 1364.9949, + "x": 148.8111, + "y": 1186.5143, "zIndex": 2502, "widthName": 92, "widthComment": 86, "color": "" }, "meta": { - "updateAt": 1749435563253, + "updateAt": 1749634092732, "createAt": 1748507247933 } }, @@ -7047,8 +7046,8 @@ "columnIds": [ "TerqekzImISduE6ewW1b5" ], - "x": 662.0137, - "y": 1536.9949, + "x": 665.8111, + "y": 1346.5143, "direction": 2 }, "meta": { diff --git a/app/Entities/Customer/ServiceEntity.php b/app/Entities/Customer/ServiceEntity.php index dcadda4..bcfa58c 100644 --- a/app/Entities/Customer/ServiceEntity.php +++ b/app/Entities/Customer/ServiceEntity.php @@ -12,10 +12,15 @@ class ServiceEntity extends CustomerEntity { return intval($this->attributes['ownerinfo_uid']); } - final public function getCode(): string + public function getCode(): string { return $this->attributes['code']; } + final public function getBillingAt(): string + { + return $this->attributes['billing_at']; + } + public function getItemEntities(string $type): array { return $this->attributes[$type] ?? []; diff --git a/app/Entities/Customer/ServiceItemEntity.php b/app/Entities/Customer/ServiceItemEntity.php index a025e83..1e3ee4b 100644 --- a/app/Entities/Customer/ServiceItemEntity.php +++ b/app/Entities/Customer/ServiceItemEntity.php @@ -12,6 +12,10 @@ class ServiceItemEntity extends CustomerEntity { return intval($this->attributes['serviceinfo_uid']); } + public function getItemType(): string + { + return $this->attributes['item_type']; + } public function getItemUid(): int { return intval($this->attributes['item_uid']); diff --git a/app/Helpers/CommonHelper.php b/app/Helpers/CommonHelper.php index 0f03829..ab52723 100644 --- a/app/Helpers/CommonHelper.php +++ b/app/Helpers/CommonHelper.php @@ -245,7 +245,6 @@ class CommonHelper case 'expired_at': case 'billing_at': case 'start_at': - case 'end_at': case 'updated_at': case 'created_at': $extra_class = isset($extras['class']) ? $extras['class'] . ' calender' : 'calender'; diff --git a/app/Language/en/Customer/Service.php b/app/Language/en/Customer/Service.php index fcac249..29c00aa 100644 --- a/app/Language/en/Customer/Service.php +++ b/app/Language/en/Customer/Service.php @@ -12,7 +12,6 @@ return [ 'raid' => "RAID", 'billing_at' => "청구일", 'start_at' => "개통일", - 'end_at' => "해지일", 'status' => "상태", 'updated_at' => "수정일", 'created_at' => "신청일", diff --git a/app/Language/en/Customer/ServiceItem.php b/app/Language/en/Customer/ServiceItem.php index 515dbb9..127e876 100644 --- a/app/Language/en/Customer/ServiceItem.php +++ b/app/Language/en/Customer/ServiceItem.php @@ -9,7 +9,6 @@ return [ 'price' => "소비자금액", 'amount' => "서비스금액", 'start_at' => "개통일", - 'end_at' => "해지일", 'status' => "상태", 'updated_at' => "수정일", 'created_at' => "신청일", diff --git a/app/Models/Customer/ServiceItemModel.php b/app/Models/Customer/ServiceItemModel.php index 08f762b..5f44913 100644 --- a/app/Models/Customer/ServiceItemModel.php +++ b/app/Models/Customer/ServiceItemModel.php @@ -20,7 +20,6 @@ class ServiceItemModel extends CustomerModel "price", "amount", "start_at", - "end_at", "status", "updated_at" ]; @@ -48,9 +47,6 @@ class ServiceItemModel extends CustomerModel case "start_at": $rule = "required|valid_date"; break; - case "end_at": - $rule = "if_exist|valid_date"; - break; default: $rule = parent::getFormFieldRule($action, $field); break; diff --git a/app/Models/Customer/ServiceModel.php b/app/Models/Customer/ServiceModel.php index abab79b..9e1f9d3 100644 --- a/app/Models/Customer/ServiceModel.php +++ b/app/Models/Customer/ServiceModel.php @@ -23,7 +23,6 @@ class ServiceModel extends CustomerModel "raid", "billing_at", "start_at", - "end_at", "status", "updated_at" ]; @@ -53,9 +52,6 @@ class ServiceModel extends CustomerModel case "start_at": $rule = "required|valid_date"; break; - case "end_at": - $rule = "if_exist|valid_date"; - break; case "raid": $rule = "if_exist|trim|string"; break; diff --git a/app/Services/Customer/ServiceItemService.php b/app/Services/Customer/ServiceItemService.php index 0263a46..dee5eb8 100644 --- a/app/Services/Customer/ServiceItemService.php +++ b/app/Services/Customer/ServiceItemService.php @@ -2,11 +2,13 @@ namespace App\Services\Customer; -use App\Entities\Customer\ServiceItemEntity; -use App\Models\Customer\ServiceItemModel; use CodeIgniter\HTTP\IncomingRequest; +use App\Models\Customer\ServiceItemModel; +use App\Entities\Customer\ServiceItemEntity; use App\Services\Customer\ServiceService; +use App\Entities\Customer\ServiceEntity; +use App\Entities\Customer\ServicePaymentEntity; class ServiceItemService extends CustomerService { @@ -32,6 +34,13 @@ class ServiceItemService extends CustomerService } return $this->_serviceService; } + public function getServicePaymentService(): ServicePaymentService + { + if (!$this->_servicePaymentService) { + $this->_servicePaymentService = new ServicePaymentService($this->request); + } + return $this->_servicePaymentService; + } public function getFormFields(): array { return [ @@ -55,6 +64,41 @@ class ServiceItemService extends CustomerService } public function getIndexFields(): array { - return ['serviceinfo_uid', 'item_type', 'item_uid', 'billing_cycle', 'price', 'amount', 'start_at', 'status']; + return ['serviceinfo_uid', 'item_type', 'item_uid', 'billing_cycle', 'price', 'amount', 'start_at', 'updated_at', 'status']; + } + + private function createPayment(ServiceEntity $serviceEntity,): ServicePaymentEntity + { + //서비스 결제정보를 생성함 + $entity = $this->getServicePaymentService()->create([ + 'serviceinfo_uid' => $serviceEntity->getPK(), + 'item_type' => $formDatas['item_type'], + 'item_uid' => $formDatas['item_uid'], + 'billing_cycle' => $formDatas['billing_cycle'], + 'amount' => $formDatas['amount'], + 'billing_at' => $serviceEntity->getBillingAt(), + 'issue_at' => $formDatas['issue_at'], + ]); + dd($formDatas); + return $entity; + } + public function create(array $formDatas, mixed $entity = null): ServiceItemEntity + { + $serviceEntity = $this->getServiceService()->getEntity($formDatas['serviceinfo_uid']); + if (!$serviceEntity) { + throw new \Exception("{$formDatas['serviceinfo_uid']}에 대한 서비스정보를 찾을수 없습니다."); + } + $entity = parent::create($formDatas, $entity); + // 결제정보 ServicePaymentService에 등록 + $this->createPayment($serviceEntity, $formDatas); + return $entity; + } + public function modify(mixed $entity, array $formDatas): ServiceItemEntity + { + return parent::modify($entity, $formDatas); + } + final public function delete(mixed $entity): bool + { + return parent::delete($entity); } } diff --git a/app/Services/Customer/ServiceService.php b/app/Services/Customer/ServiceService.php index 553fb97..e0fb51e 100644 --- a/app/Services/Customer/ServiceService.php +++ b/app/Services/Customer/ServiceService.php @@ -39,7 +39,6 @@ class ServiceService extends CustomerService "raid", "billing_at", "start_at", - "end_at", "status" ]; } @@ -53,7 +52,7 @@ class ServiceService extends CustomerService } public function getIndexFields(): array { - return ['clientinfo_uid', 'ownerinfo_uid', 'title', 'type', 'location', 'switch', 'code', 'raid', 'billing_at', 'start_at', 'status']; + return ['clientinfo_uid', 'ownerinfo_uid', 'title', 'type', 'location', 'switch', 'code', 'raid', 'billing_at', 'start_at', 'updated_at', 'status']; } public function getCodeService(): CodeService diff --git a/dbms_init_all.sq b/dbms_init_all.sq index bed942b..a70df6b 100644 --- a/dbms_init_all.sq +++ b/dbms_init_all.sq @@ -102,7 +102,7 @@ CREATE TABLE `codeinfo` ( LOCK TABLES `codeinfo` WRITE; /*!40000 ALTER TABLE `codeinfo` DISABLE KEYS */; -INSERT INTO `codeinfo` VALUES ('JPN130','occupied','2025-06-10 08:11:11','2025-06-10 03:52:44'),('JPN140','default','2025-06-10 08:11:11','2025-06-10 03:52:49'),('JPN150','default',NULL,'2025-06-10 03:53:05'),('MP350','default','2025-06-10 10:11:53','2025-06-10 03:53:54'),('MP360','default','2025-06-10 10:20:51','2025-06-10 03:53:59'),('MP370','occupied','2025-06-10 10:20:51','2025-06-10 03:54:04'),('XP230','default',NULL,'2025-06-10 03:53:30'),('XP240','default',NULL,'2025-06-10 03:53:35'),('XP250','default',NULL,'2025-06-10 03:53:40'); +INSERT INTO `codeinfo` VALUES ('JPN130','occupied','2025-06-10 08:11:11','2025-06-10 03:52:44'),('JPN140','default','2025-06-10 08:11:11','2025-06-10 03:52:49'),('JPN150','default',NULL,'2025-06-10 03:53:05'),('MP350','default','2025-06-10 10:11:53','2025-06-10 03:53:54'),('MP360','default','2025-06-10 10:20:51','2025-06-10 03:53:59'),('MP370','occupied','2025-06-10 10:20:51','2025-06-10 03:54:04'),('XP230','default',NULL,'2025-06-10 03:53:30'),('XP240','occupied','2025-06-11 08:20:37','2025-06-10 03:53:35'),('XP250','default',NULL,'2025-06-10 03:53:40'); /*!40000 ALTER TABLE `codeinfo` ENABLE KEYS */; UNLOCK TABLES; @@ -373,7 +373,7 @@ CREATE TABLE `logger` ( PRIMARY KEY (`uid`), KEY `FK_user_TO_logger` (`user_uid`), CONSTRAINT `FK_user_TO_logger` FOREIGN KEY (`user_uid`) REFERENCES `user` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='작업 기록 로그'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='작업 기록 로그'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -382,7 +382,6 @@ CREATE TABLE `logger` ( LOCK TABLES `logger` WRITE; /*!40000 ALTER TABLE `logger` DISABLE KEYS */; -INSERT INTO `logger` VALUES (1,1,'Customer/ServiceItem','getResultFail','getFormFieldOption에서 item_type이 지정되지 않았습니다.','10:25:57[debug]: getFormFieldOption에서 item_type이 지정되지 않았습니다.','default','2025-06-11 01:25:57'),(2,1,'Customer/ServiceHistory','getResultSuccess','작업이 성공적으로 완료되었습니다.','10:38:31[debug]: 입력내용\n10:38:31[debug]: array (\n 'serviceinfo_uid' => '2',\n 'title' => 'sadfsf',\n 'description' => '',\n 'status' => 'default',\n)\n10:38:31[debug]: [5/sadfsf] 입력 후 내용\n10:38:31[debug]: array (\n 'serviceinfo_uid' => '2',\n 'title' => 'sadfsf',\n 'status' => 'default',\n 'uid' => 5,\n)\n10:38:31[info]: [sadfsf]생성되었습니다.:','default','2025-06-11 01:38:31'),(3,1,'User','getResultFail','Undefined variable $entity','11:09:58[debug]: Undefined variable $entity','default','2025-06-11 02:09:58'),(4,1,'MyLog','getResultFail','Undefined variable $entity','11:12:24[debug]: Undefined variable $entity','default','2025-06-11 02:12:24'),(5,1,'User','getResultFail','Undefined variable $entity','11:12:32[debug]: Undefined variable $entity','default','2025-06-11 02:12:32'); /*!40000 ALTER TABLE `logger` ENABLE KEYS */; UNLOCK TABLES; @@ -531,7 +530,7 @@ CREATE TABLE `serviceinfo` ( UNIQUE KEY `UQ_title` (`title`), KEY `FK_clientinfo_TO_serviceinfo` (`clientinfo_uid`), CONSTRAINT `FK_clientinfo_TO_serviceinfo` FOREIGN KEY (`clientinfo_uid`) REFERENCES `clientinfo` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='서비스정보'; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='서비스정보'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -540,7 +539,7 @@ CREATE TABLE `serviceinfo` ( LOCK TABLES `serviceinfo` WRITE; /*!40000 ALTER TABLE `serviceinfo` DISABLE KEYS */; -INSERT INTO `serviceinfo` VALUES (1,1,1,'TEST111 서비스1','R45P20','MP370','tokyo','defence','RAID1','2025-06-25','2025-06-02','2025-06-25','default','2025-06-10 10:20:51','2025-06-02 03:37:30'),(2,2,3,'Test2222 서비스명','R45P20','JPN130','default','default','default','2025-06-25','2025-06-04','2025-06-30','default','2025-06-10 08:11:11','2025-06-09 08:23:13'); +INSERT INTO `serviceinfo` VALUES (1,1,1,'TEST111 서비스1','R45P20','MP370','tokyo','defence','RAID1','2025-06-25','2025-06-02','2025-06-25','default','2025-06-10 10:20:51','2025-06-02 03:37:30'),(2,2,3,'Test2222 서비스명','R45P20','JPN130','default','default','default','2025-06-25','2025-06-04','2025-06-30','default','2025-06-10 08:11:11','2025-06-09 08:23:13'),(3,4,4,'TEST444 서비스1','R35P10','XP240','default','dedicated','RAID5','2025-06-25','2025-06-04','2025-06-30','default',NULL,'2025-06-11 08:20:37'); /*!40000 ALTER TABLE `serviceinfo` ENABLE KEYS */; UNLOCK TABLES; @@ -724,7 +723,7 @@ CREATE TABLE `user` ( PRIMARY KEY (`uid`), UNIQUE KEY `UQ_id` (`id`), UNIQUE KEY `UQ_email` (`email`) -) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8 COMMENT='관리자정보'; +) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COMMENT='관리자정보'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -733,7 +732,7 @@ CREATE TABLE `user` ( LOCK TABLES `user` WRITE; /*!40000 ALTER TABLE `user` DISABLE KEYS */; -INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$9kUte0xrvEkxtI9CzVaeKeCAxzOR4pKPpsCaQHR1YW7dXsCrTLWeC','최준흠','choi.jh@prime-idc.jp','','manager,cloudflare,firewall,director,master','default','2023-05-31 14:55:51','2023-03-23 06:50:04'),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-30 14:35:55','2023-03-24 02:20:48'),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:21:50','2023-03-24 02:21:50'),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,cloudflare,director','default','2023-03-24 02:23:18','2023-03-24 02:23:18'),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:23:52','2023-03-24 02:23:52'),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-29 16:32:52','2023-03-24 02:24:21'),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare','default','2023-07-21 06:48:39','2023-03-24 02:25:00'),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-22 23:59:07','2023-03-24 02:25:48'),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-02 02:07:19','2023-03-24 02:26:31'),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp',NULL,'manager,cloudflare,firewall','default','2023-10-16 23:08:51','2023-03-24 02:27:05'),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp',NULL,'manager,cloudflare','default','2024-06-12 00:21:07','2023-03-24 02:27:59'),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp',NULL,'manager,cloudflare','default','2023-05-31 14:22:43','2023-03-24 02:28:31'),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp',NULL,'manager,cloudflare','default','2023-03-24 02:29:00','2023-03-24 02:29:00'),(15,'park.sm','$2y$10$BwMxw0uvw2tAdQ0EZQ2/hu.Q7zYu7mbuBPPRTaa14bwG3VLf0cXfu','박선미','park.sm@idcjp.jp',NULL,'manager,cloudflare','default','2024-03-12 02:14:09','2023-03-24 02:29:34'),(19,'park.hg','$2y$10$x7QQOkOEJHVKOnghbHBqYuI12Vsa9KLV8W4wgebCWy1pZiM93/W.e','박혁규','park.hg@prime-idc.jp',NULL,'manager','pause','2023-09-04 10:27:32','2023-09-04 09:48:02'),(21,'masakuni','$2y$10$di6Y7CqJGbbf72kDyCrOCOafJgk3vqJCYg6N3EtBUc3J6r24/7SFe','김창국','masakuni@prime-idc.jp',NULL,'cloudflare','pause','2023-12-18 08:56:29','2023-12-18 08:56:29'),(22,'bjh','$2y$10$LnEQ6kz4igRPZeDYwe7UluRiSaMVGN9Jj1fW3QqUUp6zPeLJW9goS','배장훈','bjh@prime-idc.jp',NULL,'cloudflare','pause','2024-06-06 23:51:19','2024-02-26 01:26:20'),(23,'cho.sh','$2y$10$jmmNrEsFmb2.Zj3OkBXDHuktrIj.NCP/tO2k9kquFBTBssa/lNG6y','조성호','cho.sh@prime-idc.jp','','manager','pause','2024-10-02 00:45:19','2024-10-02 00:32:30'),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare','default',NULL,'2024-10-29 06:30:19'),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp',NULL,'manager,cloudflare','default','2025-01-23 00:30:13','2025-01-23 00:29:46'),(38,'choi.jh234222222','$2y$10$zCgVXnCClLbftgeGxH0rk.v3o1zHkoO8Ywq2UDmGkdjIhK5mLJhvu','adfasdfas2222','postfixadmin@idcjp.jp2222222','043443432722222','cloudflare','pause',NULL,'2025-05-02 04:49:19'),(40,'choi.jh2342222224','$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y','adfasdfas22222221234','postfixadmin@idcjp.jp3234343','04344343271234','manager,cloudflare','default','2025-06-10 00:25:19','2025-05-02 06:34:43'); +INSERT INTO `user` VALUES (1,'choi.jh','$2y$10$9kUte0xrvEkxtI9CzVaeKeCAxzOR4pKPpsCaQHR1YW7dXsCrTLWeC','최준흠','choi.jh@prime-idc.jp','','manager,cloudflare,firewall,director,master','default','2023-05-31 14:55:51','2023-03-23 06:50:04'),(2,'cho.jh','$2y$10$ot/aUXR/W1n4Q3dZA2dZCOxQrpVb2Bq31Y7xFQS3G6D1gtImmyBjm','조준희','cho.jh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-30 14:35:55','2023-03-24 02:20:48'),(4,'kimdy','$2y$10$18uyn94xdprzAnt.oYZ5weAvb8rRLhkz/SdQrjEK7yuGhCr9PlUCC','김동윤','kimdy@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:21:50','2023-03-24 02:21:50'),(5,'kimhy','$2y$10$.yEKVqY.F7HoSOZijl4uyeulUtfAQ4EDRiyR2JpgFYBuKw.mZoZvG','김효영','khy@prime-idc.jp',NULL,'manager,cloudflare,director','default','2023-03-24 02:23:18','2023-03-24 02:23:18'),(6,'kim.eh','$2y$10$YmwicI.Br4XNyGamfRADMOu.qlkwKd2fmnNkL7YIkNHGndvqYPnCq','김은혁','kim.eh@prime-idc.jp',NULL,'manager,cloudflare','default','2023-03-24 02:23:52','2023-03-24 02:23:52'),(7,'leeph','$2y$10$lR739WzJsW6rDLgchYs7buek4BYeTlKHTQY60RDqRms9Io7RSY3AC','이풍호','leeph@prime-idc.jp',NULL,'manager,cloudflare','default','2023-05-29 16:32:52','2023-03-24 02:24:21'),(8,'jinmingyu','$2y$10$PI8WA6d/z4hDE6hxJoUhbuMH3vTTWH0Ry2Z6fTLUUpwQGaE/9bEZa','김명옥','jinmingyu@idcjp.jp',NULL,'manager,cloudflare','default','2023-07-21 06:48:39','2023-03-24 02:25:00'),(9,'kangdh','$2y$10$gu9OS2DDQQ5H.Hh61t3BSOUp87l35q.xsduVSxvCcn8IgA4jrATgG','강동헌','kang.dh@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-22 23:59:07','2023-03-24 02:25:48'),(10,'yoohs','$2y$10$TGASk98FuZ6Ux6FDquu1aO3rztA01MCle/Vs1.3iaEMQzakAbCzJy','유혜성','yoo.hs@idcjp.jp',NULL,'manager,cloudflare','default','2023-06-02 02:07:19','2023-03-24 02:26:31'),(11,'kim.yh','$2y$10$8GciQXpKYiR3TDWQfh9JjOQAQ.YWGoOSCL0a0/w4XACO0mUgjjbWy','김영환','kim.yh@idcjp.jp',NULL,'manager,cloudflare,firewall','default','2023-10-16 23:08:51','2023-03-24 02:27:05'),(12,'yunmuj','$2y$10$zkgwGVj2JSOVIsxLe8fePe1gvWWaCemfZMktzBlrN8oLb3CKydkZC','윤무정','yunmuj@idcjp.jp',NULL,'manager,cloudflare','default','2024-06-12 00:21:07','2023-03-24 02:27:59'),(13,'kim.mt','$2y$10$3dfkA0oq4LqiJOmjbBGKe.p0Dhj/MDqjoTdw11BOPF/H2qJqnEuHO','김문태','kim.mt@idcjp.jp',NULL,'manager,cloudflare','default','2023-05-31 14:22:43','2023-03-24 02:28:31'),(14,'shin.ms','$2y$10$.jaDkGtm/gZK3ZDF.fJUGOwMI7Zif5588X5AxSMvvk238RDI7spQ6','신민수','shin.ms@idcjp.jp',NULL,'manager,cloudflare','default','2023-03-24 02:29:00','2023-03-24 02:29:00'),(15,'park.sm','$2y$10$BwMxw0uvw2tAdQ0EZQ2/hu.Q7zYu7mbuBPPRTaa14bwG3VLf0cXfu','박선미','park.sm@idcjp.jp',NULL,'manager,cloudflare','default','2024-03-12 02:14:09','2023-03-24 02:29:34'),(19,'park.hg','$2y$10$x7QQOkOEJHVKOnghbHBqYuI12Vsa9KLV8W4wgebCWy1pZiM93/W.e','박혁규','park.hg@prime-idc.jp',NULL,'manager','pause','2023-09-04 10:27:32','2023-09-04 09:48:02'),(21,'masakuni','$2y$10$di6Y7CqJGbbf72kDyCrOCOafJgk3vqJCYg6N3EtBUc3J6r24/7SFe','김창국','masakuni@prime-idc.jp',NULL,'cloudflare','pause','2023-12-18 08:56:29','2023-12-18 08:56:29'),(22,'bjh','$2y$10$LnEQ6kz4igRPZeDYwe7UluRiSaMVGN9Jj1fW3QqUUp6zPeLJW9goS','배장훈','bjh@prime-idc.jp',NULL,'cloudflare','pause','2024-06-06 23:51:19','2024-02-26 01:26:20'),(23,'cho.sh','$2y$10$jmmNrEsFmb2.Zj3OkBXDHuktrIj.NCP/tO2k9kquFBTBssa/lNG6y','조성호','cho.sh@prime-idc.jp','','manager','pause','2024-10-02 00:45:19','2024-10-02 00:32:30'),(24,'kobn','$2y$10$pWM/XFfSNeSng32sypbDX.WaR4UlM4EDkYKCQfFkYIOC7Ppg0nc5G','고병남','ko@prime-idc.jp',NULL,'manager,cloudflare','default',NULL,'2024-10-29 06:30:19'),(25,'jeong.sg','$2y$10$OzH6140JztiUEs4s/VHbPOxfxubFooqwqVhGpdFG8OJCGAFXNu546','정상구','jeong.sg@prime-idc.jp',NULL,'manager,cloudflare','default','2025-01-23 00:30:13','2025-01-23 00:29:46'),(38,'choi.jh234222222','$2y$10$zCgVXnCClLbftgeGxH0rk.v3o1zHkoO8Ywq2UDmGkdjIhK5mLJhvu','adfasdfas2222','postfixadmin@idcjp.jp2222222','043443432722222','cloudflare','pause','2025-06-11 08:12:39','2025-05-02 04:49:19'),(40,'choi.jh2342222224','$2y$10$hP/z5Nojh4eNKnTxZe3Cm.0NtvqHW2U2U0vvVDSzelKRaXSxlVj2y','adfasdfas22222221234','postfixadmin@idcjp.jp3234343','04344343271234','manager,cloudflare','pause','2025-06-11 08:12:01','2025-05-02 06:34:43'),(41,'test333334','$2y$10$eQXPQIvkuvnBc11hURs/K.mO44cHovtEdVpQ9QMLbu7H7bsspmJEO','test333334','test@test.co.kr2','1111112222','manager,cloudflare','pause','2025-06-11 08:12:39','2025-06-11 07:36:53'); /*!40000 ALTER TABLE `user` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -746,4 +745,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2025-06-11 13:55:26 +-- Dump completed on 2025-06-11 17:21:23