Files
bl/modules/player/model/talk.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

77 lines
2.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 TableNameResourceCollection = "player_talk"
func NewTalk() *Talk {
return &Talk{
Base: *NewBase(),
}
}
// ResourceCollection 记录玩家每种资源的采集计数
type Talk struct {
Base
PlayerID uint64 `gorm:"not null;index:idx_player_resource;comment:'所属玩家ID'" json:"player_id"`
TalkID uint32 `gorm:"not null;comment:'资源ID'" json:"talk_id"`
Count uint32 `gorm:"not null;comment:'采集计数'" json:"count"`
}
// TableName 资源采集表名
func (*Talk) TableName() string {
return TableNameResourceCollection
}
// GroupName 资源采集表分组
func (*Talk) GroupName() string {
return "default"
}
// // 检查是否可以采集(未超过每日上限)
// func (rc *ResourceCollection) CanCollect(maxDaily uint32) bool {
// // 先检查是否需要重置计数
// rc.checkAndReset()
// return rc.CollectCnt < maxDaily
// }
// // 增加采集计数,返回是否成功
// func (rc *ResourceCollection) AddCollectCount(maxDaily uint32) bool {
// if !rc.CanCollect(maxDaily) {
// return false
// }
// rc.CollectCnt++
// return true
// }
// // 检查并重置每日计数
// func (rc *ResourceCollection) checkAndReset() {
// now := time.Now()
// if now.After(rc.DailyReset) {
// rc.CollectCnt = 0
// // 重置为明天24点
// rc.DailyReset = now.Truncate(24 * time.Hour).Add(24 * time.Hour)
// }
// }
// // ResourceConfig 资源配置信息对应XML中的配置
// type ResourceConfig struct {
// Type uint32 `json:"type"` // 资源类型ID
// MapID uint32 `json:"map_id"` // 所在地图ID
// Name string `json:"name"` // 资源名称
// CollectType string `json:"collect_type"` // 采集类型
// MaxDailyCnt uint32 `json:"max_daily_cnt"` // 每日最大采集次数
// Unit string `json:"unit"` // 单位
// Dir uint32 `json:"dir"` // 方向
// }
// 初始化创建表
func init() {
cool.CreateTable(&Talk{})
// 可以在这里加载资源配置
// LoadResourceConfigsFromXML()
}