From b14a14b01d2c632f4feff86f1a41d3761869b49a Mon Sep 17 00:00:00 2001 From: 王家文 Date: Mon, 29 Apr 2024 11:20:40 +0800 Subject: [PATCH] feat✨:排行榜报名成功返回标记 --- models/roomrank.go | 1 + service/roomrank/handle.go | 6 ++++-- service/roomrank/room.go | 5 ++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/models/roomrank.go b/models/roomrank.go index 91874f2..233d0b0 100644 --- a/models/roomrank.go +++ b/models/roomrank.go @@ -31,6 +31,7 @@ type RoomRankInfo struct { UserClass int `form:"user_class" json:"user_class"` // 用户评级 SelfRank int `form:"self_rank" json:"self_rank"` // 自己排名 SelfScore int64 `form:"self_score" json:"self_score"` // 自己积分 + FirstJoin bool `form:"first_join" json:"first_join"` // 是否本期第一次报名 RobotAvatarPath string `form:"robot_avatar_path" json:"robot_avatar_path"` // 机器人头像路径 Tops []RoomRankTopNode `form:"tops" json:"tops"` // 排行榜数据列表 } diff --git a/service/roomrank/handle.go b/service/roomrank/handle.go index 2168b3d..aec9d95 100644 --- a/service/roomrank/handle.go +++ b/service/roomrank/handle.go @@ -70,7 +70,7 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan } // 尝试加入房间 - room, hasRoom := TryGetRoom(gameId, req.TopType, player, config, playerLevel) + room, hasRoom, firstJoin := TryGetRoom(gameId, req.TopType, player, config, playerLevel) if !hasRoom { code = code_msg.RECODE_MERGE_CONFIG_ERROR @@ -80,6 +80,7 @@ func HandleInfo(req *models.ReqRoomRankInfo) (code string, rsp models.RspRoomRan SavePlayer(gameId, player) SaveRoom(gameId, room) rsp.RoomRankInfo = GetInfoFromRoom(gameId, player, room, config) + rsp.RoomRankInfo.FirstJoin = firstJoin return } @@ -189,7 +190,7 @@ func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.Rs } // 尝试加入房间 - room, hasRoom := TryGetRoom(gameId, req.TopType, player, config, playerLevel) + room, hasRoom, firstJoin := TryGetRoom(gameId, req.TopType, player, config, playerLevel) // 房间排行增加积分 oldScore, newScore := ChangePlayerScore(room, player, req.AddScore) @@ -203,6 +204,7 @@ func HandleAddScore(req *models.ReqRoomRankAddScore) (code string, rsp models.Rs SaveRoom(gameId, room) rsp.RoomRankInfo = GetInfoFromRoom(gameId, player, room, config) + rsp.RoomRankInfo.FirstJoin = firstJoin // 记录日志 recordBase := NewRecordBase(player.Uid, req.TopType, config.Id) diff --git a/service/roomrank/room.go b/service/roomrank/room.go index 5240bd4..9aeef71 100644 --- a/service/roomrank/room.go +++ b/service/roomrank/room.go @@ -85,8 +85,9 @@ func FindRoom(gameId string, topType int, activityId int64, roomConfigId int) (r } // TryGetRoom 尝试获取房间 -func TryGetRoom(gameId string, topType int, player *Player, config *confroomrank.ActivityConfig, playerLevel int) (room *Room, hasRoom bool) { +func TryGetRoom(gameId string, topType int, player *Player, config *confroomrank.ActivityConfig, playerLevel int) (room *Room, hasRoom bool, firstJoin bool) { hasRoom = false + firstJoin = false if player.ActivityId != config.Id { player.ActivityId = config.Id player.RoomUid = 0 @@ -136,6 +137,7 @@ func TryGetRoom(gameId string, topType int, player *Player, config *confroomrank if hasRoom { // 如果有 就加入 PlayerJoinRoom(room, player) + firstJoin = true } else { // 如果没有合适条件的房间 创建一个 roomCreate, hasCreate := CreateRoom(gameId, topType, config.Id, roomConfigId) @@ -146,6 +148,7 @@ func TryGetRoom(gameId string, topType int, player *Player, config *confroomrank JoinInitRobot(gameId, room, roomConfig) PlayerJoinRoom(room, player) + firstJoin = true hasRoom = hasCreate } } -- libgit2 0.21.0