2026-01-08 23:57:22 +08:00
|
|
|
package service
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"blazing/cool"
|
|
|
|
|
"blazing/modules/config/model"
|
|
|
|
|
|
|
|
|
|
"github.com/gogf/gf/v2/database/gdb"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type TowerType uint32
|
|
|
|
|
|
|
|
|
|
const (
|
2026-04-01 02:48:09 +08:00
|
|
|
TowerType1 TowerType = 1
|
|
|
|
|
TowerType110 TowerType = 110
|
|
|
|
|
TowerType500 TowerType = 500
|
|
|
|
|
TowerType600 TowerType = 600
|
2026-01-08 23:57:22 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type TowerService struct {
|
|
|
|
|
*cool.Service
|
2026-04-01 02:48:09 +08:00
|
|
|
towerType TowerType
|
|
|
|
|
tableName string
|
2026-01-08 23:57:22 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewTowerService(towerType TowerType) *TowerService {
|
2026-01-09 00:43:06 +08:00
|
|
|
var tableName string
|
2026-04-01 02:48:09 +08:00
|
|
|
|
2026-01-08 23:57:22 +08:00
|
|
|
switch towerType {
|
2026-04-01 02:48:09 +08:00
|
|
|
case TowerType1:
|
|
|
|
|
tableName = model.TableNameRarePetTowerConfig
|
2026-01-08 23:57:22 +08:00
|
|
|
case TowerType110:
|
2026-01-09 00:43:06 +08:00
|
|
|
tableName = model.TableNamedARKTowerConfig
|
2026-01-08 23:57:22 +08:00
|
|
|
case TowerType500:
|
2026-01-09 00:43:06 +08:00
|
|
|
tableName = model.TableNameTrialTowerConfig
|
2026-01-08 23:57:22 +08:00
|
|
|
case TowerType600:
|
2026-01-09 00:43:06 +08:00
|
|
|
tableName = model.TableNameBraveTowerConfig
|
2026-01-08 23:57:22 +08:00
|
|
|
default:
|
2026-04-01 02:48:09 +08:00
|
|
|
panic("unsupported tower type")
|
2026-01-08 23:57:22 +08:00
|
|
|
}
|
|
|
|
|
|
2026-01-09 00:43:06 +08:00
|
|
|
unifiedModel := &UnifiedTowerModel{
|
|
|
|
|
tableName: tableName,
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-08 23:57:22 +08:00
|
|
|
return &TowerService{
|
2026-01-09 00:43:06 +08:00
|
|
|
Service: &cool.Service{Model: unifiedModel},
|
2026-01-08 23:57:22 +08:00
|
|
|
towerType: towerType,
|
2026-01-09 00:43:06 +08:00
|
|
|
tableName: tableName,
|
2026-01-08 23:57:22 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-09 00:43:06 +08:00
|
|
|
type UnifiedTowerModel struct {
|
2026-02-01 00:39:36 +08:00
|
|
|
*cool.Model
|
|
|
|
|
tableName string
|
2026-01-09 00:43:06 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *UnifiedTowerModel) TableName() string {
|
|
|
|
|
return m.tableName
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (m *UnifiedTowerModel) GroupName() string {
|
|
|
|
|
return "default"
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-25 21:16:36 +08:00
|
|
|
func (s *TowerService) Boss(towerLevel ...uint32) []model.BaseTowerConfig {
|
2026-02-26 01:02:30 +08:00
|
|
|
query := dbm_enable(s.Model).WhereIn("tower_level", towerLevel).OrderAsc("tower_level")
|
2026-01-19 18:51:56 +08:00
|
|
|
|
2026-02-25 21:16:36 +08:00
|
|
|
var config []model.BaseTowerConfig
|
2026-01-19 18:51:56 +08:00
|
|
|
query.Cache(gdb.CacheOption{
|
|
|
|
|
Force: false,
|
|
|
|
|
}).Scan(&config)
|
2026-02-25 21:16:36 +08:00
|
|
|
return config
|
2026-01-08 23:57:22 +08:00
|
|
|
}
|
|
|
|
|
|
2026-04-01 02:48:09 +08:00
|
|
|
func NewTower1Service() *TowerService {
|
|
|
|
|
return NewTowerService(TowerType1)
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-08 23:57:22 +08:00
|
|
|
func NewTower110Service() *TowerService {
|
|
|
|
|
return NewTowerService(TowerType110)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewTower500Service() *TowerService {
|
|
|
|
|
return NewTowerService(TowerType500)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewTower600Service() *TowerService {
|
|
|
|
|
return NewTowerService(TowerType600)
|
2026-01-19 18:51:56 +08:00
|
|
|
}
|