diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/ridingSward/RidingSwardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/ridingSward/RidingSwardLogic.java index 4e2a29ad4..8411b30d8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/ridingSward/RidingSwardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/ridingSward/RidingSwardLogic.java @@ -61,6 +61,11 @@ public class RidingSwardLogic{ if (endTime == 0 && startTime == 0){ return 0; } + // 比赛结算阶段 + int size = getRankMap("").size(); + if (getRound() >= size){ + return 3; + } int now = TimeUtils.nowInt(); // 活动过期 if (now > endTime || now < startTime){ @@ -74,10 +79,7 @@ public class RidingSwardLogic{ SRidingSwardConfig config = STableManager.getConfig(SRidingSwardConfig.class).get(1); // 一场比赛得时间,投注时间+比赛时间 int oneGameTime = config.getTime()[0] + config.getTime()[1]; - if (now + oneGameTime >= endTime){ - return 3; - } - // (当前时间-开始时间)%场次时间,取模,可以获得限制位于哪个阶段 + // (当前时间-开始时间)%场次时间,取模,可以获得现在位于哪个阶段 return (now - startTime) % (oneGameTime) > config.getTime()[0] ? 2 : 1; }catch (Exception e){ e.printStackTrace(); @@ -102,9 +104,6 @@ public class RidingSwardLogic{ }else { round = time / oneGameTime +1; } - if (getState() == 3){ - round -= 1; - } return round; } @@ -399,8 +398,13 @@ public class RidingSwardLogic{ * @return */ private CommonProto.RidingSwardLastRank getRidingSwardLastRank() throws ErrorCodeException { + int round = getRound()-1; + if (getState() == 3){ + int size = getRankMap("").size(); + round = size - 1; + } // 配置 - RidingSwardRank swardRank = getRankMap("").getOrDefault(getRound()-1, new RidingSwardRank()); + RidingSwardRank swardRank = getRankMap("").getOrDefault(round, new RidingSwardRank()); return CommonProto.RidingSwardLastRank.newBuilder() .setRankTime(swardRank.getTime()) .setRankId(swardRank.getRankId())