Commit 78655da056e1a6b81feee9393f2456a7da95b4a1

Authored by 王家文
1 parent 95c75dc4
Exists in master and in 1 other branch dev-wjw

feat:活动数据存读

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
... ... @@ -33,5 +33,5 @@ func main() {
33 33 // 初始化配置
34 34 ht_cardholder.Init()
35 35  
36   - //beego.Run()
  36 + beego.Run()
37 37 }
... ...
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,
... ...
service/ht-cardholder/handle.go 0 → 100644
... ... @@ -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 +}
... ...