ecs/servers/game/data/reward_daily.go
2025-06-21 16:17:24 +08:00

70 lines
1.5 KiB
Go

package data
import (
json "github.com/json-iterator/go"
"github.com/oylshe1314/framework/util"
"time"
)
type RewardDaily struct {
Id int `json:"id"`
SeriesId int `json:"series_id"`
BeginTime string `json:"begin_time"`
BeginTimeRaw int64 `json:"-"`
EndTime string `json:"end_time"`
EndTimeRaw int64 `json:"-"`
ItemIds []int `json:"item_ids"`
ItemNums []int `json:"item_nums"`
AllowNums int `json:"allow_nums"`
}
type RewardDailyTable struct {
l []*RewardDaily
m1 map[int]*RewardDaily
m2 map[int][]*RewardDaily
}
func (this *RewardDailyTable) load(buf []byte) error {
var err = json.Unmarshal(buf, &this.l)
if err != nil {
return err
}
this.m1 = make(map[int]*RewardDaily)
this.m2 = make(map[int][]*RewardDaily)
for i := range this.l {
if this.l[i].BeginTime != "" {
this.l[i].BeginTimeRaw, err = util.ParseUnix(time.TimeOnly, this.l[i].BeginTime)
if err != nil {
return err
}
}
if this.l[i].EndTime != "" {
this.l[i].EndTimeRaw, err = util.ParseUnix(time.TimeOnly, this.l[i].EndTime)
if err != nil {
return err
}
}
this.m1[this.l[i].Id] = this.l[i]
this.m2[this.l[i].SeriesId] = append(this.m2[this.l[i].Id], this.l[i])
}
return nil
}
func (this *RewardDailyTable) List() []*RewardDaily {
return this.l
}
//func (this *RewardDailyTable) Get(i int) *RewardDaily {
// return this.l[i]
//}
func (this *RewardDailyTable) Find1(id int) *RewardDaily {
return this.m1[id]
}
func (this *RewardDailyTable) Find2(seriesId int) []*RewardDaily {
return this.m2[seriesId]
}