From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 08 五月 2025 09:21:57 +0800 Subject: [PATCH] bug修改 --- cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java | 602 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 574 insertions(+), 28 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 2cf0dda..ccec4d5 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,27 +1,25 @@ 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.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.dsh.communityWorldCup.entity.*; import com.dsh.communityWorldCup.feignclient.account.AppUserClient; import com.dsh.communityWorldCup.feignclient.account.StudentClient; import com.dsh.communityWorldCup.feignclient.account.model.AppUser; 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.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; @@ -31,12 +29,15 @@ 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.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.*; @@ -89,8 +90,126 @@ @Autowired private IWorldCupCompetitorService worldCupCompetitorService; + @Autowired + private GDMapGeocodingUtil gdMapGeocodingUtil; + + @Autowired + private IWorldCupPaymentService worldCupPaymentService; + + @Resource + private GameClient gameClient; + /** + * 查询社区世界杯收入--管理后台 + * @param storeId + * @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") @@ -147,19 +266,24 @@ @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){ + 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()); @@ -170,7 +294,7 @@ 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); @@ -184,7 +308,7 @@ @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:场地 @@ -204,6 +328,11 @@ 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()); @@ -268,7 +397,7 @@ @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); } @@ -361,11 +490,10 @@ 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{ @@ -389,7 +517,11 @@ 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)); } @@ -402,8 +534,18 @@ @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(); + } } @@ -448,12 +590,25 @@ @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){ + return worldCupPaymentService.cancelMyWorldCup(id); } @@ -479,8 +634,18 @@ @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(); + } } @@ -509,7 +674,6 @@ .eq("participantId", studentId).eq("participantType", 1).eq("matchResult", 1)); } - /** * 获取比赛管理列表数据 * @param worldCupListAll @@ -520,4 +684,386 @@ 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){ + 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(); + } + } + + + /** + * 获取已报名人员列表 + * @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; + } } -- Gitblit v1.7.1