dbmsv2 init...1

This commit is contained in:
choi.jh 2025-08-26 14:49:17 +09:00
parent dec5d81824
commit c3740990ef
6 changed files with 56 additions and 66 deletions

View File

@ -2,10 +2,11 @@
namespace App\Controllers\Admin\Customer;
use App\Entities\Customer\ClientEntity;
use App\Helpers\Customer\ClientHelper;
use App\Services\Customer\ClientService;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use CodeIgniter\Validation\Validation;
use Psr\Log\LoggerInterface;
@ -37,27 +38,28 @@ class ClientController extends CustomerController
}
//Index,FieldForm관련
//생성관련
protected function create_process(array $formDatas): void
protected function create_process(array $formDatas): ClientEntity
{
// 관리자 UID는 현재 인증된 사용자로 설정
$formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
parent::create_process($formDatas);
$entity = parent::create_process($formDatas);
// 생성 후, Client 코드값 재정의
$format = env("Client.Prefix.{$formDatas['site']}.code.format", false);
if (!$format) {
throw new \Exception(__METHOD__ . "에서 code의 prefix가 정의되지 않았습니다.");
}
$this->getService()->modify(
$this->entity,
['code' => sprintf($format, (int) $this->entity->getPK() + 1000)]
$entity,
['code' => sprintf($format, (int) $entity->getPK() + 1000)]
);
return $entity;
}
//수정관련
protected function modify_process(mixed $entity, array $formDatas): void
protected function modify_process(mixed $entity, array $formDatas): ClientEntity
{
// 관리자 UID는 현재 인증된 사용자로 설정
$formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
parent::modify_process($entity, $formDatas);
return parent::modify_process($entity, $formDatas);
}
protected function doValidation_process(Validation $validation, string $field, string $rule): Validation
{

View File

@ -138,7 +138,8 @@ class PaymentController extends CustomerController
try {
//각 Field 초기화
$this->setAction(__FUNCTION__);
$this->initAction();
//각 Field 초기화
$this->initAction($this->getService()->getFormFields());
$this->invoice_process();
return $this->getResultSuccess();
} catch (\Exception $e) {

View File

@ -2,14 +2,15 @@
namespace App\Controllers\Admin\Equipment;
use App\Entities\Equipment\LineEntity;
use App\Helpers\Equipment\LineHelper;
use App\Services\Equipment\IPService;
use App\Services\Equipment\LineService;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use App\Helpers\Equipment\LineHelper;
use App\Services\Equipment\LineService;
use App\Services\Equipment\IPService;
class LineController extends EquipmentController
{
private ?IpService $_ipService = null;
@ -46,17 +47,18 @@ class LineController extends EquipmentController
//Index,FieldForm관련
//생성
protected function create_process(array $formDatas): void
protected function create_process(array $formDatas): LineEntity
{
//Line 등록
if (!$this->getHelper()->isValidCIDR($formDatas['bandwith'])) {
throw new \Exception("{$formDatas['bandwith']}는 CIDR 형식에 부합되지 않습니다.");
}
//부모처리
parent::create_process($formDatas);
$entity = parent::create_process($formDatas);
//Prefixed IP to array 자동 등록
foreach ($this->getHelper()->cidrToIpRange($formDatas['bandwith']) as $ip) {
$this->getIPService()->createByLineInfo($this->entity, $ip);
$this->getIPService()->createByLineInfo($entity, $ip);
}
return $entity;
}
}

View File

@ -70,7 +70,8 @@ class Home extends AdminController
{
//각 Field 초기화
$this->setAction(__FUNCTION__);
$this->initAction();
//각 Field 초기화
$this->initAction($this->getService()->getIndexFields());
//Total 서버 현황
$this->totalCounts = $this->getService()->getTotalCountsByType();
//interval을 기준으로 최근 신규 서비스정보 가져오기

View File

@ -95,10 +95,13 @@ abstract class CommonController extends BaseController
}
return $this->_control['action'];
}
final protected function initAction(array $actionFields = []): void
final protected function initAction(array $actionFields): void
{
//action Fields정의용
$this->initAction_process(actionFields: $actionFields);
//Fields 정의
$this->setControlDatas('actionFields', array_key_exists('fields', $actionFields) ? $actionFields['fields'] : []);
//Filters 정의
$this->setControlDatas('actionFilters', array_key_exists('filters', $actionFields) ? $actionFields['filters'] : []);
//Field Rule정의
$temps = [];
foreach ($this->getControlDatas('actionFields') as $field) {
$temps[$field] = $this->getFormFieldRule_process($this->getAction(), $field);
@ -113,10 +116,12 @@ abstract class CommonController extends BaseController
}
}
$this->setControlDatas('filter_optons', $temps);
//일괄작업용 Fields정의
$this->setControlDatas(
'batchjob_fields',
array_key_exists('batchjob_fields', $actionFields) ? $actionFields['batchjob_fields'] : $this->getService()->getBatchjobFields()
);
//일괄작업용 버튼정의
$this->setControlDatas(
'batchjob_buttions',
array_key_exists('batchjob_buttions', $actionFields) ? $actionFields['batchjob_buttions'] : $this->getService()->getBatchjobButtons()
@ -166,7 +171,7 @@ abstract class CommonController extends BaseController
//각 Field 초기화
$this->setAction(__FUNCTION__);
//각 Field 초기화
$this->initAction();
$this->initAction($this->getService()->getFormFields());
$this->create_form_process();
//actionFilters에 해당하는 값이 있을 경우 정의
helper(['form']);
@ -183,7 +188,7 @@ abstract class CommonController extends BaseController
//각 Field 초기화
$this->setAction(__FUNCTION__);
//각 Field 초기화
$this->initAction();
$this->initAction($this->getService()->getFormFields());
//전달값받기
$formDatas = $this->getFormDatas($this->getControlDatas('actionFields'), $this->request->getPost());
$formDatas = $this->create_validate_process($formDatas);
@ -201,13 +206,13 @@ abstract class CommonController extends BaseController
try {
//각 Field 초기화
$this->setAction(__FUNCTION__);
//각 Field 초기화
$this->initAction($this->getService()->getFormFields());
//기존 Entity 가져오기
$entity = $this->getService()->getEntity($uid);
if (!$entity) {
throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다.");
}
//각 Field 초기화
$this->initAction();
$this->entity = $this->modify_form_process($entity);
helper(['form']);
$this->forms = ['attributes' => ['method' => "post",], 'hiddens' => []];
@ -221,15 +226,15 @@ abstract class CommonController extends BaseController
//Transaction Start
$this->_db->transStart();
try {
//Action 정의
//각 Field 초기화
$this->setAction(__FUNCTION__);
//각 Field 초기화
$this->initAction($this->getService()->getFormFields());
//기존 Entity 가져오기
$entity = $this->getService()->getEntity($uid);
if (!$entity) {
throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다.");
}
//각 Field 초기화
$this->initAction();
//전달값받기
$formDatas = $this->getFormDatas($this->getControlDatas('actionFields'), $this->request->getPost());
$formDatas = $this->modify_validate_process($formDatas);
@ -247,14 +252,15 @@ abstract class CommonController extends BaseController
//Transaction Start
$this->_db->transStart();
try {
//각 Field 초기화
$this->setAction(__FUNCTION__);
//각 Field 초기화:조건항목 Field는 한개만 존재하므로 Field와 Rule을 정의
$this->initAction(['fields' => [$field], 'filters' => [$field]]);
//기존 Entity 가져오기
$entity = $this->getService()->getEntity($uid);
if (!$entity) {
throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다.");
}
//각 Field 초기화:조건항목 Field는 한개만 존재하므로 Field와 Rule을 정의
$this->initAction(['fields' => [$field], 'filters' => [$field]]);
//전달값받기
$formDatas = $this->getFormDatas($this->getControlDatas('actionFields'), $this->request->getVar());
$formDatas = $this->toggle_validate_process($formDatas);
@ -274,10 +280,8 @@ abstract class CommonController extends BaseController
$selectedFields = [];
//getBatchJobFields를 이용해서 선택된 Field 와 값정의
$formDatas = [];
foreach ($this->getControlDatas('batchjob_fields') as $field) {
foreach ($this->getService()->getBatchjobFields() as $field) {
$value = $this->request->getPost($field);
echo "TEST:" . $value;
exit;
if ($value) {
$selectedFields[] = $field;
$formDatas[$field] = $value;
@ -298,11 +302,11 @@ abstract class CommonController extends BaseController
//Transaction Start
$this->_db->transStart();
try {
//Action 정의
//각 Field 초기화
$this->setAction(__FUNCTION__);
list($selectedFields, $formDatas, $uids) = $this->batchjob_pre_process();
//각 Field 초기화: 일괄작업은 선택된 조건항목 Field만 존재하므로 Field와 Rule을 정의
$this->initAction(['fields' => [$selectedFields], 'filters' => [$selectedFields]]);
//각 Field 초기화:조건항목 Field와 Rule을 정의
$this->initAction(['fields' => $selectedFields, 'filters' => $selectedFields]);
//전달값받기
$formDatas = $this->getFormDatas($this->getControlDatas('actionFields'), $this->request->getPost());
$formDatas = $this->batchjob_validate_process($formDatas);
@ -379,14 +383,15 @@ abstract class CommonController extends BaseController
{
try {
//Action 정의
//각 Field 초기화
$this->setAction(__FUNCTION__);
//각 Field 초기화
$this->initAction($this->getService()->getViewFields());
//기존 Entity 가져오기
$entity = $this->getService()->getEntity($uid);
if (!$entity) {
throw new \Exception("{$uid}에 대한 정보를 찾을수 없습니다.");
}
//각 Field 초기화
$this->initAction();
$this->entity = $this->view_process($entity);
helper(['form']);
$this->forms = ['attributes' => ['method' => "post",], 'hiddens' => []];
@ -417,10 +422,10 @@ abstract class CommonController extends BaseController
final public function download(string $output_type, mixed $uid = false): DownloadResponse|RedirectResponse|string
{
try {
//Action 정의
//각 Field 초기화
$this->setAction(__FUNCTION__);
//각 Field 초기화
$this->initAction();
$this->initAction($this->getService()->getIndexFields());
//URL처리
// $this->uri = $this->request->getUri();
switch ($output_type) {
@ -456,27 +461,6 @@ abstract class CommonController extends BaseController
//공통 기본 기능
//추가 개별 처리 기능
//action Fields정의용
protected function initAction_process(array $actionFields = []): void
{
switch ($this->getAction()) {
case 'view':
$temps = is_array($actionFields) && array_key_exists('fields', $actionFields) ? $actionFields : $this->getService()->getViewFields();
$this->setControlDatas('actionFields', is_array($temps) && array_key_exists('fields', $temps) ? $temps['fields'] : []);
$this->setControlDatas('actionFilters', is_array($temps) && array_key_exists('filters', $temps) ? $temps['filters'] : []);
break;
case 'index':
$temps = is_array($actionFields) && array_key_exists('fields', $actionFields) ? $actionFields : $this->getService()->getIndexFields();
$this->setControlDatas('actionFields', is_array($temps) && array_key_exists('fields', $temps) ? $temps['fields'] : []);
$this->setControlDatas('actionFilters', is_array($temps) && array_key_exists('filters', $temps) ? $temps['filters'] : []);
break;
default:
$temps = is_array($actionFields) && array_key_exists('fields', $actionFields) ? $actionFields : $this->getService()->getFormFields();
$this->setControlDatas('actionFields', is_array($temps) && array_key_exists('fields', $temps) ? $temps['fields'] : []);
$this->setControlDatas('actionFilters', is_array($temps) && array_key_exists('filters', $temps) ? $temps['filters'] : []);
break;
}
}
//FieldForm관련용
protected function getFormFieldOption_process(string $field, array $options = []): array
{
@ -690,10 +674,10 @@ abstract class CommonController extends BaseController
public function index(): RedirectResponse|string
{
try {
//Action 정의
//각 Field 초기화
$this->setAction(__FUNCTION__);
//각 Field 초기화
$this->initAction();
$this->initAction($this->getService()->getIndexFields());
helper(['form']);
//Return Url정의
$this->getMyAuth()->pushCurrentUrl($this->request->getUri()->getPath() . ($this->request->getUri()->getQuery() ? "?" . $this->request->getUri()->getQuery() : ""));

File diff suppressed because one or more lines are too long