Browse Source

feat(internal/service): 添加获取主机配置限制功能

- 在 GameShieldBackendService 中添加 hostService 依赖- 在 GetGameShieldRequired 函数中增加获取主机配置限制的逻辑
- 将配置限制中的在线设备数量作为 max_device_count 参数提交
fusu 2 months ago
parent
commit
3e2017407b
1 changed files with 8 additions and 1 deletions
  1. 8 1
      internal/service/gameshieldbackend.go

+ 8 - 1
internal/service/gameshieldbackend.go

@@ -33,6 +33,7 @@ func NewGameShieldBackendService(
 	required RequiredService,
 	conf *viper.Viper,
 	shieldService GameShieldService,
+	hostService HostService,
 ) GameShieldBackendService {
 	return &gameShieldBackendService{
 		Service:                     service,
@@ -46,6 +47,7 @@ func NewGameShieldBackendService(
 		required:                    required,
 		Url:                         conf.GetString("crawler.Url"),
 		shieldService:               shieldService,
+		hostService:                 hostService,
 	}
 }
 
@@ -61,6 +63,7 @@ type gameShieldBackendService struct {
 	parser                      ParserService
 	required                    RequiredService
 	shieldService               GameShieldService
+	hostService                 HostService
 }
 
 func (s *gameShieldBackendService) GetGameShieldRequired(ctx context.Context, req *v1.GameShieldBackendArrayRequest) (*v1.GetGameShieldRequiredResponse, int, error) {
@@ -116,13 +119,17 @@ func (s *gameShieldBackendService) GameShieldBackend(ctx context.Context, req *v
 	if err != nil {
 		return "", 0, err
 	}
+	configCount, err := s.hostService.GetGameShieldConfig(ctx, req.HostId)
+	if err != nil {
+		return "", 0, fmt.Errorf("获取配置限制失败: %w", err)
+	}
 	formData := map[string]interface{}{
 		"app_name":             require.DunName,
 		"gateway_group_id":     4,
 		"backend":              require.Backend,
 		"rule_id":              require.RuleId,
 		"expired_at":           require.ExpiredAt,
-		"max_device_count":     0,
+		"max_device_count":     configCount.OnlineDevicesCount,
 		"sdk_args":             "",
 		"__go_admin_previous_": tokens["previous"],
 		"__go_admin_t_":        tokens["t"],