| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 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,
- },
- }
- }
|