dbms_init...1

This commit is contained in:
choi.jh 2025-07-08 11:39:49 +09:00
parent 2f99e33763
commit 4f5bc4ca0d
20 changed files with 123 additions and 120 deletions

View File

@ -67,22 +67,6 @@ class ServiceController extends CustomerController
return $result;
}
//Index,FieldForm관련
//추가관련
protected function create_process(array $formDatas): void
{
//수정자 정보 자동추가용
$formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
//부모처리
parent::create_process($formDatas);
}
//수정관련
protected function modify_process(mixed $entity, array $formDatas): void
{
//수정자 정보 자동추가용
$formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
//부모처리
parent::modify_process($entity, $formDatas);
}
//View 관련
protected function view_process(mixed $entity): void
{

View File

@ -78,22 +78,6 @@ class ServicePaymentController extends CustomerController
return $result;
}
//Index,FieldForm관련
//추가관련
protected function create_process(array $formDatas): void
{
//수정자 정보 자동추가용
$formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
//부모처리
parent::create_process($formDatas);
}
//수정관련
protected function modify_process(mixed $entity, array $formDatas): void
{
//수정자 정보 자동추가용
$formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
//부모처리
parent::modify_process($entity, $formDatas);
}
//View 관련
protected function view_process(mixed $entity): void
{

View File

@ -53,7 +53,9 @@ class Payment extends BaseController
foreach ($this->getServiceItemService()->getEntities(['serviceinfo_uid' => $serviceEntity->getPK()]) as $itemEntity) {
//결제정보 ServicePaymentService에 월별 결제만 신규등록
if ($itemEntity->getBillingCycle() == "month") {
$this->getServicePaymentService()->createByServiceItem($itemEntity);
//결제정보 ServicePaymentService에 등록
$this->getServicePaymentService()->setServiceItemEntity($itemEntity);
$this->getServicePaymentService()->create([]);
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -9,9 +9,9 @@ class ClientEntity extends CustomerEntity
const PK = ClientModel::PK;
const TITLE = ClientModel::TITLE;
//타 객체정의 부분
public function getSerialCode(): string
public function getCode(): string
{
return $this->attributes['code'];
return $this->attributes['code'] ?? "null";
}
public function getName(): string
{

View File

@ -71,7 +71,11 @@ class ClientHelper extends CustomerHelper
{
switch ($action) {
case 'modify':
$action = !$this->getMyAuth()->isAccessRole(['security']) ? $viewDatas['cnt'] : parent::getListButton($action, $label, $viewDatas, $extras);
if (!$this->getMyAuth()->isAccessRole(['security'])) {
$action = $viewDatas['entity']->getCode();
} else {
$action = parent::getListButton($action, $viewDatas['entity']->getCode(), $viewDatas, $extras);
}
break;
case 'create':
case 'delete':

View File

@ -2,6 +2,7 @@
return [
'title' => "고객정보",
'label' => [
'code' => "고객코드",
'email' => "메일",
'phone' => "연락처",
'role' => "권한",

View File

@ -10,7 +10,7 @@ abstract class CommonModel extends Model
protected $table = '';
protected $primaryKey = '';
protected $useAutoIncrement = true;
protected $returnType = 'array';
// protected $returnType = 'array';
protected $useSoftDeletes = false;
protected $protectFields = true;
@ -108,17 +108,14 @@ abstract class CommonModel extends Model
return $rule;
}
// create, modify 직전 작업용 작업
protected function convertEntityData(string $action, string $field, array $formDatas, mixed $entity): mixed
protected function convert_process(string $action, string $field, array $formDatas): mixed
{
if (!array_key_exists($field, $formDatas)) {
return $entity;
}
switch ($field) {
case $this->getPKField():
// $formDatas에 전달된 값이 없는 경우
if (!array_key_exists($field, $formDatas)) {
$randomBytes = bin2hex(random_bytes(32));
$entity->$field = sprintf(
$convertedData = sprintf(
'%08s-%04s-%04x-%04x-%12s',
substr($randomBytes, 0, 8),
substr($randomBytes, 8, 4),
@ -126,29 +123,62 @@ abstract class CommonModel extends Model
substr($randomBytes, 16, 4),
substr($randomBytes, 20, 12)
);
} else {
$entity->$field = $formDatas[$field];
}
break;
case "editor": // content 등 textarea를 사용한 Field
case "detail": //content등 textarea를 사용한 Field
case "content": // content 등 textarea를 사용한 Field
case "discription": // content 등 textarea를 사용한 Field
$entity->$field = htmlentities($formDatas[$field], ENT_QUOTES);
$convertedData = htmlentities($formDatas[$field], ENT_QUOTES);
break;
default:
$entity->$field = $formDatas[$field];
$convertedData = $formDatas[$field];
break;
}
return $convertedData;
}
protected function create_process(array $formDatas): mixed
{
// 최종 저장 시 오류 발생하면
if (!$this->save($formDatas)) {
$message = sprintf(
"\n------%s 오류-----\n%s\n------------------------------\n",
__METHOD__,
var_export($this->errors(), true)
);
LogCollector::debug($message);
throw new \Exception($message);
}
if (!class_exists($this->returnType)) {
throw new \RuntimeException(__METHOD__ . "에서 returnType: {$this->returnType}이 정의되지 않았습니다.");
}
return new $this->returnType($formDatas);
}
final public function create(array $formDatas): mixed
{
// LogCollector::debug("입력내용");
// LogCollector::debug(var_export($formDatas, true));
foreach (array_keys($formDatas) as $field) {
if (array_key_exists($field, $formDatas)) {
$formDatas[$field] = $this->convert_process(__FUNCTION__, $field, $formDatas);
}
}
// primaryKey가 자동입력이 아니면
if (!$this->useAutoIncrement) {
$pkField = $this->getPKField();
$formDatas[$pkField] = $this->generateUUID();
}
$entity = $this->create_process($formDatas);
// primaryKey가 자동입력이면
if ($this->useAutoIncrement) {
$pkField = $this->getPKField();
$entity->$pkField = $this->getInsertID();
}
return $entity;
}
final protected function save_process(mixed $entity): mixed
protected function modify_process(mixed $entity): mixed
{
// 최종 변경사항이 없으면
// if (!$entity->hasChanged()) {
// return $entity;
// }
// 최종 저장 시 오류 발생하면
if (!$this->save($entity)) {
$message = sprintf(
@ -161,29 +191,6 @@ abstract class CommonModel extends Model
}
return $entity;
}
public function create(array $formDatas, mixed $entity): mixed
{
// LogCollector::debug("입력내용");
// LogCollector::debug(var_export($formDatas, true));
foreach (array_keys($formDatas) as $field) {
$entity = $this->convertEntityData(__FUNCTION__, $field, $formDatas, $entity);
}
// primaryKey가 자동입력이 아니면
if (!$this->useAutoIncrement) {
$pkField = $this->getPKField();
$entity->$pkField = $this->generateUUID();
}
$entity = $this->save_process($entity);
// primaryKey가 자동입력이면
if ($this->useAutoIncrement) {
$pkField = $this->getPKField();
$entity->$pkField = $this->getInsertID();
}
// LogCollector::debug("[{$entity->getPK()}/{$entity->getTitle()}] 입력 후 내용");
// LogCollector::debug(var_export($entity->toArray(), true));
return $entity;
}
final public function modify(mixed $entity, array $formDatas): mixed
{
// 저장하기 전에 데이터 값 변경이 필요한 Field
@ -191,13 +198,15 @@ abstract class CommonModel extends Model
// LogCollector::debug(var_export($formDatas, true));
// LogCollector::debug(var_export($entity->toArray(), true));
foreach (array_keys($formDatas) as $field) {
$entity = $this->convertEntityData(__FUNCTION__, $field, $formDatas, $entity);
if (array_key_exists($field, $formDatas)) {
$entity->$field = $this->convert_process(__FUNCTION__, $field, $formDatas);
}
}
//수정일추가
$entity->setUpdatedAt(date("Y-m-d H:i:s"));
// LogCollector::debug("[{$entity->getPK()}/{$entity->getTitle()}] 변경 후 내용");
// LogCollector::debug(var_export($entity->toArray(), true));
return $this->save_process($entity);
return $this->modify_process($entity);
}
//List 검색용

View File

@ -52,17 +52,18 @@ class ClientModel extends CustomerModel
}
return $rule;
}
//Create용
protected function create_process(array $formDatas): ClientEntity
{
$entity = parent::create_process($formDatas);
//고객코드 Code 자동 생성 후 수정
$code = 'C' . str_pad($entity->getPK(), 4, '0', STR_PAD_LEFT);
return $this->modify($entity, ['code' => $code]);
}
//List 검색용
public function setList_WordFilter(string $word): void
{
$this->orLike(self::TABLE . '.email', $word, 'both');
parent::setList_WordFilter($word);
}
public function create(array $formDatas, mixed $entity): mixed
{
$entity = parent::create($formDatas, $entity);
$code = 'C' . str_pad($entity->getPK(), 4, '0', STR_PAD_LEFT);
$this->update($entity->getPK(), ['code' => $code]);
return $entity;
}
}

View File

@ -55,20 +55,20 @@ class UserModel extends CommonModel
}
return $rule;
}
protected function convertEntityData(string $action, string $field, array $formDatas, mixed $entity): mixed
protected function convert_process(string $action, string $field, array $formDatas): mixed
{
switch ($field) {
case "passwd":
$entity->$field = password_hash($formDatas[$field], PASSWORD_DEFAULT);
$convertedData = password_hash($formDatas[$field], PASSWORD_DEFAULT);
break;
case "confirmpassword":
$entity->$field = password_hash($formDatas[$field], PASSWORD_DEFAULT);
$convertedData = password_hash($formDatas[$field], PASSWORD_DEFAULT);
break;
default:
$entity = parent::convertEntityData($action, $field, $formDatas, $entity);
$convertedData = parent::convert_process($action, $field, $formDatas);
break;
}
return $entity;
return $convertedData;
}
//List 검색용
public function setList_WordFilter(string $word): void

View File

@ -115,9 +115,9 @@ abstract class CommonService
}
return $rule;
}
public function create(array $formDatas, mixed $entity = null): mixed
public function create(array $formDatas): mixed
{
$entity = $this->getModel()->create($formDatas, $entity ?? $this->getEntityClass());
$entity = $this->getModel()->create($formDatas);
LogCollector::info("[{$entity->getTitle()}]" . MESSAGES["CREATED"] . ":");
return $entity;
}

View File

@ -57,9 +57,9 @@ class AccountService extends CustomerService
$entity = $this->getClientService()->withdrawal($entity, 'account_balance', $amount);
}
}
public function create(array $formDatas, mixed $entity = null): AccountEntity
public function create(array $formDatas): AccountEntity
{
$this->setBalance($formDatas);
return parent::create($formDatas, $entity);
return parent::create($formDatas);
}
}

View File

@ -97,19 +97,21 @@ class ClientService extends CustomerService
return $this->getClientService()->modify($entity, $formDatas);
}
public function create(array $formDatas, mixed $entity = new ClientEntity()): ClientEntity
public function create(array $formDatas): ClientEntity
{
//수정자 정보 자동추가용
$formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
$formDatas['role'] = implode(DEFAULTS["DELIMITER_ROLE"], $formDatas['role']);
return parent::create($formDatas, $entity ?? new ClientEntity());
return parent::create($formDatas);
}
public function modify(mixed $entity, array $formDatas): ClientEntity
{
// die(var_export($formDatas, true));
//Role을 지정이 있을경우에만 , toggle이나 batcjhjob에서는 없을수도 있으므로
if (isset($formDatas['role'])) {
$formDatas['role'] = implode(DEFAULTS["DELIMITER_ROLE"], $formDatas['role']);
}
// die(var_export($formDatas, true));
//수정자 정보 자동추가용
$formDatas['user_uid'] = $this->getMyAuth()->getUIDByAuthInfo();
return parent::modify($entity, $formDatas);
}
}

View File

@ -55,9 +55,9 @@ class CouponService extends CustomerService
$entity = $this->getClientService()->withdrawal($entity, 'coupon_balance', $amount);
}
}
public function create(array $formDatas, mixed $entity = null): CouponEntity
public function create(array $formDatas): CouponEntity
{
$this->setBalance($formDatas);
return parent::create($formDatas, $entity);
return parent::create($formDatas);
}
}

View File

@ -54,9 +54,9 @@ class PointService extends CustomerService
$entity = $this->getClientService()->withdrawal($entity, 'point_balance', $amount);
}
}
public function create(array $formDatas, mixed $entity = null): PointEntity
public function create(array $formDatas): PointEntity
{
$this->setBalance($formDatas);
return parent::create($formDatas, $entity);
return parent::create($formDatas);
}
}

View File

@ -88,11 +88,13 @@ class ServiceItemService extends CustomerService
}
return $options;
}
public function create(array $formDatas, mixed $entity = null): ServiceItemEntity
public function create(array $formDatas): ServiceItemEntity
{
$entity = parent::create($formDatas);
//결제정보 ServicePaymentService에 등록
$this->getServicePaymentService()->createByServiceItem($entity);
return parent::create($formDatas, $entity);
$this->getServicePaymentService()->setServiceItemEntity($entity);
$this->getServicePaymentService()->create(['user_uid' => $this->getMyAuth()->getUIDByAuthInfo()]);
return $entity;
}
public function modify(mixed $entity, array $formDatas): ServiceItemEntity
{

View File

@ -11,6 +11,7 @@ use App\Services\UserService;
class ServicePaymentService extends CustomerService
{
private ?ServiceItemEntity $_serviceItemEntity = null;
private ?UserService $_userService = null;
private ?ServiceService $_serviceService = null;
public function __construct()
@ -66,6 +67,17 @@ class ServicePaymentService extends CustomerService
}
return $this->_serviceService;
}
public function setServiceItemEntity(ServiceItemEntity $entity): void
{
$this->_serviceItemEntity = $entity;
}
public function getServiceItemEntity(): ServiceItemEntity
{
if ($this->_serviceItemEntity === null) {
throw new \Exception("ServiceItem이 지정되지 않았습니다.");
}
return $this->_serviceItemEntity;
}
//Entity의 관련객체정의용
//기본 기능부분
//FieldForm관련용
@ -104,8 +116,9 @@ class ServicePaymentService extends CustomerService
return $unpaids;
}
//결체처리정보 등록 : ServiceItemService에서 사용
public function createByServiceItem(ServiceItemEntity $serviceItemEntity): ServicePaymentEntity
public function create(array $formDatas): ServicePaymentEntity
{
$serviceItemEntity = $this->getServiceItemEntity();
$serviceEntity = $this->getServiceService()->getEntity($serviceItemEntity->getServiceUid());
if (!$serviceEntity) {
throw new \Exception("{$serviceItemEntity->getServiceUid()}에 대한 서비스정보를 찾을수 없습니다.");

View File

@ -201,13 +201,13 @@ class ServiceService extends CustomerService
) WHERE billing_at = ? AND status = ?";
return $this->getModel()->query($sql, [$billing_at, $status]);
}
public function create(array $formDatas, mixed $entity = null): ServiceEntity
public function create(array $formDatas): ServiceEntity
{
//code의 경우 서비스중으로 설정작업
$this->getCodeService()->setStatus($formDatas['codeinfo_uid'], CodeEntity::STATUS_OCCUPIED);
//switch의 경우 서비스중으로 설정작업
$this->getSwitchService()->setStatus($formDatas['switchinfo_uid'], SwitchEntity::STATUS_OCCUPIED);
return parent::create($formDatas, $entity);
return parent::create($formDatas);
}
public function modify(mixed $entity, array $formDatas): ServiceEntity
{

View File

@ -66,11 +66,12 @@ class IpService extends PartService
}
public function createByLineInfo(LineEntity $entity, string $ip): IpEntity
{
$formDatas = [];
$formDatas['lineinfo_uid'] = $entity->getPK();
$formDatas['ip'] = $ip;
$formDatas['status'] = DEFAULTS['STATUS'];
return $this->create($formDatas, new IpEntity());
$formDatas = [
'lineinfo_uid' => $entity->getPK(),
'ip' => $ip,
'status' => DEFAULTS['STATUS'],
];
return $this->create($formDatas);
}
//상태변경

View File

@ -41,10 +41,10 @@ class UserService extends CommonService
{
return ['id', 'name', 'email', 'mobile', 'role', 'status'];
}
public function create(array $formDatas, mixed $entity = null): UserEntity
public function create(array $formDatas): UserEntity
{
$formDatas['role'] = implode(DEFAULTS["DELIMITER_ROLE"], $formDatas['role']);
return parent::create($formDatas, $entity ?? new UserEntity());
return parent::create($formDatas);
}
public function modify(mixed $entity, array $formDatas): UserEntity
{