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 | 538 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 523 insertions(+), 15 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 067d8e2..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
@@ -1,12 +1,20 @@
package com.dsh.communityWorldCup.controller;
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;
@@ -18,10 +26,9 @@
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;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -30,14 +37,19 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
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;
@@ -97,8 +109,83 @@
@Resource
private GameClient gameClient;
+ @Autowired
+ private UserIntegralChangesClient userIntegralChangesClient;
+
+ @Autowired
+ private StudentHonorClient studentHonorClient;
+ /**
+ * 查询社区世界杯收入--管理后台
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/worldCup/getWorldCupIncome")
+ public List<WorldCupIncomeVO> getWorldCupIncome(@RequestBody WorldCupQuery query){
+ String STime = null;
+ String ETime = null;
+ if (StringUtils.hasLength(query.getTime())) {
+ STime = query.getTime().split(" - ")[0] + " 00:00:00";
+ ETime = query.getTime().split(" - ")[1] + " 23:59:59";
+ }
+
+ QueryWrapper<WorldCupPayment> in = new QueryWrapper<WorldCupPayment>()
+ .eq("payStatus", 2)
+ ;
+ if (STime != null){
+ in.between("payTime", STime, ETime);
+ }
+ if (query.getUserIds() != null){
+ if (!query.getUserIds().isEmpty()){
+ in.in("appUserId", query.getUserIds());
+ }
+ }
+
+ if (query.getAmount() != null){
+ in.le("amount", query.getAmount().toString());
+ }
+ List<WorldCupPayment> list = worldCupPaymentService.list(in);
+ List<WorldCupIncomeVO> res = new ArrayList<>();
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ for (WorldCupPayment worldCupPayment : list) {
+ if (worldCupPayment.getPayType() == 0){
+ // 不计算免费的
+ continue;
+ }
+ WorldCupIncomeVO worldCupIncomeVO = new WorldCupIncomeVO();
+ WorldCup byId = worldCupService.getById(worldCupPayment.getWorldCupId());
+ if (byId!=null){
+ worldCupIncomeVO.setProvince(byId.getProvince());
+ worldCupIncomeVO.setCity(byId.getCity());
+ List<WorldCupStore> worldCupId = worldCupStoreService.list(new QueryWrapper<WorldCupStore>()
+ .eq("worldCupId", byId.getId()));
+ StringBuilder temp = new StringBuilder();
+ for (WorldCupStore worldCupStore : worldCupId) {
+ Store store = storeClient.queryStoreById(worldCupStore.getStoreId());
+ if (store!=null){
+ temp.append(store.getName()).append(",");
+ }
+ }
+ if (temp.length() > 0){
+ worldCupIncomeVO.setStoreName(temp.substring(0, temp.length() - 1));
+ }
+ }
+ AppUser appUser = appUserClient.getAppUser(worldCupPayment.getAppUserId());
+ worldCupIncomeVO.setId(worldCupPayment.getId().toString());
+ if (appUser!=null){
+ worldCupIncomeVO.setUserName(appUser.getName());
+ worldCupIncomeVO.setPhone(appUser.getPhone());
+ }
+ if (worldCupPayment.getPayTime()!=null){
+ String format = simpleDateFormat.format(worldCupPayment.getPayTime());
+ worldCupIncomeVO.setPayTime(format);
+ }
+ worldCupIncomeVO.setAmount(worldCupPayment.getAmount().toString());
+ res.add(worldCupIncomeVO);
+ }
+ return res;
+ }
/**
* 根据门店id获取门店关系数据
@@ -117,6 +204,9 @@
BeanUtils.copyProperties(worldCupStore,worldCupStoreVO);
// 查询世界杯活动名称
WorldCup byId = worldCupService.getById(worldCupStore.getWorldCupId());
+ if (byId==null){
+ continue;
+ }
if (byId.getStatus()==3 || byId.getStatus()==4){
continue;
}
@@ -197,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"));
@@ -274,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);
}
@@ -373,23 +485,66 @@
}
}
-
+ @ResponseBody
+ @PostMapping("/base/worldCup/wxPayWorldCupCallback")
+ public void wxPayWorldCupCallback(HttpServletRequest request, HttpServletResponse response){
+ System.err.println("微信回调");
+ try {
+ Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+ if (null != map) {
+ String code = map.get("out_trade_no");
+ String transaction_id = map.get("transaction_id");
+ String result = map.get("result");
+ ResultUtil resultUtil = worldCupService.paymentWorldCupCallback(code, transaction_id);
+ if (resultUtil.getCode() == 200) {
+ PrintWriter out = response.getWriter();
+ out.println(result);
+ out.flush();
+ out.close();
+ } else {
+ log.error("社区世界杯报名微信支付回业务处理异常:" + resultUtil.getMsg());
+ }
+ } else {
+ log.error("社区世界杯报名微信支付回调解析异常");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
/**
* 微信支付回调
*/
@ResponseBody
- @PostMapping("/base/worldCup/wxPayWorldCupCallback")
- public void wxPayWorldCupCallback(HttpServletRequest request, HttpServletResponse response){
+ @PostMapping("/base/worldCup/wxPayWorldCupCallback1")
+ public void wxPayWorldCupCallback1(HttpServletRequest request, HttpServletResponse response){
try {
- Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
- if(null != map){
- String code = map.get("out_trade_no");
- String transaction_id = map.get("transaction_id");
- String result = map.get("result");
+ System.err.println("微信回调");
+ System.err.println("请求" + request);
+ BufferedReader reader = request.getReader();
+ String string1 = reader.toString();
+ System.err.println("请求reader" + string1);
+ StringBuilder requestBody = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ requestBody.append(line);
+ }
+ System.err.println("全部请求体" + requestBody);
+ JSONObject jsonObject = JSONObject.parseObject(requestBody.toString());
+ JSONObject resource = jsonObject.getJSONObject("resource");
+
+ AesUtil aesUtil = new AesUtil(WxV3PayConfig.apiV3Key.getBytes(StandardCharsets.UTF_8));
+ String decryptedData = aesUtil.decryptToString(resource.getString("associated_data").getBytes(StandardCharsets.UTF_8), resource.getString("nonce").getBytes(StandardCharsets.UTF_8),
+ resource.getString("ciphertext"));
+ System.err.println("微信解密的字符串信息" + decryptedData);
+ JSONObject jsonInfo = (JSONObject) JSONObject.parse(decryptedData);
+ String code = jsonInfo.getString("out_trade_no");
+ String transaction_id = jsonInfo.getString("transaction_id");
+ String trade_state = jsonInfo.getString("trade_state");
+ if (trade_state.equals("SUCCESS")) {
ResultUtil resultUtil = worldCupService.paymentWorldCupCallback(code, transaction_id);
if(resultUtil.getCode() == 200){
PrintWriter out = response.getWriter();
- out.println(result);
+ out.println("SUCCESS");
out.flush();
out.close();
}else{
@@ -464,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);
@@ -532,7 +689,7 @@
@ApiImplicitParam(name = "id", value = "列表中的id", required = true, dataType = "Long"),
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
})
- public ResultUtil cancelMyWorldCup(Long id){
+ public ResultUtil cancelMyWorldCup(Long id) throws Exception {
return worldCupPaymentService.cancelMyWorldCup(id);
}
@@ -564,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();
@@ -608,6 +808,67 @@
@PostMapping("/worldCup/getWorldCupListAll")
public Map<String, Object> getWorldCupListAll(@RequestBody WorldCupListAll worldCupListAll){
return worldCupService.getWorldCupListAll(worldCupListAll);
+ }
+ /**
+ * 根据门店ids 获取归属学员
+ * @param storeIds
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/worldCup/getStudentIds")
+ public List<Integer> getStudentIds(@RequestBody StoreIds storeIds){
+ List<Integer> res = new ArrayList<>();
+
+ // 获取门店ids 所举办的世界杯ids 查询学员参赛
+ List<Integer> collect = worldCupStoreService.list(new QueryWrapper<WorldCupStore>()
+ .in("storeId", storeIds.getStoreIds())).stream()
+ .map(WorldCupStore::getWorldCupId).collect(Collectors.toList());
+ List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>()
+ .in("worldCupId", collect)
+ .eq("payStatus", 2));
+ for (WorldCupPayment worldCupPayment : list) {
+ JSONArray jsonArray = JSON.parseArray(worldCupPayment.getEntrant());
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject jsonObject = jsonArray.getJSONObject(i);
+ Integer isStudent = jsonObject.getInteger("isStudent");
+ if (isStudent!=1){
+ continue;
+ }
+ Long id = jsonObject.getLong("id");
+ String string = id.toString();
+ res.add(Integer.parseInt(string));
+ }
+ }
+ List<Long> collect1 = worldCupCompetitorService.list(new QueryWrapper<WorldCupCompetitor>()
+ .in("worldCupId", collect)
+ .eq("participantType", 1)).stream()
+ .map(WorldCupCompetitor::getParticipantId).collect(Collectors.toList());
+ // 将collect1中的数据全部转化为Integer类型
+ List<Integer> temp = new ArrayList<>();
+ temp = collect1.stream().map(Long::intValue).collect(Collectors.toList());
+ res.addAll(temp);
+ return res;
+ }
+ /**
+ * 根据门店ids 获取归属用户
+ * @param storeIds
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/worldCup/getUserIds")
+ public List<Integer> getUserIds(@RequestBody StoreIds storeIds){
+ List<Integer> res = new ArrayList<>();
+ // 获取门店ids 所举办的世界杯ids 查询用户
+ List<Integer> collect = worldCupStoreService.list(new QueryWrapper<WorldCupStore>()
+ .in("storeId", storeIds.getStoreIds())).stream()
+ .map(WorldCupStore::getWorldCupId).collect(Collectors.toList());
+ List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>()
+ .in("worldCupId", collect)
+ .eq("payStatus", 2));
+ for (WorldCupPayment worldCupPayment : list) {
+ res.add(worldCupPayment.getAppUserId());
+ }
+ return res;
}
@@ -759,7 +1020,7 @@
*/
@ResponseBody
@PostMapping("/worldCup/cancelWorldCupRefund")
- public void cancelWorldCupRefund(@RequestBody Integer id){
+ public void cancelWorldCupRefund(@RequestBody Integer id) throws Exception {
worldCupService.cancelWorldCupRefund(id);
}
@@ -803,6 +1064,54 @@
out.println(result);
out.flush();
out.close();
+ }
+ }
+ /**
+ * 取消赛事后微信退款回调微信V3回调
+ * @param request
+ * @param response
+ */
+ @ResponseBody
+ @PostMapping("/base/worldCup/wxRefundWorldCupCallback1")
+ public void wxRefundWorldCupCallback1(HttpServletRequest request, HttpServletResponse response){
+ try {
+ System.err.println("微信回调");
+ System.err.println("请求" + request);
+ BufferedReader reader = request.getReader();
+ String string1 = reader.toString();
+ System.err.println("请求reader" + string1);
+ StringBuilder requestBody = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ requestBody.append(line);
+ }
+ System.err.println("全部请求体" + requestBody);
+ JSONObject jsonObject = JSONObject.parseObject(requestBody.toString());
+ JSONObject resource = jsonObject.getJSONObject("resource");
+
+ AesUtil aesUtil = new AesUtil(WxV3PayConfig.apiV3Key.getBytes(StandardCharsets.UTF_8));
+ String decryptedData = aesUtil.decryptToString(resource.getString("associated_data").getBytes(StandardCharsets.UTF_8), resource.getString("nonce").getBytes(StandardCharsets.UTF_8),
+ resource.getString("ciphertext"));
+ System.err.println("微信解密的字符串信息" + decryptedData);
+ JSONObject jsonInfo = (JSONObject) JSONObject.parse(decryptedData);
+ String code = jsonInfo.getString("out_trade_no");
+ String transaction_id = jsonInfo.getString("transaction_id");
+ String refund_status = jsonInfo.getString("refund_status");
+ String out_refund_no = jsonInfo.getString("out_refund_no");
+ if (refund_status.equals("SUCCESS")) {
+ WorldCupPayment worldCupPayment = worldCupPaymentService.getOne(new QueryWrapper<WorldCupPayment>().eq("code", out_refund_no));
+ worldCupPayment.setRefundOrderNo(code);
+ worldCupPayment.setRefundTime(new Date());
+ worldCupPayment.setPayStatus(3);
+ worldCupPayment.setWorldCupId(null);
+ worldCupPaymentService.updateById(worldCupPayment);
+ PrintWriter out = response.getWriter();
+ out.write("SUCCESS");
+ out.flush();
+ out.close();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
@@ -930,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