From 7cd3dea07f5b7cefad9dea9fd7daf992449aaac8 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 12 三月 2024 18:24:38 +0800 Subject: [PATCH] 修改bug --- cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java | 76 ++++++++++++++++++++++++++++++++----- 1 files changed, 65 insertions(+), 11 deletions(-) diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java index a5cce66..dfb6c24 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java @@ -9,7 +9,9 @@ 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.UserIntegralChangesClient; import com.dsh.communityWorldCup.feignclient.account.model.AppUser; +import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo; import com.dsh.communityWorldCup.feignclient.account.model.TStudent; import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient; import com.dsh.communityWorldCup.feignclient.competition.model.Participant; @@ -73,6 +75,9 @@ @Resource private GameClient gameClient; + @Resource + private UserIntegralChangesClient userIntegralChangesClient; + @@ -127,6 +132,9 @@ String people = startWorldCup.getPeople(); JSONArray jsonArray = JSON.parseArray(people); + if(jsonArray.size() != 6){ + return ResultUtil.error("参赛人数只能是6人"); + } String timeStr = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3); List<Long> ids = new ArrayList<>(); for (int i = 0; i < jsonArray.size(); i++) { @@ -146,9 +154,12 @@ //添加参赛奖励 if(null != worldCup.getParticipationIntegral() && 0 < worldCup.getParticipationIntegral()){ worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral()); - AppUser appUser = appUserClient.getAppUser(worldCupCompetitor.getAppUserId()); - appUser.setIntegral(appUser.getIntegral() + worldCup.getParticipationIntegral()); - appUserClient.updateAppUser(appUser); + //增加积分明细 + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(worldCupCompetitor.getAppUserId()); + vo.setIntegral(worldCup.getParticipationIntegral()); + vo.setType(6); + userIntegralChangesClient.saveUserIntegralChanges(vo); } worldCupCompetitorService.save(worldCupCompetitor); @@ -157,6 +168,9 @@ // worldCupPaymentParticipant.setAlreadyEntered(1); // worldCupPaymentParticipantService.updateById(worldCupPaymentParticipant); } + worldCup.setMatchNumber(worldCup.getMatchNumber() + 1); + this.updateById(worldCup); + //2、调起开启游戏的接口。 HashMap<String, String> map = new HashMap<>(); map.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); @@ -166,7 +180,7 @@ map.put("api_url", "http://221.182.45.100:56666/communityWorldCup/base/worldCup/endWorldCupCallback"); map.put("custom", JSON.toJSONString(ids)); - String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/batterGame", map); + String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/quickStart", map); JSONObject jsonObject = JSONObject.parseObject(s); Integer code1 = jsonObject.getInteger("code"); String message = jsonObject.getString("message"); @@ -185,9 +199,17 @@ */ @Override public Integer getCompletedWorldCupTips(Integer uid) { - int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>() - .eq("appUserId", uid).eq("tips", 0).isNotNull("endTime")); - return count; + List<WorldCupCompetitor> list = worldCupCompetitorService.list(new QueryWrapper<WorldCupCompetitor>() + .eq("appUserId", uid).eq("tips", 0).isNotNull("endTime") + .orderByDesc("endTime").last(" limit 0, 1")); + list.forEach(v->{ + v.setWorldCupId(null); + v.setTips(1); + }); + if(list.size() > 0){ + worldCupCompetitorService.updateBatchById(list); + } + return list.size(); } @@ -233,7 +255,7 @@ Collections.sort(worldCupList1, new Comparator<WorldCupListVo>() { @Override public int compare(WorldCupListVo o1, WorldCupListVo o2) { - return o1.getDistance().compareTo(o2.getDistance()) * -1; + return o1.getDistance().compareTo(o2.getDistance()); } }); } @@ -372,11 +394,23 @@ if(System.currentTimeMillis() > worldCup.getEndTime().getTime()){ return ResultUtil.error("世界杯赛事已结束,无法完成报名"); } + + String cupIds = paymentWorldCup.getIds(); + JSONArray jsonArray = JSON.parseArray(cupIds); + List<WorldCupPayment> payments = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId()) + .eq("payStatus", 2).eq("state", 1)); + List<Long> ids = payments.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); + if(ids.size() > 0){ + int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId()) + .eq("worldCupPaymentId", ids)); + if((count + jsonArray.size()) >= worldCup.getMaxPeople()){ + return ResultUtil.error("已超出最大报名人数"); + } + } + List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId()).eq("appUserId", paymentWorldCup.getUid()) .eq("payStatus", 2).eq("state", 1)); List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); - String ids = paymentWorldCup.getIds(); - JSONArray jsonArray = JSON.parseArray(ids); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); @@ -385,6 +419,9 @@ Integer isStudent = jsonObject.getInteger("isStudent"); if(isStudent == 1){ TStudent tStudent = studentClient.queryById(id.intValue()); + if(worldCup.getGender() != 0 && !tStudent.getSex().equals(worldCup.getGender())){ + return ResultUtil.error("此比赛只能是" + (worldCup.getGender() == 1 ? "男" : "女") + "性参加"); + } if(collect.size() > 0){ WorldCupPaymentParticipant one = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId()) .eq("participantId", id).eq("participantType", isStudent == 0 ? 2 : 1).in("worldCupPaymentId", collect)); @@ -401,6 +438,9 @@ } }else{ Participant participant = participantClient.getParticipant(id); + if(worldCup.getGender() != 0 && !participant.getGender().equals(worldCup.getGender())){ + return ResultUtil.error("此比赛只能是" + (worldCup.getGender() == 1 ? "男" : "女") + "性参加"); + } if(collect.size() > 0){ WorldCupPaymentParticipant one = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId()) .eq("participantId", id).eq("participantType", isStudent == 0 ? 2 : 1).in("worldCupPaymentId", collect)); @@ -482,6 +522,7 @@ appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - multiply.intValue()); appUserClient.updateAppUser(appUser); + // //添加报名明细 String ids = paymentWorldCup.getIds(); @@ -703,6 +744,7 @@ BigDecimal multiply = worldCupPayment.getUnitPrice().multiply(new BigDecimal(list1.size())); //免费 if(worldCupPayment.getPayType() == 0){ + worldCupPayment.setWorldCupId(null); worldCupPayment.setRefundOrderNo(""); worldCupPayment.setRefundTime(new Date()); worldCupPayment.setPayStatus(3); @@ -727,6 +769,7 @@ } if("10000".equals(map.get("code"))){ String trade_no = map.get("trade_no"); + worldCupPayment.setWorldCupId(null); worldCupPayment.setRefundTime(new Date()); worldCupPayment.setRefundOrderNo(trade_no); worldCupPayment.setPayStatus(3); @@ -739,6 +782,7 @@ AppUser appUser = appUserClient.getAppUser(appUserId); appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() + multiply.intValue()); appUserClient.updateAppUser(appUser); + worldCupPayment.setWorldCupId(null); worldCupPayment.setRefundTime(new Date()); worldCupPayment.setRefundOrderNo(""); worldCupPayment.setPayStatus(3); @@ -751,6 +795,7 @@ DeductionClassHourList deductionClassHourList = JSON.parseObject(content, DeductionClassHourList.class); coursePackageOrderStudentClient.backspaceClassHour(deductionClassHourList); } + worldCupPayment.setWorldCupId(null); worldCupPayment.setRefundTime(new Date()); worldCupPayment.setRefundOrderNo(""); worldCupPayment.setPayStatus(3); @@ -793,7 +838,7 @@ List<Map<String, Object>> mapList = this.baseMapper.worldCupGameStatistics(worldCupGameStatistics); for (Map<String, Object> stringObjectMap : mapList) { Integer id = Integer.valueOf(stringObjectMap.get("id").toString()); - int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("worldCupId", id)); + int count = worldCupCompetitorService.getMatchTime(id); stringObjectMap.put("matchTime", count); List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id) @@ -811,4 +856,13 @@ map.put("total", count); return map; } + + /** + * 修改所有参数 + * @param worldCup + */ + @Override + public void updateWorldCupAll(WorldCup worldCup) { + this.baseMapper.updateWorldCupAll(worldCup); + } } -- Gitblit v1.7.1