feat(config): 添加服务器调试模式配置和塔配置重构 - 在ServerList结构体中添加IsDebug字段用于调试模式标识 - 修改GetServerInfoList函数增加isdebug参数支持 - 移除硬编码的rpcaddr本地地址配置 - 重构塔配置模型,将tower_500和tower_600合并到tower_110
89 lines
2.3 KiB
Go
89 lines
2.3 KiB
Go
package service
|
||
|
||
import (
|
||
"blazing/cool"
|
||
"blazing/modules/config/model"
|
||
|
||
"github.com/gogf/gf/v2/database/gdb"
|
||
)
|
||
|
||
// 定义塔类型枚举,方便区分不同塔的业务逻辑
|
||
type TowerType uint32
|
||
|
||
const (
|
||
TowerType110 TowerType = 110 // 110塔
|
||
TowerType500 TowerType = 500 // 500塔
|
||
TowerType600 TowerType = 600 // 600塔
|
||
)
|
||
|
||
// TowerService 统一的塔配置服务,整合110/500/600塔的逻辑
|
||
type TowerService struct {
|
||
*cool.Service
|
||
towerType TowerType // 标记当前服务对应的塔类型
|
||
}
|
||
|
||
// NewTowerService 创建指定类型的塔配置服务
|
||
func NewTowerService(towerType TowerType) *TowerService {
|
||
// 根据塔类型初始化对应的Model
|
||
var modelInstance cool.IModel
|
||
switch towerType {
|
||
case TowerType110:
|
||
modelInstance = model.New110TowerConfig()
|
||
case TowerType500:
|
||
modelInstance = model.New500TowerConfig()
|
||
case TowerType600:
|
||
modelInstance = model.New600TowerConfig()
|
||
default:
|
||
panic("unsupported tower type: " + string(rune(towerType))) // 非支持类型直接panic,也可返回error
|
||
}
|
||
|
||
return &TowerService{
|
||
Service: &cool.Service{Model: modelInstance},
|
||
towerType: towerType,
|
||
}
|
||
}
|
||
|
||
// Boss 根据塔等级获取对应的Boss配置(统一入口)
|
||
func (s *TowerService) Boss(towerLevel uint32) *model.BaseTowerConfig {
|
||
// 构建基础查询条件
|
||
query := cool.DBM(s.Model).Where("tower_level = ?", towerLevel)
|
||
|
||
// 根据塔类型处理不同的配置结构体和缓存逻辑
|
||
switch s.towerType {
|
||
case TowerType110:
|
||
var config model.Tower110Config
|
||
query.Scan(&config)
|
||
return &config.BaseTowerConfig
|
||
|
||
case TowerType500:
|
||
var config model.Tower500Config
|
||
query.Scan(&config)
|
||
return &config.BaseTowerConfig
|
||
|
||
case TowerType600:
|
||
var config model.Tower600Config
|
||
// 600塔专属的缓存配置
|
||
query.Cache(gdb.CacheOption{
|
||
// Duration: time.Hour, // 可根据需要开启缓存时长
|
||
Force: false,
|
||
}).Scan(&config)
|
||
return &config.BaseTowerConfig
|
||
|
||
default:
|
||
return nil // 非支持类型返回nil,也可根据业务需求调整
|
||
}
|
||
}
|
||
|
||
// 兼容原有调用方式的快捷构造函数(可选,保证代码平滑迁移)
|
||
func NewTower110Service() *TowerService {
|
||
return NewTowerService(TowerType110)
|
||
}
|
||
|
||
func NewTower500Service() *TowerService {
|
||
return NewTowerService(TowerType500)
|
||
}
|
||
|
||
func NewTower600Service() *TowerService {
|
||
return NewTowerService(TowerType600)
|
||
}
|