Files
bl/modules/config/model/tower_110.go
昔念 026689f3ed ```
feat(cache): 添加复合键缓存操作支持

添加了基于 uint32+string 组合键的缓存操作方法,包括
GetByCompoundKey、SetByCompoundKey、DelByCompoundKey 和
ContainsByCompoundKey 方法,用于处理用户ID和会话ID的组合缓存场景

fix(vscode): 添加 cSpell 配置支持 struc 词汇

refactor(session): 移除过时的会话管理方法

移除了基于单一字符串键的会话管理方法,因为已迁移到使用
复合键的缓存操作方式
```
2026-01-19 18:51:56 +08:00

107 lines
3.4 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 {
*cool.Model `json:"-" gorm:"embedded"` // 嵌入通用ModelID/创建时间/更新时间不参与json序列化
// 核心必填字段(所有塔类型通用)
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:"绑定任务数组"`
// 通用辅助字段(所有塔类型通用)
IsEnabled uint32 `gorm:"not null;default:1;comment:'是否启用该层配置0-禁用 1-启用)'" json:"is_enabled" description:"是否启用"`
Remark string `gorm:"size:512;default:'';comment:'塔层备注'" json:"remark" description:"备注信息"`
// ItemGift []ItemGift `orm:"with:item_id=id"`
}
// NewBaseTowerConfig 创建基础塔配置实例(所有塔类型共用)
func NewBaseTowerConfig() BaseTowerConfig {
return BaseTowerConfig{
Model: cool.NewModel(),
}
}
// -------------------------- 各塔类型专属配置模型(无额外字段,仅绑定不同表名)--------------------------
// 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{})
}