Files
hyperf_service/app/Service/Amqp/Refund/RefundBaseService.php
2025-02-21 19:10:58 +08:00

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 退款 参考调起支付
}
}