From 9a44650b174f598392d0a0522b02a341ff14acb0 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期二, 12 八月 2025 21:16:17 +0800 Subject: [PATCH] 赛事模块 --- cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java | 183 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 178 insertions(+), 5 deletions(-) diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java index c2faace..44e8560 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java @@ -5,10 +5,16 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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; @@ -20,10 +26,7 @@ import com.dsh.communityWorldCup.feignclient.other.model.TGame; import com.dsh.communityWorldCup.model.*; import com.dsh.communityWorldCup.service.*; -import com.dsh.communityWorldCup.util.GDMapGeocodingUtil; -import com.dsh.communityWorldCup.util.PayMoneyUtil; -import com.dsh.communityWorldCup.util.ResultUtil; -import com.dsh.communityWorldCup.util.TokenUtil; +import com.dsh.communityWorldCup.util.*; import com.dsh.communityWorldCup.util.wx.WxV3PayConfig; import com.wechat.pay.contrib.apache.httpclient.util.AesUtil; import groovy.util.logging.Log4j; @@ -44,6 +47,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; @@ -104,6 +108,12 @@ @Resource private GameClient gameClient; + + @Autowired + private UserIntegralChangesClient userIntegralChangesClient; + + @Autowired + private StudentHonorClient studentHonorClient; /** @@ -369,7 +379,10 @@ @PostMapping("/api/worldCup/endWorldCup") @ApiOperation(value = "裁判结束比赛【3.1】", tags = {"APP-个人中心"}) @ApiImplicitParams({ - @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), + @ApiImplicitParam(name = "redScore", value = "红队得分", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "blueScore", value = "蓝队得分", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "custom", value = "自定义参数 列表中是数组 ,拼接传过来", required = true, dataType = "String") }) public ResultUtil endWorldCup(String custom, Integer redScore, Integer blueScore){ return worldCupService.endWorldCup(custom,redScore,blueScore); @@ -1257,4 +1270,164 @@ } return worldCupUserListVos; } + + + + + @PostMapping("/worldCup/savaData1") + public void savaData1(@RequestBody SaveData saveData) throws ParseException { + + WorldCup worldCup = worldCupService.getById(saveData.getId()); + + String redStr = saveData.getRedStr(); + String blueStr = saveData.getBlueStr(); + String[] red = redStr.split(","); + String[] blue = blueStr.split(","); + ArrayList<String> list = new ArrayList<>(red.length+blue.length); + list.addAll(Arrays.asList(red)); + list.addAll(Arrays.asList(blue)); + String time = saveData.getTime(); + String[] split = time.split(" - "); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date startTime = simpleDateFormat.parse(split[0]); + Date endTime = simpleDateFormat.parse(split[1]); + Integer blueScore = saveData.getBlueScore(); + Integer redScore = saveData.getRedScore(); + List<WorldCupPaymentParticipant> list1 = worldCupPaymentParticipantService.list(new LambdaQueryWrapper<WorldCupPaymentParticipant>().in(WorldCupPaymentParticipant::getId, list)); + String code = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3); + ArrayList<WorldCupCompetitor> worldCupCompetitors = new ArrayList<>(red.length + blue.length); + for (String s : blue) { + WorldCupPaymentParticipant worldCupPaymentParticipant = list1.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null); + if(worldCupPaymentParticipant!=null){ + WorldCupCompetitor worldCupCompetitor =new WorldCupCompetitor(); + worldCupCompetitor.setCode(code); + worldCupCompetitor.setWorldCupId(saveData.getId().intValue()); + worldCupCompetitor.setParticipantType(worldCupPaymentParticipant.getParticipantType()); + worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId()); + worldCupCompetitor.setParticipantId(worldCupPaymentParticipant.getParticipantId()); + worldCupCompetitor.setParticipant(1); + worldCupCompetitor.setStartTime(startTime); + worldCupCompetitor.setEndTime(endTime); + if(blueScore>redScore){ + worldCupCompetitor.setMatchResult(1); + worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getWinIntegral()); + vo.setType(7); + userIntegralChangesClient.saveUserIntegralChanges(vo); + } + if(blueScore.equals(redScore)){ + worldCupCompetitor.setMatchResult(0); + worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getDrawIntegral()); + vo.setType(9); + userIntegralChangesClient.saveUserIntegralChanges(vo); + } + if(blueScore<redScore){ + worldCupCompetitor.setMatchResult(-1); + worldCupCompetitor.setLoseIntegral(worldCup.getLoseIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getLoseIntegral()); + vo.setType(10); + userIntegralChangesClient.saveUserIntegralChanges(vo); + } + worldCupCompetitor.setOpponentScore(redScore); + worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getParticipationIntegral()); + vo.setType(6); + userIntegralChangesClient.saveUserIntegralChanges(vo); + + worldCupCompetitorService.save(worldCupCompetitor); + worldCupCompetitors.add(worldCupCompetitor); + } + } + + for (String s : red) { + WorldCupPaymentParticipant worldCupPaymentParticipant = list1.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null); + if(worldCupPaymentParticipant!=null){ + WorldCupCompetitor worldCupCompetitor =new WorldCupCompetitor(); + worldCupCompetitor.setCode(code); + worldCupCompetitor.setWorldCupId(saveData.getId().intValue()); + worldCupCompetitor.setParticipantType(worldCupPaymentParticipant.getParticipantType()); + worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId()); + worldCupCompetitor.setParticipantId(worldCupPaymentParticipant.getParticipantId()); + worldCupCompetitor.setParticipant(1); + worldCupCompetitor.setStartTime(startTime); + worldCupCompetitor.setEndTime(endTime); + if(redScore>blueScore){ + worldCupCompetitor.setMatchResult(1); + worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getWinIntegral()); + vo.setType(7); + userIntegralChangesClient.saveUserIntegralChanges(vo); + } + if(blueScore.equals(redScore)){ + worldCupCompetitor.setMatchResult(0); + worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getDrawIntegral()); + vo.setType(9); + userIntegralChangesClient.saveUserIntegralChanges(vo); + } + if(redScore<blueScore){ + worldCupCompetitor.setMatchResult(-1); + worldCupCompetitor.setLoseIntegral(worldCup.getLoseIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getLoseIntegral()); + vo.setType(10); + userIntegralChangesClient.saveUserIntegralChanges(vo); + } + worldCupCompetitor.setOpponentScore(redScore); + worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral()); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getParticipationIntegral()); + vo.setType(6); + userIntegralChangesClient.saveUserIntegralChanges(vo); + + worldCupCompetitorService.save(worldCupCompetitor); + worldCupCompetitors.add(worldCupCompetitor); + } + } + + //添加勋章 + 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); + } + + } } -- Gitblit v1.7.1