dbmsv4 init...1

This commit is contained in:
최준흠 2025-12-01 19:24:35 +09:00
parent b6690d72d0
commit 48464e565f
9 changed files with 27 additions and 50 deletions

View File

@ -43,8 +43,7 @@ abstract class AbstractCRUDController extends AbstractWebController
protected function create_process(): CommonEntity
{
// POST 데이터를 DTO 객체로 변환 (getPost()는 POST 요청 본문만 가져옵니다.)
$dto = $this->service->createDTO($this->request->getPost());
return $this->service->create($dto);
return $this->service->create($this->service->createDTO($this->request->getPost()));
}
protected function create_result_process(CommonEntity $entity, ?string $redirect_url = null): string|RedirectResponse
@ -103,10 +102,8 @@ abstract class AbstractCRUDController extends AbstractWebController
protected function modify_process($uid): CommonEntity
{
$entity = $this->service->getEntity($uid);
// POST 데이터를 DTO 객체로 변환
$dto = $this->service->createDTO($this->request->getPost());
return $this->service->modify($uid, $dto);
return $this->service->modify($uid, $this->service->createDTO($this->request->getPost()));
}
protected function modify_result_process(CommonEntity $entity, ?string $redirect_url = null): string|RedirectResponse

View File

@ -77,7 +77,7 @@ class ServiceController extends CustomerController
//서비스정보 가져오기
$entity = $this->service->getEntity($uid);
//대체서버 추가
service('equipment_server')->attachToService($entity, $this->request->getPost());
service('equipment_serverservice')->attachToService($entity, $this->request->getPost());
return $this->action_redirect_process('info', "{$this->getTitle()}에서 대체서버추가가 완료되었습니다");
} catch (\Throwable $e) {
return $this->action_redirect_process('error', "{$this->getTitle()}에서 대체서버추가 오류:" . $e->getMessage());
@ -92,12 +92,8 @@ class ServiceController extends CustomerController
$fields = ['serverinfo_uid'];
$this->service->getFormService()->setFormFields($fields);
$this->service->getFormService()->setFormRules($action, $fields);
//서비스정보 가져오기
$entity = $this->service->getEntity($uid);
//메인서버 해지
service('equipment_server')->detachFromService($entity, ['serverinfo_uid' => $entity->getServerInfoUID()]);
//대체서버를 메인서버로 설정
service('equipment_server')->attachToService($entity, $this->request->getGet());
$this->service->modify($uid, $this->service->createDTO($this->request->getGet()));
return $this->action_redirect_process('info', "{$this->getTitle()}에서 메인서버설정이 완료되었습니다");
} catch (\Throwable $e) {
return $this->action_redirect_process('error', "{$this->getTitle()}에서 메인서버설정 오류:" . $e->getMessage());
@ -113,7 +109,7 @@ class ServiceController extends CustomerController
//서비스정보 가져오기
$entity = $this->service->getEntity($uid);
//대체서버 해지
service('equipment_server')->attachToService($entity, $this->request->getGet());
service('equipment_serverservice')->detachFromService($entity, $this->request->getGet());
return $this->action_redirect_process('info', "{$this->getTitle()}에서 대체서버해지가 완료되었습니다");
} catch (\Throwable $e) {
return $this->action_redirect_process('error', "{$this->getTitle()}에서 대체서버 해지 오류:" . $e->getMessage());

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -225,15 +225,15 @@ abstract class CommonService
if (!$this->getFormService()->validate($formDatas)) {
throw new ValidationException(implode("\n", service('validation')->getErrors()));
}
$pkField = $this->model->getPKField();
//관리자 정보추가용
$formDatas['user_uid'] = $this->getAuthContext()->getUID();
// DTO 데이터에서 PK 필드가 있다면 제거하여, fill()에서 기존 PK를 덮어쓰지 않도록 합니다.
$pkField = $this->model->getPKField();
if (isset($formDatas[$pkField])) {
unset($formDatas[$pkField]);
}
// 1. 데이터를 Entity에 채웁니다.
$entity->fill($formDatas);
//관리자 정보추가용
$formDatas['user_uid'] = $this->getAuthContext()->getUID();
$entity->merge($formDatas);
dd($entity);
return $this->save_process($entity);
}
final public function modify(string|int $uid, object $dto): CommonEntity

View File

@ -216,16 +216,14 @@ class ServiceService extends CustomerService
}
//수정전 서비스정보를 currentEntity 복사해준다.
if ($entity->getServerInfoUID() !== $formDatas['serverinfo_uid']) {
//서버정보 해지처리
service('equipment_serverservice')->detachFromService($entity);
//결제정보 해지(삭제)처리
service('paymentservice')->detachFromService($entity);
//서비스 전체금액 구하기
$formDatas['amount'] = $this->getCalculatedAmount(
(int)$formDatas['serverinfo_uid'],
(int)$formDatas['rack'],
(int)$formDatas['line'],
(int)$formDatas['sale']
(int)$entity->getRack(),
(int)$entity->getLine(),
(int)$entity->getSale()
);
}
//서비스 수정
@ -233,8 +231,6 @@ class ServiceService extends CustomerService
if (!$entity instanceof ServiceEntity) {
throw new RuntimeException(__METHOD__ . "에서 오류발생:Return Type은 ServiceEntity만 가능");
}
//서버정보 연결
service('equipment_serverservice')->attachToService($entity);
//결제정보 연결
service('paymentservice')->attachToService($entity);
return $entity;

View File

@ -263,8 +263,8 @@ class ServerService extends EquipmentService
$this->getFormService()->setFormRules('modify', $fields);
parent::modify_process($entity, $formDatas);
//서버파트정보처리
service('part_ipservice')->attachToServer($entity);
service('part_switchservice')->attachToServer($entity);
service('equipment_serverpartservice')->detachFromServer($entity);
service('part_ipservice')->detachFromService($entity);
service('part_switchservice')->detachFromService($entity);
service('equipment_serverpartservice')->detachFromService($entity);
}
}

View File

@ -16,7 +16,7 @@ abstract class PartService extends CommonService
}
abstract public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): PartEntity;
abstract public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): PartEntity;
final protected function updatePart(PartEntity $entity, array $formDatas): PartEntity
final protected function updatePart($entity, array $formDatas): PartEntity
{
$updateResult = $this->model->update($entity->getPK(), $formDatas);
if ($updateResult === false || $updateResult === 0) {
@ -25,7 +25,7 @@ abstract class PartService extends CommonService
$errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 업데이트 실패 또는 변경된 행 없음.";
throw new \Exception(__METHOD__ . ": " . $errorMsg);
}
$entity->fill($formDatas);
$entity->merge($formDatas);
return $entity;
}
}

View File

@ -233,7 +233,7 @@ class PaymentService extends CommonService
public function detachFromService(ServiceEntity $serviceEntity): void
{
//서비스정보의 지급기한일과 같은 결제정보 가져오기
$entity = $this->getEntity(['serviceinifo_uid' => $serviceEntity->getPK(), 'billing_at' => $serviceEntity->getBillingAt()]);
$entity = $this->getEntity(['serviceinfo_uid' => $serviceEntity->getPK(), 'billing_at' => $serviceEntity->getBillingAt()]);
if (!$entity) {
throw new \Exception(__METHOD__ . "에서 오류발생: 해당하는 결제정보을 찾을수 없습니다.");
}