Commit ea706600f1366fb378216c5d969094e4c14e696c
1 parent
682c2458
Exists in
master
and in
1 other branch
feat:领取卡组奖励
Showing
5 changed files
with
89 additions
and
0 deletions
Show diff stats
controllers/ht-cardholder.go
| ... | ... | @@ -10,6 +10,7 @@ type HtCardHolderController struct { |
| 10 | 10 | BaseController |
| 11 | 11 | } |
| 12 | 12 | |
| 13 | +// Info 卡包信息 | |
| 13 | 14 | func (c *HtCardHolderController) Info() { |
| 14 | 15 | req := new(dto.ReqHtCardHolderInfo) |
| 15 | 16 | if !c.GetPostData(req) { |
| ... | ... | @@ -21,6 +22,7 @@ func (c *HtCardHolderController) Info() { |
| 21 | 22 | c.RetRspCodeData(code, rsp) |
| 22 | 23 | } |
| 23 | 24 | |
| 25 | +// GetNew 获取卡包 | |
| 24 | 26 | func (c *HtCardHolderController) GetNew() { |
| 25 | 27 | req := new(dto.ReqHtCardHolderGetNew) |
| 26 | 28 | if !c.GetPostData(req) { |
| ... | ... | @@ -32,6 +34,7 @@ func (c *HtCardHolderController) GetNew() { |
| 32 | 34 | c.RetRspCodeData(code, rsp) |
| 33 | 35 | } |
| 34 | 36 | |
| 37 | +// Open 卡包打开 | |
| 35 | 38 | func (c *HtCardHolderController) Open() { |
| 36 | 39 | req := new(dto.ReqHtCardHolderOpen) |
| 37 | 40 | if !c.GetPostData(req) { |
| ... | ... | @@ -42,3 +45,15 @@ func (c *HtCardHolderController) Open() { |
| 42 | 45 | |
| 43 | 46 | c.RetRspCodeData(code, rsp) |
| 44 | 47 | } |
| 48 | + | |
| 49 | +// GetRewardAlbum 领取卡组奖励 | |
| 50 | +func (c *HtCardHolderController) GetRewardAlbum() { | |
| 51 | + req := new(dto.ReqHtCardHolderGetRewardAlbum) | |
| 52 | + if !c.GetPostData(req) { | |
| 53 | + return | |
| 54 | + } | |
| 55 | + | |
| 56 | + code, rsp := ht_cardholder.HandleGetRewardAlbum(req) | |
| 57 | + | |
| 58 | + c.RetRspCodeData(code, rsp) | |
| 59 | +} | ... | ... |
dto/ht-cardholder.go
| ... | ... | @@ -46,3 +46,16 @@ type RspHtCardHolderOpen struct { |
| 46 | 46 | HtCardHolderInfo |
| 47 | 47 | NewCards []int `form:"new_cards" json:"new_cards"` // 新获得的卡牌列表 |
| 48 | 48 | } |
| 49 | + | |
| 50 | +// ReqHtCardHolderGetRewardAlbum 请求 领取卡组奖励 | |
| 51 | +type ReqHtCardHolderGetRewardAlbum struct { | |
| 52 | + BaseSign | |
| 53 | + BaseLoginInfo | |
| 54 | + Id int `form:"id" json:"id" valid:"Required"` // 卡组ID | |
| 55 | +} | |
| 56 | + | |
| 57 | +// RspHtCardHolderGetRewardAlbum 返回 领取卡组奖励 | |
| 58 | +type RspHtCardHolderGetRewardAlbum struct { | |
| 59 | + HtCardHolderInfo | |
| 60 | + Award string `form:"award" json:"award"` // 奖励字符串 | |
| 61 | +} | ... | ... |
routers/router.go
| ... | ... | @@ -17,6 +17,8 @@ func init() { |
| 17 | 17 | beego.Router(prefix+"/ht/cardholder/getnew", &controllers.HtCardHolderController{}, "post:GetNew") |
| 18 | 18 | // 卡包打开 |
| 19 | 19 | beego.Router(prefix+"/ht/cardholder/open", &controllers.HtCardHolderController{}, "post:Open") |
| 20 | + // 领取卡组奖励 | |
| 21 | + beego.Router(prefix+"/ht/cardholder/getrewardalbum", &controllers.HtCardHolderController{}, "post:GetRewardAlbum") | |
| 20 | 22 | |
| 21 | 23 | beego.ErrorController(&controllers.ErrorController{}) |
| 22 | 24 | } | ... | ... |
service/constd/index.go
| ... | ... | @@ -45,6 +45,9 @@ const ( |
| 45 | 45 | RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR = "2103" |
| 46 | 46 | RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR = "2104" |
| 47 | 47 | RECODE_MERGE_CARDHOLDER_CARDHOLDER_NOTENOUGH_ERROR = "2105" |
| 48 | + RECODE_MERGE_CARDHOLDER_ALBUMID_ERROR = "2106" | |
| 49 | + RECODE_MERGE_CARDHOLDER_ALBUM_HASGOT_ERROR = "2107" | |
| 50 | + RECODE_MERGE_CARDHOLDER_ALBUM_NOTFINISH_ERROR = "2108" | |
| 48 | 51 | ) |
| 49 | 52 | |
| 50 | 53 | var recodeText = map[string]string{ |
| ... | ... | @@ -90,6 +93,9 @@ var recodeText = map[string]string{ |
| 90 | 93 | RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR: "卡包ID错误", |
| 91 | 94 | RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR: "数目不合法", |
| 92 | 95 | RECODE_MERGE_CARDHOLDER_CARDHOLDER_NOTENOUGH_ERROR: "卡包不足", |
| 96 | + RECODE_MERGE_CARDHOLDER_ALBUMID_ERROR: "卡组ID错误", | |
| 97 | + RECODE_MERGE_CARDHOLDER_ALBUM_HASGOT_ERROR: "卡组奖励已领取", | |
| 98 | + RECODE_MERGE_CARDHOLDER_ALBUM_NOTFINISH_ERROR: "卡组卡牌未集齐", | |
| 93 | 99 | } |
| 94 | 100 | |
| 95 | 101 | func RecodeText(code string) string { | ... | ... |
service/ht-cardholder/handle.go
| ... | ... | @@ -158,3 +158,56 @@ func HandleOpen(req *dto.ReqHtCardHolderOpen) (code string, rsp dto.RspHtCardHol |
| 158 | 158 | |
| 159 | 159 | return |
| 160 | 160 | } |
| 161 | + | |
| 162 | +// HandleGetRewardAlbum 领取卡组奖励 | |
| 163 | +func HandleGetRewardAlbum(req *dto.ReqHtCardHolderGetRewardAlbum) (code string, rsp dto.RspHtCardHolderGetRewardAlbum) { | |
| 164 | + rsp = dto.RspHtCardHolderGetRewardAlbum{} | |
| 165 | + code = constd.RECODE_OK | |
| 166 | + | |
| 167 | + // 尝试更新配置 | |
| 168 | + TryUpdateConfigs() | |
| 169 | + | |
| 170 | + // 检查活动状态 | |
| 171 | + code = CheckStatus() | |
| 172 | + if code != constd.RECODE_OK { | |
| 173 | + return | |
| 174 | + } | |
| 175 | + // 检查卡组ID | |
| 176 | + albumId := strconv.Itoa(req.Id) | |
| 177 | + confAlbum, okAlbum := Config.AlbumConfig[albumId] | |
| 178 | + if !okAlbum { | |
| 179 | + code = constd.RECODE_MERGE_CARDHOLDER_ALBUMID_ERROR | |
| 180 | + return | |
| 181 | + } | |
| 182 | + | |
| 183 | + // 读取游戏数据 | |
| 184 | + gameData := LoadData(req.UID) | |
| 185 | + | |
| 186 | + // 是否已领过 | |
| 187 | + countGot := gameData.Details.Album[albumId] | |
| 188 | + if countGot > 0 { | |
| 189 | + code = constd.RECODE_MERGE_CARDHOLDER_ALBUM_HASGOT_ERROR | |
| 190 | + return | |
| 191 | + } | |
| 192 | + // 检查卡组内卡是否集齐 | |
| 193 | + for _, config := range Config.CardConfig { | |
| 194 | + if config.SetId == albumId { | |
| 195 | + count := gameData.Details.Cards[config.Id] | |
| 196 | + if count < 1 { | |
| 197 | + code = constd.RECODE_MERGE_CARDHOLDER_ALBUM_NOTFINISH_ERROR | |
| 198 | + return | |
| 199 | + } | |
| 200 | + } | |
| 201 | + } | |
| 202 | + | |
| 203 | + gameData.Details.Album[albumId] += 1 | |
| 204 | + SaveData(gameData) | |
| 205 | + | |
| 206 | + // 返回奖励 | |
| 207 | + rsp.Award = confAlbum.Rewards | |
| 208 | + | |
| 209 | + // 返回信息 | |
| 210 | + rsp.HtCardHolderInfo = gameData.GetInfo() | |
| 211 | + | |
| 212 | + return | |
| 213 | +} | ... | ... |