Explorar o código

feat(service): 更新 GameShield 服务配置并添加 MongoDB 支持- 将 GameShield 服务中的 gateway_group_id 从 4 修改为 2
- 添加 MongoDB 数据库连接配置
- 在 Repository 结构中集成 MongoDB 客户端
- 更新 wire 配置,添加 MongoDB 初始化

fusu hai 2 meses
pai
achega
cb9a3b2b28

+ 1 - 0
cmd/server/wire/wire.go

@@ -23,6 +23,7 @@ import (
 var repositorySet = wire.NewSet(
 	repository.NewDB,
 	//repository.NewRedis,
+	repository.NewMongoDB,
 	repository.NewRepository,
 	repository.NewTransaction,
 	repository.NewUserRepository,

+ 3 - 2
cmd/server/wire/wire_gen.go

@@ -31,7 +31,8 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 	handlerFunc := middleware.NewRateLimitMiddleware(limiterLimiter)
 	handlerHandler := handler.NewHandler(logger)
 	db := repository.NewDB(viperViper, logger)
-	repositoryRepository := repository.NewRepository(logger, db)
+	mongoDB := repository.NewMongoDB(viperViper)
+	repositoryRepository := repository.NewRepository(logger, db, mongoDB)
 	transaction := repository.NewTransaction(repositoryRepository)
 	sidSid := sid.NewSid()
 	serviceService := service.NewService(transaction, logger, sidSid, jwtJWT)
@@ -91,7 +92,7 @@ func NewWire(viperViper *viper.Viper, logger *log.Logger) (*app.App, func(), err
 
 // wire.go:
 
-var repositorySet = wire.NewSet(repository.NewDB, repository.NewRepository, repository.NewTransaction, repository.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldPublicIpRepository, repository.NewWebForwardingRepository, repository.NewTcpforwardingRepository, repository.NewUdpForWardingRepository, repository.NewGameShieldUserIpRepository, repository.NewWebLimitRepository, repository.NewTcpLimitRepository, repository.NewUdpLimitRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldSdkIpRepository, repository.NewHostRepository, repository.NewGlobalLimitRepository, repository.NewGatewayGroupRepository)
+var repositorySet = wire.NewSet(repository.NewDB, repository.NewMongoDB, repository.NewRepository, repository.NewTransaction, repository.NewUserRepository, repository.NewGameShieldRepository, repository.NewGameShieldPublicIpRepository, repository.NewWebForwardingRepository, repository.NewTcpforwardingRepository, repository.NewUdpForWardingRepository, repository.NewGameShieldUserIpRepository, repository.NewWebLimitRepository, repository.NewTcpLimitRepository, repository.NewUdpLimitRepository, repository.NewGameShieldBackendRepository, repository.NewGameShieldSdkIpRepository, repository.NewHostRepository, repository.NewGlobalLimitRepository, repository.NewGatewayGroupRepository)
 
 var serviceSet = wire.NewSet(service.NewService, service.NewUserService, service.NewGameShieldService, service.NewCrawlerService, service.NewGameShieldPublicIpService, service.NewDuedateService, service.NewFormatterService, service.NewParserService, service.NewRequiredService, service.NewWebForwardingService, service.NewTcpforwardingService, service.NewUdpForWardingService, service.NewGameShieldUserIpService, service.NewWebLimitService, service.NewTcpLimitService, service.NewUdpLimitService, service.NewGameShieldBackendService, service.NewGameShieldSdkIpService, service.NewHostService, service.NewGlobalLimitService, service.NewGatewayGroupService, service.NewWafFormatterService)
 

+ 3 - 3
config/prod.yml

@@ -22,10 +22,10 @@ data:
   #      driver: postgres
   #      dsn: host=localhost user=gorm password=gorm dbname=gorm port=9920 sslmode=disable TimeZone=Asia/Shanghai
   mongodb:
-    uri: "mongodb://mongodb:27017"
+    uri: "mongodb://nunuUser:61cba0aauim0zituxxgyd0zr@110.42.96.15:27017"
     database: "nunu"
-    timeout: 10s
-    max_pool_size: 100
+    timeout: 10s  # 连接超时时间
+    max_pool_size: 100  # 连接池大小
   redis:
     addr: 127.0.0.1:6350
     password: ""

+ 3 - 3
internal/repository/repository.go

@@ -21,7 +21,7 @@ const ctxTxKey = "TxKey"
 type Repository struct {
 	db *gorm.DB
 	//rdb    *redis.Client
-	//mongodb *mongo.MongoDB
+	mongodb *mongo.MongoDB
 	logger *log.Logger
 }
 
@@ -29,12 +29,12 @@ func NewRepository(
 	logger *log.Logger,
 	db *gorm.DB,
 	// rdb *redis.Client,
-	//mongodb *mongo.MongoDB,
+	mongodb *mongo.MongoDB,
 ) *Repository {
 	return &Repository{
 		db: db,
 		//rdb:    rdb,
-		//mongodb: mongodb,
+		mongodb: mongodb,
 		logger: logger,
 	}
 }

+ 1 - 1
internal/service/gameshield.go

@@ -78,7 +78,7 @@ func (service *gameShieldService) SubmitGameShield(ctx context.Context, req *v1.
 	dunName := strconv.Itoa(req.Uid) + "_hostId" + strconv.Itoa(req.HostId) + "_" + req.Domain
 	formData := map[string]interface{}{
 		"app_name":         dunName,
-		"gateway_group_id": 4,
+		"gateway_group_id": 2,
 		"backend":          "{}",
 		"expired_at":       "",
 		"max_device_count": 0,

+ 3 - 1
internal/service/gameshieldbackend.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"fmt"
 	"github.com/AlekSi/pointer"
+	"github.com/davecgh/go-spew/spew"
 	v1 "github.com/go-nunu/nunu-layout-advanced/api/v1"
 	"github.com/go-nunu/nunu-layout-advanced/internal/model"
 	"github.com/go-nunu/nunu-layout-advanced/internal/repository"
@@ -119,6 +120,7 @@ func (s *gameShieldBackendService) GameShieldBackend(ctx context.Context, req *v
 	}
 	tokenUrl := s.Url + "admin/info/rule/edit?&__goadmin_edit_pk=" + strconv.Itoa(require.RuleId) + "_" + require.DunName
 	tokens, err := s.crawlerService.GetFormTokens(ctx, tokenUrl, require.Cookie)
+	spew.Dump(tokens)
 	if err != nil {
 		return "", 0, err
 	}
@@ -128,7 +130,7 @@ func (s *gameShieldBackendService) GameShieldBackend(ctx context.Context, req *v
 	}
 	formData := map[string]interface{}{
 		"app_name":             require.DunName,
-		"gateway_group_id":     4,
+		"gateway_group_id":     2,
 		"backend":              require.Backend,
 		"rule_id":              require.RuleId,
 		"expired_at":           require.ExpiredAt,