From 66debb05580bad35a25c231c5aa7b1207387b164 Mon Sep 17 00:00:00 2001 From: "choi.jh" Date: Wed, 20 Aug 2025 17:53:44 +0900 Subject: [PATCH] dbmsv2 init...1 --- .../Equipment/{IpEntity.php => IPEntity.php} | 8 +-- app/Helpers/CommonHelper.php | 3 ++ app/Helpers/Equipment/IPHelper.php | 14 +++++ app/Helpers/Equipment/IpHelper.php | 14 ----- app/Language/en/Equipment/{Ip.php => IP.php} | 0 app/Language/en/Equipment/Server.php | 3 ++ .../Equipment/{IpModel.php => IPModel.php} | 6 +-- .../{IpService.php => IPService.php} | 16 +++--- app/Services/Equipment/ServerService.php | 51 ++++++++++++++++++- 9 files changed, 84 insertions(+), 31 deletions(-) rename app/Entities/Equipment/{IpEntity.php => IPEntity.php} (69%) create mode 100644 app/Helpers/Equipment/IPHelper.php delete mode 100644 app/Helpers/Equipment/IpHelper.php rename app/Language/en/Equipment/{Ip.php => IP.php} (100%) rename app/Models/Equipment/{IpModel.php => IPModel.php} (92%) rename app/Services/Equipment/{IpService.php => IPService.php} (88%) diff --git a/app/Entities/Equipment/IpEntity.php b/app/Entities/Equipment/IPEntity.php similarity index 69% rename from app/Entities/Equipment/IpEntity.php rename to app/Entities/Equipment/IPEntity.php index 5d055ee..a5b4493 100644 --- a/app/Entities/Equipment/IpEntity.php +++ b/app/Entities/Equipment/IPEntity.php @@ -2,12 +2,12 @@ namespace App\Entities\Equipment; -use App\Models\Equipment\IpModel; +use App\Models\Equipment\IPModel; -class IpEntity extends EquipmentEntity +class IPEntity extends EquipmentEntity { - const PK = IpModel::PK; - const TITLE = IpModel::TITLE; + const PK = IPModel::PK; + const TITLE = IPModel::TITLE; const STATUS_AVAILABLE = "available"; const STATUS_OCCUPIED = "occupied"; const STATUS_FORBIDDEN = "forbidden"; diff --git a/app/Helpers/CommonHelper.php b/app/Helpers/CommonHelper.php index 8d8d297..22c5cfd 100644 --- a/app/Helpers/CommonHelper.php +++ b/app/Helpers/CommonHelper.php @@ -279,6 +279,9 @@ class CommonHelper case 'clientinfo_uid': case 'serviceinfo_uid': case 'serverinfo_uid': + case 'partinfo_uid': + case 'ipinfo_uid': + case 'csinfo_uid': $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' select-field' : 'select-field'; $form = $this->form_dropdown_disabled($field, $value, $viewDatas['control']['filter_optons'][$field], $extras); break; diff --git a/app/Helpers/Equipment/IPHelper.php b/app/Helpers/Equipment/IPHelper.php new file mode 100644 index 0000000..7d83008 --- /dev/null +++ b/app/Helpers/Equipment/IPHelper.php @@ -0,0 +1,14 @@ +setTitleField(field: IPModel::TITLE); + } +} diff --git a/app/Helpers/Equipment/IpHelper.php b/app/Helpers/Equipment/IpHelper.php deleted file mode 100644 index 50ea571..0000000 --- a/app/Helpers/Equipment/IpHelper.php +++ /dev/null @@ -1,14 +0,0 @@ -setTitleField(field: IpModel::TITLE); - } -} diff --git a/app/Language/en/Equipment/Ip.php b/app/Language/en/Equipment/IP.php similarity index 100% rename from app/Language/en/Equipment/Ip.php rename to app/Language/en/Equipment/IP.php diff --git a/app/Language/en/Equipment/Server.php b/app/Language/en/Equipment/Server.php index 156f603..5444582 100644 --- a/app/Language/en/Equipment/Server.php +++ b/app/Language/en/Equipment/Server.php @@ -15,6 +15,9 @@ return [ 'updated_at' => "수정일", 'created_at' => "작성일", 'deleted_at' => "삭제일", + "partinfo_uid" => "부품정보", + "ipinfo_uid" => "IP정보", + "csinfo_uid" => "CS정보", ], "TYPE" => [ 'hp' => "HP", diff --git a/app/Models/Equipment/IpModel.php b/app/Models/Equipment/IPModel.php similarity index 92% rename from app/Models/Equipment/IpModel.php rename to app/Models/Equipment/IPModel.php index e7fd400..9052a0c 100644 --- a/app/Models/Equipment/IpModel.php +++ b/app/Models/Equipment/IPModel.php @@ -2,16 +2,16 @@ namespace App\Models\Equipment; -use App\Entities\Equipment\IpEntity; +use App\Entities\Equipment\IPEntity; -class IpModel extends EquipmentModel +class IPModel extends EquipmentModel { const TABLE = "ipinfo"; const PK = "uid"; const TITLE = "ip"; protected $table = self::TABLE; protected $primaryKey = self::PK; - protected $returnType = IpEntity::class; + protected $returnType = IPEntity::class; protected $allowedFields = [ "lineinfo_uid", "old_clientinfo_uid", diff --git a/app/Services/Equipment/IpService.php b/app/Services/Equipment/IPService.php similarity index 88% rename from app/Services/Equipment/IpService.php rename to app/Services/Equipment/IPService.php index aa7cb3f..0130b4e 100644 --- a/app/Services/Equipment/IpService.php +++ b/app/Services/Equipment/IPService.php @@ -2,19 +2,19 @@ namespace App\Services\Equipment; -use App\Entities\Equipment\IpEntity; +use App\Entities\Equipment\IPEntity; use App\Entities\Equipment\LineEntity; -use App\Models\Equipment\IpModel; +use App\Models\Equipment\IPModel; use App\Services\Equipment\EquipmentService; use App\Services\Equipment\LineService; -class IpService extends EquipmentService +class IPService extends EquipmentService { private ?LineService $_lineService = null; public function __construct() { - parent::__construct(new IpModel()); - $this->addClassName('Ip'); + parent::__construct(new IPModel()); + $this->addClassName('IP'); } public function getFormFields(): array { @@ -62,18 +62,18 @@ class IpService extends EquipmentService } return $options; } - public function createByLineInfo(LineEntity $entity, string $ip): IpEntity + public function createByLineInfo(LineEntity $entity, string $ip): IPEntity { $formDatas = [ 'lineinfo_uid' => $entity->getPK(), 'ip' => $ip, - 'status' => IpEntity::DEFAULT_STATUS, + 'status' => IPEntity::DEFAULT_STATUS, ]; return $this->create($formDatas); } //상태변경 - public function setStatus(int $uid, string $status): IpEntity + public function setStatus(int $uid, string $status): IPEntity { //code의 경우 사용가능/사용중으로 설정작업 $entity = $this->getEntity($uid); diff --git a/app/Services/Equipment/ServerService.php b/app/Services/Equipment/ServerService.php index 8f9bcf1..e6f7d59 100644 --- a/app/Services/Equipment/ServerService.php +++ b/app/Services/Equipment/ServerService.php @@ -2,12 +2,17 @@ namespace App\Services\Equipment; -use App\Entities\Equipment\ServerEntity; +use App\Entities\Equipment\PartEntity; +use App\Entities\Equipment\IPEntity; +use App\Entities\Equipment\CSEntity; use App\Models\Equipment\ServerModel; use App\Services\Equipment\EquipmentService; class ServerService extends EquipmentService { + private ?PartService $_partService = null; + private ?IPService $_ipService = null; + private ?CSService $_csService = null; public function __construct() { parent::__construct(new ServerModel()); @@ -24,11 +29,14 @@ class ServerService extends EquipmentService "manufactur_at", "format_at", "status", + "partinfo_uid", + "ipinfo_uid", + "csinfo_uid", ]; } public function getFilterFields(): array { - return ['clientinfo_uid', 'serviceinfo_uid', 'type', 'status']; + return ['clientinfo_uid', 'serviceinfo_uid', 'type', 'status', 'partinfo_uid', 'ipinfo_uid', 'csinfo_uid']; } public function getBatchJobFields(): array { @@ -38,8 +46,47 @@ class ServerService extends EquipmentService { return ['clientinfo_uid', 'serviceinfo_uid', "type", 'title', 'price', 'total_price', 'manufactur_at', "format_at", 'status']; } + final public function getPartService(): PartService + { + if (!$this->_partService) { + $this->_partService = new PartService(); + } + return $this->_partService; + } + final public function getIPService(): IPService + { + if (!$this->_ipService) { + $this->_ipService = new IPService(); + } + return $this->_ipService; + } + final public function getCSService(): CSService + { + if (!$this->_csService) { + $this->_csService = new CSService(); + } + return $this->_csService; + } //기본 기능부분 //FieldForm관련용 + public function getFormFieldOption(string $field, array $options = []): array + { + switch ($field) { + case 'partinfo_uid': + $options = $this->getPartService()->getEntities(['status' => PartEntity::STATUS_AVAILABLE]); + break; + case 'ipinfo_uid': + $options = $this->getIPService()->getEntities(['status' => IPEntity::STATUS_AVAILABLE]); + break; + case 'csinfo_uid': + $options = $this->getCSService()->getEntities(['status' => CSEntity::STATUS_AVAILABLE]); + break; + default: + $options = parent::getFormFieldOption($field, $options); + break; + } + return $options; + } //List 검색용 //OrderBy 처리 public function setOrderBy(mixed $field = null, mixed $value = null): void