From c493d7d249a2b80555d64470a7f6112dd979d6fc Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期三, 24 七月 2024 17:26:31 +0800
Subject: [PATCH] 合并代码
---
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java | 79 ++++++++++++++++++++++++---------------
1 files changed, 48 insertions(+), 31 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 06518cc..9159174 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;
@@ -31,7 +34,6 @@
import com.dsh.competition.service.IPaymentCompetitionService;
import com.dsh.competition.service.UserCompetitionService;
import com.dsh.competition.util.*;
-import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -76,6 +78,10 @@
@Autowired
private PayMoneyUtil payMoneyUtil;
+
+
+ @Autowired
+ private CompetitionService cttService;
private String aliAppid = "2021004105665036";//支付宝appid
@@ -227,10 +233,11 @@
@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));
+ List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
+ .eq("competitionId", paymentCompetitionVo.getId()).ne("payStatus", 3));
List<Long> pays = new ArrayList<>();
for (PaymentCompetition paymentCompetition : list) {
pays.add(paymentCompetition.getId());
@@ -242,34 +249,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, "剩余课时不足,无法完成支付。");
}
}
@@ -286,11 +283,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);
@@ -322,21 +323,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);
@@ -360,7 +366,8 @@
* @throws Exception
*/
public ResultUtil weChatPaymentCompetition(String code, BigDecimal money) throws Exception {
- ResultUtil weixinpay = payMoneyUtil.weixinpay("报名赛事", "", code, money.toString(), "/base/competition/weChatPaymentCompetitionCallback", "APP", "");
+ ResultUtil weixinpay = payMoneyUtil.weixinpay("报名赛事", "", code, money.toString(),
+ "/base/competition/weChatPaymentCompetitionCallback", "APP", "");
if (weixinpay.getCode() == 200) {
new Thread(new Runnable() {
@Override
@@ -372,7 +379,8 @@
int min = 5000;
wait += (min * num);
Thread.sleep(wait);
- PaymentCompetition paymentCompetition = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>().eq("code", code).eq("payType", 1));
+ PaymentCompetition paymentCompetition = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>()
+ .eq("code", code).eq("payType", 1));
if (paymentCompetition.getPayStatus() == 2) {
break;
}
@@ -390,7 +398,7 @@
Map<String, String> data1 = resultUtil.getData();
String s = data1.get("trade_state");
String transaction_id = data1.get("transaction_id");
- if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
+ if ("REFUND".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
paymentCompetition.setAppUserId(null);
paymentCompetition.setState(3);
userCompetitionService.remove(new QueryWrapper<UserCompetition>().eq("paymentCompetitionId", paymentCompetition.getId()));
@@ -402,9 +410,13 @@
paymentCompetition.setPayTime(new Date());
paymentCompetition.setPayOrderNo(transaction_id);
paymentCompetitionService.updateById(paymentCompetition);
+
+ Competition competition = cttService.getById(paymentCompetition.getCompetitionId());
+ competition.setApplicantsNumber(competition.getApplicantsNumber() + 1);
+ cttService.updateById(competition);
break;
}
- if ("USERPAYING".equals(s)) {
+ if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
num++;
}
}
@@ -472,6 +484,11 @@
paymentCompetition.setPayTime(new Date());
paymentCompetition.setPayOrderNo(tradeNo);
paymentCompetitionService.updateById(paymentCompetition);
+
+ Competition competition = cttService.getById(paymentCompetition.getCompetitionId());
+ competition.setApplicantsNumber(competition.getApplicantsNumber() + 1);
+ cttService.updateById(competition);
+
// 结算资金到商户账号
payMoneyUtil.confirm(smid,code,tradeNo,money.toString());
//分账
--
Gitblit v1.7.1