dbmsv3 init...1

This commit is contained in:
choi.jh 2025-10-01 18:33:35 +09:00
parent 7f58a58b68
commit ae61fe2584
10 changed files with 764 additions and 28 deletions

View File

@ -49,7 +49,7 @@ class ServiceController extends CustomerController
protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string protected function getResultSuccess(string $message = MESSAGES["SUCCESS"], ?string $actionTemplate = null): RedirectResponse|string
{ {
switch ($this->getService()->getAction()) { switch ($this->getService()->getAction()) {
case 'alternative': case 'addServer':
$result = "대체서버 추가가 완료되었습니다."; $result = "대체서버 추가가 완료되었습니다.";
break; break;
case 'create_form': case 'create_form':

File diff suppressed because one or more lines are too long

View File

@ -223,7 +223,7 @@ class ServiceService extends CustomerService
public function modify(mixed $entity, array $formDatas): ServiceEntity public function modify(mixed $entity, array $formDatas): ServiceEntity
{ {
//수정전 정보 //수정전 정보
$oldEntity = $entity; $oldEntity = clone $entity; //반드시 clone 할것
//서비스 금액 재계산 후 서비스정보 수정 //서비스 금액 재계산 후 서비스정보 수정
$formDatas['amount'] = $this->getCaculatedAmount($entity); $formDatas['amount'] = $this->getCaculatedAmount($entity);
$entity = parent::modify($entity, $formDatas); $entity = parent::modify($entity, $formDatas);
@ -276,6 +276,9 @@ class ServiceService extends CustomerService
//대체서버해지(대체서버는 해지는 가격변동은 없음) //대체서버해지(대체서버는 해지는 가격변동은 없음)
public function terminateServer(ServiceEntity $entity, array $formDatas): ServiceEntity public function terminateServer(ServiceEntity $entity, array $formDatas): ServiceEntity
{ {
if ($entity->getServerEntity()->getPK() === $formDatas['serverinfo_uid']) {
throw new \Exception(__METHOD__ . "에서 오류발생: 서비스의 메인 서버정보는 해지할 수 없습니다.");
}
//대체서버해지 및 결제처리는 하지않음 //대체서버해지 및 결제처리는 하지않음
$entity = $entity->setServerEntity($this->getServerService()->setService('delete', $entity, $formDatas)); $entity = $entity->setServerEntity($this->getServerService()->setService('delete', $entity, $formDatas));
return $entity; return $entity;

View File

@ -303,7 +303,8 @@ class ServerPartService extends EquipmentService
if ($entity->getServiceInfoUID() === null) { if ($entity->getServiceInfoUID() === null) {
throw new \Exception(__METHOD__ . "에서 오류발생: 서비스정보가 정의된 후에만 가능합니다."); throw new \Exception(__METHOD__ . "에서 오류발생: 서비스정보가 정의된 후에만 가능합니다.");
} }
$entity = $this->getServiceService()->setAmount($this->getServiceService()->getEntity($entity->getServiceInfoUID())); //서비스 금액만 재계산변경
$this->getServiceService()->setAmount($this->getServiceService()->getEntity($entity->getServiceInfoUID()));
break; break;
case PAYMENT['BILLING']['ONETIME']: //일회성일때만 처리 case PAYMENT['BILLING']['ONETIME']: //일회성일때만 처리
$entity->setPaymentEntity($this->getPaymentService()->setServerPart('create', $entity, $formDatas)); $entity->setPaymentEntity($this->getPaymentService()->setServerPart('create', $entity, $formDatas));
@ -331,7 +332,7 @@ class ServerPartService extends EquipmentService
throw new \Exception("서버 정보가 지정되지 않았습니다."); throw new \Exception("서버 정보가 지정되지 않았습니다.");
} }
//수정전 정보 //수정전 정보
$oldEntity = $entity; $oldEntity = clone $entity; //반드시 clone 할것
//서버연결정보 수정 //서버연결정보 수정
$formDatas["clientinfo_uid"] = $serverEntity->getClientInfoUID(); $formDatas["clientinfo_uid"] = $serverEntity->getClientInfoUID();
$formDatas["serviceinfo_uid"] = $serverEntity->getServiceInfoUID(); $formDatas["serviceinfo_uid"] = $serverEntity->getServiceInfoUID();
@ -344,7 +345,8 @@ class ServerPartService extends EquipmentService
switch ($entity->getBilling()) { switch ($entity->getBilling()) {
case PAYMENT['BILLING']['MONTH']: //월별과금일때만 처리 case PAYMENT['BILLING']['MONTH']: //월별과금일때만 처리
if ($entity->getServiceInfoUID() !== null) { //서비스가 정의되어 있으면 if ($entity->getServiceInfoUID() !== null) { //서비스가 정의되어 있으면
$entity = $this->getServiceService()->setAmount($this->getServiceService()->getEntity($entity->getServiceInfoUID())); //서비스 금액만 재계산변경
$this->getServiceService()->setAmount($this->getServiceService()->getEntity($entity->getServiceInfoUID()));
} }
break; break;
case PAYMENT['BILLING']['ONETIME']: //일회성일때만 처리 case PAYMENT['BILLING']['ONETIME']: //일회성일때만 처리
@ -365,7 +367,7 @@ class ServerPartService extends EquipmentService
public function delete(mixed $entity): ServerPartEntity public function delete(mixed $entity): ServerPartEntity
{ {
//수정전 정보 //수정전 정보
$oldEntity = $entity; $oldEntity = clone $entity; //반드시 clone 할것
$entity = parent::delete($entity); $entity = parent::delete($entity);
//Type에 따른 부품서비스 정의 //Type에 따른 부품서비스 정의
$this->getPartService($entity->getType())->setServerPart('delete', $oldEntity, $entity, []); $this->getPartService($entity->getType())->setServerPart('delete', $oldEntity, $entity, []);

View File

@ -200,7 +200,7 @@ class ServerService extends EquipmentService
{ {
//서비스중인지 확인 //서비스중인지 확인
if ($entity->getServiceInfoUID() !== null || $entity->getStatus() === STATUS['OCCUPIED']) { if ($entity->getServiceInfoUID() !== null || $entity->getStatus() === STATUS['OCCUPIED']) {
throw new \Exception("서비스중 서버는 삭제하실수 없습니다."); throw new \Exception("서비스중 서버는 삭제하실수 없습니다.");
} }
//선처리작업 //선처리작업
//서비스가 연결되어 있고 대체서버가 아니면, 서비스정보수정(청구액수정) //서비스가 연결되어 있고 대체서버가 아니면, 서비스정보수정(청구액수정)

View File

@ -135,7 +135,7 @@ class CSService extends PartService implements ServerPartInterface
//신규것 사용처리 //신규것 사용처리
$entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas); $entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas);
break; break;
case 'delete': case 'delete': //반드시 oldServerPartEntity 사용해야함
$formDatas = []; $formDatas = [];
$formDatas['clientinfo_uid'] = null; $formDatas['clientinfo_uid'] = null;
$formDatas['serviceinfo_uid'] = null; $formDatas['serviceinfo_uid'] = null;
@ -145,9 +145,9 @@ class CSService extends PartService implements ServerPartInterface
throw new \Exception(__METHOD__ . "에서 오류발생: CS상태가 설정되지 않았습니다."); throw new \Exception(__METHOD__ . "에서 오류발생: CS상태가 설정되지 않았습니다.");
} }
//CS정보가져오기 //CS정보가져오기
$entity = $this->getEntity($serverPartEntity->getPartUID()); $entity = $this->getEntity($oldServerPartEntity->getPartUID());
if (!$entity instanceof CSEntity) { if (!$entity instanceof CSEntity) {
throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 CS정보를 찾을수없습니다."); throw new \Exception("{$oldServerPartEntity->getPartUID()}에 해당하는 CS정보를 찾을수없습니다.");
} }
//CS정보 수정 //CS정보 수정
$entity = parent::modify($entity, $formDatas); $entity = parent::modify($entity, $formDatas);

View File

@ -80,17 +80,17 @@ class DISKService extends PartService implements ServerPartInterface
//신규것 사용처리 //신규것 사용처리
$entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas); $entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas);
break; break;
case 'delete': case 'delete': //반드시 oldServerPartEntity 사용해야함
//부품정보가져오기 //부품정보가져오기
$entity = $this->getEntity($serverPartEntity->getPartUID()); $entity = $this->getEntity($oldServerPartEntity->getPartUID());
if (!$entity) { if (!$entity) {
throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다."); throw new \Exception("{$oldServerPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다.");
} }
//부품정보에 서버정보 설정 및 서비스,고객정보 정의 //부품정보에 서버정보 설정 및 서비스,고객정보 정의
if ($entity->getStock() < $serverPartEntity->getCnt()) { if ($entity->getStock() < $oldServerPartEntity->getCnt()) {
throw new \Exception("현재 재고수[{$entity->getStock()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다."); throw new \Exception("현재 재고수[{$entity->getStock()}]보다 지정하신 갯수({$oldServerPartEntity->getCnt()})가 더 많습니다.");
} }
$entity = parent::modify($entity, ['format' => $entity->getFormat() + $serverPartEntity->getCnt()]); $entity = parent::modify($entity, ['format' => $entity->getFormat() + $oldServerPartEntity->getCnt()]);
break; break;
} }
return $entity; return $entity;

View File

@ -150,7 +150,7 @@ class IPService extends PartService implements ServerPartInterface
//신규것 사용처리 //신규것 사용처리
$entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas); $entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas);
break; break;
case 'delete': case 'delete': //반드시 oldServerPartEntity 사용해야함
$formDatas = []; $formDatas = [];
$formDatas['clientinfo_uid'] = null; $formDatas['clientinfo_uid'] = null;
$formDatas['serviceinfo_uid'] = null; $formDatas['serviceinfo_uid'] = null;
@ -160,9 +160,9 @@ class IPService extends PartService implements ServerPartInterface
throw new \Exception(__METHOD__ . "에서 오류발생: IP상태가 설정되지 않았습니다."); throw new \Exception(__METHOD__ . "에서 오류발생: IP상태가 설정되지 않았습니다.");
} }
//IP정보가져오기 //IP정보가져오기
$entity = $this->getEntity($serverPartEntity->getPartUID()); $entity = $this->getEntity($oldServerPartEntity->getPartUID());
if (!$entity instanceof IPEntity) { if (!$entity instanceof IPEntity) {
throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 IP정보를 찾을수없습니다."); throw new \Exception("{$oldServerPartEntity->getPartUID()}에 해당하는 IP정보를 찾을수없습니다.");
} }
//IP정보 수정 //IP정보 수정
$entity = parent::modify($entity, $formDatas); $entity = parent::modify($entity, $formDatas);

View File

@ -40,17 +40,17 @@ abstract class PartService extends CommonService
//신규것 사용처리 //신규것 사용처리
$entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas); $entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas);
break; break;
case 'delete': case 'delete': //반드시 oldServerPartEntity 사용해야함
//부품정보가져오기 //부품정보가져오기
$entity = $this->getEntity($serverPartEntity->getPartUID()); $entity = $this->getEntity($oldServerPartEntity->getPartUID());
if (!$entity) { if (!$entity) {
throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다."); throw new \Exception("{$oldServerPartEntity->getPartUID()}에 해당하는 부품정보를 찾을수없습니다.");
} }
//부품정보에 서버정보 설정 및 서비스,고객정보 정의 //부품정보에 서버정보 설정 및 서비스,고객정보 정의
if ($entity->getStock() < $serverPartEntity->getCnt()) { if ($entity->getStock() < $oldServerPartEntity->getCnt()) {
throw new \Exception("현재 재고수[{$entity->getStock()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다."); throw new \Exception("현재 재고수[{$entity->getStock()}]보다 지정하신 갯수({$oldServerPartEntity->getCnt()})가 더 많습니다.");
} }
$entity = parent::modify($entity, ['stock' => $entity->getStock() - $serverPartEntity->getCnt()]); $entity = parent::modify($entity, ['stock' => $entity->getStock() + $oldServerPartEntity->getCnt()]);
break; break;
} }
return $entity; return $entity;

View File

@ -120,7 +120,7 @@ class SWITCHService extends PartService implements ServerPartInterface
//신규것 사용처리 //신규것 사용처리
$entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas); $entity = $this->setServerPart('create', $oldServerPartEntity, $serverPartEntity, $serverPartDatas);
break; break;
case 'delete': case 'delete': //반드시 oldServerPartEntity 사용해야함
$formDatas = []; $formDatas = [];
$formDatas['clientinfo_uid'] = null; $formDatas['clientinfo_uid'] = null;
$formDatas['serviceinfo_uid'] = null; $formDatas['serviceinfo_uid'] = null;
@ -130,9 +130,9 @@ class SWITCHService extends PartService implements ServerPartInterface
throw new \Exception(__METHOD__ . "에서 오류발생: SWITCH상태가 설정되지 않았습니다."); throw new \Exception(__METHOD__ . "에서 오류발생: SWITCH상태가 설정되지 않았습니다.");
} }
//SWITCH정보가져오기 //SWITCH정보가져오기
$entity = $this->getEntity($serverPartEntity->getPartUID()); $entity = $this->getEntity($oldServerPartEntity->getPartUID());
if (!$entity instanceof SWITCHEntity) { if (!$entity instanceof SWITCHEntity) {
throw new \Exception("{$serverPartEntity->getPartUID()}에 해당하는 SWITCH정보를 찾을수없습니다."); throw new \Exception("{$oldServerPartEntity->getPartUID()}에 해당하는 SWITCH정보를 찾을수없습니다.");
} }
//SWITCH정보 수정 //SWITCH정보 수정
$entity = parent::modify($entity, $formDatas); $entity = parent::modify($entity, $formDatas);