From 640ff18d2d7f4be02ddb7f8f75e899f05545eb98 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 05 二月 2024 11:56:52 +0800
Subject: [PATCH] 更新bug修改

---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java |  204 ++++++++++++++++++++++++++++----------------------
 1 files changed, 114 insertions(+), 90 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 fd2c939..91166ec 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
@@ -143,12 +143,6 @@
     @Override
     public List<CoursePackageListVo> queryCourseList(Integer uid, CoursePackageList coursePackageList) throws Exception {
         AppUser appUser = appUserClient.queryAppUser(uid);
-//        Map<String, String> geocode = gdMapGeocodingUtil.geocode(coursePackageList.getLon(), coursePackageList.getLat());
-//        String provinceCode = geocode.get("provinceCode");
-//        String cityCode = geocode.get("cityCode");
-//        QueryWrapper<TCoursePackage> wrapper = new QueryWrapper<TCoursePackage>().in("status", Arrays.asList(1, 2))
-//                .eq("auditStatus", 2).eq("state", 1).eq("provinceCode", provinceCode).eq("cityCode", cityCode);
-
         QueryWrapper<TCoursePackage> wrapper = new QueryWrapper<TCoursePackage>().in("status", Arrays.asList(1, 2))
                 .eq("auditStatus", 2).eq("state", 1);
         if (null != coursePackageList.getCoursePackageTypeId()) {
@@ -171,7 +165,6 @@
         List<TCoursePackage> list1 = this.list(wrapper.last(" order by sort desc, insertTime desc"));
         Date currentTime = new Date();
 
-// Filter the list based on the conditions
         List<TCoursePackage> list = list1.stream()
                 .filter(coursePackage -> coursePackage.getType() != 2 || currentTime.before(coursePackage.getEndTime()))
                 .collect(Collectors.toList());
@@ -311,35 +304,8 @@
             }
             coursePackageListVo.setPaymentPrice(paymentPrice);
 
-            double vipPrice1 = coursePackageListVo.getVipPrice();
-            double originalPrice1 = coursePackageListVo.getOriginalPrice();
-            double paymentPrice1 = coursePackageListVo.getPaymentPrice();
-
-//            double minPrice = Math.min(vipPrice1, Math.min(originalPrice1, paymentPrice1));
-//            double maxPrice = Math.max(vipPrice1, Math.max(originalPrice1, paymentPrice1));
-//            coursePackageListVo.setPaymentPrice(minPrice);
-//            coursePackageListVo.setOriginalPrice(maxPrice);
-//            System.out.println("Minimum price: " + minPrice);
-
-
-//            }
-//            else{
-//                List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
-//                        .eq("type", 1).eq("auditStatus", 2).eq("status",1));
-//                Double vipPrice = coursePackagePaymentConfig.getCashPayment();
-//                for (TCoursePackageDiscount coursePackageDiscount : list2) {
-//                    Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember");
-//                    if(vipPrice.compareTo(num1) > 0){
-//                        vipPrice = num1;
-//                    }
-//                }
-//                coursePackageListVo.setPaymentPrice(vipPrice);
-//                coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
-//            }
-
             if (coursePackageListVo.getPaymentPrice() < coursePackageListVo.getVipPrice()) {
                 coursePackageListVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
-//                coursePackageListVo.setVipPrice(null);
             }
 
             if (appUser.getIsVip() == 1) {
@@ -947,27 +913,40 @@
         CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
-        //生成支付订单
-        CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
-        coursePackageOrder.setCode(code);
-        coursePackageOrder.setAppUserId(uid);
-        coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds());
-        coursePackageOrder.setCoursePackageId(paymentCourseVo.getId());
-        coursePackageOrder.setPayType(paymentCourseVo.getPayType());
-        coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours());
-        coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice());
-        coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId());
-        coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice));
-        coursePackageOrder.setPayUserType(1);
-        coursePackageOrder.setPayStatus(1);
-        coursePackageOrder.setPayUserId(uid);
-        coursePackageOrder.setStatus(1);
-        coursePackageOrder.setState(1);
-        coursePackageOrder.setInsertTime(new Date());
-        coursePackageOrderService.save(coursePackageOrder);
+        Long orderId = paymentCourseVo.getOrderId();
+        if(null == orderId){
+            //生成支付订单
+            CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
+            coursePackageOrder.setCode(code);
+            coursePackageOrder.setAppUserId(uid);
+            coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds());
+            coursePackageOrder.setCoursePackageId(paymentCourseVo.getId());
+            coursePackageOrder.setPayType(paymentCourseVo.getPayType());
+            coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours());
+            coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice());
+            coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId());
+            coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice));
+            coursePackageOrder.setPayUserType(1);
+            coursePackageOrder.setPayStatus(1);
+            coursePackageOrder.setPayUserId(uid);
+            coursePackageOrder.setStatus(1);
+            coursePackageOrder.setState(1);
+            coursePackageOrder.setInsertTime(new Date());
+            coursePackageOrderService.save(coursePackageOrder);
+            orderId = coursePackageOrder.getId();
+        }else{
+            CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(orderId);
+            code = coursePackageOrder.getCode();
+            coursePackageOrder.setPayType(1);
+            coursePackageOrder.setAppUserId(null);
+            coursePackageOrder.setPayUserType(1);
+            coursePackageOrder.setPayUserId(uid);
+            coursePackageOrderService.updateById(coursePackageOrder);
+        }
 
         ResultUtil weixinpay = payMoneyUtil.weixinpay("购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/weChatPaymentCourseCallback", "APP", "");
         if (weixinpay.getCode() == 200) {
+            String finalCode = code;
             new Thread(new Runnable() {
                 @Override
                 public void run() {
@@ -979,11 +958,11 @@
                             wait += (min * num);
                             Thread.sleep(wait);
                             CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>()
-                                    .eq("code", code).eq("state", 1));
+                                    .eq("code", finalCode).eq("state", 1));
                             if (coursePackageOrder1.getPayStatus() == 2) {
                                 break;
                             }
-                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
+                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(finalCode, "");
                             if (resultUtil.getCode() == 200 && coursePackageOrder1.getPayStatus() == 1) {
                                 /**
                                  * SUCCESS—支付成功,
@@ -1028,7 +1007,7 @@
         return weixinpay;
     }
 
-
+    private String smid = "2088330203191220";//平台支付宝商户号
     /**
      * 课程支付宝支付
      *
@@ -1042,9 +1021,10 @@
         CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+        String smid1="";
         //生成支付订单
-        CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
         if (paymentCourseVo.getOrderId()==null){
+            CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
             coursePackageOrder.setCode(code);
             coursePackageOrder.setAppUserId(uid);
             coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds());
@@ -1062,10 +1042,30 @@
             coursePackageOrder.setInsertTime(new Date());
             coursePackageOrderService.save(coursePackageOrder);
         }else {
-            code = coursePackageOrderService.getById(paymentCourseVo.getOrderId()).getCode();
+            CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(paymentCourseVo.getOrderId());
+            code = coursePackageOrder.getCode();
+            coursePackageOrder.setPayType(2);
+            coursePackageOrder.setAppUserId(null);
+            coursePackageOrder.setPayUserType(1);
+            coursePackageOrder.setPayUserId(uid);
+            coursePackageOrderService.updateById(coursePackageOrder);
         }
-
-        ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
+        // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+        Integer coursePackageId = paymentCourseVo.getId();
+        TCoursePackage byId = coursePackageService.getById(coursePackageId);
+        Store store = storeClient.queryStoreById(byId.getStoreId());
+        if (store.getOperatorId() == null){
+            smid1 = smid;
+        }else{
+            if (store.getOperatorId()==0){
+                smid1 = smid;
+            }else{
+                smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId());
+            }
+        }
+        ResultUtil alipay = payMoneyUtil.alipay(smid1,"购买课程", "购买课程",
+                coursePackagePaymentConfig.getId().toString(),
+                code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback");
         if (alipay.getCode() == 200) {
             String finalCode = code;
             new Thread(new Runnable() {
@@ -1073,7 +1073,6 @@
                 public void run() {
                     try {
                         Thread.sleep(1000);
-
                         int num = 1;
                         int wait = 0;
                         while (num <= 10) {
@@ -1109,7 +1108,28 @@
                                     coursePackageOrderService.updateById(coursePackageOrder1);
                                     addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                     moneyOut(tradeNo,tradeNo,finalCode);
-                                    break;
+                                    // 根据课程id 查询这个课程属于哪个门店 属于哪个运营商
+                                    Integer id = paymentCourseVo.getId();
+                                    TCoursePackage byId = coursePackageService.getById(id);
+                                    Integer storeId = byId.getStoreId();
+                                    Store store = storeClient.queryStoreById(storeId);
+                                    Integer operatorId = store.getOperatorId();
+                                    if (operatorId==null){
+                                        String smid ="2088330203191220";
+                                            // 说明是平台的
+                                            payMoneyUtil.confirm(smid,finalCode,tradeNo,paymentPrice.toString());
+                                        break;
+                                    }else if (operatorId==0){
+                                        String smid ="2088330203191220";
+                                        // 说明是平台的
+                                        payMoneyUtil.confirm(smid,finalCode,tradeNo,paymentPrice.toString());
+                                        break;
+                                    }else{
+                                        // 当前课程不属于门店 查询这个课程属于哪个门店 属于哪个运营商
+                                        String smidByOperatorId = storeClient.getSMIDByOperatorId(operatorId);
+                                        payMoneyUtil.confirm(smidByOperatorId,finalCode,tradeNo,paymentPrice.toString());
+                                        break;
+                                    }
                                 }
                                 if ("WAIT_BUYER_PAY".equals(s)) {
                                     num++;
@@ -1213,27 +1233,39 @@
         CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
-        //生成支付订单
-        CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
-        coursePackageOrder.setCode(code);
-        coursePackageOrder.setAppUserId(appUser.getId());
-        coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds());
-        coursePackageOrder.setCoursePackageId(paymentCourseVo.getId());
-        coursePackageOrder.setPayType(paymentCourseVo.getPayType());
-        coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours());
-        coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice());
-        coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId());
-        coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice));
-        coursePackageOrder.setPlayPaiCoin(paymentCourseVo.getPrice().intValue());
-        coursePackageOrder.setPayUserType(1);
-        coursePackageOrder.setPayStatus(2);
-        coursePackageOrder.setPayUserId(appUser.getId());
-        coursePackageOrder.setStatus(1);
-        coursePackageOrder.setState(1);
-        coursePackageOrder.setInsertTime(new Date());
-        coursePackageOrderService.save(coursePackageOrder);
+        Long orderId = paymentCourseVo.getOrderId();
+        if(null == orderId){
+            //生成支付订单
+            CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
+            coursePackageOrder.setCode(code);
+            coursePackageOrder.setAppUserId(appUser.getId());
+            coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds());
+            coursePackageOrder.setCoursePackageId(paymentCourseVo.getId());
+            coursePackageOrder.setPayType(paymentCourseVo.getPayType());
+            coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours());
+            coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice());
+            coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId());
+            coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice));
+            coursePackageOrder.setPlayPaiCoin(paymentCourseVo.getPrice().intValue());
+            coursePackageOrder.setPayUserType(1);
+            coursePackageOrder.setPayStatus(2);
+            coursePackageOrder.setPayUserId(appUser.getId());
+            coursePackageOrder.setStatus(1);
+            coursePackageOrder.setState(1);
+            coursePackageOrder.setInsertTime(new Date());
+            coursePackageOrderService.save(coursePackageOrder);
+            orderId = coursePackageOrder.getId();
+        }else{
+            CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(orderId);
+            coursePackageOrder.setPayType(3);
+            coursePackageOrder.setAppUserId(null);
+            coursePackageOrder.setPayUserId(appUser.getId());
+            coursePackageOrder.setPayUserType(1);
+            coursePackageOrder.setPayStatus(2);
+            coursePackageOrderService.updateById(coursePackageOrder);
+        }
 
-        addCoursePackageOrderStudent(coursePackageOrder.getId(), coursePackagePaymentConfig);
+        addCoursePackageOrderStudent(orderId, coursePackagePaymentConfig);
         return ResultUtil.success();
     }
 
@@ -1269,6 +1301,7 @@
      *
      * @param coursePackagePaymentConfig
      */
+    @Override
     public void addCoursePackageOrderStudent(Long coursePackageOrderId, CoursePackagePaymentConfig coursePackagePaymentConfig) {
         CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(coursePackageOrderId);
         // 发放优惠券
@@ -1316,8 +1349,6 @@
                     //开始排课
                     addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity());
 
-
-
                     //课时记录
                     CourseCounsum courseCounsum = new CourseCounsum();
                     courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
@@ -1336,8 +1367,6 @@
                         courseCounsum1.setAppUserId(coursePackageOrder.getAppUserId());
                         courseCounsumService.save(courseCounsum1);
                     }
-
-
                 } else {
                     Date useTime = coursePackageOrderStudent.getUseTime();
                     coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + coursePackagePaymentConfig.getClassHours());
@@ -1383,12 +1412,7 @@
                         courseCounsum1.setAppUserId(coursePackageOrder.getAppUserId());
                         courseCounsumService.save(courseCounsum1);
                     }
-
-
                 }
-
-
-
             }
             if(coursePackage.getType() == 2){
                 addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), null, null);

--
Gitblit v1.7.1