log->error('RefundOrderConsumer:error:NoData:'.json_encode($data)); return Result::ACK; } try { $service = match ($data['type']) { RefundCode::FULL_GOOD_REFUND => new FullRefundOrderService(), // RefundCode::PARTIAL_GOOD_REFUND => new PartialRefundOrderService(), RefundCode::PARTIAL_GOOD_REFUND => throw new Exception('部分退款直接调用后台退款接口'), // RefundCode::BALANCE_REFUND => $service = new RefundService(), }; $service->orderId = (int)$data['order_id']; $service->reason = $data['reason']; $service->type = $data['type']; $service->adminId = $data['admin_id'] ?? 0; $service->handle(); } catch (Exception $e) { $this->log->error('RefundOrderConsumer:error:'.$e->getMessage().':data:'.json_encode($data)); } return Result::ACK; } }