From 6e331b5c9e3aa2c89c4eb2cc1e03af92e90c9d65 Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Thu, 20 Aug 2020 22:53:17 +0800 Subject: [PATCH] tuisong --- .../ccsens/game/service/ScreenService.java | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/game/src/main/java/com/ccsens/game/service/ScreenService.java b/game/src/main/java/com/ccsens/game/service/ScreenService.java index bd00e170..6b4f20d7 100644 --- a/game/src/main/java/com/ccsens/game/service/ScreenService.java +++ b/game/src/main/java/com/ccsens/game/service/ScreenService.java @@ -685,25 +685,35 @@ public class ScreenService implements IScreenService { ScreenVo.CompletedData completedData = new ScreenVo.CompletedData(); String groupKey = gameRecordId + "_group"; Set> typedTuples = redisUtil.zsRevGetWithScore(groupKey, 0, -1); - Iterator> iterator = typedTuples.iterator(); - ZSetOperations.TypedTuple next = iterator.next(); - GameGroup gameGroup = JSON.parseObject((String) next.getValue(), GameGroup.class); - int score = next.getScore().intValue(); - completedData.setTotalScore(score); - completedData.setTotalTimes(score/100); - Object o = redisUtil.get(gameGroup.getId() + GameConstant.GAME_GROUP_NUM); - if (o==null) { - o = 0; - } - completedData.setTotalMember((int)o); - completedData.setAverageTimes((int)o == 0 ? 0 : completedData.getTotalTimes()/(int)o); - completedData.setWinGroup(gameGroup.getName()); + log.info("查询成绩:{}", typedTuples); + if (CollectionUtil.isNotEmpty(typedTuples)) { + Iterator> iterator = typedTuples.iterator(); + if (!iterator.hasNext()) { + log.info("没有成绩"); + return completedData; + } + ZSetOperations.TypedTuple next = iterator.next(); + GameGroup gameGroup = JSON.parseObject((String) next.getValue(), GameGroup.class); + int score = next.getScore().intValue(); + completedData.setTotalScore(score); + completedData.setTotalTimes(score/100); + Object o = redisUtil.get(gameGroup.getId() + GameConstant.GAME_GROUP_NUM); + if (o==null) { + o = 0; + } + completedData.setTotalMember((int)o); + completedData.setAverageTimes((int)o == 0 ? 0 : completedData.getTotalTimes()/(int)o); + completedData.setWinGroup(gameGroup.getName()); - GameUserJoinExample joinExample = new GameUserJoinExample(); - joinExample.createCriteria().andRecordIdEqualTo(gameRecordId).andScoreGreaterThan(completedData.getAverageTimes()); - long l = gameUserJoinDao.countByExample(joinExample); - completedData.setOver((int)o == 0 ? 0 : (int) (l * 100 / (int) o)); + GameUserJoinExample joinExample = new GameUserJoinExample(); + joinExample.createCriteria().andRecordIdEqualTo(gameRecordId).andScoreGreaterThan(completedData.getAverageTimes()); + long l = gameUserJoinDao.countByExample(joinExample); + completedData.setOver((int)o == 0 ? 0 : (int) (l * 100 / (int) o)); + } else { + + } + //TODO 1、分别查询redis内每个队伍的总分, //2、查询获胜队伍的信息