dbmsv4 init...1

This commit is contained in:
최준흠 2025-11-27 13:44:55 +09:00
parent 4ef32a6471
commit 89a5abf292
14 changed files with 880 additions and 37 deletions

File diff suppressed because one or more lines are too long

View File

@ -42,7 +42,7 @@ class ServerHelper extends EquipmentHelper
$value = parent::getFieldView($field, $value, $viewDatas, $extras); $value = parent::getFieldView($field, $value, $viewDatas, $extras);
break; break;
case 'price': case 'price':
$value = number_format($value); $value = number_format($value) . "";
break; break;
case 'manufactur_at': case 'manufactur_at':
case 'format_at': case 'format_at':

View File

@ -182,7 +182,6 @@ abstract class CommonService
if (!$this->getFormService()->validate($formDatas)) { if (!$this->getFormService()->validate($formDatas)) {
throw new ValidationException(implode("\n", service('validation')->getErrors())); throw new ValidationException(implode("\n", service('validation')->getErrors()));
} }
dd($formDatas);
// NOTE: create_process에서 엔티티를 생성할 때, 자동 증가(AUTO_INCREMENT) 필드는 // NOTE: create_process에서 엔티티를 생성할 때, 자동 증가(AUTO_INCREMENT) 필드는
// DB가 처리하도록 NULL이나 빈 값(0)으로 두는 것이 일반적입니다. // DB가 처리하도록 NULL이나 빈 값(0)으로 두는 것이 일반적입니다.
$entity = $this->create_process($formDatas); $entity = $this->create_process($formDatas);

View File

@ -134,4 +134,16 @@ class CPUService extends PartType1Service
} }
return $entity; return $entity;
} }
public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): CPUEntity
{
/** @var CPUEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServerPart($serverPartEntity, $formDatas);
return $entity;
}
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): CPUEntity
{
/** @var CPUEntity $entity IDE에 entity type알려주기*/
$entity = parent::detachFromServerPart($serverPartEntity, $formDatas);
return $entity;
}
} }

View File

@ -162,4 +162,16 @@ class CSService extends PartType2Service
} }
return $entity; return $entity;
} }
public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): CSEntity
{
/** @var CSEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServerPart($serverPartEntity, $formDatas);
return $entity;
}
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): CSEntity
{
/** @var CSEntity $entity IDE에 entity type알려주기*/
$entity = parent::detachFromServerPart($serverPartEntity, $formDatas);
return $entity;
}
} }

View File

@ -137,6 +137,12 @@ class DISKService extends PartType1Service
} }
return $entity; return $entity;
} }
public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): DISKEntity
{
/** @var DISKEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServerPart($serverPartEntity, $formDatas);
return $entity;
}
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): DiskEntity public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): DiskEntity
{ {
/** @var DiskEntity $entity IDE에 entity type알려주기*/ /** @var DiskEntity $entity IDE에 entity type알려주기*/

View File

@ -154,12 +154,19 @@ class IPService extends PartType3Service
} }
return $entity; return $entity;
} }
public function attachToServer(ServerEntity $serverEntity, array $formDatas = []): IPEntity
{
/** @var IPEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServer($serverEntity, $formDatas);
return $entity;
}
public function detachFromServer(ServerEntity $serverEntity, array $formDatas = []): IPEntity public function detachFromServer(ServerEntity $serverEntity, array $formDatas = []): IPEntity
{ {
/** @var IPEntity $entity IDE에 entity type알려주기*/ /** @var IPEntity $entity IDE에 entity type알려주기*/
$entity = $this->getPartEntityByServer($serverEntity); $entity = $this->getPartEntityByServer($serverEntity);
$formDatas['old_clientinfo_uid'] = $entity->getClientInfoUID(); $formDatas['old_clientinfo_uid'] = $entity->getClientInfoUID();
return parent::detachFromServer($serverEntity, $formDatas); $entity = parent::detachFromServer($serverEntity, $formDatas);
return $entity;
} }
//서버파트관련 작업 //서버파트관련 작업
//파트정보가져오기 //파트정보가져오기
@ -172,12 +179,19 @@ class IPService extends PartType3Service
} }
return $entity; return $entity;
} }
public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): IPEntity
{
/** @var IPEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServerPart($serverPartEntity, $formDatas);
return $entity;
}
//사용했던 고객정보 남기기위해 추가 //사용했던 고객정보 남기기위해 추가
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): IPEntity public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): IPEntity
{ {
/** @var IPEntity $entity IDE에 entity type알려주기*/ /** @var IPEntity $entity IDE에 entity type알려주기*/
$entity = $this->getPartEntityByServerPart($serverPartEntity); $entity = $this->getPartEntityByServerPart($serverPartEntity);
$formDatas['old_clientinfo_uid'] = $entity->getClientInfoUID(); $formDatas['old_clientinfo_uid'] = $entity->getClientInfoUID();
return parent::detachFromServerPart($serverPartEntity, $formDatas); $entity = parent::detachFromServerPart($serverPartEntity, $formDatas);
return $entity;
} }
} }

View File

@ -25,6 +25,7 @@ abstract class PartService extends CommonService
$errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 업데이트 실패 또는 변경된 행 없음."; $errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 업데이트 실패 또는 변경된 행 없음.";
throw new \Exception(__METHOD__ . ": " . $errorMsg); throw new \Exception(__METHOD__ . ": " . $errorMsg);
} }
$entity->fill($formDatas);
return $entity; return $entity;
} }
} }

View File

@ -25,9 +25,7 @@ abstract class PartType1Service extends PartService
throw new \Exception("현재 사용가능 갯수[{$entity->getAvailable()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다."); throw new \Exception("현재 사용가능 갯수[{$entity->getAvailable()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다.");
} }
$formDatas['used'] = $entity->getUsed() + $serverPartEntity->getCnt(); $formDatas['used'] = $entity->getUsed() + $serverPartEntity->getCnt();
$entity = $this->updatePart($entity, $formDatas); return $this->updatePart($entity, $formDatas);
$entity->fill($formDatas);
return $entity;
} }
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): PartEntity public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): PartEntity
{ {
@ -39,8 +37,6 @@ abstract class PartType1Service extends PartService
throw new \Exception("현재 사용된 갯수[{$entity->getUsed()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다."); throw new \Exception("현재 사용된 갯수[{$entity->getUsed()}]보다 지정하신 갯수({$serverPartEntity->getCnt()})가 더 많습니다.");
} }
$formDatas['used'] = $entity->getUsed() - $serverPartEntity->getCnt(); $formDatas['used'] = $entity->getUsed() - $serverPartEntity->getCnt();
$entity = $this->updatePart($entity, $formDatas); return $this->updatePart($entity, $formDatas);
$entity->fill($formDatas);
return $entity;
} }
} }

View File

@ -27,17 +27,7 @@ abstract class PartType2Service extends PartService
throw new \Exception(__METHOD__ . ":에서 오류발생: {$entity->getTitle()}는 사용중입니다."); throw new \Exception(__METHOD__ . ":에서 오류발생: {$entity->getTitle()}는 사용중입니다.");
} }
//파트정보 수정 //파트정보 수정
// model->update()는 영향을 받은 row 수를 반환하므로, 반환 타입 맞추기 위해 엔티티 갱신 로직 추가 return $this->updatePart($entity, $formDatas);
$updateResult = $this->model->update($entity->getPK(), $formDatas);
if ($updateResult === false || $updateResult === 0) {
// 업데이트 실패 시 예외 처리
$errors = $this->model->errors();
$errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 업데이트 실패 또는 변경된 행 없음.";
throw new \Exception(__METHOD__ . ": " . $errorMsg);
}
// DB 재조회 없이 엔티티 객체의 데이터 갱신 (트랜잭션 안전성 확보)
$entity->fill($formDatas);
return $entity;
} }
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): PartEntity public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): PartEntity
{ {
@ -48,15 +38,6 @@ abstract class PartType2Service extends PartService
//파트정보가져오기 //파트정보가져오기
$entity = $this->getPartEntityByServerPart($serverPartEntity); $entity = $this->getPartEntityByServerPart($serverPartEntity);
//파트정보 수정 //파트정보 수정
$updateResult = $this->model->update($entity->getPK(), $formDatas); return $this->updatePart($entity, $formDatas);
if ($updateResult === false || $updateResult === 0) {
// 업데이트 실패 시 예외 처리
$errors = $this->model->errors();
$errorMsg = is_array($errors) ? implode(", ", $errors) : "DB 업데이트 실패 또는 변경된 행 없음.";
throw new \Exception(__METHOD__ . ": " . $errorMsg);
}
// DB 재조회 없이 엔티티 객체의 데이터 갱신 (트랜잭션 안전성 확보)
$entity->fill($formDatas);
return $entity;
} }
} }

View File

@ -26,9 +26,7 @@ abstract class PartType3Service extends PartType2Service
throw new \Exception(__METHOD__ . ":에서 오류발생: {$entity->getTitle()}는 사용중입니다."); throw new \Exception(__METHOD__ . ":에서 오류발생: {$entity->getTitle()}는 사용중입니다.");
} }
//파트정보 수정 //파트정보 수정
/** @var PartEntity $entity IDE에 entity type알려주기*/ return $this->updatePart($entity, $formDatas);
$entity = $this->model->update($entity->getPK(), $formDatas);
return $entity;
} }
public function detachFromServer(ServerEntity $serverEntity, array $formDatas = []): PartEntity public function detachFromServer(ServerEntity $serverEntity, array $formDatas = []): PartEntity
@ -40,8 +38,6 @@ abstract class PartType3Service extends PartType2Service
//파트정보가져오기 //파트정보가져오기
$entity = $this->getPartEntityByServer($serverEntity); $entity = $this->getPartEntityByServer($serverEntity);
//파트정보 수정 //파트정보 수정
/** @var PartEntity $entity IDE에 entity type알려주기*/ return $this->updatePart($entity, $formDatas);
$entity = $this->model->update($entity->getPK(), $formDatas);
return $entity;
} }
} }

View File

@ -134,4 +134,16 @@ class RAMService extends PartType1Service
} }
return $entity; return $entity;
} }
public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): RAMEntity
{
/** @var RAMEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServerPart($serverPartEntity, $formDatas);
return $entity;
}
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): RAMEntity
{
/** @var RAMEntity $entity IDE에 entity type알려주기*/
$entity = parent::detachFromServerPart($serverPartEntity, $formDatas);
return $entity;
}
} }

View File

@ -134,4 +134,16 @@ class SOFTWAREService extends PartType1Service
} }
return $entity; return $entity;
} }
public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): SOFTWAREEntity
{
/** @var SOFTWAREEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServerPart($serverPartEntity, $formDatas);
return $entity;
}
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): SOFTWAREEntity
{
/** @var SOFTWAREEntity $entity IDE에 entity type알려주기*/
$entity = parent::detachFromServerPart($serverPartEntity, $formDatas);
return $entity;
}
} }

View File

@ -155,6 +155,18 @@ class SWITCHService extends PartType3Service
} }
return $entity; return $entity;
} }
public function attachToServer(ServerEntity $serverEntity, array $formDatas = []): SWITCHEntity
{
/** @var SWITCHEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServer($serverEntity, $formDatas);
return $entity;
}
public function detachFromServer(ServerEntity $serverEntity, array $formDatas = []): SWITCHEntity
{
/** @var SWITCHEntity $entity IDE에 entity type알려주기*/
$entity = parent::detachFromServer($serverEntity, $formDatas);
return $entity;
}
//서버파트관련 작업 //서버파트관련 작업
//파트정보가져오기 //파트정보가져오기
public function getPartEntityByServerPart(ServerPartEntity $serverPartEntity): SWITCHEntity public function getPartEntityByServerPart(ServerPartEntity $serverPartEntity): SWITCHEntity
@ -166,4 +178,16 @@ class SWITCHService extends PartType3Service
} }
return $entity; return $entity;
} }
public function attachToServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): SWITCHEntity
{
/** @var SWITCHEntity $entity IDE에 entity type알려주기*/
$entity = parent::attachToServerPart($serverPartEntity, $formDatas);
return $entity;
}
public function detachFromServerPart(ServerPartEntity $serverPartEntity, array $formDatas = []): SWITCHEntity
{
/** @var SWITCHEntity $entity IDE에 entity type알려주기*/
$entity = parent::detachFromServerPart($serverPartEntity, $formDatas);
return $entity;
}
} }