Commit 76ba366c0b3801126bfd160e0e7cd21f202915de

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

feat✨:房间排行活动:领取结算奖励

controllers/roomrank.go
@@ -34,6 +34,18 @@ func (c *RoomRankController) Info() { @@ -34,6 +34,18 @@ func (c *RoomRankController) Info() {
34 c.RetRspCodeData(code, rsp) 34 c.RetRspCodeData(code, rsp)
35 } 35 }
36 36
  37 +// GetSettleAward 领取上期结算奖励
  38 +func (c *RoomRankController) GetSettleAward() {
  39 + req := new(models.ReqRoomRankGetSettleAward)
  40 + if !c.GetPostData(req) {
  41 + return
  42 + }
  43 +
  44 + code, rsp := roomrank.HandleGetSettleAward(req)
  45 +
  46 + c.RetRspCodeData(code, rsp)
  47 +}
  48 +
37 // AddScore 房间排行增加积分 49 // AddScore 房间排行增加积分
38 func (c *RoomRankController) AddScore() { 50 func (c *RoomRankController) AddScore() {
39 req := new(models.ReqRoomRankAddScore) 51 req := new(models.ReqRoomRankAddScore)
models/roomrank.go
@@ -49,6 +49,20 @@ type RspRoomRankInfo struct { @@ -49,6 +49,20 @@ type RspRoomRankInfo struct {
49 RoomRankInfo 49 RoomRankInfo
50 } 50 }
51 51
  52 +// ReqRoomRankGetSettleAward 请求 领取上期结算奖励
  53 +type ReqRoomRankGetSettleAward struct {
  54 + BaseLoginInfo
  55 + BaseSign
  56 + PlayerLevel int `form:"player_level" json:"player_level"` // 玩家等级
  57 + PlayerName string `form:"player_name" json:"player_name"` // 玩家名字
  58 + PlayerIcon string `form:"player_icon" json:"player_icon"` // 玩家头像
  59 +}
  60 +
  61 +// RspRoomRankGetSettleAward 返回 领取上期结算奖励
  62 +type RspRoomRankGetSettleAward struct {
  63 + AwardText string `form:"award_text" json:"award_text"` // 上期结算奖励内容
  64 +}
  65 +
52 // ReqRoomRankAddScore 请求 房间排行增加积分 66 // ReqRoomRankAddScore 请求 房间排行增加积分
53 type ReqRoomRankAddScore struct { 67 type ReqRoomRankAddScore struct {
54 BaseLoginInfo 68 BaseLoginInfo
routers/router.go
@@ -27,6 +27,8 @@ func init() { @@ -27,6 +27,8 @@ func init() {
27 beego.Router(prefix+"/roomrank/getconfig", &controllers.RoomRankController{}, "post:GetConfig") 27 beego.Router(prefix+"/roomrank/getconfig", &controllers.RoomRankController{}, "post:GetConfig")
28 // 房间排行信息 28 // 房间排行信息
29 beego.Router(prefix+"/roomrank/info", &controllers.RoomRankController{}, "post:Info") 29 beego.Router(prefix+"/roomrank/info", &controllers.RoomRankController{}, "post:Info")
  30 + // 领取上期结算奖励
  31 + beego.Router(prefix+"/roomrank/getsettleaward", &controllers.RoomRankController{}, "post:GetSettleAward")
30 // 房间排行增加积分 32 // 房间排行增加积分
31 beego.Router(prefix+"/roomrank/addscore", &controllers.RoomRankController{}, "post:AddScore") 33 beego.Router(prefix+"/roomrank/addscore", &controllers.RoomRankController{}, "post:AddScore")
32 34
service/code-msg/code-msg.go
@@ -49,8 +49,10 @@ const ( @@ -49,8 +49,10 @@ const (
49 RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR = "2106" 49 RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR = "2106"
50 RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR = "2107" 50 RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR = "2107"
51 51
52 - RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR = "2200"  
53 - RECODE_MERGE_ROOMRANK_LEVEL_ERROR = "2201" 52 + RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR = "2200"
  53 + RECODE_MERGE_ROOMRANK_LEVEL_ERROR = "2201"
  54 + RECODE_MERGE_ROOMRANK_HASSETTLE_ERROR = "2202"
  55 + RECODE_MERGE_ROOMRANK_NOTHASSETTLE_ERROR = "2203"
54 ) 56 )
55 57
56 var recodeText = map[string]string{ 58 var recodeText = map[string]string{
@@ -100,8 +102,10 @@ var recodeText = map[string]string{ @@ -100,8 +102,10 @@ var recodeText = map[string]string{
100 RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR: "星星商店星星不足", 102 RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR: "星星商店星星不足",
101 RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR: "没有星星商店自动兑换信息", 103 RECODE_MERGE_CARDHOLDER_NOAUTOEXCHANGEINFO_ERROR: "没有星星商店自动兑换信息",
102 104
103 - RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR: "活动未开放",  
104 - RECODE_MERGE_ROOMRANK_LEVEL_ERROR: "参与等级不足", 105 + RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR: "活动未开放",
  106 + RECODE_MERGE_ROOMRANK_LEVEL_ERROR: "参与等级不足",
  107 + RECODE_MERGE_ROOMRANK_HASSETTLE_ERROR: "还有未领取的结算奖励",
  108 + RECODE_MERGE_ROOMRANK_NOTHASSETTLE_ERROR: "没有未领取的结算奖励",
105 } 109 }
106 110
107 func RecodeText(code string) string { 111 func RecodeText(code string) string {
service/roomrank/handle.go
@@ -53,10 +53,12 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan @@ -53,10 +53,12 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan
53 player.Icon = req.PlayerIcon 53 player.Icon = req.PlayerIcon
54 54
55 // 尝试判断结算 55 // 尝试判断结算
56 - hasSettle := TrySettle(gameId, player, config) 56 + hasSettleChange := TrySettle(gameId, player, config)
57 57
58 - if hasSettle { 58 + if hasSettleChange {
59 SavePlayer(gameId, player) 59 SavePlayer(gameId, player)
  60 + }
  61 + if player.SettleHas {
60 rsp.RoomRankInfo = GetInfoFromSettle(player, config) 62 rsp.RoomRankInfo = GetInfoFromSettle(player, config)
61 return 63 return
62 } 64 }
@@ -84,6 +86,42 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan @@ -84,6 +86,42 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan
84 return 86 return
85 } 87 }
86 88
  89 +// HandleGetSettleAward 领取上期结算奖励
  90 +func HandleGetSettleAward(req *models.ReqRoomRankGetSettleAward) (code string, rsp models.RspRoomRankGetSettleAward) {
  91 + rsp = models.RspRoomRankGetSettleAward{}
  92 + code = code_msg.RECODE_OK
  93 + gameId := req.GameID
  94 + playerUid := req.UID
  95 +
  96 + // 尝试更新配置
  97 + config, hasConfig := confroomrank.GetCurrent(gameId)
  98 + if !hasConfig {
  99 + config = new(confroomrank.ActivityConfig)
  100 + code = code_msg.RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR
  101 + return
  102 + }
  103 +
  104 + // 读取游戏数据
  105 + player := LoadPlayer(gameId, playerUid)
  106 + player.Name = req.PlayerName
  107 + player.Icon = req.PlayerIcon
  108 +
  109 + // 尝试判断结算
  110 + _ = TrySettle(gameId, player, config)
  111 + if !player.SettleHas {
  112 + code = code_msg.RECODE_MERGE_ROOMRANK_NOTHASSETTLE_ERROR
  113 + return
  114 + }
  115 +
  116 + // 领取奖励
  117 + rsp.AwardText = player.SettleAward
  118 + player.SettleHas = false
  119 + player.SettleAward = ""
  120 + SavePlayer(gameId, player)
  121 +
  122 + return
  123 +}
  124 +
87 // HandleAddScore 房间排行增加积分 125 // HandleAddScore 房间排行增加积分
88 func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.RspRoomRankAddScore) { 126 func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.RspRoomRankAddScore) {
89 rsp = models.RspRoomRankAddScore{} 127 rsp = models.RspRoomRankAddScore{}
@@ -106,11 +144,13 @@ func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.Rs @@ -106,11 +144,13 @@ func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.Rs
106 player.Icon = req.PlayerIcon 144 player.Icon = req.PlayerIcon
107 145
108 // 尝试判断结算 146 // 尝试判断结算
109 - hasSettle := TrySettle(gameId, player, config)  
110 -  
111 - if hasSettle { 147 + hasSettleChange := TrySettle(gameId, player, config)
  148 + if hasSettleChange {
112 SavePlayer(gameId, player) 149 SavePlayer(gameId, player)
  150 + }
  151 + if player.SettleHas {
113 rsp.RoomRankInfo = GetInfoFromSettle(player, config) 152 rsp.RoomRankInfo = GetInfoFromSettle(player, config)
  153 + code = code_msg.RECODE_MERGE_ROOMRANK_HASSETTLE_ERROR
114 return 154 return
115 } 155 }
116 156