From 0e36bac3643e7b44c5c316f736c6a37cab2d57fc Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期二, 11 七月 2023 19:59:41 +0800
Subject: [PATCH] 开始上课的课包购买支付
---
cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java | 3 +
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 4
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 5 +
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 115 ++++++++++++++++++++++++++++++++++----
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java | 4
cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java | 2
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java | 3 +
7 files changed, 116 insertions(+), 20 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
index 02c1576..eb4abaf 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
@@ -63,7 +63,7 @@
RechargeDetailsVo vo = new RechargeDetailsVo();
List<RechargeDetailsVo.RechargesDetail> details = new ArrayList<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm");
-
+ // TODO: 2023/7/11 充值明细查询
Date monthStart = null;
Date monthEnd = null;
if (StringUtils.hasText(yearMonth)) {
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index 39fbb54..c18ed93 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -495,14 +495,15 @@
@ApiOperation(value = "已报名课程详情", tags = {"APP-开始上课"})
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ @ApiImplicitParam(name = "coursePayId" ,value = "课包记录id",dataType = "long"),
})
- public ResultUtil<CourseDetailsResponse> getRegisteredData( Integer coursePackageId){
+ public ResultUtil<CourseDetailsResponse> getRegisteredData( Integer coursePayId){
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
if(null == appUserId){
return ResultUtil.tokenErr();
}
- return ResultUtil.success(packagePaymentService.queryRegisteredCourseDetails(coursePackageId,appUserId));
+ return ResultUtil.success(packagePaymentService.queryRegisteredCourseDetails(coursePayId,appUserId));
}catch (Exception e){
return ResultUtil.runErr();
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java
index c9dc4d5..6ad8055 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java
@@ -10,6 +10,9 @@
@ApiModelProperty(value = "课包id")
private Integer coursePackageId;
+ @ApiModelProperty(value = "课包记录id")
+ private Long coursePayId;
+
@ApiModelProperty(value = "课包封面图")
private String packageImg;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java
index e8cada9..f56ccc1 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java
@@ -22,8 +22,8 @@
@ApiModelProperty(value = "优惠券Id")
private Integer conponId;
- @ApiModelProperty(value = "课时id")
- private Long courseConfigId;
+ @ApiModelProperty(value = "支付记录id")
+ private Long coursePayId;
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java
index 820d95d..d98b2db 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java
@@ -10,6 +10,9 @@
@ApiModelProperty(value = "课包id")
private Integer coursePackageId;
+ @ApiModelProperty(value = "支付记录id")
+ private Long coursePayId;
+
@ApiModelProperty(value = "课包封面图")
private String coverDrawing;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
index 35a855e..8d57092 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -67,11 +67,11 @@
/**
* 获取已报名课包详情
- * @param coursePackageId
+ * @param coursePayId
* @param appUserId
* @return
*/
- CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId);
+ CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePayId, Integer appUserId);
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index e147946..93feb54 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -6,7 +6,9 @@
import com.dsh.course.feignclient.account.CoachClient;
import com.dsh.course.feignclient.account.model.Coach;
import com.dsh.course.feignclient.activity.BenefitVideoClient;
+import com.dsh.course.feignclient.activity.CouponClient;
import com.dsh.course.feignclient.activity.model.BenefitsVideos;
+import com.dsh.course.feignclient.activity.model.Coupon;
import com.dsh.course.feignclient.other.StoreClient;
import com.dsh.course.feignclient.other.model.Store;
import com.dsh.course.mapper.*;
@@ -20,8 +22,10 @@
import com.dsh.course.model.vo.response.CourseDetailsResponse;
import com.dsh.course.model.vo.response.CourseOfVideoResponse;
import com.dsh.course.service.TCoursePackagePaymentService;
+import com.dsh.course.util.PayMoneyUtil;
import com.dsh.course.util.ResultUtil;
import com.dsh.course.util.StrUtils;
+import com.dsh.course.util.UUIDUtil;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -29,6 +33,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -74,6 +79,11 @@
@Resource
private TCoursePackageDiscountMapper tcpdMapper;
+ @Resource
+ private CouponClient client;
+
+ @Autowired
+ private PayMoneyUtil payMoneyUtil;
/**
@@ -178,6 +188,7 @@
TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
Store store = stoClient.queryStoreById(coursePackage.getStoreId());
RegisterCourseVo registerCourseVo = new RegisterCourseVo();
+ registerCourseVo.setCoursePayId(tCoursePackagePayment.getId());
registerCourseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
registerCourseVo.setPackageImg(coursePackage.getCoverDrawing());
String storeAndCourse = coursePackage.getName()+"("+ store.getName() +")";
@@ -197,18 +208,16 @@
}
@Override
- public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePackageId, Integer appUserId) {
+ public CourseDetailsResponse queryRegisteredCourseDetails(Integer coursePayId, Integer appUserId) {
CourseDetailsResponse response = new CourseDetailsResponse();
- List<TCoursePackagePayment> tCoursePackagePayments = this.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("coursePackageId",coursePackageId )
- .eq("appUserId",appUserId));
+ TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(coursePayId);
- if (tCoursePackagePayments.size() > 0){
- TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
+ if (null != tCoursePackagePayment){
TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
response.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
response.setCoverDrawing(coursePackage.getCoverDrawing());
response.setCoursePackageName(coursePackage.getName());
+ response.setCoursePayId(tCoursePackagePayment.getId());
List<Integer> integers = StrUtils.dealStrToList(coursePackage.getClassWeeks());
if (integers.size() > 0){
StringBuilder courWeeks = new StringBuilder("每");
@@ -282,16 +291,39 @@
@Override
public ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request) {
- // TODO: 2023/7/5 报名课程支付
+ TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(request.getCoursePayId());
+ String code = "";
+ if (tCoursePackagePayment.getPayStatus() == 1){
+ code = tCoursePackagePayment.getCode();
+ }else {
+ TCoursePackagePayment newPayment = new TCoursePackagePayment();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ newPayment.setCode(sdf.format(new Date()) + UUIDUtil.getNumberRandom(5));
+ newPayment.setAppUserId(userIdFormRedis);
+ newPayment.setStudentId(request.getStuId());
+ newPayment.setCoursePackageId(request.getLessonId());
+ newPayment.setClassHours(tCoursePackagePayment.getClassHours());
+ newPayment.setOriginalPrice(tCoursePackagePayment.getOriginalPrice());
+ newPayment.setTotalClassHours(tCoursePackagePayment.getTotalClassHours());
+ newPayment.setLaveClassHours(tCoursePackagePayment.getTotalClassHours());
+ newPayment.setAbsencesNumber(0);
+ newPayment.setPayUserType(1);
+ newPayment.setPayStatus(1);
+ newPayment.setStatus(1);
+ newPayment.setState(1);
+ newPayment.setInsertTime(new Date());
+ this.baseMapper.insert(newPayment);
+ code = newPayment.getCode();
+ }
switch (request.getPayType()){
case 1:
- WeChatPayment();
+ WeChatPayment(code,request);
break;
case 2:
- AlipayPayment();
+ AlipayPayment(code,request);
break;
case 3:
- PlaypaiGoldPayment();
+ PlaypaiGoldPayment(code,request);
break;
default:
break;
@@ -300,15 +332,72 @@
}
- public void WeChatPayment(){
+ public void WeChatPayment(String code, ClasspaymentRequest request){
}
- public void AlipayPayment(){
+ public ResultUtil AlipayPayment(String code, ClasspaymentRequest request){
+ BigDecimal amount = BigDecimal.ZERO;
+ if (request.getUseConpon() == 1){
+ Coupon coupon = client.queryCouponById(request.getConponId());
+ // TODO: 2023/7/11 课包购买的微信支付
+ }
+
+ ResultUtil alipay = payMoneyUtil.alipay("课包购买", "", "", code, amount.toString(),
+ "/base/coursePackage/alipayNewPaymentCallback");
+// if(alipay.getCode() == 200){
+// new Thread(new Runnable() {
+// @Override
+// public void run() {
+// try {
+// int num = 1;
+// int wait = 0;
+// while (num <= 10){
+// int min = 5000;
+// wait += (min * num);
+// Thread.sleep(wait);
+// TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
+// if(coursePackagePayment.getPayStatus() == 2){
+// break;
+// }
+// ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
+// if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){
+// /**
+// * WAIT_BUYER_PAY(交易创建,等待买家付款)、
+// * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
+// * TRADE_SUCCESS(交易支付成功)、
+// * TRADE_FINISHED(交易结束,不可退款)
+// */
+// Map<String, String> data1 = resultUtil.getData();
+// String s = data1.get("tradeStatus");
+// String tradeNo = data1.get("tradeNo");
+// if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){
+// coursePackagePayment.setState(3);
+// couPayClient.delPaymentCoursePackage(coursePackagePayment.getId());
+// break;
+// }
+// if("TRADE_SUCCESS".equals(s)){
+// coursePackagePayment.setPayStatus(2);
+// coursePackagePayment.setOrderNumber(tradeNo);
+// couPayClient.updatePaymentCoursePackage(coursePackagePayment);
+// break;
+// }
+// if("WAIT_BUYER_PAY".equals(s)){
+// num++;
+// }
+// }
+// }
+// }catch (Exception e){
+// e.printStackTrace();
+// }
+// }
+// }).start();
+// }
+ return alipay;
}
- public void PlaypaiGoldPayment(){
+ public void PlaypaiGoldPayment(String code, ClasspaymentRequest request){
}
--
Gitblit v1.7.1