From 18b58aaf9bd99cadd0e7f80fe5d80586f2f4831a Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期五, 24 十一月 2023 18:32:43 +0800
Subject: [PATCH] 11.24

---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java |   62 ++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 6 deletions(-)

diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index 11db9d2..0cc4ea6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1054,6 +1054,8 @@
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
         List<Long> pays = new ArrayList<>();
 
+        int isContinue = 0;
+
         for (String s : split) {
 //            TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment();
 //            coursePackagePayment.setCode(code);
@@ -1104,6 +1106,7 @@
 
 
             if (coursePackagePaymentServiceOne==null) {
+                isContinue = 1;
                 TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment();
                 coursePackagePayment.setCode(code);
                 coursePackagePayment.setAppUserId(uid);
@@ -1163,6 +1166,10 @@
 
 
             }else {
+                if (coursePackagePaymentServiceOne.getPayStatus()==1){
+                    isContinue = 1;
+
+                }
 //                coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours());
 //                coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice());
 //                coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue());
@@ -1200,11 +1207,11 @@
         }
 
 
-
+        //新的订单添加
         if (paymentCourseVo.getOrderId()==null) {
             TOrder order = new TOrder();
             order.setIsPay(1);
-            order.setPayType(2);
+            order.setPayType(1);
             order.setAppUserId(uid);
             order.setPrice(paymentPrice);
             order.setCode(code);
@@ -1227,6 +1234,7 @@
         ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", student.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
         if(alipay.getCode() == 200){
             Integer finalSid = sid;
+            int finalIsContinue = isContinue;
             new Thread(new Runnable() {
                 @Override
                 public void run() {
@@ -1241,12 +1249,17 @@
                             Thread.sleep(wait);
                             List<TCoursePackagePayment> list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("state", 1).eq("code", code).eq("payType", 2));
                             TCoursePackagePayment one = list.get(0);
+
+                            List<TOrder> list1 = orderService.list(new QueryWrapper<TOrder>().eq("code", code).eq("payType", 1));
+                            TOrder order = list1.get(0);
+
+
                             AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code);
-                            if(one.getPayStatus() == 2){
+                            if(order.getIsPay() == 2){
                                 break;
                             }
 
-                            if( one.getPayStatus() == 1){
+                            if(order.getIsPay() == 1){
                                 /**
                                  * WAIT_BUYER_PAY(交易创建,等待买家付款)、
                                  * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
@@ -1274,9 +1287,17 @@
                                     coursePackagePaymentService.updateBatchById(list);
 
 
+                                    for (TOrder tOrder : list1) {
+                                        tOrder.setIsPay(2);
+                                        tOrder.setOrderNum(tradeNo);
+                                    }
+                                    orderService.updateBatchById(list1);
+
+
+
                                     for (String s1 : split) {
                                         TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s1).eq("coursePackageId", paymentCourseVo.getId()));
-                                        if (coursePackagePaymentServiceOne!=null) {
+                                        if (finalIsContinue !=1) {
 
                                             TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("type",4).eq("coursePackageId", paymentCourseVo.getId()).last("limit 1"));
 
@@ -1344,7 +1365,7 @@
                                     userCouponClient.sendUserCoupon(new SendCouponReq(uid,coursePackagePaymentConfig.getCouponIds()));
 
                                     for (TCoursePackagePayment coursePackagePayment : list) {
-                                        addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentCourseVo.getPrice());
+                                        addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentPrice);
                                     }
 
                                     moneyOut(tradeNo,tradeNo);
@@ -1479,6 +1500,9 @@
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
 
+        List<Long> pays = new ArrayList<>();
+
+
         TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId());
 
 
@@ -1557,6 +1581,8 @@
                     courseCounsumService.save(courseCounsum1);
                 }
 
+
+                pays.add(coursePackagePayment.getId());
             }else{
                 coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour);
                 if (coursePackagePaymentServiceOne.getOriginalPrice()!=null) {
@@ -1614,10 +1640,34 @@
                 }
 
 
+                pays.add(coursePackagePaymentServiceOne.getId());
+
+
+
             }
 
         }
 
+
+        if (paymentCourseVo.getOrderId()==null) {
+            TOrder order = new TOrder();
+            order.setIsPay(1);
+            order.setPayType(2);
+            order.setAppUserId(appUser.getId());
+            order.setPrice(paymentPrice);
+            order.setCode(code);
+
+            String paysStr = pays.stream()
+                    .map(String::valueOf)
+                    .collect(Collectors.joining(","));
+            order.setPaysId(paysStr);
+
+            orderService.save(order);
+
+        }
+
+
+
         Integer playPaiCoins = appUser.getPlayPaiCoins();
         appUser.setPlayPaiCoins(playPaiCoins - paymentPrice.intValue());
         appUserClient.updateAppUser(appUser);

--
Gitblit v1.7.1