diff --git a/app/Controllers/Admin/Equipment/ServerController.php b/app/Controllers/Admin/Equipment/ServerController.php
index b004bab..0acd11e 100644
--- a/app/Controllers/Admin/Equipment/ServerController.php
+++ b/app/Controllers/Admin/Equipment/ServerController.php
@@ -4,8 +4,6 @@ namespace App\Controllers\Admin\Equipment;
use App\Entities\Equipment\ServerEntity;
use App\Helpers\Equipment\ServerHelper;
-
-use App\Helpers\Equipment\ServerPartHelper;
use App\Services\Equipment\ServerService;
use CodeIgniter\HTTP\RedirectResponse;
use CodeIgniter\HTTP\RequestInterface;
@@ -108,14 +106,4 @@ class ServerController extends EquipmentController
$this->getService()->codeCheck($formDatas);
return parent::modify_process($entity, $formDatas);
}
- protected function view_process(mixed $entity): ServerEntity
- {
- $this->serverPartHelper = new ServerPartHelper();
- return parent::view_process($entity);
- }
- protected function index_process(array $entities = []): array
- {
- $this->serverPartHelper = new ServerPartHelper();
- return parent::index_process($entities);
- }
}
diff --git a/app/Database/dbmsv2_test1.sql b/app/Database/dbmsv2_test1.sql
index e557fe9..a1a590f 100644
--- a/app/Database/dbmsv2_test1.sql
+++ b/app/Database/dbmsv2_test1.sql
@@ -590,4 +590,4 @@ UNLOCK TABLES;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2025-09-05 9:49:49
+-- Dump completed on 2025-09-05 10:17:16
diff --git a/app/Helpers/Customer/ServiceHelper.php b/app/Helpers/Customer/ServiceHelper.php
index 20d9fe2..e23e96a 100644
--- a/app/Helpers/Customer/ServiceHelper.php
+++ b/app/Helpers/Customer/ServiceHelper.php
@@ -2,14 +2,21 @@
namespace App\Helpers\Customer;
+use App\Helpers\Equipment\ServerPartHelper;
use App\Models\Customer\ServiceModel;
class ServiceHelper extends CustomerHelper
{
+ private ?ServerPartHelper $_serverPartHelper = null;
public function __construct()
{
parent::__construct();
$this->setTitleField(field: ServiceModel::TITLE);
+ $this->_serverPartHelper = new ServerPartHelper();
+ }
+ private function getServerPartHelper(): ServerPartHelper
+ {
+ return $this->_serverPartHelper;
}
public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
{
@@ -51,6 +58,19 @@ class ServiceHelper extends CustomerHelper
}
}
break;
+ case 'SWITCH':
+ case 'IP':
+ case 'CS':
+ case 'CPU':
+ case 'RAM':
+ case 'DISK':
+ case 'OS':
+ case 'DB':
+ case 'SOFTWARE':
+ $serverEntity = $viewDatas['entity']->getServerEntity();
+ $viewDatas['serverPartEntities'] = $serverEntity->getServerPartEntities($field);
+ $value = $this->getServerPartHelper()->getFieldView($field, $value, $viewDatas, $extras);
+ break;
default:
$value = parent::getFieldView($field, $value, $viewDatas, $extras);
break;
@@ -81,6 +101,19 @@ class ServiceHelper extends CustomerHelper
]
);
break;
+ case 'SWITCH':
+ case 'IP':
+ case 'CS':
+ case 'CPU':
+ case 'RAM':
+ case 'DISK':
+ case 'OS':
+ case 'DB':
+ case 'SOFTWARE':
+ $serverEntity = $viewDatas['entity']->getServerEntity();
+ $viewDatas['serverPartEntities'] = $serverEntity->getServerPartEntities($action);
+ $action = $this->getServerPartHelper()->getListButton($action, $label, $viewDatas, $extras);
+ break;
default:
$action = parent::getListButton($action, $label, $viewDatas, $extras);
break;
diff --git a/app/Helpers/Equipment/ServerHelper.php b/app/Helpers/Equipment/ServerHelper.php
index db1e5d9..b421bf8 100644
--- a/app/Helpers/Equipment/ServerHelper.php
+++ b/app/Helpers/Equipment/ServerHelper.php
@@ -51,15 +51,11 @@ class ServerHelper extends EquipmentHelper
case 'format_at':
$value = $value ? date("Y-m-d", strtotime($value)) : "";
break;
- case 'ipinfo_uid':
- foreach ($viewDatas['entity']->getIPEntities() as $ipEntity) {
- $value .= sprintf("
%s%s %s
", $ipEntity->getTitle(), $ipEntity->getAmount());
- }
- break;
- case 'csinfo_uid':
- foreach ($viewDatas['entity']->getCSEntities() as $csEntity) {
- $value .= sprintf("%s%s %s
", $csEntity->getTitle(), $csEntity->getAmount());
- }
+ case 'CPU':
+ case 'RAM':
+ case 'DISK':
+ $viewDatas['serverPartEntities'] = $viewDatas['entity']->getServerPartEntities($field);
+ $value = $this->getServerPartHelper()->getFieldView($field, $value, $viewDatas, $extras);
break;
default:
$value = parent::getFieldView($field, $value, $viewDatas, $extras);
@@ -90,6 +86,12 @@ class ServerHelper extends EquipmentHelper
]
);
break;
+ case 'CPU':
+ case 'RAM':
+ case 'DISK':
+ $viewDatas['serverPartEntities'] = $viewDatas['entity']->getServerPartEntities($action);
+ $action = $this->getServerPartHelper()->getListButton($action, $label, $viewDatas, $extras);
+ break;
default:
$action = parent::getListButton($action, $label, $viewDatas, $extras);
break;
diff --git a/app/Helpers/Equipment/ServerPartHelper.php b/app/Helpers/Equipment/ServerPartHelper.php
index af8d57b..45cfe57 100644
--- a/app/Helpers/Equipment/ServerPartHelper.php
+++ b/app/Helpers/Equipment/ServerPartHelper.php
@@ -31,38 +31,42 @@ class ServerPartHelper extends EquipmentHelper
public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string
{
switch ($field) {
+ // case 'SWITCH':
+ // if (array_key_exists('entity', $viewDatas)) {
+ // $value = $viewDatas['entity']->getSwitchEntity() !== null ? $viewDatas['entity']->getSwitchEntity()->getPK() : $value;
+ // }
+ // $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' select-field' : 'select-field';
+ // $form = $this->form_dropdown_custom($field, $value, $viewDatas, $extras);
+ // break;
+ // case 'IP':
+ // $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' select-field' : 'select-field';
+ // $form = "";
+ // if (array_key_exists('entity', $viewDatas)) {
+ // foreach ($viewDatas['entity']->getIPEntities() as $ipEntity) {
+ // $form .= "" . $this->form_dropdown_custom($field, $ipEntity->getPK(), $viewDatas, $extras) . "
";
+ // }
+ // }
+ // $form .= $this->form_dropdown_custom($field, $value, $viewDatas, $extras);
+ // break;
+ // case 'CS':
+ // $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' select-field' : 'select-field';
+ // $form = "";
+ // if (array_key_exists('entity', $viewDatas)) {
+ // foreach ($viewDatas['entity']->getCSEntities() as $csEntity) {
+ // $form .= "" . $this->form_dropdown_custom($field, $csEntity->getPK(), $viewDatas, $extras) . "
";
+ // }
+ // }
+ // $form .= $this->form_dropdown_custom($field, $value, $viewDatas, $extras);
+ // break;
case 'SWITCH':
- if (array_key_exists('entity', $viewDatas)) {
- $value = $viewDatas['entity']->getSwitchEntity() !== null ? $viewDatas['entity']->getSwitchEntity()->getPK() : $value;
- }
- $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' select-field' : 'select-field';
- $form = $this->form_dropdown_custom($field, $value, $viewDatas, $extras);
- break;
case 'IP':
- $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' select-field' : 'select-field';
- $form = "";
- if (array_key_exists('entity', $viewDatas)) {
- foreach ($viewDatas['entity']->getIPEntities() as $ipEntity) {
- $form .= "" . $this->form_dropdown_custom($field, $ipEntity->getPK(), $viewDatas, $extras) . "
";
- }
- }
- $form .= $this->form_dropdown_custom($field, $value, $viewDatas, $extras);
- break;
case 'CS':
- $extras['class'] = array_key_exists('class', $extras) ? $extras['class'] . ' select-field' : 'select-field';
- $form = "";
- if (array_key_exists('entity', $viewDatas)) {
- foreach ($viewDatas['entity']->getCSEntities() as $csEntity) {
- $form .= "" . $this->form_dropdown_custom($field, $csEntity->getPK(), $viewDatas, $extras) . "
";
- }
- }
- $form .= $this->form_dropdown_custom($field, $value, $viewDatas, $extras);
- break;
case 'CPU':
case 'RAM':
case 'DISK':
case 'DB':
case 'OS':
+ case 'SOFTWARE':
$form = $this->getServerPartForm($field, $value, $viewDatas, $extras, $field);
break;
case 'CPU_cnt':
@@ -70,6 +74,7 @@ class ServerPartHelper extends EquipmentHelper
case 'DISK_cnt':
case 'DB_cnt':
case 'OS_cnt':
+ case 'SOFTWARE_cnt':
$form = "*" . form_dropdown($field, SERVERPART['CNT_RANGE'], $value, $extras) . "개";
break;
case 'DISK_extra':
@@ -100,7 +105,7 @@ class ServerPartHelper extends EquipmentHelper
case 'DB':
case 'SOFTWARE':
$temps = [];
- foreach ($viewDatas['entity']->getServerPartEntities($field) as $partEntity) {
+ foreach ($viewDatas['serverPartEntities'] as $partEntity) {
$modal = form_label(
ICONS['SETUP'],
$field,
@@ -144,17 +149,21 @@ class ServerPartHelper extends EquipmentHelper
case 'OS':
case 'DB':
case 'SOFTWARE':
- $extras = ["class" => "btn btn-sm btn-outline btn-circle", "target" => "_self", ...$extras];
- $action = form_label(
- $label ? $label : ICONS['SETUP'],
- $action,
- [
- "data-src" => "/admin/equipment/serverpart?serverinfo_uid={$viewDatas['entity']->getPK()}&type={$action}&ActionTemplate=popup",
- "data-bs-toggle" => "modal",
- "data-bs-target" => "#index_action_form",
- ...$extras
- ]
- );
+ $temps = [];
+ foreach ($viewDatas['serverPartEntities'] as $partEntity) {
+ $extras = ["class" => "btn btn-sm btn-outline btn-circle", "target" => "_self", ...$extras];
+ $temps[] = form_label(
+ $label ? $label : ICONS['SETUP'],
+ $action,
+ [
+ "data-src" => "/admin/equipment/serverpart?serverinfo_uid={$partEntity->getServerInfoUID()}&type={$partEntity->getType()}&ActionTemplate=popup",
+ "data-bs-toggle" => "modal",
+ "data-bs-target" => "#index_action_form",
+ ...$extras,
+ ]
+ );
+ }
+ $action = implode("
", $temps);
break;
default:
$action = parent::getListButton($action, $label, $viewDatas, $extras);
diff --git a/app/Services/Customer/ServiceService.php b/app/Services/Customer/ServiceService.php
index 971bad8..8bb54b0 100644
--- a/app/Services/Customer/ServiceService.php
+++ b/app/Services/Customer/ServiceService.php
@@ -191,17 +191,7 @@ class ServiceService extends CustomerService
return $this->getModel()->query($sql, [$billing_at, $status]);
}
- //다른장치 설정용
- private function disableService(ServiceEntity $entity): ServiceEntity
- {
- //기존 Server정보와 다른경우 사용가능상태로 변경
- $serverEntity = $entity->getServerEntity();
- if ($serverEntity !== null) {
- $serverEntity = $this->getServerService()->disableService($entity, $serverEntity);
- $entity->setServerEntity(null);
- }
- return $entity;
- }
+ //서버설정용
private function enableService(ServiceEntity $entity, array $formDatas): ServiceEntity
{
//서버경우 서비스중으로 설정
@@ -213,6 +203,16 @@ class ServiceService extends CustomerService
$entity->setServerEntity($serverEntity);
return $entity;
}
+ private function disableService(ServiceEntity $entity): ServiceEntity
+ {
+ //기존 Server정보와 다른경우 사용가능상태로 변경
+ $serverEntity = $entity->getServerEntity();
+ if ($serverEntity !== null) {
+ $serverEntity = $this->getServerService()->disableService($entity, $serverEntity);
+ $entity->setServerEntity(null);
+ }
+ return $entity;
+ }
//생성
public function create(array $formDatas): ServiceEntity
{
diff --git a/app/Services/Equipment/ServerService.php b/app/Services/Equipment/ServerService.php
index a7b75c1..0d22fc0 100644
--- a/app/Services/Equipment/ServerService.php
+++ b/app/Services/Equipment/ServerService.php
@@ -166,11 +166,12 @@ class ServerService extends EquipmentService
$formDatas['status'] = STATUS['OCCUPIED'];;
$entity = parent::modify($entity, $formDatas);
//ServerPart경우 서비스번호 설정
- $serverPartEntities = [];
foreach ($this->getServerPartService()->getEntities(['serverinfo_uid' => $entity->getPK()]) as $serverPartEntity) {
- $serverPartEntities[] = $this->getServerPartService()->enableService($entity, $serverPartEntity, $formDatas);
+ $entity->addServerPartEntity(
+ $serverPartEntity->getType(),
+ $this->getServerPartService()->enableService($entity, $serverPartEntity, $formDatas)
+ );
}
- $entity->setServerPartEntities($serverPartEntities);
return $entity;
}
public function disableService(ServiceEntity $serviceEntity, ServerEntity $entity): ServerEntity
@@ -182,11 +183,12 @@ class ServerService extends EquipmentService
$formDatas['status'] = STATUS['AVAILABLE'];
$entity = parent::modify($entity, $formDatas);
//ServerPart경우 서비스번호 해지
- $serverPartEntities = [];
foreach ($this->getServerPartService()->getEntities(['serverinfo_uid' => $entity->getPK()]) as $serverPartEntity) {
- $serverPartEntities[] = $this->getServerPartService()->disableService($serverPartEntity);
+ $entity->addServerPartEntity(
+ $serverPartEntity->getType(),
+ $this->getServerPartService()->disableService($serverPartEntity)
+ );
}
- $entity->setServerPartEntities($serverPartEntities);
return $entity;
}
}
diff --git a/app/Views/admin/server/index.php b/app/Views/admin/server/index.php
index 4efc175..6620db5 100644
--- a/app/Views/admin/server/index.php
+++ b/app/Views/admin/server/index.php
@@ -72,8 +72,8 @@
- | = $viewDatas['serverPartHelper']->getListButton($partType, $partType, $viewDatas) ?> |
- = $viewDatas['serverPartHelper']->getFieldView($partType, "", $viewDatas) ?> |
+ = $viewDatas['helper']->getListButton($partType, $partType, $viewDatas) ?> |
+ = $viewDatas['helper']->getFieldView($partType, "", $viewDatas) ?> |
diff --git a/app/Views/admin/service/index.php b/app/Views/admin/service/index.php
index cc4e23b..d4f8eb6 100644
--- a/app/Views/admin/service/index.php
+++ b/app/Views/admin/service/index.php
@@ -81,19 +81,9 @@
= $viewDatas['helper']->getFieldView($partType, "", $viewDatas) ?> |
-
- | IP |
- = $viewDatas['helper']->getFieldView("ipinfo_uid", "", $viewDatas) ?> |
-
-
- | CS |
- = $viewDatas['helper']->getFieldView("csinfo_uid", "", $viewDatas) ?> |
-
-
- = $viewDatas['helper']->getFieldView('user_uid', $entity->user_uid, $viewDatas) ?>
- |
+ = $viewDatas['helper']->getFieldView('user_uid', $entity->user_uid, $viewDatas) ?> |
= $viewDatas['helper']->getListButton('view', '', $viewDatas) ?>
= $viewDatas['helper']->getListButton('history', '', $viewDatas) ?>
|