feat(cache): 添加复合键缓存操作支持

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

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

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

移除了基于单一字符串键的会话管理方法,因为已迁移到使用
复合键的缓存操作方式
```
This commit is contained in:
昔念
2026-01-19 18:51:56 +08:00
parent 08ebf849eb
commit 026689f3ed
120 changed files with 1428 additions and 629 deletions

View File

@@ -5,7 +5,7 @@ import (
)
// 表名常量(遵循现有命名规范)
const TableNamePlayerPetSpecialEffect = "player_pet_special_effect"
const TableNamePlayerPetSpecialEffect = "config_boss_effect"
// PlayerPetSpecialEffect 精灵特效表仅包含XML中指定的4个核心字段
// 对应XML中的<NewSeIdx>节点Idx、Stat、Eid、Args

View File

@@ -5,7 +5,7 @@ import (
)
const (
TableNameBossConfig = "config_pet_boss" // BOSS配置表全量包含基础/奖励/护盾/捕捉/特效/世界野怪/地图费用/战斗通用逻辑)
TableNameBossConfig = "config_boss" // BOSS配置表全量包含基础/奖励/护盾/捕捉/特效/世界野怪/地图费用/战斗通用逻辑)
)
// BossConfig BOSS配置模型覆盖所有补充的配置项GBTL/非VIP费用/首场景/战斗通用逻辑)

View File

@@ -7,26 +7,25 @@ import (
// 表名常量定义CDK配置表
const (
TableNameCDKConfig = "cdk_config" // CDK配置表记录CDK编号、可兑换次数、奖励配置等核心信息
TableNameCDKConfig = "config_gift_cdk" // CDK配置表记录CDK编号、可兑换次数、奖励配置等核心信息
)
// CDKConfig CDK核心配置模型含可兑换次数满足查询`where 可兑换次数 != 0`需求)
type CDKConfig struct {
*cool.Model `json:"-" gorm:"embedded"` // 嵌入通用ModelID/创建时间/更新时间不参与json序列化
*cool.Model
// 核心字段
CDKCode string `gorm:"not null;size:64;uniqueIndex;comment:'CDK编号唯一标识用于玩家兑换'" json:"cdk_code" description:"CDK编号"`
CDKCode string `gorm:"not null;size:16;uniqueIndex;comment:'CDK编号唯一标识用于玩家兑换'" json:"cdk_code" description:"CDK编号"`
//cdk可兑换次数where不等于0
ExchangeRemainCount uint32 `gorm:"not null;default:1;comment:'CDK剩余可兑换次数不能为0才允许兑换支持查询where !=0'" json:"exchange_remain_count" description:"剩余可兑换次数"`
ExchangeRemainCount int64 `gorm:"not null;default:1;comment:'CDK剩余可兑换次数不能为0才允许兑换支持查询where !=0'" json:"exchange_remain_count" description:"剩余可兑换次数"`
ItemRewardIds []uint32 `gorm:"not null;type:json;default:'[]';comment:'绑定奖励物品ID数组关联item_gift表主键'" json:"item_reward_ids" description:"奖励物品数组"`
ElfRewardIds []uint32 `gorm:"not null;type:json;default:'[]';comment:'绑定奖励精灵ID数组关联config_pet_boss表主键'" json:"elf_reward_ids" description:"奖励精灵数组"`
TitleRewardIds uint32 `gorm:"not null;default:0;comment:'绑定奖励称号'" json:"title_reward_ids" description:"绑定奖励称号"`
// 辅助配置字段
ValidStartTime time.Time `gorm:"not null;comment:'CDK有效开始时间'" json:"valid_start_time" description:"有效开始时间"`
ValidEndTime time.Time `gorm:"not null;comment:'CDK有效结束时间'" json:"valid_end_time" description:"有效结束时间"`
IsEnabled uint32 `gorm:"not null;default:1;comment:'是否启用该CDK0-禁用 1-启用)'" json:"is_enabled" description:"是否启用"`
Remark string `gorm:"size:512;default:'';comment:'CDK备注'" json:"remark" description:"备注信息"`
ValidEndTime time.Time `gorm:"not null;comment:'CDK有效结束时间'" json:"valid_end_time" description:"有效结束时间"`
Remark string `gorm:"size:512;default:'';comment:'CDK备注'" json:"remark" description:"备注信息"`
//ItemGift []*ItemGift `gorm:"-" orm:"with:item_id=id"`
}
@@ -41,16 +40,7 @@ func (*CDKConfig) GroupName() string {
func NewCDKConfig() *CDKConfig {
return &CDKConfig{
Model: cool.NewModel(),
CDKCode: "",
ExchangeRemainCount: 1, // 剩余可兑换次数默认1确保不为0
ItemRewardIds: []uint32{},
ElfRewardIds: []uint32{},
ValidStartTime: time.Now(),
ValidEndTime: time.Now().AddDate(1, 0, 0), // 默认有效期1年
IsEnabled: 1,
Remark: "",
Model: cool.NewModel(),
}
}

View File

@@ -3,7 +3,7 @@ package model
import "blazing/cool"
const (
TableNamePetFusionMaterial = "pet_fusion_material" // 宠物融合材料表(子表)
TableNamePetFusionMaterial = "config_fusion_material" // 宠物融合材料表(子表)
)
// PetFusionMaterial 融合材料模型(与配方主表一对一关联)

View File

@@ -5,7 +5,7 @@ import (
)
const (
TableNamePetFusion = "pet_fusion" // 宠物融合配方表(主表)
TableNamePetFusion = "config_fusion_pet" // 宠物融合配方表(主表)
)
// PetFusion 宠物融合配方主模型(核心配方规则)

View File

@@ -6,7 +6,7 @@ import (
// 表名常量定义:物品奖励表(存储物品奖励的核心配置信息)
const (
TableNameItemGift = "item_gift" // 物品奖励配置表(包含物品关联、数量、启用状态、扭蛋标识及备注信息)
TableNameItemGift = "config_gift_item" // 物品奖励配置表(包含物品关联、数量、启用状态、扭蛋标识及备注信息)
)
// ItemGift 物品奖励基础配置模型(与数据库表 item_gift 字段一一对应,核心存储结构)

View File

@@ -5,7 +5,7 @@ import (
)
const (
TableNameMonsterRefresh = "monster_refresh" // 怪物刷新规则表(地图-精灵等级-刷新脚本配置)
TableNameMonsterRefresh = "config_monster_refresh" // 怪物刷新规则表(地图-精灵等级-刷新脚本配置)
)
// MonsterRefresh 怪物刷新规则模型(对应前端配置的地图/精灵/等级/脚本配置)

View File

@@ -5,7 +5,7 @@ import (
)
const (
TableNameMeleeConfig = "config_pet_melee" // BOSS配置表全量包含基础/奖励/护盾/捕捉/特效/世界野怪/地图费用/战斗通用逻辑)
TableNameMeleeConfig = "config_boss_melee" // BOSS配置表全量包含基础/奖励/护盾/捕捉/特效/世界野怪/地图费用/战斗通用逻辑)
)
// PetBaseConfig BOSS配置模型覆盖所有补充的配置项GBTL/非VIP费用/首场景/战斗通用逻辑)

View File

@@ -6,7 +6,7 @@ import (
// 表名常量定义精灵奖励表存储精灵BOSS/普通精灵对应的奖励配置:掉落物品/数量/概率/获取条件等)
const (
TableNamePetReward = "config_pet_reward" // 精灵奖励配置表(包含基础掉落/稀有奖励/VIP专属奖励/保底机制)
TableNamePetReward = "config_gift_pet" // 精灵奖励配置表(包含基础掉落/稀有奖励/VIP专属奖励/保底机制)
)
// PetReward 精灵奖励基础配置模型(核心存储结构,与数据库表字段一一对应)

View File

@@ -6,7 +6,7 @@ import (
// 表名常量定义:炫彩皮肤表
const (
TableNameColorfulSkin = "colorful_skin" // 炫彩皮肤表(记录炫彩皮肤颜色、光环、绑定精灵等核心配置)
TableNameColorfulSkin = "config_shiny" // 炫彩皮肤表(记录炫彩皮肤颜色、光环、绑定精灵等核心配置)
)
// ColorfulSkin 炫彩皮肤核心配置模型(完整保留原有字段,仅更名适配)

View File

@@ -6,7 +6,7 @@ import (
// 表名常量定义:商店配置表
const (
TableNameShopConfig = "shop_config" // 商店配置表(记录商品信息、价格、库存、分类等)
TableNameShopConfig = "config_shop" // 商店配置表(记录商品信息、价格、库存、分类等)
)
// ShopConfig 商店商品核心配置模型

View File

@@ -1,3 +1,11 @@
/*
* @Author: 昔念 12574910+72wo@users.noreply.github.com
* @Date: 2025-12-31 02:42:41
* @LastEditors: 昔念 12574910+72wo@users.noreply.github.com
* @LastEditTime: 2026-01-18 11:37:05
* @FilePath: \sun\modules\config\model\task.go
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
package model
import (
@@ -15,11 +23,13 @@ type TaskConfig struct {
// 核心字段
TaskId uint32 `gorm:"not null;comment:'任务唯一ID'" json:"task_id" description:"任务唯一ID"`
OutState uint32 `gorm:"not null;default:0;comment:'任务分支'" json:"out_state" description:"任务分支"`
OutState int `gorm:"not null;default:0;comment:'任务分支'" json:"out_state" description:"任务分支"`
//父级任务
ParentTaskId uint32 `gorm:"not null;default:0;comment:'父级任务ID'" json:"parent_task_id" description:"父级任务ID"`
// type(任务类型0为常规任务1为日常任务),
TaskType uint32 `gorm:"not null;default:0;comment:'任务类型'" json:"task_type" description:"任务类型"`
//是否可以被接受TaskConfig
IsAcceptable uint32 `gorm:"not null;default:1;comment:'是否可以被接受'" json:"is_acceptable" description:"是否可以被接受"`
// 奖励配置
ItemRewardIds []uint32 `gorm:"not null;type:json;default:'[]';comment:'绑定奖励物品ID数组关联item_gift表主键'" json:"item_reward_ids" description:"奖励物品数组"`

View File

@@ -6,9 +6,9 @@ import (
// -------------------------- 表名常量定义(统一管理所有塔配置表名)--------------------------
const (
TableNamedARKTowerConfig = "tower_110_config" // 勇者之塔110配置表
TableNameTrialTowerConfig = "trial_tower_config" // 试炼之塔500配置表
TableNameBraveTowerConfig = "brave_tower_config" // 勇者之塔600配置表
TableNamedARKTowerConfig = "config_tower_110" // 勇者之塔110配置表
TableNameTrialTowerConfig = "config_tower_500" // 试炼之塔500配置表
TableNameBraveTowerConfig = "config_tower_600" // 勇者之塔600配置表
)
// -------------------------- 核心基类:所有塔配置的通用结构 --------------------------

View File

@@ -5,7 +5,7 @@ import (
)
// 表名常量(遵循现有命名规范:小写+下划线)
const TableNameSignIn = "player_sign_in"
const TableNameSignIn = "config_sign_in"
// SignIn 签到记录表
// 核心字段:签到完成状态、状压签到进度、签到奖励脚本

View File

@@ -5,7 +5,7 @@ import (
)
// 表名常量(遵循项目现有命名规范)
const TableNameMineralCollectionConfig = "mineral_collection_config"
const TableNameMineralCollectionConfig = "config_talk"
// MineralCollectionConfig 挖矿/采集/采摘矿产配置表Model定义
// 字段完全匹配数据表结构,包含最小/最大产出核心字段