package roomrank import ( "apigame/configs/confroomrank" "apigame/models" "apigame/service/code-msg" "fmt" ) // HandleGetConfig 活动配置 func HandleGetConfig(req *models.ReqRoomRankGetConfig) (code string, rsp models.RspRoomRankGetConfig) { rsp = models.RspRoomRankGetConfig{} code = code_msg.RECODE_OK gameId := req.GameID // 尝试更新配置 config, hasConfig := confroomrank.GetCurrent(gameId) if !hasConfig { code = code_msg.RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR return } rsp.ActivityId = config.Id rsp.PrepareTime = config.PreviewTime rsp.StartTime = config.StartTime rsp.EndTime = config.EndTime rsp.ReleaseTime = config.ReleaseTime rsp.OpenLevel = config.OpenLevel rsp.Config = config.Client return } // HandleInfo 房间排行信息 func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRankInfo) { rsp = models.RspRoomRankInfo{} code = code_msg.RECODE_OK gameId := req.GameID playerUid := req.UID playerLevel := req.PlayerLevel // 尝试更新配置 config, hasConfig := confroomrank.GetCurrent(gameId) if !hasConfig { config = new(confroomrank.ActivityConfig) code = code_msg.RECODE_MERGE_ROOMRANK_NOTOPEN_ERROR return } // 判断玩家等级 if req.PlayerLevel < config.OpenLevel { code = code_msg.RECODE_MERGE_ROOMRANK_LEVEL_ERROR return } // 读取游戏数据 player := LoadPlayer(gameId, playerUid) player.Name = req.PlayerName player.Icon = req.PlayerIcon // 尝试判断结算 hasSettle := TrySettle(gameId, player, config) if hasSettle { SavePlayer(gameId, player) rsp.RoomRankInfo = GetInfoFromSettle(player, config) return } // 尝试加入房间 room, hasRoom := TryGetRoom(gameId, player, config, playerLevel) if hasRoom { TryReSort(room, config) SavePlayer(gameId, player) SaveRoom(gameId, room) } rsp.RoomRankInfo = GetInfoFromRoom(player, room) fmt.Println("dwjw🐸 len(room.Details.Players) 1:", len(room.Details.Players)) return }