diff --git a/service/roomrank/logic.go b/service/roomrank/logic.go index ae66ecb..b777292 100644 --- a/service/roomrank/logic.go +++ b/service/roomrank/logic.go @@ -3,7 +3,6 @@ package roomrank import ( "apigame/configs/confroomrank" "apigame/service-common/svconst" - "apigame/util/util-lx/lxtime" "apigame/util/utstring" "apigame/util/ztime" "fmt" @@ -60,36 +59,17 @@ func TrySettle(gameId string, topType int, player *Player, config *confroomrank. return } - // 已经结算过的不结算 - if room.HasSettle { - return - } - confActivity, hasConfActivity := confroomrank.GetConfig(gameId, room.ActivityId) if !hasConfActivity { return } - // 活动切换或者时间到 触发结算 - needSettle := false - if player.ActivityId != config.Id { - needSettle = true - } else { - dtYear, dtMonth, dtDay := ActivityTimeToDate(room.ActivityTime) - hour, min, sec := ztime.TimeClock(confActivity.ReleaseTime) - dt := time.Date(dtYear, dtMonth, dtDay, hour, min, sec, 0, time.Local) - dtNow := lxtime.NowUninx() - if dtNow >= dt.Unix() { - needSettle = true - } - } + TrySettleRoom(gameId, room, confActivity) - if !needSettle { + if !room.HasSettle { return } - TrySettleRoom(gameId, room, confActivity) - // 找到玩家在房间里的名次 // rankIndex = 0-49 rank = 1-50 rankIndex, rankScore := room.FindPlayer(player.Uid) diff --git a/service/roomrank/room.go b/service/roomrank/room.go index 009a074..cadf8d5 100644 --- a/service/roomrank/room.go +++ b/service/roomrank/room.go @@ -216,6 +216,28 @@ func JoinInitRobot(gameId string, room *Room, roomConfig confroomrank.RoomConfig // TrySettleRoom 尝试结算房间 func TrySettleRoom(gameId string, room *Room, confActivity *confroomrank.ActivityConfig) { + // 已经结算过的不结算 + if room.HasSettle { + return + } + // 活动切换或者时间到 触发结算 + needSettle := false + if room.ActivityId != confActivity.Id { + needSettle = true + } else { + dtYear, dtMonth, dtDay := ActivityTimeToDate(room.ActivityTime) + hour, min, sec := ztime.TimeClock(confActivity.ReleaseTime) + dt := time.Date(dtYear, dtMonth, dtDay, hour, min, sec, 0, time.Local) + dtNow := lxtime.NowUninx() + if dtNow >= dt.Unix() { + needSettle = true + } + } + + if !needSettle { + return + } + // 机器人最终算分 for i := 0; i < len(room.Details.Players); i++ { roomPlayer := room.Details.Players[i] -- libgit2 0.21.0