From 2bb111939922d8e48fe11374bfe8ef2834a5bb43 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期五, 17 十一月 2023 19:51:01 +0800 Subject: [PATCH] 后台bug修改 --- cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 133 ++++++++++++++++++++++++++++++++++++-------- 1 files changed, 109 insertions(+), 24 deletions(-) diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java index a2db34d..d2adf24 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java @@ -2,6 +2,7 @@ import cn.hutool.core.date.DateUtil; +import cn.hutool.poi.excel.ExcelUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -33,7 +34,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; import java.io.PrintWriter; +import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.CompletionService; @@ -75,7 +78,36 @@ @Autowired private AppUserClient appUserClient; + /** + * 根据门店ids 获取对应的赛事 根据赛事支付记录获取用户ids + */ + @ResponseBody + @PostMapping("/base/competition/getUserIds") + public List<Integer> getUserIds(@RequestBody ListQuery query){ + List<Competition> list = cttService.list(new QueryWrapper<Competition>()); + // 赛事id集合 + List<Integer> comIds = new ArrayList<>(); + for (Integer id : query.getIds()) { + for (Competition competition : list) { + if (competition.getStoreId().contains(id.toString())){ + comIds.add(competition.getId()); + } + } + } + // 获取到赛事id集合 去重 + List<Integer> collect = comIds.stream().distinct().collect(Collectors.toList()); + // 根据赛事id 查询赛事支付记录 获取用户ids + if (collect.size() == 0){ + return new ArrayList<>(); + }else{ + List<Integer> userIds = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>() + .in("competitionId", collect)).stream() + .map(PaymentCompetition::getAppUserId).collect(Collectors.toList()); + return userIds; + } + + } /** * 获取赛事报名记录 */ @@ -204,6 +236,38 @@ } + @PostMapping("/base/competition/getCompetitionsDetails1") + public List<PurchaseRecordVo> getStuSourseList1(@RequestBody GetStuSourseList sourseList){ + + List<PurchaseRecordVo> recordVos = new ArrayList<>(); + + ArrayList<Integer> integers = new ArrayList<>(); + integers.add(4); + List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>() + .in("payType",integers ) + .eq("appUserId", sourseList.getAppUserId()) + .eq("state",1)); + if (list.size() > 0){ + List<Long> comIds = list.stream().map(PaymentCompetition::getId).collect(Collectors.toList()); + List<UserCompetition> userCompetitions = ucttService.list(new QueryWrapper<UserCompetition>() + .between("insertTime", sourseList.getStartTime(),sourseList.getEndTime() ) + .eq("appUserId", sourseList.getAppUserId()) + .in("paymentCompetitionId",comIds )); + if (userCompetitions.size() > 0){ + userCompetitions.forEach(coms ->{ + PurchaseRecordVo recordVo = new PurchaseRecordVo(); + recordVo.setPurchaseType("报名赛事"); + recordVo.setPurchaseTime(dateFormat.format(coms.getInsertTime())); + PaymentCompetition paymentCompetition = paymentCompetitionService.getById(coms.getPaymentCompetitionId()); + recordVo.setPurchaseAmount("-"+paymentCompetition.getAmount()); + recordVos.add(recordVo); + }); + } + } + + return recordVos; + } + @@ -271,10 +335,9 @@ public synchronized ResultUtil paymentCompetition(PaymentCompetitionVo paymentCompetitionVo){ try { - - Competition byId = competitionService.getById(paymentCompetitionVo.getId()); - Date date = byId.getEndTime(); // Assuming you have a Date object + Date date = byId.getEndTime(); + // Assuming you have a Date object // Check if the date is past the current time boolean isPast = date.after(new Date()); if (!isPast) { @@ -284,18 +347,12 @@ if(null == uid){ return ResultUtil.tokenErr(); } - - - - if (byId.getRegisterCondition()==3){ Integer counts = coursePackagePaymentClient.isHave(uid); if (counts==0){ return new ResultUtil(0,"当前赛事仅限已购课学员报名"); } } - - if (byId.getRegisterCondition()==2){ AppUser appUser = appUserClient.queryAppUser(uid); if (appUser.getIsVip()==0){ @@ -303,17 +360,11 @@ }else { Date vipEndTime = appUser.getVipEndTime(); Date currentTime = new Date(); // Current time - if (vipEndTime.before(currentTime)) { return new ResultUtil(0,"您的年度会员已过期,请续费"); } - } - - } - - return cttService.paymentCompetition(uid, paymentCompetitionVo); }catch (Exception e){ e.printStackTrace(); @@ -546,20 +597,29 @@ wrapper.like(Competition::getName,listQuery.getEventName()); } if(ToolUtil.isNotEmpty(listQuery.getTime())){ - wrapper.gt(Competition::getStartTime,listQuery.getTime().split(" - ")[0]+" 00:00:00"); - wrapper.lt(Competition::getEndTime,listQuery.getTime().split(" - ")[1]+" 23:59:59"); + wrapper.lt(Competition::getStartTime,listQuery.getTime().split(" - ")[0]+" 00:00:00"); + wrapper.gt(Competition::getEndTime,listQuery.getTime().split(" - ")[1]+" 23:59:59"); } - if(ToolUtil.isNotEmpty(listQuery.getState())){ - wrapper.eq(Competition::getStatus,listQuery.getState()); - } + if(ToolUtil.isNotEmpty(listQuery.getRegisterCondition())){ wrapper.eq(Competition::getRegisterCondition,listQuery.getRegisterCondition()); } + wrapper.in(Competition::getStoreId,listQuery.getIds()); wrapper.eq(Competition::getAuditStatus,2); wrapper.orderByDesc(Competition::getInsertTime); Page<Competition> page = cttService.page(competitionPage, wrapper); + for (Competition record : page.getRecords()) { + + // 查询当前赛事有多少人报名了 + List<UserCompetition> competitionId = ucttService.list(new QueryWrapper<UserCompetition>() + .eq("competitionId", record.getId())); + // 报名数量 + int temp = competitionId.size(); + String value = String.valueOf(temp); + record.setCount(record.getApplicantsNumber()+"-"+value); + } return page; }catch (Exception e){ e.printStackTrace(); @@ -575,7 +635,7 @@ wrapper.eq(Competition::getProvinceCode,listQuery.getProvinceCode()); } if(ToolUtil.isNotEmpty(listQuery.getCityCode())){ - wrapper.eq(Competition::getProvinceCode,listQuery.getCityCode()); + wrapper.eq(Competition::getCityCode,listQuery.getCityCode()); } if(ToolUtil.isNotEmpty(listQuery.getEventName())){ wrapper.like(Competition::getName,listQuery.getEventName()); @@ -605,6 +665,16 @@ @PostMapping("/base/competition/add") public void add(@RequestBody Competition competition){ try { + if (competition.getStartTime().after(new Date())){ + competition.setStatus(1); + } + if (competition.getStartTime().before(new Date())){ + if (competition.getEndTime().after(new Date())){ + competition.setStatus(2); + }else{ + competition.setStatus(3); + } + } competition.setInsertTime(new Date()); cttService.save(competition); }catch (Exception e){ @@ -615,6 +685,16 @@ @PostMapping("/base/competition/update") public void update(@RequestBody Competition competition){ try { + if (competition.getStartTime().after(new Date())){ + competition.setStatus(1); + } + if (competition.getStartTime().before(new Date())){ + if (competition.getEndTime().after(new Date())){ + competition.setStatus(2); + }else{ + competition.setStatus(3); + } + } cttService.updateById(competition); }catch (Exception e){ e.printStackTrace(); @@ -643,6 +723,13 @@ e.printStackTrace(); return null; } + } + @PostMapping("/base/competition/getPeoples") + @ResponseBody + public List<CompetitionUser> getPeoples(@RequestBody GetPeopleQuery getPeopleQuery){ + List<CompetitionUser> list = participantService.getPeoples( + getPeopleQuery.getId(),getPeopleQuery.getState()); + return list; } @@ -775,9 +862,7 @@ map.put("monthsUser",monthsUser); return map; - - - } + } -- Gitblit v1.7.1