dbms_init...1

This commit is contained in:
최준흠 2025-05-27 11:12:42 +09:00
parent 4f7a047fb5
commit f322f9410f
21 changed files with 243 additions and 133 deletions

View File

@ -108,58 +108,6 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
});
});
$routes->group('equipment', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->group('line', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->get('/', 'LineController::index', []);
$routes->get('create', 'LineController::create_form');
$routes->post('create', 'LineController::create');
$routes->get('modify/(:num)', 'LineController::modify_form/$1');
$routes->post('modify/(:num)', 'LineController::modify/$1');
$routes->get('view/(:num)', 'LineController::view/$1');
$routes->get('delete/(:num)', 'LineController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'LineController::toggle/$1/$2');
$routes->post('batchjob', 'LineController::batchjob');
$routes->post('batchjob_delete', 'LineController::batchjob_delete');
$routes->get('download/(:alpha)', 'LineController::download/$1');
});
$routes->group('ip', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->get('/', 'IpController::index', []);
$routes->get('create', 'IpController::create_form');
$routes->post('create', 'IpController::create');
$routes->get('modify/(:num)', 'IpController::modify_form/$1');
$routes->post('modify/(:num)', 'IpController::modify/$1');
$routes->get('view/(:num)', 'IpController::view/$1');
$routes->get('delete/(:num)', 'IpController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'IpController::toggle/$1/$2');
$routes->post('batchjob', 'IpController::batchjob');
$routes->post('batchjob_delete', 'IpController::batchjob_delete');
$routes->get('download/(:alpha)', 'IpController::download/$1');
});
$routes->group('defence', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->get('/', 'DefenceController::index', []);
$routes->get('create', 'DefenceController::create_form');
$routes->post('create', 'DefenceController::create');
$routes->get('modify/(:num)', 'DefenceController::modify_form/$1');
$routes->post('modify/(:num)', 'DefenceController::modify/$1');
$routes->get('view/(:num)', 'DefenceController::view/$1');
$routes->get('delete/(:num)', 'DefenceController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'DefenceController::toggle/$1/$2');
$routes->post('batchjob', 'DefenceController::batchjob');
$routes->post('batchjob_delete', 'DefenceController::batchjob_delete');
$routes->get('download/(:alpha)', 'DefenceController::download/$1');
});
$routes->group('software', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->get('/', 'SoftwareController::index', []);
$routes->get('create', 'SoftwareController::create_form');
$routes->post('create', 'SoftwareController::create');
$routes->get('modify/(:num)', 'SoftwareController::modify_form/$1');
$routes->post('modify/(:num)', 'SoftwareController::modify/$1');
$routes->get('view/(:num)', 'SoftwareController::view/$1');
$routes->get('delete/(:num)', 'SoftwareController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'SoftwareController::toggle/$1/$2');
$routes->post('batchjob', 'SoftwareController::batchjob');
$routes->post('batchjob_delete', 'SoftwareController::batchjob_delete');
$routes->get('download/(:alpha)', 'SoftwareController::download/$1');
});
$routes->group('server', ['namespace' => 'App\Controllers\Admin\Equipment'], function ($routes) {
$routes->get('/', 'ServerController::index', []);
$routes->get('create', 'ServerController::create_form');
@ -174,6 +122,71 @@ $routes->group('admin', ['namespace' => 'App\Controllers\Admin', 'filter' => 'au
$routes->get('download/(:alpha)', 'ServerController::download/$1');
});
$routes->group('part', ['namespace' => 'App\Controllers\Admin\Equipment\Part'], function ($routes) {
$routes->group('line', ['namespace' => 'App\Controllers\Admin\Equipment\Part'], function ($routes) {
$routes->get('/', 'LineController::index', []);
$routes->get('create', 'LineController::create_form');
$routes->post('create', 'LineController::create');
$routes->get('modify/(:num)', 'LineController::modify_form/$1');
$routes->post('modify/(:num)', 'LineController::modify/$1');
$routes->get('view/(:num)', 'LineController::view/$1');
$routes->get('delete/(:num)', 'LineController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'LineController::toggle/$1/$2');
$routes->post('batchjob', 'LineController::batchjob');
$routes->post('batchjob_delete', 'LineController::batchjob_delete');
$routes->get('download/(:alpha)', 'LineController::download/$1');
});
$routes->group('ip', ['namespace' => 'App\Controllers\Admin\Equipment\Part'], function ($routes) {
$routes->get('/', 'IpController::index', []);
$routes->get('create', 'IpController::create_form');
$routes->post('create', 'IpController::create');
$routes->get('modify/(:num)', 'IpController::modify_form/$1');
$routes->post('modify/(:num)', 'IpController::modify/$1');
$routes->get('view/(:num)', 'IpController::view/$1');
$routes->get('delete/(:num)', 'IpController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'IpController::toggle/$1/$2');
$routes->post('batchjob', 'IpController::batchjob');
$routes->post('batchjob_delete', 'IpController::batchjob_delete');
$routes->get('download/(:alpha)', 'IpController::download/$1');
});
$routes->group('defence', ['namespace' => 'App\Controllers\Admin\Equipment\Part'], function ($routes) {
$routes->get('/', 'DefenceController::index', []);
$routes->get('create', 'DefenceController::create_form');
$routes->post('create', 'DefenceController::create');
$routes->get('modify/(:num)', 'DefenceController::modify_form/$1');
$routes->post('modify/(:num)', 'DefenceController::modify/$1');
$routes->get('view/(:num)', 'DefenceController::view/$1');
$routes->get('delete/(:num)', 'DefenceController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'DefenceController::toggle/$1/$2');
$routes->post('batchjob', 'DefenceController::batchjob');
$routes->post('batchjob_delete', 'DefenceController::batchjob_delete');
$routes->get('download/(:alpha)', 'DefenceController::download/$1');
});
$routes->group('software', ['namespace' => 'App\Controllers\Admin\Equipment\Part'], function ($routes) {
$routes->get('/', 'SoftwareController::index', []);
$routes->get('create', 'SoftwareController::create_form');
$routes->post('create', 'SoftwareController::create');
$routes->get('modify/(:num)', 'SoftwareController::modify_form/$1');
$routes->post('modify/(:num)', 'SoftwareController::modify/$1');
$routes->get('view/(:num)', 'SoftwareController::view/$1');
$routes->get('delete/(:num)', 'SoftwareController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'SoftwareController::toggle/$1/$2');
$routes->post('batchjob', 'SoftwareController::batchjob');
$routes->post('batchjob_delete', 'SoftwareController::batchjob_delete');
$routes->get('download/(:alpha)', 'SoftwareController::download/$1');
});
$routes->group('domain', ['namespace' => 'App\Controllers\Admin\Equipment\Part'], function ($routes) {
$routes->get('/', 'DomainController::index', []);
$routes->get('create', 'DomainController::create_form');
$routes->post('create', 'DomainController::create');
$routes->get('modify/(:num)', 'DomainController::modify_form/$1');
$routes->post('modify/(:num)', 'DomainController::modify/$1');
$routes->get('view/(:num)', 'DomainController::view/$1');
$routes->get('delete/(:num)', 'DomainController::delete/$1');
$routes->get('toggle/(:num)/(:any)', 'DomainController::toggle/$1/$2');
$routes->post('batchjob', 'DomainController::batchjob');
$routes->post('batchjob_delete', 'DomainController::batchjob_delete');
$routes->get('download/(:alpha)', 'DomainController::download/$1');
});
$routes->group('cpu', ['namespace' => 'App\Controllers\Admin\Equipment\Part'], function ($routes) {
$routes->get('/', 'CpuController::index', []);
$routes->get('create', 'CpuController::create_form');

View File

@ -35,4 +35,18 @@ class CpuController extends PartController
return $this->_helper;
}
//Index,FieldForm관련
protected function setOrderByForList()
{
//OrderBy 처리
$this->getService()->getModel()->orderBy('model', 'ASC', false);
parent::setOrderByForList();
}
protected function index_process(): array
{
$fields = [
'fields' => ['model', 'price', 'status'],
];
$this->init('index', $fields);
return parent::index_process();
}
}

View File

@ -35,4 +35,18 @@ class DiskController extends PartController
return $this->_helper;
}
//Index,FieldForm관련
protected function setOrderByForList()
{
//OrderBy 처리
$this->getService()->getModel()->orderBy('model', 'ASC', false);
parent::setOrderByForList();
}
protected function index_process(): array
{
$fields = [
'fields' => ['model', 'price', 'status'],
];
$this->init('index', $fields);
return parent::index_process();
}
}

View File

@ -0,0 +1,54 @@
<?php
namespace App\Controllers\Admin\Equipment\Part;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\Part\DomainHelper;
use App\Services\Equipment\Part\DomainService;
class DomainController extends PartController
{
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
$this->title = lang("{$this->getService()->getClassName()}.title");
$this->class_path .= $this->getService()->getClassName();
$this->uri_path .= strtolower($this->getService()->getClassName('/')) . '/';
// $this->view_path .= strtolower($this->getService()->getClassName()) . DIRECTORY_SEPARATOR;
}
public function getService(): DomainService
{
if (!$this->_service) {
$this->_service = new DomainService($this->request);
}
return $this->_service;
}
public function getHelper(): DomainHelper
{
if (!$this->_helper) {
$this->_helper = new DomainHelper($this->request);
}
return $this->_helper;
}
//Index,FieldForm관련
protected function setOrderByForList()
{
//OrderBy 처리
$this->getService()->getModel()->orderBy('domain', 'ASC', false);
parent::setOrderByForList();
}
protected function index_process(): array
{
$fields = [
'fields' => ['domain', 'price', 'status'],
];
$this->init('index', $fields);
return parent::index_process();
}
}

View File

@ -9,8 +9,11 @@ use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\Part\IpHelper;
use App\Services\Equipment\Part\IpService;
use App\Services\Equipment\Part\LineService;
class IpController extends PartController
{
private ?LineService $_lineService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
@ -34,6 +37,29 @@ class IpController extends PartController
}
return $this->_helper;
}
final public function getLineService(): LineService
{
if (!$this->_lineService) {
$this->_lineService = new LineService($this->request);
}
return $this->_lineService;
}
protected function getFormFieldOption(string $field, array $options): array
{
switch ($field) {
case 'lineinfo_uid':
$temps = [];
foreach ($this->getLineService()->getEntities() as $entity) {
$temps[$entity->getPK()] = $entity->getTitle();
}
$options[$field] = $temps;
break;
default:
$options = parent::getFormFieldOption($field, $options);
break;
}
return $options;
}
//Index,FieldForm관련
protected function setOrderByForList()
{

View File

@ -8,25 +8,38 @@ use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Services\Customer\ClientService;
abstract class PartController extends EquipmentController
{
private ?ClientService $_clientService = null;
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
parent::initController($request, $response, $logger);
}
final public function getClientService(): ClientService
{
if (!$this->_clientService) {
$this->_clientService = new ClientService($this->request);
}
return $this->_clientService;
}
protected function setOrderByForList()
protected function getFormFieldOption(string $field, array $options): array
{
//OrderBy 처리
$this->getService()->getModel()->orderBy('model', 'ASC', false);
parent::setOrderByForList();
switch ($field) {
case 'clientinfo_uid':
$temps = [];
foreach ($this->getClientService()->getEntities() as $entity) {
$temps[$entity->getPK()] = $entity->getTitle();
}
protected function index_process(): array
{
$fields = [
'fields' => ['model', 'price', 'status'],
];
$this->init('index', $fields);
return parent::index_process();
$options[$field] = $temps;
break;
default:
$options = parent::getFormFieldOption($field, $options);
break;
}
return $options;
}
//Index,FieldForm관련
}

View File

@ -35,4 +35,18 @@ class RamController extends PartController
return $this->_helper;
}
//Index,FieldForm관련
protected function setOrderByForList()
{
//OrderBy 처리
$this->getService()->getModel()->orderBy('model', 'ASC', false);
parent::setOrderByForList();
}
protected function index_process(): array
{
$fields = [
'fields' => ['model', 'price', 'status'],
];
$this->init('index', $fields);
return parent::index_process();
}
}

View File

@ -7,7 +7,6 @@ use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Services\Customer\ClientService;
use App\Helpers\Equipment\ServerHelper;
use App\Services\Equipment\ServerService;
use App\Services\Equipment\Link\CpuService;
@ -22,7 +21,6 @@ use App\Services\Equipment\Link\DomainService;
class ServerController extends EquipmentController
{
private ?ClientService $_clientService = null;
private $_adapterService = [];
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
@ -47,13 +45,6 @@ class ServerController extends EquipmentController
}
return $this->_helper;
}
final public function getClientService(): ClientService
{
if (!$this->_clientService) {
$this->_clientService = new ClientService($this->request);
}
return $this->_clientService;
}
final public function getAdapterService(string $key): mixed
{
if (!array_key_exists($key, $this->_adapterService)) {
@ -88,29 +79,6 @@ class ServerController extends EquipmentController
}
return $this->_adapterService[$key];
}
protected function getFormFieldOption(string $field, array $options): array
{
switch ($field) {
case 'clientinfo_uid':
$temps = [];
foreach ($this->getClientService()->getEntities() as $entity) {
$temps[$entity->getPK()] = $entity->getTitle();
}
$options[$field] = $temps;
break;
case 'lineinfo_uid':
$temps = [];
foreach ($this->getLineService()->getEntities() as $entity) {
$temps[$entity->getPK()] = $entity->getTitle();
}
$options[$field] = $temps;
break;
default:
$options = parent::getFormFieldOption($field, $options);
break;
}
return $options;
}
protected function getResultPageByActon(string $action, string $message = MESSAGES["SUCCESS"]): RedirectResponse|string
{
switch ($action) {

View File

@ -8,4 +8,8 @@ class CpuEntity extends PartEntity
{
const PK = CpuModel::PK;
const TITLE = CpuModel::TITLE;
public function getTitle(): string
{
return parent::getTitle() . " [" . number_format($this->attributes['price']) . "원]";
}
}

View File

@ -8,4 +8,8 @@ class DiskEntity extends PartEntity
{
const PK = DiskModel::PK;
const TITLE = DiskModel::TITLE;
public function getTitle(): string
{
return parent::getTitle() . " [" . number_format($this->attributes['price']) . "원]";
}
}

View File

@ -11,8 +11,4 @@ abstract class PartEntity extends EquipmentEntity
{
parent::__construct($data);
}
public function getTitle(): string
{
return parent::getTitle() . " [" . number_format($this->attributes['price']) . "원]";
}
}

View File

@ -8,4 +8,8 @@ class RamEntity extends PartEntity
{
const PK = RamModel::PK;
const TITLE = RamModel::TITLE;
public function getTitle(): string
{
return parent::getTitle() . " [" . number_format($this->attributes['price']) . "원]";
}
}

View File

@ -6,9 +6,9 @@ use App\Entities\Equipment\Part\DomainEntity;
class DomainModel extends PartModel
{
const TABLE = "lineinfo";
const TABLE = "domaininfo";
const PK = "uid";
const TITLE = "title";
const TITLE = "domain";
protected $table = self::TABLE;
protected $primaryKey = self::PK;
protected $returnType = DomainEntity::class;
@ -40,18 +40,4 @@ class DomainModel extends PartModel
}
return $rule;
}
protected function convertEntityData(string $field, array $formDatas, mixed $entity): mixed
{
switch ($field) {
case 'clientinfo_uid':
if (array_key_exists($field, $formDatas) && $formDatas[$field] !== '') {
$entity->$field = $formDatas[$field];
}
break;
default:
$entity = parent::convertEntityData($field, $formDatas, $entity);
break;
}
return $entity;
}
}

View File

@ -25,17 +25,14 @@ class DomainService extends PartService
public function getFields(): array
{
return [
"clientinfo_uid",
"type",
"title",
"bandwith",
"start_at",
"domain",
"price",
"status",
];
}
public function getFilterFields(): array
{
return ["clientinfo_uid", "type", 'status',];
return ['status',];
}
public function getBatchJobFields(): array
{

View File

@ -1,6 +1,6 @@
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
<?= $this->section('content') ?>
<?php if ($error = session('error')): ?><div style="border:1px solid red;"><?= $error ?></div><?php endif ?>
<?php if ($error = session('error')): echo $viewDatas['helper']->alert($error) ?><?php endif ?>
<div id="container" class="content">
<link href="/css/<?= $viewDatas['layout'] ?>/form.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/js/<?= $viewDatas['layout'] ?>/form.js" referrerpolicy="origin"></script>

View File

@ -1,6 +1,6 @@
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
<?= $this->section('content') ?>
<?php if ($error = session('error')): ?><div style="border:1px solid red;"><?= $error ?></div><?php endif ?>
<?php if ($error = session('error')): echo $viewDatas['helper']->alert($error) ?><?php endif ?>
<div class="layout_top"><?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/top'); ?></div>
<!-- Layout Middle Start -->
<table class="layout_middle">

View File

@ -1,6 +1,6 @@
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
<?= $this->section('content') ?>
<?php if ($error = session('error')): ?><div style="border:1px solid red;"><?= $error ?></div><?php endif ?>
<?php if ($error = session('error')): echo $viewDatas['helper']->alert($error) ?><?php endif ?>
<div id="container" class="content">
<link href="/css/<?= $viewDatas['layout'] ?>/form.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/js/<?= $viewDatas['layout'] ?>/form.js" referrerpolicy="origin"></script>

View File

@ -1,6 +1,6 @@
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
<?= $this->section('content') ?>
<?php if ($error = session('error')): ?><div style="border:1px solid red;"><?= $error ?></div><?php endif ?>
<?php if ($error = session('error')): echo $viewDatas['helper']->alert($error) ?><?php endif ?>
<!-- Layout Right Start -->
<div id="container" class="layout_content">
<link href="/css/<?= $viewDatas['layout'] ?>/index.css" media="screen" rel="stylesheet" type="text/css" />

View File

@ -1,6 +1,6 @@
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
<?= $this->section('content') ?>
<?php if ($error = session('error')): ?><div style="border:1px solid red;"><?= $error ?></div><?php endif ?>
<?php if ($error = session('error')): echo $viewDatas['helper']->alert($error) ?><?php endif ?>
<div class="layout_top"><?= $this->include(LAYOUTS[$viewDatas['layout']]['path'] . '/top'); ?></div>
<!-- Layout Middle Start -->
<table class="layout_middle">

View File

@ -1,6 +1,6 @@
<?= $this->extend(LAYOUTS[$viewDatas['layout']]['path']) ?>
<?= $this->section('content') ?>
<?php if ($error = session('error')): ?><div style="border:1px solid red;"><?= $error ?></div><?php endif ?>
<?php if ($error = session('error')): echo $viewDatas['helper']->alert($error) ?><?php endif ?>
<div id="container" class="content">
<link href="/css/<?= $viewDatas['layout'] ?>/form.css" media="screen" rel="stylesheet" type="text/css" />
<div class="action_form">

View File

@ -6,19 +6,19 @@
</h2>
<div id="flush-equipment" class="accordion-collapse collapse" aria-labelledby="flush-equipment">
<div class="accordion-item">
<a href="/admin/equipment/line"><?= ICONS['BOX'] ?>회선정보</a>
<a href="/admin/equipment/part/line"><?= ICONS['BOX'] ?>회선정보</a>
</div>
<div class="accordion-item">
<a href="/admin/equipment/ip"><?= ICONS['DESKTOP'] ?>IP정보</a>
<a href="/admin/equipment/part/ip"><?= ICONS['DESKTOP'] ?>IP정보</a>
</div>
<div class="accordion-item">
<a href="/admin/equipment/defence"><?= ICONS['SETUP'] ?>방어정보</a>
<a href="/admin/equipment/part/defence"><?= ICONS['SETUP'] ?>방어정보</a>
</div>
<div class="accordion-item">
<a href="/admin/equipment/software"><?= ICONS['FLAG'] ?>Software정보</a>
<a href="/admin/equipment/part/software"><?= ICONS['FLAG'] ?>Software정보</a>
</div>
<div class="accordion-item">
<a href="/admin/equipment/server"><?= ICONS['DESKTOP'] ?>Server정보</a>
<a href="/admin/equipment/part/domain"><?= ICONS['FLAG'] ?>도메인정보</a>
</div>
<div class="accordion-item">
<a href="/admin/equipment/part/cpu"><?= ICONS['SETUP'] ?>CPU정보</a>
@ -29,4 +29,7 @@
<div class="accordion-item">
<a href="/admin/equipment/part/disk"><?= ICONS['SETUP'] ?>DISK정보</a>
</div>
<div class="accordion-item">
<a href="/admin/equipment/server"><?= ICONS['DESKTOP'] ?>Server정보</a>
</div>
</div>