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,22 +12,13 @@ type HtCardHolderController struct { | ||
| 12 | 12 | ||
| 13 | func (c *HtCardHolderController) Info() { | 13 | func (c *HtCardHolderController) Info() { |
| 14 | // 获取请求 | 14 | // 获取请求 |
| 15 | + //req := new(dto.ReqHtCardHolderInfo) | ||
| 15 | var req dto.ReqHtCardHolderInfo | 16 | var req dto.ReqHtCardHolderInfo |
| 16 | if !c.GetPostData(&req) { | 17 | if !c.GetPostData(&req) { |
| 17 | return | 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 | c.RetRspData(rsp) | 23 | c.RetRspData(rsp) |
| 33 | } | 24 | } |
main.go
models/ht-cardholder.go
| 1 | package models | 1 | package models |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "apigame/lx-util/lxalilog" | ||
| 4 | "apigame/service/constd" | 5 | "apigame/service/constd" |
| 6 | + "encoding/json" | ||
| 5 | "github.com/astaxie/beego/orm" | 7 | "github.com/astaxie/beego/orm" |
| 6 | ) | 8 | ) |
| 7 | 9 | ||
| 8 | // HtCardHolderData 卡牌活动持久数据 | 10 | // HtCardHolderData 卡牌活动持久数据 |
| 9 | type HtCardHolderData struct { | 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 | func (d *HtCardHolderData) TableName() string { | 40 | func (d *HtCardHolderData) TableName() string { |
| 15 | return constd.MYSQL_TABLE_S_CARD_DATA + constd.GAME_ID_HT | 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 | func InitHtCardholder() { | 63 | func InitHtCardholder() { |
| 19 | 64 | ||
| 20 | // register model | 65 | // register model |
service/ht-cardholder/config-registry.go
| @@ -22,7 +22,7 @@ func NewRegistryConfigs() { | @@ -22,7 +22,7 @@ func NewRegistryConfigs() { | ||
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | // Decode 解析配置原始数据 | 24 | // Decode 解析配置原始数据 |
| 25 | -func (r RegistryConfigs) Decode(confRaw CardActivityConfigRaw) { | 25 | +func (r *RegistryConfigs) Decode(confRaw CardActivityConfigRaw) { |
| 26 | conf := CardActivityConfig{ | 26 | conf := CardActivityConfig{ |
| 27 | Raw: confRaw, | 27 | Raw: confRaw, |
| 28 | Id: confRaw.Id, | 28 | Id: confRaw.Id, |
| @@ -0,0 +1,58 @@ | @@ -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 | +} |