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 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 49 // AddScore 房间排行增加积分
38 50 func (c *RoomRankController) AddScore() {
39 51 req := new(models.ReqRoomRankAddScore)
... ...
models/roomrank.go
... ... @@ -49,6 +49,20 @@ type RspRoomRankInfo struct {
49 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 66 // ReqRoomRankAddScore 请求 房间排行增加积分
53 67 type ReqRoomRankAddScore struct {
54 68 BaseLoginInfo
... ...
routers/router.go
... ... @@ -27,6 +27,8 @@ func init() {
27 27 beego.Router(prefix+"/roomrank/getconfig", &controllers.RoomRankController{}, "post:GetConfig")
28 28 // 房间排行信息
29 29 beego.Router(prefix+"/roomrank/info", &controllers.RoomRankController{}, "post:Info")
  30 + // 领取上期结算奖励
  31 + beego.Router(prefix+"/roomrank/getsettleaward", &controllers.RoomRankController{}, "post:GetSettleAward")
30 32 // 房间排行增加积分
31 33 beego.Router(prefix+"/roomrank/addscore", &controllers.RoomRankController{}, "post:AddScore")
32 34  
... ...
service/code-msg/code-msg.go
... ... @@ -49,8 +49,10 @@ const (
49 49 RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR = "2106"
50 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 58 var recodeText = map[string]string{
... ... @@ -100,8 +102,10 @@ var recodeText = map[string]string{
100 102 RECODE_MERGE_CARDHOLDER_STAR_NOTENOUGH_ERROR: "星星商店星星不足",
101 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 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 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 59 SavePlayer(gameId, player)
  60 + }
  61 + if player.SettleHas {
60 62 rsp.RoomRankInfo = GetInfoFromSettle(player, config)
61 63 return
62 64 }
... ... @@ -84,6 +86,42 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan
84 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 125 // HandleAddScore 房间排行增加积分
88 126 func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.RspRoomRankAddScore) {
89 127 rsp = models.RspRoomRankAddScore{}
... ... @@ -106,11 +144,13 @@ func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.Rs
106 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 149 SavePlayer(gameId, player)
  150 + }
  151 + if player.SettleHas {
113 152 rsp.RoomRankInfo = GetInfoFromSettle(player, config)
  153 + code = code_msg.RECODE_MERGE_ROOMRANK_HASSETTLE_ERROR
114 154 return
115 155 }
116 156  
... ...