feat : refund

This commit is contained in:
2025-02-24 15:30:58 +08:00
parent d0409088a6
commit c14901de4a
7 changed files with 105 additions and 24 deletions

View File

@@ -15,6 +15,8 @@ use Hyperf\Amqp\Annotation\Consumer;
use Hyperf\Amqp\Message\ConsumerMessage;
use Hyperf\Di\Annotation\Inject;
use PhpAmqpLib\Message\AMQPMessage;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
#[Consumer(exchange: 'RefundOrder', routingKey: 'RefundOrder', queue: 'RefundOrder.direct', name: "RefundOrderConsumer", nums: 1)]
class RefundOrderConsumer extends ConsumerMessage
@@ -40,22 +42,29 @@ class RefundOrderConsumer extends ConsumerMessage
protected Order $orderModel;
/**
* @param $data
* @param AMQPMessage $message
* @return Result
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
public function consumeMessage($data, AMQPMessage $message): Result
{
if (!$data['order_id'] || !$data['type'] || !$data['amount']) {
if (!$data['order_id'] || !$data['type'] || !$data['amount'] || !$data['reason']) {
$this->log->error('CancelOrderConsumer:error:NoData:'.json_encode($data));
return Result::ACK;
}
$orderId = (int)$data['order_id'];
$orderType = (int)$data['type'];
$amount = $data['amount'];
try {
$service = new RefundService();
$service->orderId = (int)$data['order_id'];
$service->type = (int)$data['type'];
$service->refundAmount = $data['amount'];
$service->reason = $data['reason'];
$service->handle();
} catch (Exception $e) {
$this->log->error('RefundOrderConsumer:error:'.$e->getMessage().':data:'.json_encode($data));