dbmsv2 init...1
This commit is contained in:
parent
058e3c535e
commit
dca85a817b
@ -51,6 +51,20 @@ class ServerController extends EquipmentController
|
|||||||
parent::create_form_process();
|
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
|
private function getFormDatasForServerPartInfo(ServerEntity $entity, string $partType): array
|
||||||
{
|
{
|
||||||
$formDatas = [
|
$formDatas = [
|
||||||
@ -75,7 +89,18 @@ class ServerController extends EquipmentController
|
|||||||
];
|
];
|
||||||
return $formDatas;
|
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 가져오기
|
//기존 Entity 가져오기
|
||||||
$ipinfo_uid = $this->request->getPost("ipinfo_uid");
|
$ipinfo_uid = $this->request->getPost("ipinfo_uid");
|
||||||
@ -83,31 +108,47 @@ class ServerController extends EquipmentController
|
|||||||
if (!$ipEntity) {
|
if (!$ipEntity) {
|
||||||
throw new \Exception("{$ipinfo_uid}에 대한 정보를 찾을수 없습니다.");
|
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
|
protected function create_process(array $formDatas): ServerEntity
|
||||||
{
|
{
|
||||||
//코드 패턴체크
|
//코드 패턴체크
|
||||||
$pattern = env("Server.Prefix.code.pattern", false);
|
$this->getService()->codeCheck($formDatas);
|
||||||
if (!$pattern) {
|
$entity = parent::create_process($this->getFormDatasForServerInfo($formDatas));
|
||||||
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);
|
|
||||||
//ServerPart정보 생성 후 ServerEntity에 설정
|
//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) {
|
foreach (SERVER['PARTTYPES'] as $partType) {
|
||||||
$serverPartEnty = $this->getService()->getServerPartService()->create(
|
$serverPartEnty = $entity->getServerPartEntity($partType);
|
||||||
$this->getFormDatasForServerPartInfo($entity, $partType)
|
if ($serverPartEnty) {
|
||||||
);
|
$serverPartEnty = $this->getService()->getServerPartService()->modify(
|
||||||
|
$serverPartEnty,
|
||||||
|
$this->getFormDatasForServerPartInfo($entity, $partType)
|
||||||
|
);
|
||||||
|
}
|
||||||
$entity->setServerPartEntity($partType, $serverPartEnty);
|
$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에 설정
|
//IP정보 속성 수정후 ServerEntity에 설정
|
||||||
$entity->setIPEntities([$this->createIpInfo($entity)]);
|
$entity = $this->setIpInfo($entity);
|
||||||
return $entity;
|
return $entity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,17 +30,23 @@ class ServerEntity extends EquipmentEntity
|
|||||||
}
|
}
|
||||||
return $this->attributes['serverPartEntities'][$partType];
|
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
|
public function getIPEntities(): array
|
||||||
{
|
{
|
||||||
return $this->attributes['ipEntities'] ?? [];
|
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
|
public function getCSEntities(): array
|
||||||
{
|
{
|
||||||
|
|||||||
@ -21,16 +21,16 @@ class ServerHelper extends EquipmentHelper
|
|||||||
break;
|
break;
|
||||||
case 'CPU':
|
case 'CPU':
|
||||||
case 'RAM':
|
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':
|
case 'DISK':
|
||||||
$form = $this->form_dropdown_custom($field, old($field) ?? (array_key_exists('entity', $viewDatas) ? $viewDatas['entity']->getPartInfoUID() : null), $viewDatas, $extras);
|
echo $field . ":" . $viewDatas['entity']->getServerPartEntity($field)->getPartInfoUID();
|
||||||
$form .= " " . form_dropdown("{$field}_cnt", $viewDatas['serverpartinfo_cnt_range'], old("{$field}_cnt") ?? $viewDatas['entity']->$field ?? 1) . "개";
|
case 'OS':
|
||||||
$form .= form_dropdown("{$field}_extra", $viewDatas['serverpartinfo_extra_options'], old("{$field}_extra") ?? $viewDatas['entity']->$field ?? 1);
|
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;
|
break;
|
||||||
case 'ipinfo_uid':
|
case 'ipinfo_uid':
|
||||||
case 'csinfo_uid':
|
case 'csinfo_uid':
|
||||||
@ -51,7 +51,6 @@ class ServerHelper extends EquipmentHelper
|
|||||||
$value = $value ? date("Y-m-d", strtotime($value)) : "";
|
$value = $value ? date("Y-m-d", strtotime($value)) : "";
|
||||||
break;
|
break;
|
||||||
case 'serverpartinfo':
|
case 'serverpartinfo':
|
||||||
// dd($viewDatas['entity']);
|
|
||||||
$value = "";
|
$value = "";
|
||||||
foreach (SERVER['PARTTYPES'] as $partType) {
|
foreach (SERVER['PARTTYPES'] as $partType) {
|
||||||
$serverPartEntity = $viewDatas['entity']->getServerPartEntity($partType);
|
$serverPartEntity = $viewDatas['entity']->getServerPartEntity($partType);
|
||||||
|
|||||||
@ -22,7 +22,7 @@ return [
|
|||||||
'RAM' => "RAM",
|
'RAM' => "RAM",
|
||||||
'DISK' => "DISK",
|
'DISK' => "DISK",
|
||||||
'OS' => "OS",
|
'OS' => "OS",
|
||||||
'serverpartinfo_DB_uid' => "DB",
|
'DB' => "DB",
|
||||||
'SOFTWARE' => "기타SW",
|
'SOFTWARE' => "기타SW",
|
||||||
],
|
],
|
||||||
"TITLE" => [
|
"TITLE" => [
|
||||||
|
|||||||
@ -96,17 +96,6 @@ class IPService extends EquipmentService
|
|||||||
];
|
];
|
||||||
return $this->create($formDatas);
|
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 검색용
|
//List 검색용
|
||||||
//OrderBy 처리
|
//OrderBy 처리
|
||||||
public function setOrderBy(mixed $field = null, mixed $value = null): void
|
public function setOrderBy(mixed $field = null, mixed $value = null): void
|
||||||
|
|||||||
@ -52,7 +52,7 @@ class PartService extends EquipmentService
|
|||||||
//OrderBy 처리
|
//OrderBy 처리
|
||||||
public function setOrderBy(mixed $field = null, mixed $value = null): void
|
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);
|
parent::setOrderBy($field, $value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -158,7 +158,7 @@ class ServerService extends EquipmentService
|
|||||||
case 'OS':
|
case 'OS':
|
||||||
$options = $this->getServerPartService()->getFormFieldOption('partinfo_OS_uid');
|
$options = $this->getServerPartService()->getFormFieldOption('partinfo_OS_uid');
|
||||||
break;
|
break;
|
||||||
case 'serverpartinfo_DB_uid':
|
case 'DB':
|
||||||
$options = $this->getServerPartService()->getFormFieldOption('partinfo_DB_uid');
|
$options = $this->getServerPartService()->getFormFieldOption('partinfo_DB_uid');
|
||||||
break;
|
break;
|
||||||
case 'SOFTWARE':
|
case 'SOFTWARE':
|
||||||
@ -182,6 +182,20 @@ class ServerService extends EquipmentService
|
|||||||
{
|
{
|
||||||
return $this->getModel()->getLastestCode($format, $default);
|
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 검색용
|
//List 검색용
|
||||||
//OrderBy 처리
|
//OrderBy 처리
|
||||||
public function setOrderBy(mixed $field = null, mixed $value = null): void
|
public function setOrderBy(mixed $field = null, mixed $value = null): void
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user