Commit 724ed6617a5e9b18a6a55ac03e5e9947ef591a29
1 parent
e442cd33
Exists in
master
and in
1 other branch
feat✨:房间排行活动逻辑
Showing
6 changed files
with
65 additions
and
30 deletions
Show diff stats
models/roomrank.go
service/cardholder/handle.go
| ... | ... | @@ -14,9 +14,10 @@ import ( |
| 14 | 14 | func HandleGetConfig(req *models.ReqCardHolderGetConfig) (code string, rsp models.RspCardHolderGetConfig) { |
| 15 | 15 | rsp = models.RspCardHolderGetConfig{} |
| 16 | 16 | code = code_msg.RECODE_OK |
| 17 | + gameId := req.GameID | |
| 17 | 18 | |
| 18 | 19 | // 尝试更新配置 |
| 19 | - config, _ := configs.GetCardActivityConfig(req.GameID) | |
| 20 | + config, _ := configs.GetCardActivityConfig(gameId) | |
| 20 | 21 | rsp.ActivityId = config.Id |
| 21 | 22 | rsp.PrepareTime = config.PreviewTime |
| 22 | 23 | rsp.StartTime = config.StartTime |
| ... | ... | @@ -32,9 +33,11 @@ func HandleGetConfig(req *models.ReqCardHolderGetConfig) (code string, rsp model |
| 32 | 33 | func HandleInfo(req *models.ReqCardHolderInfo) (code string, rsp models.RspCardHolderInfo) { |
| 33 | 34 | rsp = models.RspCardHolderInfo{} |
| 34 | 35 | code = code_msg.RECODE_OK |
| 36 | + gameId := req.GameID | |
| 37 | + playerUid := req.UID | |
| 35 | 38 | |
| 36 | 39 | // 尝试更新配置 |
| 37 | - config, hasConfig := configs.GetCardActivityConfig(req.GameID) | |
| 40 | + config, hasConfig := configs.GetCardActivityConfig(gameId) | |
| 38 | 41 | if !hasConfig { |
| 39 | 42 | code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR |
| 40 | 43 | return |
| ... | ... | @@ -48,7 +51,7 @@ func HandleInfo(req *models.ReqCardHolderInfo) (code string, rsp models.RspCardH |
| 48 | 51 | } |
| 49 | 52 | |
| 50 | 53 | // 读取游戏数据 |
| 51 | - player := LoadPlayer(req.GameID, req.UID, config) | |
| 54 | + player := LoadPlayer(gameId, playerUid, config) | |
| 52 | 55 | |
| 53 | 56 | rsp.CardHolderInfo = GetInfo(player, config) |
| 54 | 57 | |
| ... | ... | @@ -62,9 +65,11 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH |
| 62 | 65 | AwardAlbum: make(map[int]string), |
| 63 | 66 | } |
| 64 | 67 | code = code_msg.RECODE_OK |
| 68 | + gameId := req.GameID | |
| 69 | + playerUid := req.UID | |
| 65 | 70 | |
| 66 | 71 | // 尝试更新配置 |
| 67 | - config, hasConfig := configs.GetCardActivityConfig(req.GameID) | |
| 72 | + config, hasConfig := configs.GetCardActivityConfig(gameId) | |
| 68 | 73 | if !hasConfig { |
| 69 | 74 | code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR |
| 70 | 75 | return |
| ... | ... | @@ -85,7 +90,7 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH |
| 85 | 90 | } |
| 86 | 91 | |
| 87 | 92 | // 读取游戏数据 |
| 88 | - player := LoadPlayer(req.GameID, req.UID, config) | |
| 93 | + player := LoadPlayer(gameId, playerUid, config) | |
| 89 | 94 | // 检查游戏数据 轮次等 |
| 90 | 95 | code = CheckGameData(player, config) |
| 91 | 96 | if code != code_msg.RECODE_OK { |
| ... | ... | @@ -98,7 +103,7 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH |
| 98 | 103 | allNewCards := make([]int, 0) |
| 99 | 104 | for _, idCardholder := range req.Ids { |
| 100 | 105 | confCardholder, _ := config.CardholderConfig[strconv.Itoa(idCardholder)] |
| 101 | - newCards := DoOpen(req.GameID, | |
| 106 | + newCards := DoOpen(gameId, | |
| 102 | 107 | player, config, |
| 103 | 108 | confCardholder, |
| 104 | 109 | sequenceId, cohort, |
| ... | ... | @@ -110,7 +115,7 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH |
| 110 | 115 | } |
| 111 | 116 | rsp.NewCards = append(rsp.NewCards, newCards) |
| 112 | 117 | } |
| 113 | - awardAlbum, awardRound := DoOpenCheckAward(req.GameID, | |
| 118 | + awardAlbum, awardRound := DoOpenCheckAward(gameId, | |
| 114 | 119 | player, config, |
| 115 | 120 | sequenceId, cohort, |
| 116 | 121 | allNewCards, |
| ... | ... | @@ -122,7 +127,7 @@ func HandleOpen(req *models.ReqCardHolderOpen) (code string, rsp models.RspCardH |
| 122 | 127 | CalculateStarCount(player, config) |
| 123 | 128 | |
| 124 | 129 | // 存档 |
| 125 | - SavePlayer(req.GameID, player) | |
| 130 | + SavePlayer(gameId, player) | |
| 126 | 131 | |
| 127 | 132 | // 返回信息 |
| 128 | 133 | rsp.CardHolderInfo = GetInfo(player, config) |
| ... | ... | @@ -137,9 +142,11 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model |
| 137 | 142 | AwardAlbum: make(map[int]string), |
| 138 | 143 | } |
| 139 | 144 | code = code_msg.RECODE_OK |
| 145 | + gameId := req.GameID | |
| 146 | + playerUid := req.UID | |
| 140 | 147 | |
| 141 | 148 | // 尝试更新配置 |
| 142 | - config, hasConfig := configs.GetCardActivityConfig(req.GameID) | |
| 149 | + config, hasConfig := configs.GetCardActivityConfig(gameId) | |
| 143 | 150 | if !hasConfig { |
| 144 | 151 | code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR |
| 145 | 152 | return |
| ... | ... | @@ -158,7 +165,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model |
| 158 | 165 | } |
| 159 | 166 | |
| 160 | 167 | // 读取游戏数据 |
| 161 | - player := LoadPlayer(req.GameID, req.UID, config) | |
| 168 | + player := LoadPlayer(gameId, playerUid, config) | |
| 162 | 169 | // 检查游戏数据 轮次等 |
| 163 | 170 | code = CheckGameData(player, config) |
| 164 | 171 | if code != code_msg.RECODE_OK { |
| ... | ... | @@ -204,7 +211,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model |
| 204 | 211 | openMode := 1 |
| 205 | 212 | sequenceId, cohort := GetUserSequenceIdAndCohort(player.Uid) |
| 206 | 213 | for i := 0; i < cardholderCount; i++ { |
| 207 | - newCards := DoOpen(req.GameID, | |
| 214 | + newCards := DoOpen(gameId, | |
| 208 | 215 | player, config, |
| 209 | 216 | confCardholder, |
| 210 | 217 | sequenceId, cohort, |
| ... | ... | @@ -213,7 +220,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model |
| 213 | 220 | rsp.NewCards = append(rsp.NewCards, i3) |
| 214 | 221 | } |
| 215 | 222 | } |
| 216 | - awardAlbum, awardRound := DoOpenCheckAward(req.GameID, | |
| 223 | + awardAlbum, awardRound := DoOpenCheckAward(gameId, | |
| 217 | 224 | player, config, |
| 218 | 225 | sequenceId, cohort, |
| 219 | 226 | rsp.NewCards, |
| ... | ... | @@ -225,7 +232,7 @@ func HandleShopExchange(req *models.ReqStarShopExchange) (code string, rsp model |
| 225 | 232 | CalculateStarCount(player, config) |
| 226 | 233 | |
| 227 | 234 | // 存档 |
| 228 | - SavePlayer(req.GameID, player) | |
| 235 | + SavePlayer(gameId, player) | |
| 229 | 236 | |
| 230 | 237 | utslice.Shuffle(rsp.NewCards) |
| 231 | 238 | |
| ... | ... | @@ -243,9 +250,11 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m |
| 243 | 250 | AutoExchangeHolder: make([]int, 0), |
| 244 | 251 | } |
| 245 | 252 | code = code_msg.RECODE_OK |
| 253 | + gameId := req.GameID | |
| 254 | + playerUid := req.UID | |
| 246 | 255 | |
| 247 | 256 | // 尝试更新配置 |
| 248 | - config, hasConfig := configs.GetCardActivityConfig(req.GameID) | |
| 257 | + config, hasConfig := configs.GetCardActivityConfig(gameId) | |
| 249 | 258 | if !hasConfig { |
| 250 | 259 | code = code_msg.RECODE_MERGE_CARDHOLDER_NOTOPEN_ERROR |
| 251 | 260 | return |
| ... | ... | @@ -258,7 +267,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m |
| 258 | 267 | } |
| 259 | 268 | |
| 260 | 269 | // 读取游戏数据 |
| 261 | - player := LoadPlayer(req.GameID, req.UID, config) | |
| 270 | + player := LoadPlayer(gameId, playerUid, config) | |
| 262 | 271 | // 检查游戏数据 轮次等 |
| 263 | 272 | code = CheckGameData(player, config) |
| 264 | 273 | if code != code_msg.RECODE_OK { |
| ... | ... | @@ -284,7 +293,7 @@ func HandleAutoExchangeInfo(req *models.ReqAutoExchangeInfo) (code string, rsp m |
| 284 | 293 | player.Details.LastStarCount = 0 |
| 285 | 294 | player.Details.AutoExchangeHolder = make([]int, 0) |
| 286 | 295 | // 存档 |
| 287 | - SavePlayer(req.GameID, player) | |
| 296 | + SavePlayer(gameId, player) | |
| 288 | 297 | |
| 289 | 298 | utslice.Shuffle(rsp.NewCards) |
| 290 | 299 | ... | ... |
service/cardholder/player.go
| ... | ... | @@ -18,13 +18,13 @@ func SavePlayer(gameId string, d *DataCardHolder) { |
| 18 | 18 | } |
| 19 | 19 | } |
| 20 | 20 | |
| 21 | -func _LoadPlayer(gameId string, uid int64) (d *DataCardHolder) { | |
| 22 | - d = NewDataCardHolder(uid) | |
| 21 | +func _LoadPlayer(gameId string, playerUid int64) (d *DataCardHolder) { | |
| 22 | + d = NewDataCardHolder(playerUid) | |
| 23 | 23 | has, err := svmysql.First(d, gameId) |
| 24 | 24 | if has { |
| 25 | 25 | d.Decode() |
| 26 | 26 | } else { |
| 27 | - d.Init(uid) | |
| 27 | + d.Init(playerUid) | |
| 28 | 28 | err = svmysql.Create(d, gameId) |
| 29 | 29 | if err != nil { |
| 30 | 30 | lxalilog.Errors(err, "cardholder._LoadPlayer Create error", gameId, d.Uid, d.ActivityId) |
| ... | ... | @@ -35,9 +35,9 @@ func _LoadPlayer(gameId string, uid int64) (d *DataCardHolder) { |
| 35 | 35 | } |
| 36 | 36 | |
| 37 | 37 | // LoadPlayer 获取数据 外部接口 |
| 38 | -func LoadPlayer(gameId string, uid int64, config *configs.CardActivityConfig) (d *DataCardHolder) { | |
| 38 | +func LoadPlayer(gameId string, playerUid int64, config *configs.CardActivityConfig) (d *DataCardHolder) { | |
| 39 | 39 | configId := config.Id |
| 40 | - d = _LoadPlayer(gameId, uid) | |
| 40 | + d = _LoadPlayer(gameId, playerUid) | |
| 41 | 41 | // 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新 |
| 42 | 42 | if configId != 0 && |
| 43 | 43 | configId != d.ActivityId { | ... | ... |
service/roomrank/handle.go
| ... | ... | @@ -10,9 +10,10 @@ import ( |
| 10 | 10 | func HandleGetConfig(req *models.ReqRoomRankGetConfig) (code string, rsp models.RspRoomRankGetConfig) { |
| 11 | 11 | rsp = models.RspRoomRankGetConfig{} |
| 12 | 12 | code = code_msg.RECODE_OK |
| 13 | + gameId := req.GameID | |
| 13 | 14 | |
| 14 | 15 | // 尝试更新配置 |
| 15 | - config, _ := configs.GetRoomRankConfig(req.GameID) | |
| 16 | + config, _ := configs.GetRoomRankConfig(gameId) | |
| 16 | 17 | rsp.ActivityId = config.Id |
| 17 | 18 | |
| 18 | 19 | rsp.Config = config.Client |
| ... | ... | @@ -24,9 +25,11 @@ func HandleGetConfig(req *models.ReqRoomRankGetConfig) (code string, rsp models. |
| 24 | 25 | func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRankInfo) { |
| 25 | 26 | rsp = models.RspRoomRankInfo{} |
| 26 | 27 | code = code_msg.RECODE_OK |
| 28 | + gameId := req.GameID | |
| 29 | + playerUid := req.UID | |
| 27 | 30 | |
| 28 | 31 | // 尝试更新配置 |
| 29 | - config, hasConfig := configs.GetRoomRankConfig(req.GameID) | |
| 32 | + config, hasConfig := configs.GetRoomRankConfig(gameId) | |
| 30 | 33 | if !hasConfig { |
| 31 | 34 | code = code_msg.RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR |
| 32 | 35 | return |
| ... | ... | @@ -41,7 +44,14 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan |
| 41 | 44 | //} |
| 42 | 45 | |
| 43 | 46 | // 读取游戏数据 |
| 44 | - player := LoadPlayer(req.GameID, req.UID, config) | |
| 47 | + player := LoadPlayer(gameId, playerUid, config) | |
| 48 | + | |
| 49 | + // todo 检查是否有领取的结算奖励 | |
| 50 | + | |
| 51 | + //hasRoom := player.RoomUid != 0 | |
| 52 | + //if hasRoom { | |
| 53 | + // room, has := LoadRoom(gameId, player.RoomUid,) | |
| 54 | + //} | |
| 45 | 55 | |
| 46 | 56 | rsp.RoomRankInfo = GetInfo(player, config) |
| 47 | 57 | ... | ... |
service/roomrank/player.go
| ... | ... | @@ -19,12 +19,12 @@ func SavePlayer(gameId string, d *DataRoomRankPlayer) { |
| 19 | 19 | } |
| 20 | 20 | } |
| 21 | 21 | |
| 22 | -func _LoadPlayer(gameId string, uid int64) (d *DataRoomRankPlayer) { | |
| 23 | - d = NewDataRoomRankPlayer(uid) | |
| 22 | +func _LoadPlayer(gameId string, playerUid int64) (d *DataRoomRankPlayer) { | |
| 23 | + d = NewDataRoomRankPlayer(playerUid) | |
| 24 | 24 | has, err := svmysql.First(d, gameId) |
| 25 | 25 | if has { |
| 26 | 26 | } else { |
| 27 | - d.Init(uid) | |
| 27 | + d.Init(playerUid) | |
| 28 | 28 | err = svmysql.Create(d, gameId) |
| 29 | 29 | if err != nil { |
| 30 | 30 | lxalilog.Errors(err, "roomrank._LoadPlayer Create error", gameId, d.Uid, d.ActivityId) |
| ... | ... | @@ -35,10 +35,10 @@ func _LoadPlayer(gameId string, uid int64) (d *DataRoomRankPlayer) { |
| 35 | 35 | } |
| 36 | 36 | |
| 37 | 37 | // LoadPlayer 获取数据 外部接口 |
| 38 | -func LoadPlayer(gameId string, uid int64, config *configs.RoomRankConfig) (d *DataRoomRankPlayer) { | |
| 38 | +func LoadPlayer(gameId string, playerUid int64, config *configs.RoomRankConfig) (d *DataRoomRankPlayer) { | |
| 39 | 39 | configId := config.Id |
| 40 | - d = _LoadPlayer(gameId, uid) | |
| 41 | - // 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新 | |
| 40 | + d = _LoadPlayer(gameId, playerUid) | |
| 41 | + // todo 这里要重写 这个活动根据玩家领奖来切换 如果当前有上线活动(活动ID不为0),且活动ID和玩家数据不同,说明活动已切换 需更新 | |
| 42 | 42 | if configId != 0 && |
| 43 | 43 | configId != d.ActivityId { |
| 44 | 44 | ... | ... |
| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | +package utmisc | |
| 2 | + | |
| 3 | +import ( | |
| 4 | + "fmt" | |
| 5 | + "runtime" | |
| 6 | +) | |
| 7 | + | |
| 8 | +// GetGoroutineID 获取携程ID | |
| 9 | +func GetGoroutineID() int { | |
| 10 | + var buf [64]byte | |
| 11 | + runtime.Stack(buf[:], false) | |
| 12 | + var id int | |
| 13 | + fmt.Sscanf(string(buf[:]), "goroutine %d", &id) | |
| 14 | + return id | |
| 15 | +} | ... | ... |