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,6 +10,7 @@ type HtCardHolderController struct {
10 BaseController 10 BaseController
11 } 11 }
12 12
  13 +// Info 卡包信息
13 func (c *HtCardHolderController) Info() { 14 func (c *HtCardHolderController) Info() {
14 req := new(dto.ReqHtCardHolderInfo) 15 req := new(dto.ReqHtCardHolderInfo)
15 if !c.GetPostData(req) { 16 if !c.GetPostData(req) {
@@ -21,6 +22,7 @@ func (c *HtCardHolderController) Info() { @@ -21,6 +22,7 @@ func (c *HtCardHolderController) Info() {
21 c.RetRspCodeData(code, rsp) 22 c.RetRspCodeData(code, rsp)
22 } 23 }
23 24
  25 +// GetNew 获取卡包
24 func (c *HtCardHolderController) GetNew() { 26 func (c *HtCardHolderController) GetNew() {
25 req := new(dto.ReqHtCardHolderGetNew) 27 req := new(dto.ReqHtCardHolderGetNew)
26 if !c.GetPostData(req) { 28 if !c.GetPostData(req) {
@@ -32,6 +34,7 @@ func (c *HtCardHolderController) GetNew() { @@ -32,6 +34,7 @@ func (c *HtCardHolderController) GetNew() {
32 c.RetRspCodeData(code, rsp) 34 c.RetRspCodeData(code, rsp)
33 } 35 }
34 36
  37 +// Open 卡包打开
35 func (c *HtCardHolderController) Open() { 38 func (c *HtCardHolderController) Open() {
36 req := new(dto.ReqHtCardHolderOpen) 39 req := new(dto.ReqHtCardHolderOpen)
37 if !c.GetPostData(req) { 40 if !c.GetPostData(req) {
@@ -42,3 +45,15 @@ func (c *HtCardHolderController) Open() { @@ -42,3 +45,15 @@ func (c *HtCardHolderController) Open() {
42 45
43 c.RetRspCodeData(code, rsp) 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,3 +46,16 @@ type RspHtCardHolderOpen struct {
46 HtCardHolderInfo 46 HtCardHolderInfo
47 NewCards []int `form:"new_cards" json:"new_cards"` // 新获得的卡牌列表 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,6 +17,8 @@ func init() {
17 beego.Router(prefix+"/ht/cardholder/getnew", &controllers.HtCardHolderController{}, "post:GetNew") 17 beego.Router(prefix+"/ht/cardholder/getnew", &controllers.HtCardHolderController{}, "post:GetNew")
18 // 卡包打开 18 // 卡包打开
19 beego.Router(prefix+"/ht/cardholder/open", &controllers.HtCardHolderController{}, "post:Open") 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 beego.ErrorController(&controllers.ErrorController{}) 23 beego.ErrorController(&controllers.ErrorController{})
22 } 24 }
service/constd/index.go
@@ -45,6 +45,9 @@ const ( @@ -45,6 +45,9 @@ const (
45 RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR = "2103" 45 RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR = "2103"
46 RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR = "2104" 46 RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR = "2104"
47 RECODE_MERGE_CARDHOLDER_CARDHOLDER_NOTENOUGH_ERROR = "2105" 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 var recodeText = map[string]string{ 53 var recodeText = map[string]string{
@@ -90,6 +93,9 @@ var recodeText = map[string]string{ @@ -90,6 +93,9 @@ var recodeText = map[string]string{
90 RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR: "卡包ID错误", 93 RECODE_MERGE_CARDHOLDER_CARDHOLDERID_ERROR: "卡包ID错误",
91 RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR: "数目不合法", 94 RECODE_MERGE_CARDHOLDER_COUNTILLEGAL_ERROR: "数目不合法",
92 RECODE_MERGE_CARDHOLDER_CARDHOLDER_NOTENOUGH_ERROR: "卡包不足", 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 func RecodeText(code string) string { 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,3 +158,56 @@ func HandleOpen(req *dto.ReqHtCardHolderOpen) (code string, rsp dto.RspHtCardHol
158 158
159 return 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 +}