From b27efc697f2f81e0d0f247a2708e58af52a5df9b Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 23 十月 2025 15:14:33 +0800
Subject: [PATCH] bug修改,后台新增修改用户积分
---
cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java | 286 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 282 insertions(+), 4 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 cae4036..bf8431e 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
@@ -3,11 +3,18 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
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;
@@ -19,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;
@@ -43,7 +47,9 @@
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.*;
import java.util.stream.Collectors;
@@ -102,6 +108,12 @@
@Resource
private GameClient gameClient;
+
+ @Autowired
+ private UserIntegralChangesClient userIntegralChangesClient;
+
+ @Autowired
+ private StudentHonorClient studentHonorClient;
/**
@@ -275,6 +287,16 @@
if(0 == isStudent){
isStudent = 2;
}
+ WorldCup worldCup = worldCupService.getById(worldCupPeople.getWorldCupId());
+ if(null == worldCup){
+ return ResultUtil.error("当前比赛不存在");
+ }
+ if(worldCup.getStartTime().getTime()>System.currentTimeMillis() || worldCup.getEndTime().getTime()<System.currentTimeMillis()){
+ return ResultUtil.error("二维码仅支持在赛事有效期使用");
+ }
+
+
+
WorldCupPaymentParticipant worldCupPaymentParticipant = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>()
.eq("worldCupId", worldCupPeople.getWorldCupId()).eq("participantId", id).eq("participantType", isStudent)
.orderByDesc("createTime").last(" limit 0, 1"));
@@ -352,6 +374,18 @@
})
public ResultUtil startWorldCup(StartWorldCup startWorldCup){
return worldCupService.startWorldCup(startWorldCup);
+ }
+ @ResponseBody
+ @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 = "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);
}
@@ -585,6 +619,8 @@
if(null == uid){
return ResultUtil.success();
}
+ System.err.println("11111"+entrantRank);
+
entrantRank.setAppUserId(uid);
EntrantRankVo entrantRank1 = worldCupCompetitorService.getEntrantRank(entrantRank);
return ResultUtil.success(entrantRank1);
@@ -685,8 +721,51 @@
if(null == uid){
return ResultUtil.tokenErr();
}
+ System.err.println("22222"+worldCupRank);
+
worldCupRank.setAppUserId(uid);
List<WorldCupRankVo> worldCupRank1 = worldCupCompetitorService.getWorldCupRank(worldCupRank);
+ System.err.println("排名数据"+worldCupRank1);
+ return ResultUtil.success(worldCupRank1);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+
+ @ResponseBody
+ @PostMapping("/api/worldCup/getWorldCupListFromRank")
+ @ApiOperation(value = "获取报名的赛事 排名使用【3.1】", tags = {"APP-个人中心"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<List<WorldCupListVo>> getWorldCupListFromRank(MyWorldCupList myWorldCupList){
+ try {
+ System.err.println("33333"+myWorldCupList);
+ Integer uid = tokenUtil.getUserIdFormRedis();
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ List<WorldCupListVo> worldCupRank1 = worldCupCompetitorService.getWorldCupListFromRank(myWorldCupList);
+ return ResultUtil.success(worldCupRank1);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
+ }
+ }
+ @ResponseBody
+ @PostMapping("/api/worldCup/getWorldCupCodeListId")
+ @ApiOperation(value = "获取赛事的赛点 非智慧比赛用 【3.1】", tags = {"APP-个人中心"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+ })
+ public ResultUtil<List<WorldCupCodeListVo>> getWorldCupCodeListId(Integer worldCupId){
+ try {
+ Integer uid = tokenUtil.getUserIdFormRedis();
+ if(null == uid){
+ return ResultUtil.tokenErr();
+ }
+ List<WorldCupCodeListVo> worldCupRank1 = worldCupCompetitorService.getWorldCupCodeListId(worldCupId);
return ResultUtil.success(worldCupRank1);
}catch (Exception e){
e.printStackTrace();
@@ -1160,4 +1239,203 @@
.last(" and createTime between '" + sdf.format(getWorldCupPayment.getStartTime()) + "' and '" + sdf.format(getWorldCupPayment.getEndTime()) + "' order by createTime desc"));
return list;
}
+
+
+ @PostMapping("/worldCup/userDetailsOfSearch")
+ @ResponseBody
+ public List<WorldCupUserListVo> userDetailsOfSearch(@RequestBody UserDetailsOfSearch search){
+ // 已报名的用户
+ List<WorldCupPaymentParticipant> list = worldCupPaymentParticipantService.list(new LambdaQueryWrapper<WorldCupPaymentParticipant>().eq(WorldCupPaymentParticipant::getWorldCupId, search.getId())
+ );
+ ArrayList<WorldCupUserListVo> worldCupUserListVos = new ArrayList<>();
+ if(list.size()>0){
+ List<Long> collect = list.stream().map(WorldCupPaymentParticipant::getParticipantId).collect(Collectors.toList());
+ search.setUseIds(collect);
+ List<TStudent> appUsers = appUserClient.queryAppUserByIds(search);
+
+ for (TStudent appUser : appUsers) {
+ WorldCupUserListVo worldCupUserListVo = new WorldCupUserListVo();
+ WorldCupPaymentParticipant worldCupPaymentParticipant = list.stream().filter(e -> e.getParticipantId().toString().equals(appUser.getId().toString())).findFirst().orElse(null);
+ if(worldCupPaymentParticipant!=null){
+ worldCupUserListVo.setId(worldCupPaymentParticipant.getId().toString());
+ worldCupUserListVo.setName(appUser.getName());
+ worldCupUserListVo.setSex(appUser.getSex() !=null && appUser.getSex()==2?"女":"男");
+ worldCupUserListVo.setPhone(appUser.getPhone());
+ worldCupUserListVo.setIdCard(appUser.getIdCard());
+ // 当前日期和生日计算年龄
+ Date birthday = appUser.getBirthday();
+ LocalDate now = LocalDate.now();
+ if(birthday!=null){
+ int age = now.getYear() - (birthday.getYear()+1900);
+ worldCupUserListVo.setAge(age);
+ }
+ worldCupUserListVos.add(worldCupUserListVo);
+ }
+ }
+
+ }
+ 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().toString().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);
+ worldCupCompetitor.setOurScore(blueScore);
+ 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().toString().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(2);
+ worldCupCompetitor.setStartTime(startTime);
+ worldCupCompetitor.setEndTime(endTime);
+ worldCupCompetitor.setOurScore(redScore);
+ 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(blueScore);
+ 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