From 92fe839fd3f0b7511d976b982f19a01d4bf70348 Mon Sep 17 00:00:00 2001 From: 王家文 Date: Mon, 8 Apr 2024 15:58:08 +0800 Subject: [PATCH] feat:领取卡组奖励,按照轮次来 --- controllers/ht-cardholder.go | 12 ++++++++++++ dto/ht-cardholder.go | 4 ++-- models/ht-cardholder.go | 12 ++++++++++++ routers/router.go | 2 ++ service/ht-cardholder/config.go | 8 ++++---- service/ht-cardholder/handle.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 6 files changed, 88 insertions(+), 7 deletions(-) diff --git a/controllers/ht-cardholder.go b/controllers/ht-cardholder.go index d617a08..c2c3834 100644 --- a/controllers/ht-cardholder.go +++ b/controllers/ht-cardholder.go @@ -57,3 +57,15 @@ func (c *HtCardHolderController) GetRewardAlbum() { c.RetRspCodeData(code, rsp) } + +// GetRewardRound 领取轮次奖励 +func (c *HtCardHolderController) GetRewardRound() { + req := new(models.ReqHtCardHolderGetRewardRound) + if !c.GetPostData(req) { + return + } + + code, rsp := ht_cardholder.HandleGetRewardRound(req) + + c.RetRspCodeData(code, rsp) +} diff --git a/dto/ht-cardholder.go b/dto/ht-cardholder.go index cd5a87f..a4976ce 100644 --- a/dto/ht-cardholder.go +++ b/dto/ht-cardholder.go @@ -34,7 +34,7 @@ type HtCardHolderDataDetails struct { Album map[string]int // 卡组奖励领取 k=卡组ID v=数量 StarSequenceScales map[string]int // 星级序列刻度 k=ID_用户序列_用户分组 v=刻度 CardSequenceScales map[string]int // 卡牌序列刻度 k=ID_用户序列_用户分组 v=刻度 - Round int // 卡册完成轮次 + Round int // 卡册当前轮次 } func NewHtCardHolderData(uid int64) *HtCardHolderData { @@ -51,7 +51,7 @@ func NewHtCardHolderDataDetails() *HtCardHolderDataDetails { Album: make(map[string]int), StarSequenceScales: make(map[string]int), CardSequenceScales: make(map[string]int), - Round: 0, + Round: 1, } } diff --git a/models/ht-cardholder.go b/models/ht-cardholder.go index c0cf12c..d629e82 100644 --- a/models/ht-cardholder.go +++ b/models/ht-cardholder.go @@ -59,3 +59,15 @@ type RspHtCardHolderGetRewardAlbum struct { HtCardHolderInfo Award string `form:"award" json:"award"` // 奖励字符串 } + +// ReqHtCardHolderGetRewardRound 请求 领取轮次奖励 +type ReqHtCardHolderGetRewardRound struct { + BaseSign + BaseLoginInfo +} + +// RspHtCardHolderGetRewardRound 返回 领取轮次奖励 +type RspHtCardHolderGetRewardRound struct { + HtCardHolderInfo + Award string `form:"award" json:"award"` // 奖励字符串 +} diff --git a/routers/router.go b/routers/router.go index 509f7ef..19ae074 100644 --- a/routers/router.go +++ b/routers/router.go @@ -19,6 +19,8 @@ func init() { beego.Router(prefix+"/ht/cardholder/open", &controllers.HtCardHolderController{}, "post:Open") // 领取卡组奖励 beego.Router(prefix+"/ht/cardholder/getrewardalbum", &controllers.HtCardHolderController{}, "post:GetRewardAlbum") + // 领取轮次奖励 + beego.Router(prefix+"/ht/cardholder/getrewardround", &controllers.HtCardHolderController{}, "post:GetRewardRound") beego.ErrorController(&controllers.ErrorController{}) } diff --git a/service/ht-cardholder/config.go b/service/ht-cardholder/config.go index e07627d..d2a4e23 100644 --- a/service/ht-cardholder/config.go +++ b/service/ht-cardholder/config.go @@ -46,10 +46,10 @@ type CardActivityConfigRaw struct { // AlbumConfig 卡组表 type AlbumConfig struct { - SetId string `json:"set_id"` // 卡组id - Rewards string `json:"rewards"` // 集齐奖励 - StartTime int64 `json:"start_time"` // 开始时间 - EndTime int64 `json:"end_time"` // 结束时间 + SetId string `json:"set_id"` // 卡组id + Rewards map[string]string `json:"rewards"` // 集齐奖励 k=轮次 + StartTime int64 `json:"start_time"` // 开始时间 + EndTime int64 `json:"end_time"` // 结束时间 } // CardConfig 卡牌表 diff --git a/service/ht-cardholder/handle.go b/service/ht-cardholder/handle.go index 5a29b19..cdafa15 100644 --- a/service/ht-cardholder/handle.go +++ b/service/ht-cardholder/handle.go @@ -203,11 +203,66 @@ func HandleGetRewardAlbum(req *models.ReqHtCardHolderGetRewardAlbum) (code strin gameData.Details.Album[albumId] += 1 SaveData(gameData) + // 当前轮次 + round := gameData.Details.Round // 返回奖励 - rsp.Award = confAlbum.Rewards + rsp.Award = confAlbum.Rewards[uttype.IntToString(round)] // 返回信息 rsp.HtCardHolderInfo = gameData.GetInfo() return } + +// HandleGetRewardRound 领取轮次奖励 +func HandleGetRewardRound(req *models.ReqHtCardHolderGetRewardRound) (code string, rsp models.RspHtCardHolderGetRewardRound) { + rsp = models.RspHtCardHolderGetRewardRound{} + code = constd.RECODE_OK + + //// 尝试更新配置 + //TryUpdateConfigs() + // + //// 检查活动状态 + //code = CheckStatus() + //if code != constd.RECODE_OK { + // return + //} + //// 检查卡组ID + //albumId := strconv.Itoa(req.Id) + //confAlbum, okAlbum := Config.AlbumConfig[albumId] + //if !okAlbum { + // code = constd.RECODE_MERGE_CARDHOLDER_ALBUMID_ERROR + // return + //} + // + //// 读取游戏数据 + //gameData := LoadData(req.UID) + // + //// 是否已领过 + //countGot := gameData.Details.Album[albumId] + //if countGot > 0 { + // code = constd.RECODE_MERGE_CARDHOLDER_ALBUM_HASGOT_ERROR + // return + //} + //// 检查卡组内卡是否集齐 + //for _, config := range Config.CardConfig { + // if config.SetId == albumId { + // count := gameData.Details.Cards[config.Id] + // if count < 1 { + // code = constd.RECODE_MERGE_CARDHOLDER_ALBUM_NOTFINISH_ERROR + // return + // } + // } + //} + // + //gameData.Details.Album[albumId] += 1 + //SaveData(gameData) + // + //// 返回奖励 + //rsp.Award = confAlbum.Rewards + // + //// 返回信息 + //rsp.HtCardHolderInfo = gameData.GetInfo() + + return +} -- libgit2 0.21.0