dbmsv2 init...1

This commit is contained in:
choi.jh 2025-08-22 11:00:49 +09:00
parent 3f56a6235f
commit 7849b10ed6
20 changed files with 563 additions and 224 deletions

View File

@ -130,23 +130,26 @@ abstract class CommonController extends BaseController
return array_key_exists($field, $this->_control['default_values']) ? $this->_control['default_values'][$field] : null;
}
final protected function initAction(string $action, $formFields = []): void
final protected function initAction(string $action, $actionFields = []): void
{ //각 Field 초기화
$this->setAction($action);
switch ($action) {
case 'view':
$fields = $this->_control['view_fields'] = array_key_exists('fields', $formFields) ? $formFields['fields'] : $this->getService()->getViewFields()['fields'] ?? [];
$filters = $this->_control['filter_fields'] = array_key_exists('filters', $formFields) ? $formFields['filters'] : $this->getService()->getViewFields()['filters'] ?? [];
$actionFields = array_key_exists('view_fields', $actionFields) ? $actionFields : $this->getService()->getViewFields();
$fields = $this->_control['view_fields'] = $actionFields['fields'] ?? [];
$filters = $this->_control['filter_fields'] = $actionFields['filters'] ?? [];
break;
case 'index':
$fields = $this->_control['index_fields'] = array_key_exists('fields', $formFields) ? $formFields['fields'] : $this->getService()->getIndexFields()['fields'] ?? [];
$filters = $this->_control['filter_fields'] = array_key_exists('filters', $formFields) ? $formFields['filters'] : $this->getService()->getIndexFields()['filters'] ?? [];
$this->_control['batchjob_fields'] = array_key_exists('batchjobFields', $formFields) ? $formFields['batchjobFields'] : $this->getService()->getIndexFields()['batchjob_fields'] ?? [];
$this->_control['batchjob_buttions'] = array_key_exists('batchjobButtions', $formFields) ? $formFields['batchjobFields'] : $this->getService()->getIndexFields()['batchjob_buttions'] ?? [];
$actionFields = array_key_exists('index_fields', $actionFields) ? $actionFields : $this->getService()->getIndexFields();
$fields = $this->_control['index_fields'] = $actionFields['fields'] ?? [];
$filters = $this->_control['filter_fields'] = $actionFields['filters'] ?? [];
$this->_control['batchjob_fields'] = $actionFields['batchjob_fields'] ?? [];
$this->_control['batchjob_buttions'] = $actionFields['batchjob_buttions'] ?? [];
break;
default:
$fields = $this->_control['form_fields'] = array_key_exists('fields', $formFields) ? $formFields['fields'] : $this->getService()->getFormFields()['fields'] ?? [];
$filters = $this->_control['filter_fields'] = array_key_exists('filters', $formFields) ? $formFields['filters'] : $this->getService()->getFormFields()['filters'] ?? [];
$actionFields = array_key_exists('form_fields', $actionFields) ? $actionFields : $this->getService()->getFormFields();
$fields = $this->_control['form_fields'] = $actionFields['fields'] ?? [];
$filters = $this->_control['filter_fields'] = $actionFields['filters'] ?? [];
break;
}
$this->_control['field_rules'] = [];

View File

@ -6,14 +6,20 @@ return [
'clientinfo_uid' => "고객명",
'bank' => "은행",
'title' => "제목",
'alias' => "/출금자명",
'alias' => "출금자명",
'amount' => "금액",
'status' => "상태",
'issue_at' => "수정",
'issue_at' => "입출금",
'updated_at' => "수정일",
'created_at' => "작성일",
'deleted_at' => "삭제일",
],
"BANK" => [
'국민은행' => "국민은행",
"하나은행" => "하나은행",
"신한은행" => "신한은행",
"농협" => "농협",
],
"STATUS" => [
'deposit' => "입금",
"withdrawal" => "출금",

View File

@ -4,7 +4,7 @@ return [
'label' => [
'clientinfo_uid' => "고객명",
'title' => "제목",
'amount' => "갯수",
'cnt' => "갯수",
'status' => "추가/사용",
'updated_at' => "수정일",
'created_at' => "작성일",

View File

@ -15,8 +15,24 @@ class LocalService extends AuthService
public function getFormFields(): array
{
return [
"id",
"passwd",
'fields' => [
"id",
"passwd",
],
'filters' => [],
];
}
public function getIndexFields(): array
{
return [
'fields' => [
"id",
"passwd",
"status",
],
'filters' => [],
'batchjob_fields' => ['status'],
'batchjob_buttions' => []
];
}

View File

@ -16,21 +16,11 @@ abstract class CommonService
$this->_model = $model;
}
abstract public function getFormFields(): array;
abstract public function getIndexFields(): array;
public function getViewFields(): array
{
return $this->getFormFields();
}
public function getIndexFields(): array
{
return $this->getFormFields();
}
public function getBatchJobButtons(): array
{
return [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
];
}
//기본 기능부분
final public function __get($name)
{
@ -126,14 +116,18 @@ abstract class CommonService
{
switch ($field) {
default:
$formOptionDatas = lang($this->getClassName() . '.' . strtoupper($field));
if (!is_array($formOptionDatas)) {
throw new \Exception(__FUNCTION__ . "에서 {$field}}의 formOptionDatas 값이 array가 아닙니다.\n" . var_export($formOptionDatas, true));
}
$options = [];
foreach (lang($this->getClassName() . '.' . strtoupper($field)) as $key => $value) {
foreach ($formOptionDatas as $key => $value) {
$options[$key] = new FormOptionEntity(['uid' => $key, 'title' => $value]);
}
break;
}
if (!is_array($options)) {
throw new \Exception(__FUNCTION__ . "에서 field의 options 값이 array가 아닙니다.\n" . var_export($options, true));
throw new \Exception(__FUNCTION__ . "에서 {$field}의 options 값이 array가 아닙니다.\n" . var_export($options, true));
}
return $options;
}

View File

@ -16,22 +16,45 @@ class AccountService extends CustomerService
public function getFormFields(): array
{
return [
"clientinfo_uid",
"bank",
"title",
"alias",
"issue_at",
"amount",
"status",
'fields' => [
"clientinfo_uid",
"bank",
"title",
"alias",
"issue_at",
"amount",
"status",
],
'filters' => [
"clientinfo_uid",
"bank",
"status",
],
];
}
public function getFilterFields(): array
public function getIndexFields(): array
{
return ["clientinfo_uid", 'status'];
}
public function getBatchJobFields(): array
{
return ['status'];
return [
'fields' => [
"clientinfo_uid",
"bank",
"title",
"alias",
"issue_at",
"amount",
"status",
],
'filters' => [
"clientinfo_uid",
"bank",
"status",
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본 기능부분

View File

@ -14,19 +14,52 @@ class ClientService extends CustomerService
}
public function getFormFields(): array
{
return ['site', 'name', 'email', 'phone', 'role'];
}
public function getFilterFields(): array
{
return ['site', 'role', 'status'];
}
public function getBatchJobFields(): array
{
return ['site', 'role', 'status'];
return [
'fields' => [
'site',
'name',
'email',
'phone',
'role',
],
'filters' => [
'site',
'role',
'status',
],
];
}
public function getIndexFields(): array
{
return ['site', 'name', 'email', 'phone', 'role', 'account_balance', 'coupon_balance', 'point_balance', 'status', 'created_at', 'updated_at'];
return [
'fields' => [
'site',
'name',
'email',
'phone',
'role',
'account_balance',
'coupon_balance',
'point_balance',
'status',
'created_at',
'updated_at',
],
'filters' => [
'site',
'role',
'status',
],
'batchjob_fields' => [
'site',
'role',
'status',
],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본 기능부분

View File

@ -16,19 +16,37 @@ class CouponService extends CustomerService
public function getFormFields(): array
{
return [
"clientinfo_uid",
"title",
"cnt",
"status",
'fields' => [
"clientinfo_uid",
"title",
"cnt",
"status",
],
'filters' => [
"clientinfo_uid",
"status",
],
];
}
public function getFilterFields(): array
public function getIndexFields(): array
{
return ["clientinfo_uid", 'status'];
}
public function getBatchJobFields(): array
{
return ['status'];
return [
'fields' => [
"clientinfo_uid",
"title",
"cnt",
"status",
],
'filters' => [
"clientinfo_uid",
"status",
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본 기능부분

View File

@ -25,32 +25,50 @@ class PaymentService extends CustomerService
public function getFormFields(): array
{
return [
"clientinfo_uid",
"serviceinfo_uid",
"title",
"amount",
"billing_method",
"billing_at",
"pay_method",
"status"
'fields' => [
"clientinfo_uid",
"serviceinfo_uid",
"title",
"amount",
"billing_method",
"billing_at",
"pay_method",
"status"
],
'filters' => [
'clientinfo_uid',
'billing_method',
'pay_method',
'status',
'user_uid'
],
];
}
public function getFilterFields(): array
{
return ['clientinfo_uid', 'billing_method', 'pay_method', 'status', 'user_uid'];
}
public function getBatchJobFields(): array
{
return ['clientinfo_uid', 'billing_method', 'pay_method', 'status'];
}
public function getIndexFields(): array
{
return ['clientinfo_uid', 'billing_method', 'title', 'amount', 'billing_at', 'pay_method', 'status', 'countdown', 'user_uid'];
}
public function getBatchJobButtons(): array
{
return [
'invoice' => '청구서 발행',
'fields' => [
'clientinfo_uid',
'billing_method',
'title',
'amount',
'billing_at',
'pay_method',
'status',
'countdown',
'user_uid'
],
'filters' => [
'clientinfo_uid',
'billing_method',
'pay_method',
'status',
'user_uid'
],
'batchjob_fields' => ['clientinfo_uid', 'billing_method', 'pay_method', 'status'],
'batchjob_buttions' => [
'invoice' => '청구서 발행',
],
];
}
//기본 기능부분

View File

@ -16,19 +16,37 @@ class PointService extends CustomerService
public function getFormFields(): array
{
return [
"clientinfo_uid",
"title",
"amount",
"status",
'fields' => [
"clientinfo_uid",
"title",
"amount",
"status",
],
'filters' => [
"clientinfo_uid",
"status",
],
];
}
public function getFilterFields(): array
public function getIndexFields(): array
{
return ["clientinfo_uid", 'status'];
}
public function getBatchJobFields(): array
{
return ['status'];
return [
'fields' => [
"clientinfo_uid",
"title",
"amount",
"status",
],
'filters' => [
"clientinfo_uid",
"status",
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본 기능부분

View File

@ -17,31 +17,62 @@ class ServiceService extends CustomerService
public function getFormFields(): array
{
return [
"clientinfo_uid",
"type",
"location",
"serverinfo_uid",
"billing_at",
"amount",
"start_at",
"end_at",
"history",
"status",
'fields' => [
"clientinfo_uid",
"type",
"location",
"serverinfo_uid",
"billing_at",
"amount",
"start_at",
"end_at",
"history",
"status",
],
'filters' => [
'site',
'clientinfo_uid',
'serverinfo_uid',
'type',
'location',
'status'
],
];
}
public function getFilterFields(): array
{
return ['site', 'clientinfo_uid', 'serverinfo_uid', 'type', 'location', 'status'];
}
public function getBatchJobFields(): array
{
return ['site', 'clientinfo_uid', 'status'];
}
public function getIndexFields(): array
{
return ['site', 'clientinfo_uid', 'type', 'location', 'serverinfo_uid', 'billing_at', 'amount', 'start_at', 'end_at', 'updated_at', 'status', 'user_uid'];
return [
'fields' => [
'site',
'clientinfo_uid',
'type',
'location',
'serverinfo_uid',
'billing_at',
'amount',
'start_at',
'end_at',
'updated_at',
'status',
'user_uid'
],
'filters' => [
'site',
'clientinfo_uid',
'serverinfo_uid',
'type',
'location',
'status'
],
'batchjob_fields' => ['site', 'clientinfo_uid', 'status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//Entity의 관련객체정의용
//기본 기능부분
//검색용
public function setSearchIp(string $ip): void
{
$this->_searchIP = $ip;

View File

@ -15,27 +15,50 @@ class CSService extends EquipmentService
public function getFormFields(): array
{
return [
"serverinfo_uid",
"type",
"ip",
"accountid",
"domain",
"price",
"status",
'fields' => [
"serverinfo_uid",
"type",
"ip",
"accountid",
"domain",
"price",
"status",
],
'filters' => [
"clientinfo_uid",
'serverinfo_uid',
'type',
'status'
],
];
}
public function getFilterFields(): array
{
return ["clientinfo_uid", 'serverinfo_uid', 'type', 'status'];
}
public function getBatchJobFields(): array
{
return ["type", 'status'];
}
public function getIndexFields(): array
{
return ["clientinfo_uid", 'serverinfo_uid', 'type', 'ip', 'accountid', 'domain', 'price', 'status'];
return [
'fields' => [
"clientinfo_uid",
'serverinfo_uid',
'type',
'ip',
'accountid',
'domain',
'price',
'status'
],
'filters' => [
"clientinfo_uid",
'serverinfo_uid',
'type',
'status'
],
'batchjob_fields' => ["type", 'status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본 기능부분
//List 검색용
//OrderBy 처리
public function setOrderBy(mixed $field = null, mixed $value = null): void

View File

@ -19,24 +19,48 @@ class IPService extends EquipmentService
public function getFormFields(): array
{
return [
"lineinfo_uid",
"serverinfo_uid",
"ip",
"price",
"status",
'fields' => [
"lineinfo_uid",
"serverinfo_uid",
"ip",
"price",
"status",
],
'filters' => [
'old_clientinfo_uid',
'clientinfo_uid',
'serverinfo_uid',
"lineinfo_uid",
'status'
],
];
}
public function getFilterFields(): array
{
return ['old_clientinfo_uid', 'clientinfo_uid', 'serverinfo_uid', "lineinfo_uid", 'status'];
}
public function getBatchJobFields(): array
{
return ['status'];
}
public function getIndexFields(): array
{
return ['lineinfo_uid', 'ip', 'price', 'amount', 'status', 'clientinfo_uid', 'serverinfo_uid', 'old_clientinfo_uid'];
return [
'fields' => [
'lineinfo_uid',
'ip',
'price',
'amount',
'status',
'clientinfo_uid',
'serverinfo_uid',
'old_clientinfo_uid'
],
'filters' => [
'old_clientinfo_uid',
'clientinfo_uid',
'serverinfo_uid',
"lineinfo_uid",
'status'
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
final public function getLineService(): LineService
{

View File

@ -14,24 +14,41 @@ class LineService extends EquipmentService
public function getFormFields(): array
{
return [
"type",
"title",
"bandwith",
"start_at",
"end_at",
"status",
'fields' => [
"type",
"title",
"bandwith",
"start_at",
"end_at",
"status",
],
'filters' => [
"type",
'status',
],
];
}
public function getFilterFields(): array
{
return ["type", 'status',];
}
public function getBatchJobFields(): array
{
return ['status'];
}
public function getIndexFields(): array
{
return ['type', 'title', 'bandwith', "start_at", "end_at", 'status'];
return [
'fields' => [
'type',
'title',
'bandwith',
"start_at",
"end_at",
'status'
],
'filters' => [
"type",
'status',
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
],
];
}
//기본 기능부분}
}

View File

@ -14,23 +14,38 @@ class PartService extends EquipmentService
public function getFormFields(): array
{
return [
"type",
"title",
"price",
"status",
'fields' => [
"type",
"title",
"price",
"status",
],
'filters' => [
"type",
'status',
],
];
}
public function getFilterFields(): array
{
return ["type", 'status',];
}
public function getBatchJobFields(): array
{
return ['status'];
}
public function getIndexFields(): array
{
return ['type', 'title', 'price', 'status', 'created_at'];
return [
'fields' => [
'type',
'title',
'price',
'status',
'created_at'
],
'filters' => [
"type",
'status',
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본 기능부분
//FieldForm관련용

View File

@ -61,6 +61,10 @@ class ServerService extends EquipmentService
],
'filters' => ['clientinfo_uid', 'serviceinfo_uid', 'type', 'status'],
'batchjob_fields' => ['clientinfo_uid', 'type', 'status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
final public function getPartService(): PartService

View File

@ -16,24 +16,43 @@ class SwitchService extends EquipmentService
public function getFormFields(): array
{
return [
"serverinfo_uid",
"code",
"status",
'fields' => [
"serverinfo_uid",
"code",
"status",
],
'filters' => [
'clientinfo_uid',
'serviceinfo_uid',
'serverinfo_uid',
'status'
],
];
}
public function getFilterFields(): array
{
return ['clientinfo_uid', 'serviceinfo_uid', 'serverinfo_uid', 'status'];
}
public function getBatchJobFields(): array
{
return ['clientinfo_uid', 'serverinfo_uid', 'status'];
}
public function getIndexFields(): array
{
return ['code', 'status', 'clientinfo_uid', 'serviceinfo_uid', 'serverinfo_uid'];
return [
'fields' => [
'code',
'status',
'clientinfo_uid',
'serviceinfo_uid',
'serverinfo_uid'
],
'filters' => [
'clientinfo_uid',
'serviceinfo_uid',
'serverinfo_uid',
'status'
],
'batchjob_fields' => ['clientinfo_uid', 'serverinfo_uid', 'status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본기능
//기본 기능부분
//FieldForm관련용
//상태변경
public function setStatus(string $code, string $status): SwitchEntity

View File

@ -17,24 +17,38 @@ class MyLogService extends CommonService
}
public function getFormFields(): array
{
return [
"user_uid",
"title",
"content",
"status",
return [
'fields' => [
"user_uid",
"title",
"content",
"status",
],
'filters' => [
'user_uid',
'status'
],
];
}
public function getFilterFields(): array
{
return ['user_uid', 'status'];
}
public function getBatchJobFields(): array
{
return ['status'];
}
public function getIndexFields(): array
{
return ['user_uid', 'title', 'status', 'created_at'];
return [
'fields' => [
'user_uid',
'title',
'status',
'created_at'
],
'filters' => [
'user_uid',
'status'
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
public function getUserService(): UserService
{
@ -43,7 +57,7 @@ class MyLogService extends CommonService
}
return $this->_userService;
}
//기본기능
//기본 기능부분
//FieldForm관련용
public function getFormFieldOption(string $field, array $options = []): array
{

View File

@ -16,21 +16,45 @@ class UserSNSService extends CommonService
public function getFormFields(): array
{
return [
"site",
"user_uid",
"id",
"name",
"email",
"detail",
"status",
'fields' => [
"site",
"user_uid",
"id",
"name",
"email",
"detail",
"status",
],
'filters' => [
"site",
"user_uid",
"status",
],
];
}
public function getFilterFields(): array
public function getIndexFields(): array
{
return [];
}
public function getBatchJobFields(): array
{
return [];
return [
'fields' => [
"site",
"user_uid",
"id",
"name",
"email",
"detail",
"status",
],
'filters' => [
"site",
"user_uid",
"status",
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본 기능부분
}

View File

@ -14,24 +14,63 @@ class UserService extends CommonService
}
public function getFormFields(): array
{
return ['id', 'passwd', 'confirmpassword', 'name', 'email', 'mobile', 'role'];
}
public function getFilterFields(): array
{
return ['role', 'status'];
}
public function getBatchJobFields(): array
{
return ['status'];
}
public function getIndexFields(): array
{
return ['id', 'name', 'email', 'mobile', 'role', 'status'];
return [
'fields' => [
'id',
'passwd',
'confirmpassword',
'name',
'email',
'mobile',
'role'
],
'filters' => [
'role',
'status'
],
];
}
public function getViewFields(): array
{
return ['id', 'name', 'email', 'mobile', 'role', 'status'];
return [
'fields' => [
'id',
'name',
'email',
'mobile',
'role',
'status'
],
'filters' => [
'role',
'status'
],
];
}
public function getIndexFields(): array
{
return [
'fields' => [
'id',
'name',
'email',
'mobile',
'role',
'status'
],
'filters' => [
'role',
'status'
],
'batchjob_fields' => ['status'],
'batchjob_buttions' => [
'batchjob' => '일괄 처리',
'batchjob_delete' => '일괄 삭제',
]
];
}
//기본 기능부분
public function create(array $formDatas): UserEntity
{
$formDatas['role'] = implode(DEFAULTS["DELIMITER_ROLE"], $formDatas['role']);