From 71be497ee6db33d5f82667fc0b4960c8fdfeff89 Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期二, 28 十一月 2023 19:55:06 +0800
Subject: [PATCH] 11.27,9

---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java |   93 ++++++++++++++++++++++++++++------------------
 1 files changed, 56 insertions(+), 37 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 a4b9b23..e4eac41 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
@@ -1,19 +1,10 @@
 package com.dsh.course.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.alipay.api.AlipayApiException;
-import com.alipay.api.AlipayClient;
-import com.alipay.api.DefaultAlipayClient;
-import com.alipay.api.domain.*;
-import com.alipay.api.request.AlipayTradeOrderSettleRequest;
-import com.alipay.api.request.AlipayTradeRoyaltyRelationBindRequest;
-import com.alipay.api.response.AlipayTradeOrderSettleResponse;
 import com.alipay.api.response.AlipayTradeQueryResponse;
-import com.alipay.api.response.AlipayTradeRoyaltyRelationBindResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -22,7 +13,6 @@
 import com.dsh.course.feignclient.account.StudentClient;
 import com.dsh.course.feignclient.account.model.AppUser;
 import com.dsh.course.feignclient.account.model.Student;
-import com.dsh.course.feignclient.account.model.TCourseInfoRecord;
 import com.dsh.course.feignclient.activity.CouponClient;
 import com.dsh.course.feignclient.activity.UserCouponClient;
 import com.dsh.course.feignclient.activity.model.Coupon;
@@ -36,7 +26,6 @@
 import com.dsh.course.model.*;
 import com.dsh.course.service.*;
 import com.dsh.course.util.*;
-import io.vertx.core.json.Json;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -105,15 +94,6 @@
 
     @Autowired
     private ICoursePackageOrderStudentService coursePackageOrderStudentService;
-
-
-    private String aliAppid = "2021004105665036";//支付宝appid
-
-    private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
-
-    private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥
-
-    private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
 
     @Autowired
     private ICoursePackageOrderService coursePackageOrderService;
@@ -627,7 +607,6 @@
         String[] split = coursePackage.getClassWeeks().split(";");
         coursePackageInfo.setWeeks(Arrays.asList(split));
 
-        // 2.0
         String classStartTime = coursePackage.getClassStartTime();
         String classEndTime = coursePackage.getClassEndTime();
         ArrayList<String> classTime = new ArrayList<>();
@@ -663,7 +642,6 @@
                 coursePackagePaymentConfigVo.setPayType(2);
             }
 
-//                coursePackagePaymentConfigVo.setPayType(coursePackage.getPayType());
             //会员显示原价和支付价(会员价)。非会员显示会员价和支付价(最低)
 //                if(appUser.getIsVip() == 0){//非会员
             List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId())
@@ -831,7 +809,7 @@
         //校验是否已经报满
         Integer integer = coursePackagePaymentService.queryCountNumber(paymentCourseVo.getId());
         TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId());
-        if (course.getType() != 3) {
+        if (course.getType() == 1) {
 
             if (integer + paymentCourseVo.getStudentIds().split(";").length > course.getMaxSubscribeNumber()) {
                 return ResultUtil.error("报名失败,已达最大报名人数");
@@ -1001,6 +979,9 @@
                                     coursePackageOrder1.setOrderNumber(transaction_id);
                                     coursePackageOrder1.setAppUserId(null);
                                     coursePackageOrderService.updateById(coursePackageOrder1);
+                                    //修改课时有效期
+
+
                                     addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                     break;
                                 }
@@ -1087,6 +1068,7 @@
                                     break;
                                 }
                                 if ("TRADE_SUCCESS".equals(s)) {
+
                                     coursePackageOrder1.setPayStatus(2);
                                     coursePackageOrder1.setOrderNumber(tradeNo);
                                     coursePackageOrder1.setAppUserId(null);
@@ -1194,7 +1176,7 @@
         for (String id : split) {
             if(coursePackage.getType() == 1){
                 CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", id)
-                        .eq("coursePackageId", coursePackageOrder.getCoursePackageId()).eq("status", 1).eq("state", 1));
+                        .eq("coursePackageId", coursePackageOrder.getCoursePackageId()).eq("state", 1));
                 if (null == coursePackageOrderStudent) {
                     coursePackageOrderStudent = new CoursePackageOrderStudent();
                     coursePackageOrderStudent.setAppUserId(coursePackageOrder.getAppUserId());
@@ -1217,10 +1199,31 @@
 
                     //开始排课
                     addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent);
+                    //课时记录
+                    CourseCounsum courseCounsum = new CourseCounsum();
+                    courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
+                    courseCounsum.setChangeType(1);
+                    courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
+                    courseCounsum.setInsertTime(new Date());
+                    courseCounsum.setReason("购买课包");
+                    courseCounsumService.save(courseCounsum);
+                    //账单记录
+                    if(coursePackageOrder.getPayType() != 3){
+                        CourseCounsum courseCounsum1 = new CourseCounsum();
+                        courseCounsum1.setPaymentId(coursePackageOrder.getId());
+                        courseCounsum1.setChangeType(3);
+                        courseCounsum1.setInsertTime(new Date());
+                        courseCounsum1.setReason("报名课程;"+coursePackageOrder.getCashPayment());
+                        courseCounsum1.setAppUserId(coursePackageOrder.getAppUserId());
+                        courseCounsumService.save(courseCounsum1);
+                    }
+
+
                 } else {
                     Date useTime = coursePackageOrderStudent.getUseTime();
                     coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + coursePackagePaymentConfig.getClassHours());
                     coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + coursePackagePaymentConfig.getClassHours());
+                    coursePackageOrderStudent.setStatus(1);
                     Integer validDays = coursePackage.getValidDays();
                     Calendar calendar = Calendar.getInstance();
                     calendar.setTime(useTime.compareTo(new Date()) < 0 ? new Date() : useTime);
@@ -1231,14 +1234,31 @@
                     if (useTime.compareTo(new Date()) < 0) {
                         addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent);
                     }
+
+                    //课时记录
+                    CourseCounsum courseCounsum = new CourseCounsum();
+                    courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
+                    courseCounsum.setChangeType(1);
+                    courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
+                    courseCounsum.setInsertTime(new Date());
+                    courseCounsum.setReason("续课");
+                    courseCounsumService.save(courseCounsum);
+                    //账单记录
+                    if(coursePackageOrder.getPayType() != 3){
+                        CourseCounsum courseCounsum1 = new CourseCounsum();
+                        courseCounsum1.setPaymentId(coursePackageOrder.getId());
+                        courseCounsum1.setChangeType(3);
+                        courseCounsum1.setInsertTime(new Date());
+                        courseCounsum1.setReason("续课;"+coursePackageOrder.getCashPayment());
+                        courseCounsum1.setAppUserId(coursePackageOrder.getAppUserId());
+                        courseCounsumService.save(courseCounsum1);
+                    }
+
+
                 }
-                CourseCounsum courseCounsum = new CourseCounsum();
-                courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
-                courseCounsum.setChangeType(1);
-                courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
-                courseCounsum.setInsertTime(new Date());
-                courseCounsum.setReason("购买课包");
-                courseCounsumService.save(courseCounsum);
+
+
+
             }
             if(coursePackage.getType() == 2){
                 addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), null);
@@ -1266,6 +1286,7 @@
                 String[] split1 = tCoursePackage.getClassEndTime().split(",");
                 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                 SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
 
                 //剩余课时
                 Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
@@ -1350,10 +1371,8 @@
                 Calendar calendar = Calendar.getInstance();
                 //假期开始使用当前时间为起始时间进行排课
                 calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date());
-                int day_week = calendar.get(Calendar.DAY_OF_WEEK);
-                day_week = day_week - 1 == 0 ? 7 : day_week - 1;
-                int num = 8 - day_week + 7;
-                for (int i = 0; i < num; i++) {
+                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+                while (true) {
                     Date time = calendar.getTime();
 
                     //判断当天是否在排课星期内
@@ -1365,7 +1384,7 @@
                     }
 
                     //大于有效期不进行排课
-                    if (calendar.getTimeInMillis() >= endTime.getTime()) {
+                    if (calendar.getTimeInMillis() > endTime.getTime()) {
                         break;
                     }
                     for (int j = 0; j < split.length; j++) {
@@ -1384,7 +1403,7 @@
                         student1.setAppUserId(userId);
                         student1.setStudentId(sId);
                         student1.setCoursePackageId(tCoursePackage.getId());
-                        student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId());
+                        student1.setCoursePackagePaymentId(null);
                         student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                         student1.setSignInOrNot(1);
                         student1.setReservationStatus(1);

--
Gitblit v1.7.1