Files
bl/modules/config/model/tower_110.go
昔念 e5c75f7359
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
1
2026-02-13 22:57:05 +08:00

103 lines
3.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package model
import (
"blazing/cool"
)
// -------------------------- 表名常量定义(统一管理所有塔配置表名)--------------------------
const (
TableNamedARKTowerConfig = "config_tower_110" // 勇者之塔110配置表
TableNameTrialTowerConfig = "config_tower_500" // 试炼之塔500配置表
TableNameBraveTowerConfig = "config_tower_600" // 勇者之塔600配置表
)
// -------------------------- 核心基类:所有塔配置的通用结构 --------------------------
type BaseTowerConfig struct {
*BaseConfig
Name string `gorm:"size:32;default:'';comment:'塔层名称'" json:"name" description:"塔层名称"`
// ItemGift []ItemGift `orm:"with:item_id=id"`
// 核心必填字段(所有塔类型通用)
TowerLevel uint32 `gorm:"not null;default:0;uniqueIndex;comment:'塔层数(唯一标识每层配置)'" json:"tower_level" description:"塔层数"`
BossIds []uint32 `gorm:"not null;type:json;default:'[]';comment:'绑定BOSS ID数组关联config_pet_boss表主键'" json:"boss_ids" description:"绑定BOSS数组"`
TaskIds []uint32 `gorm:"not null;type:json;default:'[]';comment:'绑定任务ID数组关联config_task表主键'" json:"task_ids" description:"绑定任务数组"`
}
// NewBaseTowerConfig 创建基础塔配置实例(所有塔类型共用)
func NewBaseTowerConfig() *BaseTowerConfig {
return &BaseTowerConfig{
BaseConfig: NewBaseConfig(),
}
}
// -------------------------- 各塔类型专属配置模型(无额外字段,仅绑定不同表名)--------------------------
// Tower110Config 勇者之塔110配置模型
type Tower110Config struct {
*BaseTowerConfig
}
// Tower500Config 试炼之塔500配置模型
type Tower500Config struct {
*BaseTowerConfig
}
// Tower600Config 勇者之塔600配置模型
type Tower600Config struct {
*BaseTowerConfig
}
// -------------------------- 各塔模型的核心配套方法(统一规范)--------------------------
// ===== Tower110Config 专属方法 =====
func (*Tower110Config) TableName() string {
return TableNamedARKTowerConfig
}
func (*Tower110Config) GroupName() string {
return "default"
}
func New110TowerConfig() *Tower110Config {
return &Tower110Config{
BaseTowerConfig: NewBaseTowerConfig(),
}
}
// ===== Tower500Config 专属方法 =====
func (*Tower500Config) TableName() string {
return TableNameTrialTowerConfig
}
func (*Tower500Config) GroupName() string {
return "default"
}
func New500TowerConfig() *Tower500Config {
return &Tower500Config{
BaseTowerConfig: NewBaseTowerConfig(),
}
}
// ===== Tower600Config 专属方法 =====
func (*Tower600Config) TableName() string {
return TableNameBraveTowerConfig
}
func (*Tower600Config) GroupName() string {
return "default"
}
func New600TowerConfig() *Tower600Config {
return &Tower600Config{
BaseTowerConfig: NewBaseTowerConfig(),
}
}
// -------------------------- 表结构自动同步(初始化所有塔配置表)--------------------------
func init() {
// 依次创建所有塔配置表,保持原有自动同步逻辑
cool.CreateTable(&Tower110Config{})
cool.CreateTable(&Tower500Config{})
cool.CreateTable(&Tower600Config{})
}