From b3bf5a0b4fac7ba6bc85b2bdce5e05d55cdeb69f Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期二, 28 十一月 2023 21:46:50 +0800 Subject: [PATCH] 11.27,9 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 36 insertions(+), 13 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java index 41847eb..e24d614 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.course.controller.CoursePackagePaymentController; import com.dsh.course.entity.*; +import com.dsh.course.feignclient.account.StudentClient; +import com.dsh.course.feignclient.account.model.Student; import com.dsh.course.mapper.CoursePackageSchedulingMapper; import com.dsh.course.mapper.CoursePackageStudentMapper; import com.dsh.course.model.QueryCoursePackageSchedulingList; @@ -44,6 +46,9 @@ @Resource private CoursePackageStudentMapper coursePackageStudentMapper; + + @Resource + private StudentClient studentClient; /** @@ -167,6 +172,8 @@ .orderByDesc("classDate") .last(" limit 0, 1") ); + Student student = studentClient.queryStudentById(coursePackageScheduling.getStudentId()); + Date validity = student.getValidity(); TCoursePackage coursePackage = coursePackageService.getById(coursePackageScheduling.getCoursePackageId()); //上课星期 String classWeeks = coursePackage.getClassWeeks(); @@ -216,7 +223,7 @@ continue; } //大于有效期不进行排课 - if (start.getTimeInMillis() >= useTime.getTime()) { + if (start.getTimeInMillis() >= validity.getTime()) { break; } for (int j = 0; j < split.length; j++) { @@ -313,6 +320,8 @@ TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); Integer codeTime = coursePackage.getCodeTime(); Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); + Student student = studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()); + Date validity = student.getValidity(); Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); @@ -335,7 +344,7 @@ //从第二天开始 Calendar startTime = Calendar.getInstance(); startTime.setTime(new Date()); - startTime.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); startTime.set(Calendar.HOUR_OF_DAY, 0); startTime.set(Calendar.MINUTE, 0); startTime.set(Calendar.SECOND, 0); @@ -365,7 +374,7 @@ } //大于有效期不进行排课 - if (startTime.getTimeInMillis() >= useTime.getTime()) { + if (startTime.getTimeInMillis() >= validity.getTime()) { break; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -406,11 +415,19 @@ }else{ Date classDate = coursePackageScheduling.getClassDate(); - if(codeTime.compareTo(laveClassHours) > 0 && calendar.getTimeInMillis() > classDate.getTime()){ + int count = this.count(new QueryWrapper<CoursePackageScheduling>() + .eq("appUserId", coursePackageOrderStudent.getAppUserId()) + .eq("studentId", coursePackageOrderStudent.getStudentId()) + .eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()) + .eq("status", 1) + ); + + Integer number = laveClassHours - count; + if(codeTime.compareTo(number) > 0 && calendar.getTimeInMillis() > classDate.getTime()){ //从第二天开始 Calendar startTime = Calendar.getInstance(); - startTime.setTime(new Date()); - startTime.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + startTime.setTime(coursePackageScheduling.getClassDate()); + startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); startTime.set(Calendar.HOUR_OF_DAY, 0); startTime.set(Calendar.MINUTE, 0); startTime.set(Calendar.SECOND, 0); @@ -422,13 +439,13 @@ String classWeeks = coursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); //新剩余课时 - laveClassHours += classNumber; + number += classNumber; //判断最后一天是否所有时段都已排完 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); String format = sdf.format(coursePackageScheduling.getClassDate()); - String time = format.substring(format.indexOf(" ")); + String time = format.substring(format.indexOf(" ") + 1); String classStartTime = coursePackage.getClassStartTime(); String classEndTime = coursePackage.getClassEndTime(); String[] split = classStartTime.split(","); @@ -439,10 +456,10 @@ n++; for (int i = n; i < split.length; i++) { //剩余数量不足以排课 - if (laveClassHours.compareTo(codeTime) < 0) { + if (number.compareTo(codeTime) < 0) { break; } - laveClassHours -= codeTime; + number -= codeTime; CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); packageScheduling.setType(coursePackage.getType()); packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); @@ -479,16 +496,16 @@ } //大于有效期不进行排课 - if (startTime.getTimeInMillis() >= useTime.getTime()) { + if (startTime.getTimeInMillis() >= validity.getTime()) { break; } for (int j = 0; j < split.length; j++) { //剩余数量不足以排课 - if (laveClassHours.compareTo(codeTime) < 0) { + if (number.compareTo(codeTime) < 0) { break; } - laveClassHours -= codeTime; + number -= codeTime; CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); packageScheduling.setType(coursePackage.getType()); @@ -524,6 +541,12 @@ coursePackageOrderStudent.setUseTime(useTime); coursePackageOrderStudent.setStatus(1); coursePackageOrderStudentService.updateById(coursePackageOrderStudent); + if(null == student.getValidity()){ + student.setValidity(useTime); + }else if(student.getValidity().getTime() < useTime.getTime()){ + student.setValidity(useTime); + } + studentClient.frozen(student); }catch (Exception e){ e.printStackTrace(); } -- Gitblit v1.7.1