dbmsv2 init...1
This commit is contained in:
parent
058e3c535e
commit
dca85a817b
@ -51,6 +51,20 @@ class ServerController extends EquipmentController
|
||||
parent::create_form_process();
|
||||
}
|
||||
//추가 파트정보 생성
|
||||
private function getFormDatasForServerInfo(array $formDatas): array
|
||||
{
|
||||
$tempDatas = [
|
||||
"code" => $formDatas['code'],
|
||||
"type" => $formDatas['type'],
|
||||
"title" => $formDatas['title'],
|
||||
"price" => $formDatas['price'],
|
||||
"amount" => $formDatas['amount'],
|
||||
"manufactur_at" => $formDatas['manufactur_at'],
|
||||
"format_at" => $formDatas['format_at'],
|
||||
"status" => $formDatas['status'],
|
||||
];
|
||||
return $formDatas;
|
||||
}
|
||||
private function getFormDatasForServerPartInfo(ServerEntity $entity, string $partType): array
|
||||
{
|
||||
$formDatas = [
|
||||
@ -75,7 +89,18 @@ class ServerController extends EquipmentController
|
||||
];
|
||||
return $formDatas;
|
||||
}
|
||||
private function createIpInfo(ServerEntity $entity): IPEntity
|
||||
//생성
|
||||
private function createServerPartInfo(ServerEntity $entity): ServerEntity
|
||||
{
|
||||
foreach (SERVER['PARTTYPES'] as $partType) {
|
||||
$serverPartEnty = $this->getService()->getServerPartService()->create(
|
||||
$this->getFormDatasForServerPartInfo($entity, $partType)
|
||||
);
|
||||
$entity->setServerPartEntity($partType, $serverPartEnty);
|
||||
}
|
||||
return $entity;
|
||||
}
|
||||
private function setIpInfo(ServerEntity $entity): ServerEntity
|
||||
{
|
||||
//기존 Entity 가져오기
|
||||
$ipinfo_uid = $this->request->getPost("ipinfo_uid");
|
||||
@ -83,31 +108,47 @@ class ServerController extends EquipmentController
|
||||
if (!$ipEntity) {
|
||||
throw new \Exception("{$ipinfo_uid}에 대한 정보를 찾을수 없습니다.");
|
||||
}
|
||||
return $this->getService()->getIPService()->modify($ipEntity, $this->getFormDatasForIPInfo($entity, $ipEntity::STATUS_OCCUPIED));
|
||||
$formDatas = $this->getFormDatasForIPInfo($entity, $ipEntity::STATUS_OCCUPIED);
|
||||
$ipEntity = $this->getService()->getIPService()->modify($ipEntity, $formDatas);
|
||||
$entity->addIPEntity($ipEntity);
|
||||
return $entity;
|
||||
}
|
||||
protected function create_process(array $formDatas): ServerEntity
|
||||
{
|
||||
//코드 패턴체크
|
||||
$pattern = env("Server.Prefix.code.pattern", false);
|
||||
if (!$pattern) {
|
||||
throw new \Exception(__METHOD__ . "에서 code의 prefix[Server.Prefix.code.pattern]가 정의되지 않았습니다.");
|
||||
}
|
||||
if (!array_key_exists('code', $formDatas)) {
|
||||
throw new \Exception("Server코드가 정의되지 않았습니다");
|
||||
}
|
||||
if (!preg_match($pattern, $formDatas['code'])) {
|
||||
throw new \Exception("Server코드[{$formDatas['code']}의 형식이 맞지않습니다");
|
||||
}
|
||||
$entity = parent::create_process($formDatas);
|
||||
$this->getService()->codeCheck($formDatas);
|
||||
$entity = parent::create_process($this->getFormDatasForServerInfo($formDatas));
|
||||
//ServerPart정보 생성 후 ServerEntity에 설정
|
||||
$entity = $this->createServerPartInfo($entity);
|
||||
//IP정보 속성 수정후 ServerEntity에 설정
|
||||
$entity = $this->setIpInfo($entity);
|
||||
return $entity;
|
||||
}
|
||||
|
||||
//수정
|
||||
private function modifyServerPartInfo(ServerEntity $entity): ServerEntity
|
||||
{
|
||||
foreach (SERVER['PARTTYPES'] as $partType) {
|
||||
$serverPartEnty = $this->getService()->getServerPartService()->create(
|
||||
$this->getFormDatasForServerPartInfo($entity, $partType)
|
||||
);
|
||||
$serverPartEnty = $entity->getServerPartEntity($partType);
|
||||
if ($serverPartEnty) {
|
||||
$serverPartEnty = $this->getService()->getServerPartService()->modify(
|
||||
$serverPartEnty,
|
||||
$this->getFormDatasForServerPartInfo($entity, $partType)
|
||||
);
|
||||
}
|
||||
$entity->setServerPartEntity($partType, $serverPartEnty);
|
||||
}
|
||||
return $entity;
|
||||
}
|
||||
protected function modify_process(mixed $entity, array $formDatas): ServerEntity
|
||||
{
|
||||
//코드 패턴체크
|
||||
$this->getService()->codeCheck($formDatas);
|
||||
$entity = parent::modify_process($entity, $this->getFormDatasForServerInfo($formDatas));
|
||||
//ServerPart정보 생성 후 ServerEntity에 설정
|
||||
$entity = $this->modifyServerPartInfo($entity);
|
||||
//IP정보 속성 수정후 ServerEntity에 설정
|
||||
$entity->setIPEntities([$this->createIpInfo($entity)]);
|
||||
$entity = $this->setIpInfo($entity);
|
||||
return $entity;
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,17 +30,23 @@ class ServerEntity extends EquipmentEntity
|
||||
}
|
||||
return $this->attributes['serverPartEntities'][$partType];
|
||||
}
|
||||
public function setIPEntities(array $entities): void
|
||||
public function addIPEntity(IPEntity $entity): void
|
||||
{
|
||||
$this->attributes['ipEntities'] = $entities;
|
||||
if (!array_key_exists('ipEntities', $this->attributes)) {
|
||||
$this->attributes['ipEntities'] = [];
|
||||
}
|
||||
$this->attributes['ipEntities'][] = $entity;
|
||||
}
|
||||
public function getIPEntities(): array
|
||||
{
|
||||
return $this->attributes['ipEntities'] ?? [];
|
||||
}
|
||||
public function setCSEntities(array $entities): void
|
||||
public function addCSEntity(CSEntity $entity): void
|
||||
{
|
||||
$this->attributes['csEntities'] = $entities;
|
||||
if (!array_key_exists('csEntities', $this->attributes)) {
|
||||
$this->attributes['csEntities'] = [];
|
||||
}
|
||||
$this->attributes['csEntities'] = $entity;
|
||||
}
|
||||
public function getCSEntities(): array
|
||||
{
|
||||
|
||||
@ -21,16 +21,16 @@ class ServerHelper extends EquipmentHelper
|
||||
break;
|
||||
case 'CPU':
|
||||
case 'RAM':
|
||||
case 'SOFTWARE':
|
||||
case 'OS':
|
||||
case 'serverpartinfo_DB_uid':
|
||||
$form = $this->form_dropdown_custom($field, old($field) ?? (array_key_exists('entity', $viewDatas) ? $viewDatas['entity']->getServerPartEntity('CPU')->getPK() : null), $viewDatas, $extras);
|
||||
$form .= " " . form_dropdown("{$field}_cnt", $viewDatas['serverpartinfo_cnt_range'], old("{$field}_cnt") ?? $viewDatas['entity']->$field ?? 1) . "개";
|
||||
break;
|
||||
case 'DISK':
|
||||
$form = $this->form_dropdown_custom($field, old($field) ?? (array_key_exists('entity', $viewDatas) ? $viewDatas['entity']->getPartInfoUID() : null), $viewDatas, $extras);
|
||||
$form .= " " . form_dropdown("{$field}_cnt", $viewDatas['serverpartinfo_cnt_range'], old("{$field}_cnt") ?? $viewDatas['entity']->$field ?? 1) . "개";
|
||||
$form .= form_dropdown("{$field}_extra", $viewDatas['serverpartinfo_extra_options'], old("{$field}_extra") ?? $viewDatas['entity']->$field ?? 1);
|
||||
echo $field . ":" . $viewDatas['entity']->getServerPartEntity($field)->getPartInfoUID();
|
||||
case 'OS':
|
||||
case 'SOFTWARE':
|
||||
case 'DB':
|
||||
$form = $this->form_dropdown_custom($field, old($field) ?? (array_key_exists('entity', $viewDatas) ? $viewDatas['entity']->getServerPartEntity($field)->getPartInfoUID() : null), $viewDatas, $extras);
|
||||
$form .= " " . form_dropdown("{$field}_cnt", $viewDatas['serverpartinfo_cnt_range'], old("{$field}_cnt") ?? $viewDatas['entity']->getServerPartEntity($field)->getCnt() ?? 1) . "개";
|
||||
if (in_array($field, ['DISK'])) {
|
||||
$form .= form_dropdown("{$field}_extra", $viewDatas['serverpartinfo_extra_options'], old("{$field}_extra") ?? $viewDatas['entity']->getServerPartEntity($field)->getExtra() ?? 1);
|
||||
}
|
||||
break;
|
||||
case 'ipinfo_uid':
|
||||
case 'csinfo_uid':
|
||||
@ -51,7 +51,6 @@ class ServerHelper extends EquipmentHelper
|
||||
$value = $value ? date("Y-m-d", strtotime($value)) : "";
|
||||
break;
|
||||
case 'serverpartinfo':
|
||||
// dd($viewDatas['entity']);
|
||||
$value = "";
|
||||
foreach (SERVER['PARTTYPES'] as $partType) {
|
||||
$serverPartEntity = $viewDatas['entity']->getServerPartEntity($partType);
|
||||
|
||||
@ -22,7 +22,7 @@ return [
|
||||
'RAM' => "RAM",
|
||||
'DISK' => "DISK",
|
||||
'OS' => "OS",
|
||||
'serverpartinfo_DB_uid' => "DB",
|
||||
'DB' => "DB",
|
||||
'SOFTWARE' => "기타SW",
|
||||
],
|
||||
"TITLE" => [
|
||||
|
||||
@ -96,17 +96,6 @@ class IPService extends EquipmentService
|
||||
];
|
||||
return $this->create($formDatas);
|
||||
}
|
||||
|
||||
//상태변경
|
||||
public function setStatus(int $uid, string $status): IPEntity
|
||||
{
|
||||
//code의 경우 사용가능/사용중으로 설정작업
|
||||
$entity = $this->getEntity($uid);
|
||||
if (!$entity) {
|
||||
throw new \Exception("{$uid}에 대한 IP정보를 찾을수 없습니다.");
|
||||
}
|
||||
return $this->getModel()->modify($entity, ['status' => $status]);
|
||||
}
|
||||
//List 검색용
|
||||
//OrderBy 처리
|
||||
public function setOrderBy(mixed $field = null, mixed $value = null): void
|
||||
|
||||
@ -52,7 +52,7 @@ class PartService extends EquipmentService
|
||||
//OrderBy 처리
|
||||
public function setOrderBy(mixed $field = null, mixed $value = null): void
|
||||
{
|
||||
$this->getModel()->orderBy('type ASC, title ASC');
|
||||
$this->getModel()->orderBy('type ASC');
|
||||
parent::setOrderBy($field, $value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -158,7 +158,7 @@ class ServerService extends EquipmentService
|
||||
case 'OS':
|
||||
$options = $this->getServerPartService()->getFormFieldOption('partinfo_OS_uid');
|
||||
break;
|
||||
case 'serverpartinfo_DB_uid':
|
||||
case 'DB':
|
||||
$options = $this->getServerPartService()->getFormFieldOption('partinfo_DB_uid');
|
||||
break;
|
||||
case 'SOFTWARE':
|
||||
@ -182,6 +182,20 @@ class ServerService extends EquipmentService
|
||||
{
|
||||
return $this->getModel()->getLastestCode($format, $default);
|
||||
}
|
||||
final public function codeCheck(array $formDatas)
|
||||
{
|
||||
//코드 패턴체크
|
||||
$pattern = env("Server.Prefix.code.pattern", false);
|
||||
if (!$pattern) {
|
||||
throw new \Exception(__METHOD__ . "에서 code의 prefix[Server.Prefix.code.pattern]가 정의되지 않았습니다.");
|
||||
}
|
||||
if (!array_key_exists('code', $formDatas)) {
|
||||
throw new \Exception("Server코드가 정의되지 않았습니다");
|
||||
}
|
||||
if (!preg_match($pattern, $formDatas['code'])) {
|
||||
throw new \Exception("Server코드[{$formDatas['code']}의 형식이 맞지않습니다");
|
||||
}
|
||||
}
|
||||
//List 검색용
|
||||
//OrderBy 처리
|
||||
public function setOrderBy(mixed $field = null, mixed $value = null): void
|
||||
|
||||
Loading…
Reference in New Issue
Block a user