From c52f83ef5f702b3c178881d3eee72267c77e7751 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期三, 24 七月 2024 17:26:46 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0

---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java |  117 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 59 insertions(+), 58 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 e140bb1..c4e2001 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());
@@ -188,7 +181,6 @@
             coursePackageListVo.setStoreName(null != store ? store.getName() : "");
             coursePackageListVo.setCoverDrawing(coursePackage.getCoverDrawing());
 
-            // 2.0修改
             String classStartTime = coursePackage.getClassStartTime();
             String classEndTime = coursePackage.getClassEndTime();
             ArrayList<String> classTime = new ArrayList<>();
@@ -311,35 +303,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) {
@@ -445,7 +410,6 @@
                 coursePackageListVo.setPayType(2);
             }
 
-            // 2.0修改
             String classStartTime = coursePackage.getClassStartTime();
             String classEndTime = coursePackage.getClassEndTime();
             ArrayList<String> classTime = new ArrayList<>();
@@ -966,6 +930,7 @@
             coursePackageOrder.setStatus(1);
             coursePackageOrder.setState(1);
             coursePackageOrder.setInsertTime(new Date());
+            coursePackageOrder.setOrderType(1);
             coursePackageOrderService.save(coursePackageOrder);
             orderId = coursePackageOrder.getId();
         }else{
@@ -978,7 +943,8 @@
             coursePackageOrderService.updateById(coursePackageOrder);
         }
 
-        ResultUtil weixinpay = payMoneyUtil.weixinpay("购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/weChatPaymentCourseCallback", "APP", "");
+        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() {
@@ -1010,7 +976,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) {
                                     //有待支付的订单,这里不处理
 //                                    coursePackageOrder1.setState(3);
 //                                    coursePackageOrderService.updateById(coursePackageOrder1);
@@ -1022,12 +988,10 @@
                                     coursePackageOrder1.setAppUserId(null);
                                     coursePackageOrderService.updateById(coursePackageOrder1);
                                     //修改课时有效期
-
-
                                     addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                     break;
                                 }
-                                if ("USERPAYING".equals(s)) {
+                                if ("USERPAYING".equals(s) || "NOTPAY".equals(s)) {
                                     num++;
                                 }
                             }
@@ -1041,7 +1005,7 @@
         return weixinpay;
     }
 
-
+    private String smid = "2088330203191220";//平台支付宝商户号
     /**
      * 课程支付宝支付
      *
@@ -1055,6 +1019,7 @@
         CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+        String smid1="";
         //生成支付订单
         if (paymentCourseVo.getOrderId()==null){
             CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
@@ -1073,6 +1038,7 @@
             coursePackageOrder.setStatus(1);
             coursePackageOrder.setState(1);
             coursePackageOrder.setInsertTime(new Date());
+            coursePackageOrder.setOrderType(1);
             coursePackageOrderService.save(coursePackageOrder);
         }else {
             CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(paymentCourseVo.getOrderId());
@@ -1083,8 +1049,22 @@
             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() {
@@ -1092,7 +1072,6 @@
                 public void run() {
                     try {
                         Thread.sleep(1000);
-
                         int num = 1;
                         int wait = 0;
                         while (num <= 10) {
@@ -1128,7 +1107,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++;
@@ -1252,6 +1252,7 @@
             coursePackageOrder.setStatus(1);
             coursePackageOrder.setState(1);
             coursePackageOrder.setInsertTime(new Date());
+            coursePackageOrder.setOrderType(1);
             coursePackageOrderService.save(coursePackageOrder);
             orderId = coursePackageOrder.getId();
         }else{
@@ -1300,6 +1301,7 @@
      *
      * @param coursePackagePaymentConfig
      */
+    @Override
     public void addCoursePackageOrderStudent(Long coursePackageOrderId, CoursePackagePaymentConfig coursePackagePaymentConfig) {
         CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(coursePackageOrderId);
         // 发放优惠券
@@ -1335,19 +1337,22 @@
                     coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
 
                     //更新学员课时有效期
+                    boolean b = true;
                     if(null == student.getValidity()){
                         student.setValidity(calendar.getTime());
                         addOldPackageStudent(student);
+                        b = false;
                     }else if(calendar.getTimeInMillis() > student.getValidity().getTime()){
                         student.setValidity(calendar.getTime());
                         addOldPackageStudent(student);
+                        b = false;
                     }
                     studentClient.frozen(student);
 
                     //开始排课
-                    addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity());
-
-
+                    if(b){
+                        addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity());
+                    }
 
                     //课时记录
                     CourseCounsum courseCounsum = new CourseCounsum();
@@ -1355,7 +1360,7 @@
                     courseCounsum.setChangeType(1);
                     courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
                     courseCounsum.setInsertTime(new Date());
-                    courseCounsum.setReason("购买课包");
+                    courseCounsum.setReason("报名运动营");
                     courseCounsumService.save(courseCounsum);
                     //账单记录
                     if(coursePackageOrder.getPayType() != 3){
@@ -1367,8 +1372,6 @@
                         courseCounsum1.setAppUserId(coursePackageOrder.getAppUserId());
                         courseCounsumService.save(courseCounsum1);
                     }
-
-
                 } else {
                     Date useTime = coursePackageOrderStudent.getUseTime();
                     coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + coursePackagePaymentConfig.getClassHours());
@@ -1382,17 +1385,20 @@
                     coursePackageOrderStudent.setUseTime(calendar.getTime());
                     coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                     //更新学员课时有效期
+                    boolean b = true;
                     if(null == student.getValidity()){
                         student.setValidity(calendar.getTime());
                         addOldPackageStudent(student);
+                        b = false;
                     }else if(calendar.getTimeInMillis() > student.getValidity().getTime()){
                         student.setValidity(calendar.getTime());
                         addOldPackageStudent(student);
+                        b = false;
                     }
                     studentClient.frozen(student);
 
                     //中间断课,没有连续续费的情况需要重新排课
-                    if (useTime.compareTo(new Date()) < 0) {
+                    if (useTime.compareTo(new Date()) < 0 && b) {
                         addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity());
                     }
 
@@ -1414,12 +1420,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