From dd556df997e268153bf1a74616f49b25db11ed3f Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 08 八月 2025 15:37:35 +0800 Subject: [PATCH] 赛事模块 --- cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java | 119 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 97 insertions(+), 22 deletions(-) diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java index 4ac941c..aa85df4 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java @@ -30,6 +30,7 @@ import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * @author zhibing.pu @@ -168,10 +169,19 @@ AppUser appUser = appUserClient.getAppUser(worldCupRank.getAppUserId()); appUserIds = appUserClient.getAppUserIds(appUser.getCityCode()); } + String sTime = null; + String eTime = null; + if(ToolUtil.isNotEmpty(worldCupRank.getTime())){ + sTime = worldCupRank.getTime().split(" - ")[0] + " 00:00:00"; + eTime = worldCupRank.getTime().split(" - ")[1] + " 23:59:59"; + } + //总场次 - List<Map<String, Object>> lists = this.baseMapper.getWorldCupRank(worldCupRank, appUserIds); + List<Map<String, Object>> lists = this.baseMapper.getWorldCupRank(worldCupRank, appUserIds, sTime, eTime); + //未负的数据 - List<Map<String, Object>> lists1 = this.baseMapper.getWorldCupRank1(worldCupRank, appUserIds); + List<Map<String, Object>> lists1 = this.baseMapper.getWorldCupRank1(worldCupRank, appUserIds, sTime, eTime); + List<Map<String, Object>> mapList = new ArrayList<>(); for (int i = 0; i < lists.size(); i++) { Map<String, Object> map = lists.get(i); @@ -179,6 +189,9 @@ Long participantId = Long.valueOf(map.get("participantId").toString()); Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); Integer num = Integer.valueOf(null == map.get("num") ? "0" : map.get("num").toString()); + Integer winIntegral = Integer.valueOf(null == map.get("winIntegral") ? "0" : map.get("winIntegral").toString()); + Integer drawIntegral = Integer.valueOf(null == map.get("drawIntegral") ? "0" : map.get("drawIntegral").toString()); + Integer loseIntegral = Integer.valueOf(null == map.get("loseIntegral") ? "0" : map.get("loseIntegral").toString()); //学员 if(participantType == 1){ TStudent tStudent = studentClient.queryById(participantId.intValue()); @@ -194,6 +207,7 @@ } } map.put("totalSession", num); + map.put("totalIntegral", winIntegral+drawIntegral+loseIntegral); map.put("winRate", "0"); for (Map<String, Object> objectMap : lists1) { Integer participantType1 = Integer.valueOf(objectMap.get("participantType").toString()); @@ -207,22 +221,30 @@ } mapList.add(map); } - if(worldCupRank.getSort() == 1){ - mapList.sort(new Comparator<Map<String, Object>>() { - @Override - public int compare(Map<String, Object> o1, Map<String, Object> o2) { - return Double.valueOf(o1.get("totalSession").toString()).compareTo(Double.valueOf(o2.get("totalSession").toString())) * -1; - } - }); - } - if(worldCupRank.getSort() == 2){ - mapList.sort(new Comparator<Map<String, Object>>() { - @Override - public int compare(Map<String, Object> o1, Map<String, Object> o2) { - return Double.valueOf(o1.get("winRate").toString()).compareTo(Double.valueOf(o2.get("winRate").toString())) * -1; - } - }); - } + + + + + + +// if(worldCupRank.getSort() == 1){ +// mapList.sort(new Comparator<Map<String, Object>>() { +// @Override +// public int compare(Map<String, Object> o1, Map<String, Object> o2) { +// return Double.valueOf(o1.get("totalSession").toString()).compareTo(Double.valueOf(o2.get("totalSession").toString())) * -1; +// } +// }); +// } +// if(worldCupRank.getSort() == 2){ +// mapList.sort(new Comparator<Map<String, Object>>() { +// @Override +// public int compare(Map<String, Object> o1, Map<String, Object> o2) { +// return Double.valueOf(o1.get("winRate").toString()).compareTo(Double.valueOf(o2.get("winRate").toString())) * -1; +// } +// }); +// } + + List<WorldCupRankVo> list = new ArrayList<>(); for (int i = 0; i < mapList.size(); i++) { Map<String, Object> map = mapList.get(i); @@ -230,12 +252,14 @@ Long participantId = Long.valueOf(map.get("participantId").toString()); Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); Integer totalSession = Integer.valueOf(map.get("totalSession").toString()); + Integer totalIntegral = Integer.valueOf(map.get("totalIntegral").toString()); Double winRate = Double.valueOf(map.get("winRate").toString()); //自己排名在20内的标识 boolean b = false; if(i <= 19){ WorldCupRankVo worldCupRankVo = new WorldCupRankVo(); worldCupRankVo.setRank(i + 1); + worldCupRankVo.setIntegral(totalIntegral); worldCupRankVo.setTotalSession(totalSession); worldCupRankVo.setWinRate(winRate); //学员 @@ -314,6 +338,8 @@ } } } + // 排序 + list= list.stream().sorted(Comparator.comparing(WorldCupRankVo::getIntegral).reversed().thenComparing(WorldCupRankVo::getTotalSession).reversed().thenComparing(WorldCupRankVo::getWinRate).reversed()).collect(Collectors.toList()); return list; } @@ -346,13 +372,31 @@ worldCupCompetitor.setOpponentScore(red_score); worldCupCompetitor.setEndTime(new Date()); worldCupCompetitor.setWinIntegral(0); - if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) >= 0){ + worldCupCompetitor.setDrawIntegral(0); + worldCupCompetitor.setLoseIntegral(0); + if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) > 0){ worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); + userIntegralChangesClient.saveUserIntegralChanges(vo); + }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){ + worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getDrawIntegral()); + vo.setType(9); + userIntegralChangesClient.saveUserIntegralChanges(vo); + }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){ + worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getLoseIntegral()); + vo.setType(10); userIntegralChangesClient.saveUserIntegralChanges(vo); } } @@ -363,13 +407,31 @@ worldCupCompetitor.setOpponentScore(blue_score); worldCupCompetitor.setEndTime(new Date()); worldCupCompetitor.setWinIntegral(0); - if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) >= 0){ + worldCupCompetitor.setDrawIntegral(0); + worldCupCompetitor.setLoseIntegral(0); + if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) > 0){ worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); + userIntegralChangesClient.saveUserIntegralChanges(vo); + }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){ + worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getDrawIntegral()); + vo.setType(9); + userIntegralChangesClient.saveUserIntegralChanges(vo); + }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){ + worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getLoseIntegral()); + vo.setType(10); userIntegralChangesClient.saveUserIntegralChanges(vo); } } @@ -416,8 +478,15 @@ appUserIdsByCityName.setProvince(worldCupRecords.getProvince()); appUserIdsByCityName.setCity(worldCupRecords.getCity()); List<Integer> appUserIds = appUserClient.getAppUserIdsByCityName(appUserIdsByCityName); - List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds); - List<Map<String, Object>> mapList1 = this.baseMapper.worldCupRecordsList1(worldCupRecords, appUserIds); + String time = worldCupRecords.getTime(); + String sTime = null; + String eTime = null; + if(ToolUtil.isNotEmpty(time)){ + sTime = time.split(" - ")[0] + " 00:00:00"; + eTime = time.split(" - ")[1] + " 23:59:59"; + } + List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds,sTime,eTime); + List<Map<String, Object>> mapList1 = this.baseMapper.worldCupRecordsList1(worldCupRecords, appUserIds,sTime,eTime); List<Map<String, Object>> list = new ArrayList<>(); int row_num = 0; for (int i = 0; i < mapList.size(); i++) { @@ -787,4 +856,10 @@ public int getMatchTime(Integer worldCupId) { return this.baseMapper.getMatchTime(worldCupId); } + + @Override + public List<WorldCupListVo> getWorldCupListFromRank(Integer uid) { + + return this.baseMapper.getWorldCupListFromRank(uid); + } } -- Gitblit v1.7.1