52 lines
2.1 KiB
PHP
52 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Payment;
|
|
|
|
use App\Entities\Customer\ServiceEntity;
|
|
use App\Entities\PaymentEntity;
|
|
use App\Interfaces\Customer\ServiceInterface;
|
|
use App\Services\PaymentService;
|
|
|
|
class Service extends PaymentService 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->create($this->action_process($serviceEntity));
|
|
//서비스정보 Entity에 결제정보 설정
|
|
return $serviceEntity->setPaymentEntity($entity);
|
|
}
|
|
public function modifyService(ServiceEntity $serviceEntity): ServiceEntity
|
|
{
|
|
//미납상태의 결제정보 가져오기
|
|
$entity = $this->getEntity(['serviceinfo_uid' => $serviceEntity->getPK(), 'status' => STATUS['UNPAID']]);
|
|
if (!$entity instanceof PaymentEntity) {
|
|
throw new \Exception(__METHOD__ . "에서 오류발생: {$serviceEntity->getPK()}에 해당하는 결제정보를 찾을수 없습니다.");
|
|
}
|
|
//필수정보처리 후 결제정보수정
|
|
$entity = $this->modify($entity, $this->action_process($serviceEntity));
|
|
//서비스정보 Entity에 결제정보 설정
|
|
return $serviceEntity->setPaymentEntity($entity);
|
|
}
|
|
public function deleteService(ServiceEntity $serviceEntity): ServiceEntity
|
|
{
|
|
//삭제시에는 아무것도 하지 않는다.
|
|
return $serviceEntity;
|
|
}
|
|
}
|