From a1e80d905fd38f6ead484396b788fe19b0a3d7d5 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 08 十二月 2023 09:16:13 +0800
Subject: [PATCH] 修改bug

---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java |  134 +++++++++++++++++++++++++-------------------
 1 files changed, 76 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 870960c..6b73cd3 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
@@ -1315,7 +1315,6 @@
                 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                 SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
 
-
                 //剩余课时
                 Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
                 //扣除课时数
@@ -1342,11 +1341,26 @@
                         continue;
                     }
 
-
                     //大于有效期不进行排课
                     if (calendar.getTimeInMillis() >= validity.getTime()) {
                         break;
                     }
+
+                    //检查是否有体验购课
+                    int count = coursePackageSchedulingService.count(new QueryWrapper<CoursePackageScheduling>()
+                            .eq("type", 3)
+                            .eq("appUserId", userId)
+                            .eq("studentId", sId)
+                            .eq("coursePackageId", tCoursePackage.getId())
+                            .eq("status", 1)
+                            .eq("DATE_FORMAT(classDate, '%Y-%m-%d')", format.format(time))
+                    );
+                    //有体验购课,不进行排课
+                    if(count != 0){
+                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+                        continue;
+                    }
+
                     for (int j = 0; j < split.length; j++) {
                         //剩余数量不足以排课
                         if (laveClassHours.compareTo(codeTime) < 0) {
@@ -1783,6 +1797,8 @@
     }
 
 
+    @Autowired
+    private ICoursePackageOrderStudentService orderStudentService;
     /**
      * 修改数据
      *
@@ -1799,65 +1815,67 @@
                 coursePackageSchedulingQueryWrapper.notIn("id", collect);
             }
             coursePackageSchedulingService.remove(coursePackageSchedulingQueryWrapper);
+            int coursePackageId = orderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", coursePackage.getId()));
+            if (coursePackageId>0) {
+                this.baseMapper.updateById(coursePackage);
 
-            this.baseMapper.updateById(coursePackage);
-
-            //生成排课数据
-            Date date = null;
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()).last(" and classDate > now() order by classDate desc limit 0, 1"));
-            if (null != coursePackageScheduling) {
-                date = sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00");
-            } else {
-                date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
-            }
-            List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
-            String classStartTime = coursePackage.getClassStartTime();
-            String[] split = classStartTime.split(":");
-            String classEndTime = coursePackage.getClassEndTime();
-            String[] split1 = classEndTime.split(":");
-            Calendar s = Calendar.getInstance();
-            s.setTime(date);
-            s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
-
-            Calendar e = Calendar.getInstance();
-            e.setTime(date);
-            if (null != coursePackageScheduling) {
-                long time = sdf1.parse(sdf.format(new Date()) + " 00:00:00").getTime();
-                int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue();
-                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d);
-            } else {
-                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
-            }
-            long timeInMillis = e.getTimeInMillis();
-
-            while (true) {
-                int w = s.get(Calendar.DAY_OF_WEEK);
-                WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
-                if (list.contains(weekEnum.getChineseName())) {
-                    Calendar classDate = Calendar.getInstance();
-                    classDate.setTime(s.getTime());
-                    classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
-                    classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
-                    classDate.set(Calendar.SECOND, 0);
-
-                    Calendar endDate = Calendar.getInstance();
-                    endDate.setTime(s.getTime());
-                    endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
-                    endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
-                    endDate.set(Calendar.SECOND, 0);
-
-                    CoursePackageScheduling coursePackageScheduling1 = new CoursePackageScheduling();
-                    coursePackageScheduling1.setCoursePackageId(coursePackage.getId());
-                    coursePackageScheduling1.setClassDate(classDate.getTime());
-                    coursePackageScheduling1.setEndDate(endDate.getTime());
-                    coursePackageScheduling1.setStatus(1);
-                    coursePackageSchedulingService.save(coursePackageScheduling1);
+                //生成排课数据
+                Date date = null;
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()).last(" and classDate > now() order by classDate desc limit 0, 1"));
+                if (null != coursePackageScheduling) {
+                    date = sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00");
+                } else {
+                    date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
                 }
+                List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
+                String classStartTime = coursePackage.getClassStartTime();
+                String[] split = classStartTime.split(":");
+                String classEndTime = coursePackage.getClassEndTime();
+                String[] split1 = classEndTime.split(":");
+                Calendar s = Calendar.getInstance();
+                s.setTime(date);
                 s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
-                if (s.getTimeInMillis() > timeInMillis) {
-                    break;
+
+                Calendar e = Calendar.getInstance();
+                e.setTime(date);
+                if (null != coursePackageScheduling) {
+                    long time = sdf1.parse(sdf.format(new Date()) + " 00:00:00").getTime();
+                    int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue();
+                    e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d);
+                } else {
+                    e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
+                }
+                long timeInMillis = e.getTimeInMillis();
+
+                while (true) {
+                    int w = s.get(Calendar.DAY_OF_WEEK);
+                    WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
+                    if (list.contains(weekEnum.getChineseName())) {
+                        Calendar classDate = Calendar.getInstance();
+                        classDate.setTime(s.getTime());
+                        classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
+                        classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
+                        classDate.set(Calendar.SECOND, 0);
+
+                        Calendar endDate = Calendar.getInstance();
+                        endDate.setTime(s.getTime());
+                        endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
+                        endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
+                        endDate.set(Calendar.SECOND, 0);
+
+                        CoursePackageScheduling coursePackageScheduling1 = new CoursePackageScheduling();
+                        coursePackageScheduling1.setCoursePackageId(coursePackage.getId());
+                        coursePackageScheduling1.setClassDate(classDate.getTime());
+                        coursePackageScheduling1.setEndDate(endDate.getTime());
+                        coursePackageScheduling1.setStatus(1);
+                        coursePackageSchedulingService.save(coursePackageScheduling1);
+                    }
+                    s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
+                    if (s.getTimeInMillis() > timeInMillis) {
+                        break;
+                    }
                 }
             }
         } catch (Exception e) {

--
Gitblit v1.7.1