package functions import ( "time" "git.x2erp.com/qdy/go-base/ctx" "git.x2erp.com/qdy/go-base/types" "git.x2erp.com/qdy/go-db/factory/rabbitmq" ) // CreateExchange 创建交换机 func CreateExchange(rabbitFactory *rabbitmq.RabbitMQFactory, req types.ExchangeRequest, reqCtx *ctx.RequestContext) *types.QueryResult { // 设置默认值 if req.ChannelName == "" { req.ChannelName = "default" } if req.ExchangeType == "" { req.ExchangeType = "direct" } // 确保通道存在 _, err := rabbitFactory.CreateChannel(req.ChannelName) if err != nil { return &types.QueryResult{ Success: false, Error: "Failed to create channel: " + err.Error(), Time: time.Now().Format(time.RFC3339), } } // 创建交换机 err = rabbitFactory.AddExchange( req.ChannelName, req.ExchangeName, req.ExchangeType, req.Durable, ) if err != nil { return &types.QueryResult{ Success: false, Error: "Failed to create exchange: " + err.Error(), Time: time.Now().Format(time.RFC3339), } } return &types.QueryResult{ Success: true, Message: "Exchange created successfully", Time: time.Now().Format(time.RFC3339), Data: map[string]interface{}{ "exchange_name": req.ExchangeName, "exchange_type": req.ExchangeType, "durable": req.Durable, "channel": req.ChannelName, }, } }