package models import ( "apigame/lx-util/lxalilog" "apigame/service/constd" "encoding/json" "github.com/astaxie/beego/orm" ) // HtCardHolderData 卡牌活动持久数据 type HtCardHolderData struct { Uid int64 `orm:"pk"` // 玩家唯一ID ActivityId int64 // 活动ID DetailsData *HtCardHolderDataDetails `orm:"-"` // 活动详情 Details string `orm:"type(text)"` // 活动详情封装 } // HtCardHolderDataDetails 卡牌活动详情 type HtCardHolderDataDetails struct { Cards map[int]int // 每张卡集了多少张 k=卡牌ID v=数量 StarSequenceScales map[string]int // 星级序列刻度 k=ID_用户序列_用户分组 v=刻度 CardSequenceScales map[string]int // 卡牌序列刻度 k=ID_用户序列_用户分组 v=刻度 } func NewHtCardHolderData(uid int64) *HtCardHolderData { return &HtCardHolderData{ Uid: uid, DetailsData: NewHtCardHolderDataDetails(), } } func NewHtCardHolderDataDetails() *HtCardHolderDataDetails { return &HtCardHolderDataDetails{ Cards: make(map[int]int), StarSequenceScales: make(map[string]int), CardSequenceScales: make(map[string]int), } } func (d *HtCardHolderData) TableName() string { return constd.MYSQL_TABLE_S_CARD_DATA + constd.GAME_ID_HT } // Encode 打包数据 func (d *HtCardHolderData) Encode() { details, err := json.Marshal(d.DetailsData) if err != nil { lxalilog.Errors(err, "HtCardHolderData Encode Error", d.Uid, d.ActivityId) return } d.Details = string(details) } // Decode 分包数据 func (d *HtCardHolderData) Decode() { err := json.Unmarshal([]byte(d.Details), d.DetailsData) if err != nil { lxalilog.Errors(err, "HtCardHolderData Decode Error", d.Uid, d.ActivityId) return } } func InitHtCardholder() { // register model orm.RegisterModel(new(HtCardHolderData)) // create table orm.RunSyncdb("default", false, true) }