dbmsv4 init...3
This commit is contained in:
parent
8c72f8dc10
commit
2230998b0f
@ -435,6 +435,41 @@ define(
|
|||||||
define("SERVICE", [
|
define("SERVICE", [
|
||||||
"NEW_INTERVAL" => $_ENV['SERVICE_NEW_INTERVAL'] ?? $_SERVER['SERVICE_NEW_INTERVAL'] ?? 7,
|
"NEW_INTERVAL" => $_ENV['SERVICE_NEW_INTERVAL'] ?? $_SERVER['SERVICE_NEW_INTERVAL'] ?? 7,
|
||||||
]);
|
]);
|
||||||
|
define("SERVER", [
|
||||||
|
"TYPES" => [
|
||||||
|
"NORMAL" => 'normal',
|
||||||
|
"DEFENCE" => 'defence',
|
||||||
|
"DEDICATED" => 'dedicated',
|
||||||
|
"VPN" => 'vpn',
|
||||||
|
"EVENT" => 'event',
|
||||||
|
"TEST" => 'test',
|
||||||
|
"ALTERNATIVE" => 'alternative',
|
||||||
|
"INHOUSE" => 'inhouse',
|
||||||
|
"COLOCATION" => 'colocation',
|
||||||
|
],
|
||||||
|
"OS" => [
|
||||||
|
"CENTOS7" => "CentOS7",
|
||||||
|
"CENTOS8" => "CentOS8",
|
||||||
|
"CENTOS9" => "CentOS9",
|
||||||
|
"CENTOS10" => "CentOS10",
|
||||||
|
"UBUNTU20.04" => "Ubuntu20.04",
|
||||||
|
"UBUNTU22.04" => "Ubuntu22.04",
|
||||||
|
"UBUNTU23.04" => "Ubuntu23.04",
|
||||||
|
"UBUNTU24.04" => "Ubuntu24.04",
|
||||||
|
"UBUNTU25.04" => "Ubuntu25.04",
|
||||||
|
"DEBIAN10" => "Debian10",
|
||||||
|
"DEBIAN11" => "Debian11",
|
||||||
|
"DEBIAN12" => "Debian12",
|
||||||
|
"WINDOWS10" => "Windows10",
|
||||||
|
"WINDOWS11" => "Windows11",
|
||||||
|
"WINDOWS2008R2" => "Windows2008R2",
|
||||||
|
"WINDOWS2012R2" => "Windows2012R2",
|
||||||
|
"WINDOWS2016R2" => "Windows2016R2",
|
||||||
|
"WINDOWS2019R2" => "Windows2019R2",
|
||||||
|
"WINDOWS2022R2" => "Windows2022R2",
|
||||||
|
"WINDOWS2024R2" => "Windows2024R2",
|
||||||
|
],
|
||||||
|
]);
|
||||||
//서버파트 관련
|
//서버파트 관련
|
||||||
define("SERVERPART", [
|
define("SERVERPART", [
|
||||||
"CNT_RANGE" => array_combine(range(1, 10), range(1, 10)),
|
"CNT_RANGE" => array_combine(range(1, 10), range(1, 10)),
|
||||||
|
|||||||
@ -14,6 +14,7 @@ class DISKForm extends PartForm
|
|||||||
"title",
|
"title",
|
||||||
"price",
|
"price",
|
||||||
"used",
|
"used",
|
||||||
|
"format",
|
||||||
"stock",
|
"stock",
|
||||||
];
|
];
|
||||||
$filters = [
|
$filters = [
|
||||||
@ -27,14 +28,14 @@ class DISKForm extends PartForm
|
|||||||
break;
|
break;
|
||||||
case 'modify':
|
case 'modify':
|
||||||
case 'modify_form':
|
case 'modify_form':
|
||||||
$fields = [...$fields, "format", 'status'];
|
$fields = [...$fields, 'status'];
|
||||||
break;
|
break;
|
||||||
case 'view':
|
case 'view':
|
||||||
$fields = [...$fields, "format", 'status', 'created_at'];
|
$fields = [...$fields, 'status', 'created_at'];
|
||||||
break;
|
break;
|
||||||
case 'index':
|
case 'index':
|
||||||
case 'download':
|
case 'download':
|
||||||
$fields = [...$fields, "format", 'status', 'created_at'];
|
$fields = [...$fields, 'status', 'created_at'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$this->setFormFields($fields);
|
$this->setFormFields($fields);
|
||||||
|
|||||||
@ -22,42 +22,21 @@ return [
|
|||||||
"serverpartinfo" => "부품정보",
|
"serverpartinfo" => "부품정보",
|
||||||
],
|
],
|
||||||
"TYPE" => [
|
"TYPE" => [
|
||||||
'normal' => "일반",
|
SERVER['TYPES']['NORMAL'] => "일반",
|
||||||
'defence' => "방어",
|
SERVER['TYPES']['DEFENCE'] => "방어",
|
||||||
'dedicated' => "전용",
|
SERVER['TYPES']['DEDICATED'] => "전용",
|
||||||
'vpn' => "VPN",
|
SERVER['TYPES']['VPN'] => "VPN",
|
||||||
'event' => "이벤트",
|
SERVER['TYPES']['EVENT'] => "이벤트",
|
||||||
'test' => "테스트",
|
SERVER['TYPES']['TEST'] => "테스트",
|
||||||
'alternative' => "대체",
|
SERVER['TYPES']['ALTERNATIVE'] => "대체",
|
||||||
'ours' => "자사용",
|
SERVER['TYPES']['INHOUSE'] => "자사용",
|
||||||
'colocation' => "코로케이션",
|
SERVER['TYPES']['COLOCATION'] => "코로케이션",
|
||||||
],
|
],
|
||||||
|
"OS" => SERVER['OS'],
|
||||||
"STATUS" => [
|
"STATUS" => [
|
||||||
STATUS['AVAILABLE'] => "사용가능",
|
STATUS['AVAILABLE'] => "사용가능",
|
||||||
STATUS['OCCUPIED'] => "서비스중",
|
STATUS['OCCUPIED'] => "서비스중",
|
||||||
STATUS['TERMINATED'] => "서비스해지",
|
STATUS['TERMINATED'] => "서비스해지",
|
||||||
STATUS['FORBIDDEN'] => "사용불가",
|
STATUS['FORBIDDEN'] => "사용불가",
|
||||||
],
|
],
|
||||||
"OS" => [
|
|
||||||
"CENTOS7" => "CentOS7",
|
|
||||||
"CENTOS8" => "CentOS8",
|
|
||||||
"CENTOS9" => "CentOS9",
|
|
||||||
"CENTOS10" => "CentOS10",
|
|
||||||
"UBUNTU20.04" => "Ubuntu20.04",
|
|
||||||
"UBUNTU22.04" => "Ubuntu22.04",
|
|
||||||
"UBUNTU23.04" => "Ubuntu23.04",
|
|
||||||
"UBUNTU24.04" => "Ubuntu24.04",
|
|
||||||
"UBUNTU25.04" => "Ubuntu25.04",
|
|
||||||
"DEBIAN10" => "Debian10",
|
|
||||||
"DEBIAN11" => "Debian11",
|
|
||||||
"DEBIAN12" => "Debian12",
|
|
||||||
"WINDOWS10" => "Windows10",
|
|
||||||
"WINDOWS11" => "Windows11",
|
|
||||||
"WINDOWS2008R2" => "Windows2008R2",
|
|
||||||
"WINDOWS2012R2" => "Windows2012R2",
|
|
||||||
"WINDOWS2016R2" => "Windows2016R2",
|
|
||||||
"WINDOWS2019R2" => "Windows2019R2",
|
|
||||||
"WINDOWS2022R2" => "Windows2022R2",
|
|
||||||
"WINDOWS2024R2" => "Windows2024R2",
|
|
||||||
],
|
|
||||||
];
|
];
|
||||||
|
|||||||
@ -6,7 +6,7 @@ return [
|
|||||||
'price' => "기본가",
|
'price' => "기본가",
|
||||||
'used' => "사용갯수",
|
'used' => "사용갯수",
|
||||||
'stock' => "재고",
|
'stock' => "재고",
|
||||||
'format' => "포맷",
|
'format' => "포맷대기",
|
||||||
'status' => "상태",
|
'status' => "상태",
|
||||||
'updated_at' => "수정일",
|
'updated_at' => "수정일",
|
||||||
'created_at' => "작성일",
|
'created_at' => "작성일",
|
||||||
|
|||||||
@ -105,7 +105,7 @@ class ServiceService extends CustomerService
|
|||||||
return $date->format('Y-m-d');
|
return $date->format('Y-m-d');
|
||||||
}
|
}
|
||||||
// 서비스금액관련처리
|
// 서비스금액관련처리
|
||||||
private function getCalculatedAmount(int $rack_price, int $line_price, int $sale_price, $serverinfo_uid): int
|
private function getCalculatedAmount(int $rack_price, int $line_price, int $sale_price, int $serverinfo_uid): int
|
||||||
{
|
{
|
||||||
//총 서비스금액 구하기
|
//총 서비스금액 구하기
|
||||||
$server_amount = service('equipment_serverservice')->getCalculatedAmount($serverinfo_uid);
|
$server_amount = service('equipment_serverservice')->getCalculatedAmount($serverinfo_uid);
|
||||||
@ -150,9 +150,12 @@ class ServiceService extends CustomerService
|
|||||||
}
|
}
|
||||||
protected function create_process(array $formDatas): ServiceEntity
|
protected function create_process(array $formDatas): ServiceEntity
|
||||||
{
|
{
|
||||||
|
if (empty($formDatas['serverinfo_uid'])) {
|
||||||
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 서버가 지정되지 않았습니다.");
|
||||||
|
}
|
||||||
//생성폼에는 없는 필수항목 지정용(code)
|
//생성폼에는 없는 필수항목 지정용(code)
|
||||||
$formDatas['code'] = $formDatas['site'] . "_s" . uniqid();
|
$formDatas['code'] = $formDatas['site'] . "_s" . uniqid();
|
||||||
//총서비스금액
|
//정의된 서버로 서비스금액 계산
|
||||||
$formDatas['amount'] = $this->getCalculatedAmount($formDatas['rack'], $formDatas['line'], $formDatas['sale'], $formDatas['serverinfo_uid']);
|
$formDatas['amount'] = $this->getCalculatedAmount($formDatas['rack'], $formDatas['line'], $formDatas['sale'], $formDatas['serverinfo_uid']);
|
||||||
//서비스 생성
|
//서비스 생성
|
||||||
$entity = parent::create_process($formDatas);
|
$entity = parent::create_process($formDatas);
|
||||||
@ -171,22 +174,19 @@ class ServiceService extends CustomerService
|
|||||||
{
|
{
|
||||||
//변경전 정보
|
//변경전 정보
|
||||||
$oldEntity = clone $entity;
|
$oldEntity = clone $entity;
|
||||||
|
//수정폼에는 없는 필수항목 지정용(code)
|
||||||
//수정폼에는 없는 필수항목 지정용(code,amount)
|
|
||||||
$formDatas['code'] = $entity->getCode();
|
$formDatas['code'] = $entity->getCode();
|
||||||
$formDatas['amount'] = $entity->getAmount();
|
//정의된 서버로 서비스금액 계산
|
||||||
|
$formDatas['amount'] = $this->getCalculatedAmount($formDatas['rack'], $formDatas['line'], $formDatas['sale'], $formDatas['serverinfo_uid']);
|
||||||
//서비스 수정
|
//서비스 수정
|
||||||
$entity = parent::modify_process($entity, $formDatas);
|
$entity = parent::modify_process($entity, $formDatas);
|
||||||
if (!$entity instanceof ServiceEntity) {
|
if (!$entity instanceof ServiceEntity) {
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생:Return Type은 ServiceEntity만 가능");
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생:Return Type은 ServiceEntity만 가능");
|
||||||
}
|
}
|
||||||
//신규 서비스 서버의 비용으로 재계산 서비스 금액 설정
|
|
||||||
$entity = $this->updateAmount($entity);
|
|
||||||
//기존 서비스용 결제비용 과 신규 서버스용으로 결제비용이 다르면 수정
|
//기존 서비스용 결제비용 과 신규 서버스용으로 결제비용이 다르면 수정
|
||||||
service('paymentservice')->modifyByService($oldEntity, $entity);
|
service('paymentservice')->modifyByService($oldEntity, $entity);
|
||||||
//서버정보 연결 신규서버로 변경
|
//서버정보 연결 신규서버로 변경
|
||||||
if ($oldEntity->getServerInfoUid() !== $entity->getServerInfoUid()) {
|
if ($oldEntity->getServerInfoUid() !== $entity->getServerInfoUid()) {
|
||||||
// throw new RuntimeException("{$oldEntity->getServerInfoUid()} !== {$entity->getServerInfoUid()}");
|
|
||||||
service('equipment_serverservice')->modifyByService($oldEntity, $entity);
|
service('equipment_serverservice')->modifyByService($oldEntity, $entity);
|
||||||
}
|
}
|
||||||
return $entity;
|
return $entity;
|
||||||
|
|||||||
@ -75,15 +75,19 @@ class ServerPartService extends EquipmentService
|
|||||||
}
|
}
|
||||||
private function getFormDatasForServerPart(array $formDatas): array
|
private function getFormDatasForServerPart(array $formDatas): array
|
||||||
{
|
{
|
||||||
if (!array_key_exists('serverinfo_uid', $formDatas)) {
|
if (empty($formDatas['serverinfo_uid'])) {
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 서버번호가 지정되지 않았습니다.");
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 서버번호가 지정되지 않았습니다.");
|
||||||
}
|
}
|
||||||
if (!array_key_exists('type', $formDatas)) {
|
if (empty($formDatas['type'])) {
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 부품형식이 지정되지 않았습니다.");
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 부품형식이 지정되지 않았습니다.");
|
||||||
}
|
}
|
||||||
if (!array_key_exists('billing', $formDatas)) {
|
if (empty($formDatas['billing'])) {
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 청구방법이 지정되지 않았습니다.");
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 청구방법이 지정되지 않았습니다.");
|
||||||
}
|
}
|
||||||
|
// 키가 없거나(Undefined), null, '', 0, false 중 하나라도 해당되면 실행
|
||||||
|
if (empty($formDatas['part_uid'])) {
|
||||||
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: 파트번호가 지정되지 않았습니다.");
|
||||||
|
}
|
||||||
//서버정보 가져오기
|
//서버정보 가져오기
|
||||||
$serverEntity = service('equipment_serverservice')->getEntity($formDatas['serverinfo_uid']);
|
$serverEntity = service('equipment_serverservice')->getEntity($formDatas['serverinfo_uid']);
|
||||||
if (!$serverEntity instanceof ServerEntity) {
|
if (!$serverEntity instanceof ServerEntity) {
|
||||||
|
|||||||
@ -232,9 +232,9 @@ class ServerService extends EquipmentService
|
|||||||
if (!$entity instanceof ServerEntity) {
|
if (!$entity instanceof ServerEntity) {
|
||||||
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: {$serviceEntity->getServerInfoUid()}에 해당하는 서비스의 신규 메인 서버정보을 찾을수 없습니다.");
|
throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: {$serviceEntity->getServerInfoUid()}에 해당하는 서비스의 신규 메인 서버정보을 찾을수 없습니다.");
|
||||||
}
|
}
|
||||||
//신규 메인서버는 기존 메인서버의 타입으로 설정 식뉴규서버는 메인서버로 추가
|
//신규 메인서버는 기존 메인서버의 서버타입을 전달받아 설정 메인서버로 추가
|
||||||
$this->attatchToService($serviceEntity, $entity->getPK(), ['type' => $oldEntity->getType()]);
|
$this->attatchToService($serviceEntity, $entity->getPK(), ['type' => $oldEntity->getType()]);
|
||||||
//기존서버는 대체서버로 변경
|
//기존서버는 대체서버로 변경 대체서버로 유지시킴
|
||||||
parent::modify_process($oldEntity, ['type' => 'alternative']);
|
parent::modify_process($oldEntity, ['type' => 'alternative']);
|
||||||
}
|
}
|
||||||
//해지처리
|
//해지처리
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user