Files
bl/modules/blazing/model/talk.go
昔念 cc5a2aaf46 feat(talk): 优化采集逻辑并移除冗余字典服务调用
- 移除了 talk.go 中对 dict 模块的依赖,直接使用配置中的 ItemID
- 修改了 talkconfig.go 中的 ItemID 类型为 uint32,提升一致性
- 调整 talk.go 和 talkconfig.go 的缓存获取方式,增强性能
- 更新了 pet_fusion_material_service.go 中字典服务调用方法
- 修复 talk 模型中 TalkID 字段的唯一索引问题
- 日志记录由 Error 改为 Info,避免误导性
2025-12-09 00:09:51 +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 = "talk"
func NewTalk() *Talk {
return &Talk{
Model: cool.NewModel(),
}
}
// ResourceCollection 记录玩家每种资源的采集计数
type Talk struct {
*cool.Model
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()
}