first commit
This commit is contained in:
148
app/Core/Service/ManualPaymentMailService.php
Normal file
148
app/Core/Service/ManualPaymentMailService.php
Normal file
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
|
||||
namespace App\Core\Service;
|
||||
|
||||
|
||||
use App\Core\Service\PropertyPaymentService;
|
||||
use App\Exceptions\ApiErrorException;
|
||||
use Illuminate\Mail\Mailer ;
|
||||
use App\Core\Mail\ManualPaymentMail;
|
||||
use \App\Core\Service\PropertyService;
|
||||
|
||||
|
||||
use Illuminate\Support\Facades\Config;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Exception;
|
||||
|
||||
|
||||
|
||||
class ManualPaymentMailService
|
||||
{
|
||||
private $propertyPaymentService;
|
||||
private $mailer ;
|
||||
private $propertyService;
|
||||
|
||||
|
||||
|
||||
public function __construct(
|
||||
Mailer $mailer,
|
||||
PropertyPaymentService $propertyPaymentService,
|
||||
PropertyService $propertyService
|
||||
)
|
||||
{
|
||||
$this->mailer = $mailer ;
|
||||
$this->propertyService = $propertyService ;
|
||||
$this->propertyPaymentService = $propertyPaymentService;
|
||||
|
||||
}
|
||||
|
||||
public function process ($params = [])
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
|
||||
$paymentDetailParam = [
|
||||
'criteria' => [
|
||||
['field' => 'order_id', 'condition' => '=', 'value' => $params['orderCode']],
|
||||
['field' => 'transaction_type', 'condition' => '=', 'value' => 'LNK'],
|
||||
['field' => 'status', 'condition' => '=', 'value' => 5],
|
||||
],
|
||||
'with' => ['relatedTransactions', 'paymentUser'],
|
||||
'firstRow' => true
|
||||
];
|
||||
|
||||
$paymentDetail = $this->propertyPaymentService->selectPaymentTransaction($paymentDetailParam);
|
||||
|
||||
|
||||
if ($paymentDetail['status'] != 'success' || empty($paymentDetail['data'])) {
|
||||
throw new ApiErrorException(lang('Payment not found'));
|
||||
}
|
||||
|
||||
$payment = $paymentDetail['data'] ;
|
||||
$transactions = collect($payment['related_transactions']) ;
|
||||
$successTransaction = $transactions->where('status' , '=', 1)->first() ;
|
||||
$paymentParams = $payment['paramsArray'];
|
||||
|
||||
if($paymentParams['email']){
|
||||
|
||||
$propertyParam = [
|
||||
'criteria' => [
|
||||
['field' => 'id', 'condition' => '=', 'value' => $payment['property_id']],
|
||||
],
|
||||
'with' => ['propertyBrand', 'propertyContact','propertyExecutive'],
|
||||
'firstRow' => true
|
||||
];
|
||||
|
||||
$getProperty = $this->propertyService->select($propertyParam) ;
|
||||
if ($getProperty['status'] != "success") {
|
||||
throw new ApiErrorException($getProperty['message']);
|
||||
}
|
||||
$property = $getProperty['data'];
|
||||
|
||||
|
||||
$bcc[] = "bd@extranetwork.com";
|
||||
if(isset($payment['payment_user']['email'])){
|
||||
$bcc[] = $payment['payment_user']['email'];
|
||||
}
|
||||
|
||||
$accountExecutives = collect($property['property_executive'])->where('status',1)->where('executive_type_id',1)->pluck('email')->toArray();
|
||||
if(!empty($accountExecutives)) {
|
||||
$bcc = array_merge($bcc,$accountExecutives);
|
||||
}
|
||||
|
||||
$mailData = [
|
||||
'to' => [
|
||||
'email' => $paymentParams['email'],
|
||||
],
|
||||
'bcc' => $bcc
|
||||
|
||||
];
|
||||
|
||||
$hostAddress = Config::get('app.bookingEngineUrl').'/link/'.$payment['order_id'].'/'.$params['language_code'].'/receipt' ;
|
||||
$logo = 'https://www.extranetwork.com/assets/img/logo/logo.png';
|
||||
if(isset($property['property_brand']['logo_name'])){
|
||||
$logo = Config::get('app.imageUrl'). '/property-photos/' . $property['id'] . "/logo/" . $property['property_brand']['logo_name'].'_250x250.'. $property['property_brand']['logo_file_ext'];
|
||||
}
|
||||
|
||||
$mailViewParams = [
|
||||
'property' => $property,
|
||||
'payment_params' => $paymentParams,
|
||||
'success_transaction' => $successTransaction,
|
||||
'amount' => $successTransaction['amount'],
|
||||
'currency' => $successTransaction['currency'],
|
||||
'date_time' => date('d.m.Y H:i', $successTransaction['created_at'] ),
|
||||
'name_surname' => $successTransaction['paramsArray']['creditCard']['name'],
|
||||
'email' => $paymentParams['email'],
|
||||
'process_title' => $paymentParams['title'],
|
||||
'property_name' => $property['name'],
|
||||
'url' => $hostAddress,
|
||||
'logo' => $logo,
|
||||
'language_code' => $params['language_code'],
|
||||
] ;
|
||||
|
||||
$mailParams = [
|
||||
'mailData' => $mailData,
|
||||
'mailViewParams' => $mailViewParams
|
||||
];
|
||||
|
||||
$this->mailer->onQueue(
|
||||
'manualPaymentMail',
|
||||
new ManualPaymentMail($mailParams)
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
catch ( Exception $e )
|
||||
{
|
||||
$message = $e->getFile()." ".$e->getLine()." ".$e->getMessage();
|
||||
Log::error($message);
|
||||
return output( ['status' => -1, 'message' => $e->getMessage()] );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user