dbmsv2/app/Services/Customer/Service/PaymentService.php
2025-09-25 15:34:52 +09:00

57 lines
2.2 KiB
PHP

<?php
namespace App\Services\Customer\Service;
use App\Entities\Customer\ServiceEntity;
use App\Entities\PaymentEntity;
use App\Services\PaymentService as ParentService;
use App\Interfaces\Customer\ServiceInterface;
class PaymentService extends ParentService implements ServiceInterface
{
public function __construct()
{
parent::__construct();
}
private function action_process(ServiceEntity $serviceEntity, array $formDatas = []): array
{
$formDatas['clientinfo_uid'] = $serviceEntity->getClientInfoUID();
$formDatas['serviceinfo_uid'] = $serviceEntity->getPK();
$formDatas['serverinfo_uid'] = $serviceEntity->getServerInfoUID();
$formDatas['title'] = $serviceEntity->getServerEntity()->getTitle();
$formDatas['amount'] = $serviceEntity->getAmount();
$formDatas['billing'] = PAYMENT['BILLING']['MONTH'];
$formDatas['billing_at'] = $serviceEntity->getBillingAt();
return $formDatas;
}
public function createService(ServiceEntity $serviceEntity): ServiceEntity
{
//필수정보처리 후 결제정보등록
$entity = $this->getModel()->create($this->action_process($serviceEntity));
//서비스정보 Entity에 결제정보 설정
return $serviceEntity->setPaymentEntity($entity);
}
public function modifyService(ServiceEntity $serviceEntity): ServiceEntity
{
//결제정보 가져오기
$entity = $serviceEntity->getPaymentEntity();
if (!$entity instanceof PaymentEntity) {
throw new \Exception(__METHOD__ . "에서 오류발생: 서비스정보[{$serviceEntity->getPK()}]에 해당하는 결제정보를 찾을수 없습니다.");
}
//미납상태확인
if ($entity->getStatus() !== STATUS['UNPAID']) {
throw new \Exception(__METHOD__ . "에서 오류발생: 완료된 결제는 수정이 불가합니다.");
}
//필수정보처리 후 결제정보수정
$entity = $this->getModel()->modify($entity, $this->action_process($serviceEntity));
//서비스정보 Entity에 결제정보 설정
return $serviceEntity->setPaymentEntity($entity);
}
public function deleteService(ServiceEntity $serviceEntity): ServiceEntity
{
//삭제시에는 아무것도 하지 않는다.
return $serviceEntity;
}
}