From a540a342416302805adfb1599599bbbbaa191030 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 08 八月 2025 23:42:13 +0800 Subject: [PATCH] 赛事模块 --- cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java | 132 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 132 insertions(+), 0 deletions(-) diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java index 08a6eaf..85efcb5 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java @@ -4,14 +4,17 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.communityWorldCup.entity.*; import com.dsh.communityWorldCup.feignclient.account.AppUserClient; import com.dsh.communityWorldCup.feignclient.account.StudentClient; +import com.dsh.communityWorldCup.feignclient.account.StudentHonorClient; import com.dsh.communityWorldCup.feignclient.account.UserIntegralChangesClient; import com.dsh.communityWorldCup.feignclient.account.model.AppUser; import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo; +import com.dsh.communityWorldCup.feignclient.account.model.StudentHonor; import com.dsh.communityWorldCup.feignclient.account.model.TStudent; import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient; import com.dsh.communityWorldCup.feignclient.competition.model.Participant; @@ -78,7 +81,11 @@ private GameClient gameClient; @Resource + private StudentHonorClient studentHonorClient; + + @Resource private UserIntegralChangesClient userIntegralChangesClient; + /** @@ -98,7 +105,19 @@ } else { worldCupListCoachVo.setDistance(0D); } + + if(worldCupListCoachVo.getType()!=null && worldCupListCoachVo.getType()==2){ + // 获取正在进行的赛事 + + int size = worldCupCompetitorService.list(new LambdaQueryWrapper<WorldCupCompetitor>().eq(WorldCupCompetitor::getWorldCupId, worldCupListCoachVo.getId()) + .ge(WorldCupCompetitor::getStartTime, new Date()).lt(WorldCupCompetitor::getEndTime, new Date()).groupBy(WorldCupCompetitor::getCode)).size(); + worldCupListCoachVo.setNowNum(size); + } + } + + + //对查询结果进行距离排序(直线距离) Collections.sort(worldCupListCoach1, new Comparator<WorldCupListCoachVo>() { @Override @@ -1022,4 +1041,117 @@ public void updateWorldCupAll(WorldCup worldCup) { this.baseMapper.updateWorldCupAll(worldCup); } + + @Override + public ResultUtil endWorldCup(String custom, Integer red_score, Integer blue_score) { + String[] split = custom.split(","); + ArrayList<Long> ids = new ArrayList<>(); + for (String s : split) { + ids.add(Long.parseLong(s)); + } + List<WorldCupCompetitor> worldCupCompetitors = worldCupCompetitorService.listByIds(ids); + try { + WorldCupCompetitor worldCupCompetitor1 = worldCupCompetitors.get(0); + WorldCup worldCup = this.getById(worldCupCompetitor1.getWorldCupId()); + for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) { + worldCupCompetitor.setWorldCupId(null); + //蓝方 + if(worldCupCompetitor.getParticipant() == 1){ + worldCupCompetitor.setMatchResult(blue_score.compareTo(red_score)); + worldCupCompetitor.setOurScore(blue_score); + worldCupCompetitor.setOpponentScore(red_score); + worldCupCompetitor.setEndTime(new Date()); + worldCupCompetitor.setWinIntegral(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); + } + } + //红方 + if(worldCupCompetitor.getParticipant() == 2){ + worldCupCompetitor.setMatchResult(red_score.compareTo(blue_score)); + worldCupCompetitor.setOurScore(red_score); + worldCupCompetitor.setOpponentScore(blue_score); + worldCupCompetitor.setEndTime(new Date()); + worldCupCompetitor.setWinIntegral(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); + } + } + } + }catch (Exception e){ + e.printStackTrace(); + } + + worldCupCompetitorService.updateBatchById(worldCupCompetitors); + + //添加勋章 + for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) { + Integer appUserId = worldCupCompetitor.getAppUserId(); + //常胜将军 + if(1 == worldCupCompetitor.getMatchResult()){ + int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId).eq("matchResult", 1)); + StudentHonor studentHonor = new StudentHonor(); + studentHonor.setAppUserId(appUserId); + studentHonor.setHonorType(5); + studentHonor.setNumber(count); + studentHonorClient.saveStudentHonor(studentHonor); + } + //越战越勇 + int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId)); + StudentHonor studentHonor = new StudentHonor(); + studentHonor.setAppUserId(appUserId); + studentHonor.setHonorType(6); + studentHonor.setNumber(count); + studentHonorClient.saveStudentHonor(studentHonor); + } + return ResultUtil.success(); + } } -- Gitblit v1.7.1