|  |  |  | 
|---|
|  |  |  | 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.dsh.communityWorldCup.entity.WorldCup; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.entity.WorldCupCompetitor; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.entity.WorldCupPaymentParticipant; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.entity.WorldCupStore; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.feignclient.other.GameClient; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.feignclient.other.SiteClient; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.feignclient.other.StoreClient; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.feignclient.other.model.Site; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.feignclient.other.model.Store; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.feignclient.other.model.TGame; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.model.*; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.service.IWorldCupCompetitorService; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.service.IWorldCupPaymentParticipantService; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.service.IWorldCupService; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.service.IWorldCupStoreService; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.util.PayMoneyUtil; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.util.ResultUtil; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.util.TokenUtil; | 
|---|
|  |  |  | import com.dsh.communityWorldCup.service.*; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | import io.swagger.annotations.ApiOperation; | 
|---|
|  |  |  | import org.slf4j.Logger; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IWorldCupCompetitorService worldCupCompetitorService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private GDMapGeocodingUtil gdMapGeocodingUtil; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IWorldCupPaymentService worldCupPaymentService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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获取门店关系数据 | 
|---|
|  |  |  | * @param storeId | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/getWorldCupStoreListByStoreId") | 
|---|
|  |  |  | public List<WorldCupStoreVO> getWorldCupStoreListByStoreId(@RequestBody Integer storeId){ | 
|---|
|  |  |  | List<WorldCupStoreVO> res = new ArrayList<>(); | 
|---|
|  |  |  | List<WorldCupStore> storeId1 = worldCupStoreService.list( | 
|---|
|  |  |  | new QueryWrapper<WorldCupStore>() | 
|---|
|  |  |  | .eq("storeId", storeId)); | 
|---|
|  |  |  | for (WorldCupStore worldCupStore : storeId1) { | 
|---|
|  |  |  | WorldCupStoreVO worldCupStoreVO = new WorldCupStoreVO(); | 
|---|
|  |  |  | BeanUtils.copyProperties(worldCupStore,worldCupStoreVO); | 
|---|
|  |  |  | // 查询世界杯活动名称 | 
|---|
|  |  |  | WorldCup byId = worldCupService.getById(worldCupStore.getWorldCupId()); | 
|---|
|  |  |  | if (byId==null){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (byId.getStatus()==3 || byId.getStatus()==4){ | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | worldCupStoreVO.setName(byId.getName()); | 
|---|
|  |  |  | res.add(worldCupStoreVO); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return res; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据门店id修改门店关系数据 | 
|---|
|  |  |  | * @param worldCupStores | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/updateWorldCupStoreListById") | 
|---|
|  |  |  | public Boolean updateWorldCupStoreListById(@RequestBody List<WorldCupStore> worldCupStores){ | 
|---|
|  |  |  | return worldCupStoreService.updateBatchById(worldCupStores); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/api/worldCup/getWorldCupStore") | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | public ResultUtil<WorldCupPeopleVo> getWorldCupPeople(WorldCupPeople worldCupPeople){ | 
|---|
|  |  |  | WorldCupPaymentParticipant worldCupPaymentParticipant = worldCupPaymentParticipantService.getById(worldCupPeople.getCode()); | 
|---|
|  |  |  | if(null == worldCupPaymentParticipant){ | 
|---|
|  |  |  | return ResultUtil.error("无效二维码"); | 
|---|
|  |  |  | JSONObject jsonObject = JSON.parseObject(worldCupPeople.getCode()); | 
|---|
|  |  |  | Long id = jsonObject.getLong("id"); | 
|---|
|  |  |  | Integer isStudent = jsonObject.getInteger("isStudent"); | 
|---|
|  |  |  | if(0 == isStudent){ | 
|---|
|  |  |  | isStudent = 2; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(worldCupPaymentParticipant.getWorldCupId().compareTo(worldCupPeople.getWorldCupId()) != 0){ | 
|---|
|  |  |  | 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")); | 
|---|
|  |  |  | if(null == worldCupPaymentParticipant){ | 
|---|
|  |  |  | return ResultUtil.error("报名失败,当前用户未报名当前比赛"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | WorldCupPeopleVo worldCupPeopleVo = new WorldCupPeopleVo(); | 
|---|
|  |  |  | worldCupPeopleVo.setId(worldCupPaymentParticipant.getId()); | 
|---|
|  |  |  | worldCupPeopleVo.setId(worldCupPaymentParticipant.getParticipantId()); | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); | 
|---|
|  |  |  | if(worldCupPaymentParticipant.getParticipantType() == 1){ | 
|---|
|  |  |  | //学员 | 
|---|
|  |  |  | TStudent tStudent = studentClient.queryById(worldCupPaymentParticipant.getParticipantId()); | 
|---|
|  |  |  | TStudent tStudent = studentClient.queryById(worldCupPaymentParticipant.getParticipantId().intValue()); | 
|---|
|  |  |  | worldCupPeopleVo.setName(tStudent.getName()); | 
|---|
|  |  |  | worldCupPeopleVo.setAge(null == tStudent.getBirthday() ? 0 : Integer.valueOf(sdf.format(new Date())) -Integer.valueOf(sdf.format(tStudent.getBirthday()))); | 
|---|
|  |  |  | worldCupPeopleVo.setAvatar(tStudent.getHeadImg()); | 
|---|
|  |  |  | 
|---|
|  |  |  | Participant participant = participantClient.getParticipant(worldCupPaymentParticipant.getParticipantId()); | 
|---|
|  |  |  | worldCupPeopleVo.setName(participant.getName()); | 
|---|
|  |  |  | worldCupPeopleVo.setAge(null == participant.getBirthday() ? 0 : Integer.valueOf(sdf.format(new Date())) -Integer.valueOf(sdf.format(participant.getBirthday()))); | 
|---|
|  |  |  | worldCupPeopleVo.setAvatar(appUser.getHeadImg()); | 
|---|
|  |  |  | worldCupPeopleVo.setAvatar(participant.getHeadImg()); | 
|---|
|  |  |  | worldCupPeopleVo.setParticipantType(2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return ResultUtil.success(worldCupPeopleVo); | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiImplicitParam(name = "code", value = "扫码结果", required = true, dataType = "String"), | 
|---|
|  |  |  | @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | public ResultUtil<Map<String, String>> getDeviceInformation(@RequestBody String code){ | 
|---|
|  |  |  | public ResultUtil<Map<String, String>> getDeviceInformation(String code){ | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * { | 
|---|
|  |  |  | *     "scan_type": 0, // 扫码类型:1000:游戏,1001:课程,1002:场地 | 
|---|
|  |  |  | 
|---|
|  |  |  | return ResultUtil.error("无法获取场地信息"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Store store = storeClient.queryStoreById(site.getStoreId()); | 
|---|
|  |  |  | String sutu_id = jsonObject.getString("sutu_id"); | 
|---|
|  |  |  | TGame tGame = gameClient.getTGameBySutuId(sutu_id); | 
|---|
|  |  |  | if(null == tGame){ | 
|---|
|  |  |  | return ResultUtil.error("无效的游戏二维码"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Map<String, String> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("name", store.getName()); | 
|---|
|  |  |  | map.put("address", site.getName()); | 
|---|
|  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiImplicitParam(name = "lat", value = "纬度", required = true, dataType = "string"), | 
|---|
|  |  |  | @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | public ResultUtil<WorldCupInfo> getWorldCupInfo(@RequestBody Integer id, @RequestBody String lon, @RequestBody String lat){ | 
|---|
|  |  |  | public ResultUtil<WorldCupInfo> getWorldCupInfo(Integer id,String lon, String lat){ | 
|---|
|  |  |  | WorldCupInfo worldCupInfo = worldCupService.getWorldCupInfo(id, lon, lat); | 
|---|
|  |  |  | return ResultUtil.success(worldCupInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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{ | 
|---|
|  |  |  | 
|---|
|  |  |  | if(null != map){ | 
|---|
|  |  |  | String code = map.get("out_trade_no"); | 
|---|
|  |  |  | String transaction_id = map.get("trade_no"); | 
|---|
|  |  |  | String result = map.get("result"); | 
|---|
|  |  |  | 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{ | 
|---|
|  |  |  | 
|---|
|  |  |  | public List<WorldCupStore> getWorldCupStoreList(@RequestBody Integer storeId){ | 
|---|
|  |  |  | List<WorldCup> worldCupList = worldCupService.list(new QueryWrapper<WorldCup>().in("status", Arrays.asList(1, 2))); | 
|---|
|  |  |  | List<Integer> collect = worldCupList.stream().map(WorldCup::getId).collect(Collectors.toList()); | 
|---|
|  |  |  | return worldCupStoreService.list(new QueryWrapper<WorldCupStore>().eq("storeId", storeId).in("worldCupId", collect)); | 
|---|
|  |  |  | if(collect.size() == 0){ | 
|---|
|  |  |  | return new ArrayList<>(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return worldCupStoreService.list(new QueryWrapper<WorldCupStore>().eq("storeId", storeId).in("worldCupId", collect) | 
|---|
|  |  |  | .eq("isOpen", 1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | public ResultUtil<EntrantRankVo> getEntrantRank(EntrantRank entrantRank){ | 
|---|
|  |  |  | EntrantRankVo entrantRank1 = worldCupCompetitorService.getEntrantRank(entrantRank); | 
|---|
|  |  |  | return ResultUtil.success(entrantRank1); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Integer uid = tokenUtil.getUserIdFormRedis(); | 
|---|
|  |  |  | if(null == uid){ | 
|---|
|  |  |  | return ResultUtil.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | entrantRank.setAppUserId(uid); | 
|---|
|  |  |  | EntrantRankVo entrantRank1 = worldCupCompetitorService.getEntrantRank(entrantRank); | 
|---|
|  |  |  | return ResultUtil.success(entrantRank1); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | return ResultUtil.runErr(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @PostMapping("/api/worldCup/getMyWorldCupInfo") | 
|---|
|  |  |  | @ApiOperation(value = "获取已报名世界杯详情【2.0】", tags = {"APP-个人中心"}) | 
|---|
|  |  |  | @ApiImplicitParams({ | 
|---|
|  |  |  | @ApiImplicitParam(name = "id", value = "列表中的id", required = true, dataType = "String"), | 
|---|
|  |  |  | @ApiImplicitParam(name = "id", value = "列表中的id", required = true, dataType = "Long"), | 
|---|
|  |  |  | @ApiImplicitParam(name = "lon", value = "经度", required = true, dataType = "string"), | 
|---|
|  |  |  | @ApiImplicitParam(name = "lat", value = "纬度", required = true, dataType = "string"), | 
|---|
|  |  |  | @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | public ResultUtil<MyWorldCupInfo> getMyWorldCupInfo(String id){ | 
|---|
|  |  |  | MyWorldCupInfo myWorldCupInfo = worldCupPaymentParticipantService.getMyWorldCupInfo(id); | 
|---|
|  |  |  | public ResultUtil<MyWorldCupInfo> getMyWorldCupInfo(Long id, String lon, String lat){ | 
|---|
|  |  |  | MyWorldCupInfo myWorldCupInfo = worldCupPaymentParticipantService.getMyWorldCupInfo(id, lon, lat); | 
|---|
|  |  |  | return ResultUtil.success(myWorldCupInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/api/worldCup/cancelMyWorldCup") | 
|---|
|  |  |  | @ApiOperation(value = "取消已报名的世界杯【2.0】", tags = {"APP-个人中心"}) | 
|---|
|  |  |  | @ApiImplicitParams({ | 
|---|
|  |  |  | @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) throws Exception { | 
|---|
|  |  |  | return worldCupPaymentService.cancelMyWorldCup(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | public ResultUtil<List<WorldCupRankVo>> getWorldCupRank(WorldCupRank worldCupRank){ | 
|---|
|  |  |  | List<WorldCupRankVo> worldCupRank1 = worldCupCompetitorService.getWorldCupRank(worldCupRank); | 
|---|
|  |  |  | return ResultUtil.success(worldCupRank1); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Integer uid = tokenUtil.getUserIdFormRedis(); | 
|---|
|  |  |  | if(null == uid){ | 
|---|
|  |  |  | return ResultUtil.tokenErr(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | worldCupRank.setAppUserId(uid); | 
|---|
|  |  |  | List<WorldCupRankVo> worldCupRank1 = worldCupCompetitorService.getWorldCupRank(worldCupRank); | 
|---|
|  |  |  | 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 { | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | return ResultUtil.runErr(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | return worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>() | 
|---|
|  |  |  | .eq("participantId", studentId).eq("participantType", 1).eq("matchResult", 1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取比赛管理列表数据 | 
|---|
|  |  |  | * @param worldCupListAll | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 添加社区世界杯 | 
|---|
|  |  |  | * @param worldCup | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/addWorldCup") | 
|---|
|  |  |  | public Integer addWorldCup(@RequestBody WorldCup worldCup){ | 
|---|
|  |  |  | String lon = worldCup.getLon(); | 
|---|
|  |  |  | String lat = worldCup.getLat(); | 
|---|
|  |  |  | Map<String, String> geocode = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | geocode = gdMapGeocodingUtil.geocode(lon, lat); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | throw new RuntimeException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String province = geocode.get("province"); | 
|---|
|  |  |  | String provinceCode = geocode.get("provinceCode"); | 
|---|
|  |  |  | String city = geocode.get("city"); | 
|---|
|  |  |  | String cityCode = geocode.get("cityCode"); | 
|---|
|  |  |  | worldCup.setProvince(province.replace("省", "")); | 
|---|
|  |  |  | worldCup.setProvinceCode(provinceCode); | 
|---|
|  |  |  | worldCup.setCity(city.replace("市", "")); | 
|---|
|  |  |  | worldCup.setCityCode(cityCode); | 
|---|
|  |  |  | String[] split = worldCup.getPayType().split(","); | 
|---|
|  |  |  | List<String> strings = Arrays.asList(split); | 
|---|
|  |  |  | if(strings.contains("0")){ | 
|---|
|  |  |  | worldCup.setCash(null); | 
|---|
|  |  |  | worldCup.setClassHour(null); | 
|---|
|  |  |  | worldCup.setPaiCoin(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!strings.contains("1")){ | 
|---|
|  |  |  | worldCup.setCash(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!strings.contains("2")){ | 
|---|
|  |  |  | worldCup.setPaiCoin(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!strings.contains("3")){ | 
|---|
|  |  |  | worldCup.setClassHour(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | worldCupService.save(worldCup); | 
|---|
|  |  |  | return worldCup.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 添加社区世界杯和门店关系数据 | 
|---|
|  |  |  | * @param worldCupStore | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/addWorldCupStore") | 
|---|
|  |  |  | public void addWorldCupStore(@RequestBody WorldCupStore worldCupStore){ | 
|---|
|  |  |  | worldCupStoreService.save(worldCupStore); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 编辑社区世界杯 | 
|---|
|  |  |  | * @param worldCup | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/editWorldCup") | 
|---|
|  |  |  | public Integer editWorldCup(@RequestBody String worldCup){ | 
|---|
|  |  |  | WorldCup worldCup2 = JSON.parseObject(worldCup, WorldCup.class); | 
|---|
|  |  |  | String lon = worldCup2.getLon(); | 
|---|
|  |  |  | String lat = worldCup2.getLat(); | 
|---|
|  |  |  | Map<String, String> geocode = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | geocode = gdMapGeocodingUtil.geocode(lon, lat); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | throw new RuntimeException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String province = geocode.get("province"); | 
|---|
|  |  |  | String provinceCode = geocode.get("provinceCode"); | 
|---|
|  |  |  | String city = geocode.get("city"); | 
|---|
|  |  |  | String cityCode = geocode.get("cityCode"); | 
|---|
|  |  |  | worldCup2.setProvince(province.replace("省", "")); | 
|---|
|  |  |  | worldCup2.setProvinceCode(provinceCode); | 
|---|
|  |  |  | worldCup2.setCity(city.replace("市", "")); | 
|---|
|  |  |  | worldCup2.setCityCode(cityCode); | 
|---|
|  |  |  | WorldCup worldCup1 = worldCupService.getById(worldCup2.getId()); | 
|---|
|  |  |  | worldCup2.setCreateTime(worldCup1.getCreateTime()); | 
|---|
|  |  |  | worldCup2.setMatchNumber(worldCup1.getMatchNumber()); | 
|---|
|  |  |  | String[] split = worldCup2.getPayType().split(","); | 
|---|
|  |  |  | List<String> strings = Arrays.asList(split); | 
|---|
|  |  |  | if(strings.contains("0")){ | 
|---|
|  |  |  | worldCup2.setCash(null); | 
|---|
|  |  |  | worldCup2.setClassHour(null); | 
|---|
|  |  |  | worldCup2.setPaiCoin(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!strings.contains("1")){ | 
|---|
|  |  |  | worldCup2.setCash(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!strings.contains("2")){ | 
|---|
|  |  |  | worldCup2.setPaiCoin(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!strings.contains("3")){ | 
|---|
|  |  |  | worldCup2.setClassHour(null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | worldCupService.updateWorldCupAll(worldCup2); | 
|---|
|  |  |  | return worldCup2.getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 删除世界杯门店关系数据 | 
|---|
|  |  |  | * @param worldCupId | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/delWorldCupStore") | 
|---|
|  |  |  | public void delWorldCupStore(@RequestBody Integer worldCupId){ | 
|---|
|  |  |  | worldCupStoreService.remove(new QueryWrapper<WorldCupStore>().eq("worldCupId", worldCupId)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据id获取世界杯赛事数据 | 
|---|
|  |  |  | * @param id | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/getWorldCupById") | 
|---|
|  |  |  | public WorldCup getWorldCupById(@RequestBody Integer id){ | 
|---|
|  |  |  | return worldCupService.getById(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据世界杯id获取门店关系数据 | 
|---|
|  |  |  | * @param worldCupId | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/getWorldCupStoreAllList") | 
|---|
|  |  |  | public List<WorldCupStore> getWorldCupStoreAllList(@RequestBody Integer worldCupId){ | 
|---|
|  |  |  | return worldCupStoreService.list(new QueryWrapper<WorldCupStore>().eq("worldCupId", worldCupId)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 取消赛事退款操作 | 
|---|
|  |  |  | * @param id | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/cancelWorldCupRefund") | 
|---|
|  |  |  | public void cancelWorldCupRefund(@RequestBody Integer id) throws Exception { | 
|---|
|  |  |  | worldCupService.cancelWorldCupRefund(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 游戏结束后的通知回调 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/base/worldCup/endWorldCupCallback") | 
|---|
|  |  |  | public void endWorldCupCallback(String custom, Integer red_score, Integer blue_score){ | 
|---|
|  |  |  | log.warn("世界杯游戏成绩回调:custom->" + custom + ",red_score->" + red_score + ",blue_score->" + blue_score); | 
|---|
|  |  |  | worldCupCompetitorService.endWorldCupCallback(custom, red_score, blue_score); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 取消赛事后微信退款回调 | 
|---|
|  |  |  | * @param request | 
|---|
|  |  |  | * @param response | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/base/worldCup/wxRefundWorldCupCallback") | 
|---|
|  |  |  | public void wxRefundWorldCupCallback(HttpServletRequest request, HttpServletResponse response){ | 
|---|
|  |  |  | Map<String, String> map = payMoneyUtil.wxRefundCallback(request); | 
|---|
|  |  |  | if(null != map){ | 
|---|
|  |  |  | String refund_id = map.get("refund_id"); | 
|---|
|  |  |  | String out_refund_no = map.get("out_refund_no"); | 
|---|
|  |  |  | String result = map.get("result"); | 
|---|
|  |  |  | WorldCupPayment worldCupPayment = worldCupPaymentService.getOne(new QueryWrapper<WorldCupPayment>().eq("code", out_refund_no)); | 
|---|
|  |  |  | worldCupPayment.setRefundOrderNo(refund_id); | 
|---|
|  |  |  | worldCupPayment.setRefundTime(new Date()); | 
|---|
|  |  |  | worldCupPayment.setPayStatus(3); | 
|---|
|  |  |  | worldCupPayment.setWorldCupId(null); | 
|---|
|  |  |  | worldCupPaymentService.updateById(worldCupPayment); | 
|---|
|  |  |  | PrintWriter out = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | out = response.getWriter(); | 
|---|
|  |  |  | } catch (IOException e) { | 
|---|
|  |  |  | throw new RuntimeException(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取已报名人员列表 | 
|---|
|  |  |  | * @param registeredPersonnel | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/getRegisteredPersonnel") | 
|---|
|  |  |  | public Map<String, Object> getRegisteredPersonnel(@RequestBody RegisteredPersonnel registeredPersonnel){ | 
|---|
|  |  |  | return worldCupPaymentParticipantService.getRegisteredPersonnel(registeredPersonnel); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取比赛排行榜列表数据 | 
|---|
|  |  |  | * @param worldCupRecords | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/worldCupRecordsList") | 
|---|
|  |  |  | public Map<String, Object> worldCupRecordsList(@RequestBody WorldCupRecords worldCupRecords){ | 
|---|
|  |  |  | return worldCupCompetitorService.worldCupRecordsList(worldCupRecords); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取比赛统计 | 
|---|
|  |  |  | * @param worldCupGameStatistics | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/worldCupGameStatistics") | 
|---|
|  |  |  | public Map<String, Object> worldCupGameStatistics(@RequestBody WorldCupGameStatistics worldCupGameStatistics){ | 
|---|
|  |  |  | return worldCupService.worldCupGameStatistics(worldCupGameStatistics); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取比赛统计详情列表 | 
|---|
|  |  |  | * @param worldCupGameStatisticsInfoList | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/worldCupGameStatisticsInfoList") | 
|---|
|  |  |  | public Map<String, Object> worldCupGameStatisticsInfoList(@RequestBody WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList){ | 
|---|
|  |  |  | return worldCupCompetitorService.worldCupGameStatisticsInfoList(worldCupGameStatisticsInfoList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取单场参赛详情列表 | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/worldCupGameStatisticsListInfo") | 
|---|
|  |  |  | public Map<String, Object> worldCupGameStatisticsListInfo(@RequestBody WorldCupGameStatisticsListInfo worldCupGameStatisticsListInfo){ | 
|---|
|  |  |  | return worldCupCompetitorService.worldCupGameStatisticsListInfo(worldCupGameStatisticsListInfo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改比分 | 
|---|
|  |  |  | * @param changeScore | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/changeScore") | 
|---|
|  |  |  | public void changeScore(@RequestBody ChangeScore changeScore){ | 
|---|
|  |  |  | worldCupCompetitorService.changeScore(changeScore); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/getUserGameRecordList") | 
|---|
|  |  |  | public Map<String, Object> getUserGameRecordList(@RequestBody WorldCupGameStatisticsInfoList worldCupGameStatisticsInfoList){ | 
|---|
|  |  |  | return worldCupPaymentParticipantService.getUserGameRecordList(worldCupGameStatisticsInfoList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取用户比赛记录明细 | 
|---|
|  |  |  | * @param userGameRecordList | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/userGameRecordList") | 
|---|
|  |  |  | public Map<String, Object> userGameRecordList(@RequestBody UserGameRecordList userGameRecordList){ | 
|---|
|  |  |  | return worldCupCompetitorService.userGameRecordList(userGameRecordList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取已报名人数 | 
|---|
|  |  |  | * @param worldCupId | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/getRegisteredNumber") | 
|---|
|  |  |  | public int getRegisteredNumber(@RequestBody Integer worldCupId){ | 
|---|
|  |  |  | List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCupId) | 
|---|
|  |  |  | .eq("payStatus", 2).eq("state", 1)); | 
|---|
|  |  |  | List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); | 
|---|
|  |  |  | if(collect.size() == 0){ | 
|---|
|  |  |  | return 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return worldCupPaymentParticipantService.getCount(worldCupId, collect); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取支付记录 | 
|---|
|  |  |  | * @param getWorldCupPayment | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @ResponseBody | 
|---|
|  |  |  | @PostMapping("/worldCup/getWorldCupPayment") | 
|---|
|  |  |  | public List<WorldCupPayment> getWorldCupPayment(@RequestBody GetWorldCupPayment getWorldCupPayment){ | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); | 
|---|
|  |  |  | String payType = getWorldCupPayment.getPayType(); | 
|---|
|  |  |  | List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("appUserId", getWorldCupPayment.getAppUserId()) | 
|---|
|  |  |  | .in("payType", Arrays.asList(payType.split(","))).ne("payStatus", 1).eq("state", 1) | 
|---|
|  |  |  | .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(); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|