Commit 78655da056e1a6b81feee9393f2456a7da95b4a1
1 parent
95c75dc4
Exists in
master
and in
1 other branch
feat:活动数据存读
Showing
5 changed files
with
109 additions
and
15 deletions
Show diff stats
controllers/ht-cardholder.go
| ... | ... | @@ -12,22 +12,13 @@ type HtCardHolderController struct { |
| 12 | 12 | |
| 13 | 13 | func (c *HtCardHolderController) Info() { |
| 14 | 14 | // 获取请求 |
| 15 | + //req := new(dto.ReqHtCardHolderInfo) | |
| 15 | 16 | var req dto.ReqHtCardHolderInfo |
| 16 | 17 | if !c.GetPostData(&req) { |
| 17 | 18 | return |
| 18 | 19 | } |
| 19 | 20 | |
| 20 | - // 尝试更新配置 | |
| 21 | - ht_cardholder.TryUpdateConfigs() | |
| 22 | - | |
| 23 | - rsp := dto.RspHtCardHolderInfo{ | |
| 24 | - HtCardHolderInfo: dto.HtCardHolderInfo{ | |
| 25 | - BagList: make(map[int]int), | |
| 26 | - }, | |
| 27 | - } | |
| 28 | - | |
| 29 | - rsp.BagList[1] = 2 | |
| 30 | - rsp.BagList[2] = 5 | |
| 21 | + rsp := ht_cardholder.HandleInfo(&req) | |
| 31 | 22 | |
| 32 | 23 | c.RetRspData(rsp) |
| 33 | 24 | } | ... | ... |
main.go
models/ht-cardholder.go
| 1 | 1 | package models |
| 2 | 2 | |
| 3 | 3 | import ( |
| 4 | + "apigame/lx-util/lxalilog" | |
| 4 | 5 | "apigame/service/constd" |
| 6 | + "encoding/json" | |
| 5 | 7 | "github.com/astaxie/beego/orm" |
| 6 | 8 | ) |
| 7 | 9 | |
| 8 | 10 | // HtCardHolderData 卡牌活动持久数据 |
| 9 | 11 | type HtCardHolderData struct { |
| 10 | - Uid int64 `orm:"pk"` // 玩家唯一ID | |
| 11 | - ActivityId int64 // 活动ID | |
| 12 | + Uid int64 `orm:"pk"` // 玩家唯一ID | |
| 13 | + ActivityId int64 // 活动ID | |
| 14 | + DetailsData *HtCardHolderDataDetails `orm:"-"` // 活动详情 | |
| 15 | + Details string `orm:"type(text)"` // 活动详情封装 | |
| 16 | +} | |
| 17 | + | |
| 18 | +// HtCardHolderDataDetails 卡牌活动详情 | |
| 19 | +type HtCardHolderDataDetails struct { | |
| 20 | + Cards map[int]int // 每张卡集了多少张 k=卡牌ID v=数量 | |
| 21 | + StarSequenceScales map[string]int // 星级序列刻度 k=ID_用户序列_用户分组 v=刻度 | |
| 22 | + CardSequenceScales map[string]int // 卡牌序列刻度 k=ID_用户序列_用户分组 v=刻度 | |
| 23 | +} | |
| 24 | + | |
| 25 | +func NewHtCardHolderData(uid int64) *HtCardHolderData { | |
| 26 | + return &HtCardHolderData{ | |
| 27 | + Uid: uid, | |
| 28 | + DetailsData: NewHtCardHolderDataDetails(), | |
| 29 | + } | |
| 30 | +} | |
| 31 | + | |
| 32 | +func NewHtCardHolderDataDetails() *HtCardHolderDataDetails { | |
| 33 | + return &HtCardHolderDataDetails{ | |
| 34 | + Cards: make(map[int]int), | |
| 35 | + StarSequenceScales: make(map[string]int), | |
| 36 | + CardSequenceScales: make(map[string]int), | |
| 37 | + } | |
| 12 | 38 | } |
| 13 | 39 | |
| 14 | 40 | func (d *HtCardHolderData) TableName() string { |
| 15 | 41 | return constd.MYSQL_TABLE_S_CARD_DATA + constd.GAME_ID_HT |
| 16 | 42 | } |
| 17 | 43 | |
| 44 | +// Encode 打包数据 | |
| 45 | +func (d *HtCardHolderData) Encode() { | |
| 46 | + details, err := json.Marshal(d.DetailsData) | |
| 47 | + if err != nil { | |
| 48 | + lxalilog.Errors(err, "HtCardHolderData Encode Error", d.Uid, d.ActivityId) | |
| 49 | + return | |
| 50 | + } | |
| 51 | + d.Details = string(details) | |
| 52 | +} | |
| 53 | + | |
| 54 | +// Decode 分包数据 | |
| 55 | +func (d *HtCardHolderData) Decode() { | |
| 56 | + err := json.Unmarshal([]byte(d.Details), d.DetailsData) | |
| 57 | + if err != nil { | |
| 58 | + lxalilog.Errors(err, "HtCardHolderData Decode Error", d.Uid, d.ActivityId) | |
| 59 | + return | |
| 60 | + } | |
| 61 | +} | |
| 62 | + | |
| 18 | 63 | func InitHtCardholder() { |
| 19 | 64 | |
| 20 | 65 | // register model | ... | ... |
service/ht-cardholder/config-registry.go
| ... | ... | @@ -22,7 +22,7 @@ func NewRegistryConfigs() { |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | 24 | // Decode 解析配置原始数据 |
| 25 | -func (r RegistryConfigs) Decode(confRaw CardActivityConfigRaw) { | |
| 25 | +func (r *RegistryConfigs) Decode(confRaw CardActivityConfigRaw) { | |
| 26 | 26 | conf := CardActivityConfig{ |
| 27 | 27 | Raw: confRaw, |
| 28 | 28 | Id: confRaw.Id, | ... | ... |
| ... | ... | @@ -0,0 +1,58 @@ |
| 1 | +package ht_cardholder | |
| 2 | + | |
| 3 | +import ( | |
| 4 | + "apigame/dto" | |
| 5 | + "apigame/lx-util/lxalilog" | |
| 6 | + "apigame/models" | |
| 7 | + "apigame/service/constd" | |
| 8 | + "github.com/astaxie/beego/orm" | |
| 9 | +) | |
| 10 | + | |
| 11 | +func HandleInfo(req *dto.ReqHtCardHolderInfo) dto.RspHtCardHolderInfo { | |
| 12 | + // 尝试更新配置 | |
| 13 | + TryUpdateConfigs() | |
| 14 | + | |
| 15 | + //// 测试存档 | |
| 16 | + //userData := models.NewHtCardHolderData(req.UID) | |
| 17 | + //userData.ActivityId = Registry.Config.Id | |
| 18 | + //userData.DetailsData.Cards[101] = 1 | |
| 19 | + //userData.DetailsData.Cards[102] = 3 | |
| 20 | + //SaveData(userData) | |
| 21 | + // | |
| 22 | + //// 测试读档 | |
| 23 | + //lData := LoadData(req.UID) | |
| 24 | + //logs.Debug(lData) | |
| 25 | + | |
| 26 | + rsp := dto.RspHtCardHolderInfo{ | |
| 27 | + HtCardHolderInfo: dto.HtCardHolderInfo{ | |
| 28 | + BagList: make(map[int]int), | |
| 29 | + }, | |
| 30 | + } | |
| 31 | + | |
| 32 | + rsp.BagList[1] = 2 | |
| 33 | + rsp.BagList[2] = 5 | |
| 34 | + | |
| 35 | + return rsp | |
| 36 | +} | |
| 37 | + | |
| 38 | +func SaveData(d *models.HtCardHolderData) { | |
| 39 | + d.Encode() | |
| 40 | + | |
| 41 | + o := orm.NewOrm() | |
| 42 | + o.Using(constd.MYSQL_DEFAULT) | |
| 43 | + if _, err := o.InsertOrUpdate(d); err != nil { | |
| 44 | + lxalilog.Errors(err, "ht_cardholder SaveData Error", d.Uid) | |
| 45 | + } | |
| 46 | +} | |
| 47 | + | |
| 48 | +func LoadData(uid int64) (d *models.HtCardHolderData) { | |
| 49 | + d = models.NewHtCardHolderData(uid) | |
| 50 | + o := orm.NewOrm() | |
| 51 | + o.Using(constd.MYSQL_DEFAULT) | |
| 52 | + if err := o.QueryTable(d).One(d); err != nil { | |
| 53 | + lxalilog.Errors(err, "ht_cardholder LoadData Error", d.Uid) | |
| 54 | + } | |
| 55 | + d.DetailsData = models.NewHtCardHolderDataDetails() | |
| 56 | + d.Decode() | |
| 57 | + return | |
| 58 | +} | ... | ... |