From b0254c5a17b3915eb00fdcb33f0eea222cff78ee Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期三, 06 三月 2024 15:06:54 +0800 Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java | 52 +++++++++++++++++++++++++++------------------------- 1 files changed, 27 insertions(+), 25 deletions(-) diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java index 81c645a..42600b9 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java @@ -1,5 +1,8 @@ package com.dsh.competition.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.UuidUtils; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; @@ -226,7 +229,7 @@ @Override public ResultUtil paymentCompetition(Integer uid, PaymentCompetitionVo paymentCompetitionVo) throws Exception { AppUser appUser = appUserClient.queryAppUser(uid); - String[] split = paymentCompetitionVo.getIds().split(";"); + JSONArray jsonArray = JSON.parseArray(paymentCompetitionVo.getIds()); Competition competition = this.getById(paymentCompetitionVo.getId()); List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>().eq("competitionId", paymentCompetitionVo.getId()).ne("payStatus", 3)); @@ -241,34 +244,24 @@ } -// int competitionId = userCompetitionService.count(new QueryWrapper<UserCompetition>().eq("competitionId", paymentCompetitionVo.getId())); - if ((competitionId + split.length) > competition.getApplicantsNumber()) { + if ((competitionId + jsonArray.size()) > competition.getApplicantsNumber()) { return ResultUtil.error("报名人数超过最大限制"); } BigDecimal money = null; if (paymentCompetitionVo.getPayType() == 1 || paymentCompetitionVo.getPayType() == 2) { - money = new BigDecimal(competition.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN); + money = new BigDecimal(competition.getCashPrice()).multiply(new BigDecimal(jsonArray.size())).setScale(2, RoundingMode.HALF_EVEN); } if (paymentCompetitionVo.getPayType() == 3) {//玩湃币 - money = new BigDecimal(competition.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN); + money = new BigDecimal(competition.getPlayPaiCoin()).multiply(new BigDecimal(jsonArray.size())).setScale(2, RoundingMode.HALF_EVEN); if (money.compareTo(new BigDecimal(appUser.getPlayPaiCoins())) > 0) { return new ResultUtil(2, "报名失败,玩湃币不足,请充值"); } } if (paymentCompetitionVo.getPayType() == 4) {//课程 - money = new BigDecimal(competition.getClassPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN); - for (String s : split) { -// Participant participant = participantService.getById(s); -// Student student = studentClient.queryStudentByPhone(participant.getPhone()); -// if(null == student){ -// return ResultUtil.error(participant.getName() + "不是学员,无法使用课时支付。"); -// } - // 2.0 - Integer integer = coursePackagePaymentClient.queryResidueClassHourById(paymentCompetitionVo.getCoursePaymentId()); - if (new BigDecimal(integer).compareTo(new BigDecimal(competition.getClassPrice())) < 0) { - return new ResultUtil(3, "剩余课时不足,无法完成支付。"); - - } + money = new BigDecimal(competition.getClassPrice()).multiply(new BigDecimal(jsonArray.size())).setScale(2, RoundingMode.HALF_EVEN); + Integer integer = coursePackagePaymentClient.queryResidueClassHourById(paymentCompetitionVo.getCoursePaymentId()); + if (new BigDecimal(integer).compareTo(money) < 0) { + return new ResultUtil(3, "剩余课时不足,无法完成支付。"); } } @@ -285,11 +278,15 @@ paymentCompetition.setInsertTime(new Date()); paymentCompetitionService.save(paymentCompetition); - for (String s : split) { + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + Integer id = jsonObject.getInteger("id"); + Integer isStudent = jsonObject.getInteger("isStudent"); UserCompetition userCompetition = new UserCompetition(); userCompetition.setAppUserId(uid); userCompetition.setCompetitionId(paymentCompetitionVo.getId()); - userCompetition.setParticipantId(Integer.valueOf(s)); + userCompetition.setParticipantId(id); + userCompetition.setParticipantType(isStudent == 0 ? 2 : 1); userCompetition.setPaymentCompetitionId(paymentCompetition.getId()); userCompetition.setInsertTime(new Date()); userCompetitionService.save(userCompetition); @@ -321,21 +318,26 @@ paymentCompetition.setPayOrderNo(""); paymentCompetitionService.updateById(paymentCompetition); -// competition.setApplicantsNumber(competition.getApplicantsNumber() + 1); this.updateById(competition); } if (paymentCompetitionVo.getPayType() == 4) {//课程 - for (String s : split) { -// Participant participant = participantService.getById(s); -// Student student = studentClient.queryStudentByPhone(participant.getPhone()); + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + Integer id = jsonObject.getInteger("id"); + Integer isStudent = jsonObject.getInteger("isStudent"); + if(isStudent == 0){ + continue; + } + //扣减课时 PaymentDeductionClassHour paymentDeductionClassHour = new PaymentDeductionClassHour(); - paymentDeductionClassHour.setId(Integer.valueOf(s)); + paymentDeductionClassHour.setId(id); paymentDeductionClassHour.setClassHour(competition.getClassPrice()); paymentDeductionClassHour.setCode(code); paymentDeductionClassHour.setCourseId(paymentCompetitionVo.getCoursePaymentId()); paymentDeductionClassHour.setUid(uid); coursePackagePaymentClient.paymentDeductionClassHour(paymentDeductionClassHour); } + paymentCompetition = paymentCompetitionService.getById(paymentCompetition.getId()); paymentCompetition.setAppUserId(null); paymentCompetition.setPayStatus(2); -- Gitblit v1.7.1