114 lines
1.9 KiB
PHP
114 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Service\Amqp\Refund;
|
|
|
|
use App\Constants\Common\OrderCode;
|
|
use App\Model\Order;
|
|
use App\Model\PayOrder;
|
|
use Exception;
|
|
use Hyperf\Di\Annotation\Inject;
|
|
|
|
class RefundBaseService
|
|
{
|
|
/**
|
|
* @var int
|
|
*/
|
|
public int $orderId;
|
|
|
|
/**
|
|
* @var int
|
|
*/
|
|
protected int $type;
|
|
|
|
/**
|
|
* @var PayOrder
|
|
*/
|
|
#[Inject]
|
|
protected PayOrder $payOrderModel;
|
|
|
|
/**
|
|
* @var Order
|
|
*/
|
|
#[Inject]
|
|
protected Order $orderModel;
|
|
|
|
|
|
/**
|
|
* @var mixed
|
|
*/
|
|
protected mixed $payInfo;
|
|
|
|
/**
|
|
* @var mixed
|
|
*/
|
|
protected mixed $orderInfo;
|
|
|
|
/**
|
|
* @var float
|
|
*/
|
|
protected float $refundAmount;
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
protected function getPayOrder()
|
|
{
|
|
$this->payInfo = $this->payOrderModel->getInfoByOrderIdAndType($this->orderId, $this->type);
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
protected function getOrderInfo()
|
|
{
|
|
$this->orderInfo = match ($this->type) {
|
|
OrderCode::ORDER_TYPE_GOOD => $this->orderModel->getInfoById($this->orderId),
|
|
default => null,
|
|
};
|
|
}
|
|
|
|
protected function getAllRefundByOrderId()
|
|
{
|
|
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
* @throws Exception
|
|
*/
|
|
protected function checkInfo()
|
|
{
|
|
if (!$this->payInfo || !$this->orderInfo) {
|
|
throw new Exception('订单信息不存在');
|
|
}
|
|
}
|
|
|
|
protected function getUser()
|
|
{
|
|
//todo 获取用户信息
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
*/
|
|
protected function getRefundAmount(): void
|
|
{
|
|
//todo 等于支付金额 减去 已退款金额
|
|
$this->refundAmount = 0;
|
|
}
|
|
|
|
protected function insertRefund()
|
|
{
|
|
//todo 写入退款记录
|
|
}
|
|
|
|
protected function updateOrderInfo()
|
|
{
|
|
//todo 更新订单信息
|
|
}
|
|
|
|
protected function refund()
|
|
{
|
|
//todo 退款 参考调起支付
|
|
}
|
|
} |