Commit ea706600f1366fb378216c5d969094e4c14e696c

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

feat:领取卡组奖励

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 +}
... ...