merge transactions and update
This commit is contained in:
@@ -22,9 +22,10 @@ type RabbitMQServer struct {
|
||||
cancel context.CancelFunc
|
||||
|
||||
// 消息处理回调函数
|
||||
OnTopupMsg func(message.TopupMsg_req) // 充值请求回调
|
||||
OnWithdrawMsg func(message.WithdrawMsg_req) // 提现请求回调
|
||||
OnPayMsg func(message.PayMsg_req) // 支付请求回调
|
||||
OnTopupMsg func(message.TopupMsg_req) // 充值请求回调
|
||||
OnWithdrawMsg func(message.WithdrawMsg_req) // 提现请求回调
|
||||
OnPayMsg func(message.PayMsg_req) // 支付请求回调
|
||||
OnRemoveMsg func(message.RemoveListenMsg_req) // 删除充值监听回调
|
||||
}
|
||||
|
||||
// NewRabbitMQServer 创建 RabbitMQ 服务
|
||||
@@ -68,9 +69,11 @@ func (r *RabbitMQServer) setupQueuesAndExchanges() error {
|
||||
r.config.PayConfig,
|
||||
r.config.TopUpConfig,
|
||||
r.config.WithdrawConfig,
|
||||
r.config.RemoveConfig,
|
||||
r.config.PayRespConfig,
|
||||
r.config.TopUpRespConfig,
|
||||
r.config.WithdrawRespConfig,
|
||||
r.config.RemoveRespConfig,
|
||||
}
|
||||
|
||||
for _, cfg := range configs {
|
||||
@@ -131,6 +134,8 @@ func (r *RabbitMQServer) Start() error {
|
||||
go r.consumeWithdraw()
|
||||
// 启动支付消息监听
|
||||
go r.consumePay()
|
||||
// 启动删除充值监听
|
||||
go r.consumeRemove()
|
||||
|
||||
// log.Println("🚀 RabbitMQ 服务启动成功,开始监听消息...")
|
||||
return nil
|
||||
@@ -188,8 +193,8 @@ func (r *RabbitMQServer) consumePay() {
|
||||
if err := json.Unmarshal(body, &msg); err != nil {
|
||||
return fmt.Errorf("failed to parse pay message: %w", err)
|
||||
}
|
||||
log.Printf("📥 [RMQ] 收到支付请求: QueueId=%s, OrderId=%s, From=%s, To=%s, Amount=%.2f %s",
|
||||
msg.QueueId, msg.OrderId, msg.FromAddress, msg.ToAddress, msg.Amount, msg.Symbol)
|
||||
log.Printf("📥 [RMQ] 收到支付请求: QueueId=%s, From=%s, Chain=%s, Symbol=%s, TxCount=%d",
|
||||
msg.QueueId, msg.FromAddress, msg.Chain, msg.Symbol, len(msg.Trasnactions))
|
||||
|
||||
if r.OnPayMsg != nil {
|
||||
r.OnPayMsg(msg)
|
||||
@@ -199,6 +204,26 @@ func (r *RabbitMQServer) consumePay() {
|
||||
)
|
||||
}
|
||||
|
||||
// consumeRemove 消费删除充值监听消息
|
||||
func (r *RabbitMQServer) consumeRemove() {
|
||||
r.consumeQueue(
|
||||
r.config.RemoveConfig.QueueName,
|
||||
"remove",
|
||||
func(body []byte) error {
|
||||
var msg message.RemoveListenMsg_req
|
||||
if err := json.Unmarshal(body, &msg); err != nil {
|
||||
return fmt.Errorf("failed to parse remove message: %w", err)
|
||||
}
|
||||
log.Printf("📥 [RMQ] 收到删除充值监听: Chain=%s, Symbol=%s, Address=%s", msg.Chain, msg.Symbol, msg.Address)
|
||||
|
||||
if r.OnRemoveMsg != nil {
|
||||
r.OnRemoveMsg(msg)
|
||||
}
|
||||
return nil
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
// consumeQueue 通用队列消费方法
|
||||
func (r *RabbitMQServer) consumeQueue(queueName, msgType string, handler func([]byte) error) {
|
||||
for {
|
||||
@@ -268,8 +293,16 @@ func (r *RabbitMQServer) PublishPayResp(resp message.PayMsg_resp) error {
|
||||
return r.publishMessage(
|
||||
r.config.PayRespConfig,
|
||||
resp,
|
||||
fmt.Sprintf("支付响应: QueueId=%s, OrderId=%s, Status=%d, TxHash=%s",
|
||||
resp.QueueId, resp.OrderId, resp.Status, resp.TxHash),
|
||||
"支付响应",
|
||||
)
|
||||
}
|
||||
|
||||
// PublishRemoveResp 发布删除充值监听响应
|
||||
func (r *RabbitMQServer) PublishRemoveResp(resp message.RemoveListenMsg_resp) error {
|
||||
return r.publishMessage(
|
||||
r.config.RemoveRespConfig,
|
||||
resp,
|
||||
fmt.Sprintf("删除充值监听响应: Address=%s, Status=%d", resp.Address, resp.Status),
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user