70 lines
1.5 KiB
Go
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]
|
|
}
|