From d643b843cc794d8f59c4ecd04bda2b9d35e5b22a Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 28 十一月 2023 19:54:22 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java | 2 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 43 ++++ cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java | 1 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 4 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java | 349 ++++++++++++++++++++++++-------------- cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 30 +-- cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java | 8 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 52 ++++ cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js | 10 9 files changed, 323 insertions(+), 176 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java index a1d0052..1fe325d 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java @@ -61,7 +61,7 @@ vo.setHeadImg(user.getAvatar()); // vo.setStuName(tStudent.getName()); vo.setStuName(user.getName()); - vo.setComTime(format.format(tStudent.getInsertTime())); + vo.setComTime(format.format(evaluateStudent.getInsertTime())); vo.setContents(evaluateStudent.getContent()); String imgs = evaluateStudent.getImgs(); String[] split = imgs.split(","); diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java index 3f390b1..a737346 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java @@ -48,6 +48,9 @@ import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.Instant; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -603,9 +606,17 @@ .filter(record -> { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - String substring = record.getTimeFrame().substring(11); + String substring = record.getTimeFrame().substring(0,16); Date time = sdf.parse(substring); - return !time.before(lastWeekStartDate) && !time.after(lastOfDate); + Instant instant = time.toInstant(); + LocalDate dateToCheck = instant.atZone(ZoneId.systemDefault()).toLocalDate(); + // 获取今天的日期 + LocalDate today = LocalDate.now(); + // 计算一周前的日期 + LocalDate oneWeekAgo = today.minusWeeks(1); + // 计算一周后的日期 + LocalDate oneWeekLater = today.plusWeeks(1); + return dateToCheck.isAfter(oneWeekAgo) && dateToCheck.isBefore(oneWeekLater); } catch (ParseException e) { e.printStackTrace(); return false; @@ -618,9 +629,18 @@ recordAppoints = recordAppoints.stream() .filter(record -> { try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Date time = sdf.parse(record.getTimeFrame().substring(11)); - return !time.before(lastMonthStartDate) && !time.after(lastOfDate); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + String substring = record.getTimeFrame().substring(0,16); + Date time = sdf.parse(substring); + Instant instant = time.toInstant(); + LocalDate dateToCheck = instant.atZone(ZoneId.systemDefault()).toLocalDate(); + // 获取今天的日期 + LocalDate today = LocalDate.now(); + // 计算一周前的日期 + LocalDate oneWeekAgo = today.minusMonths(1); + // 计算一周后的日期 + LocalDate oneWeekLater = today.plusMonths(1); + return dateToCheck.isAfter(oneWeekAgo) && dateToCheck.isBefore(oneWeekLater); } catch (ParseException e) { e.printStackTrace(); return false; @@ -634,8 +654,17 @@ .filter(record -> { try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - Date time = sdf.parse(record.getTimeFrame().substring(11)); - return !time.before(lastYearStartDate) && !time.after(lastOfDate); + String substring = record.getTimeFrame().substring(0,16); + Date time = sdf.parse(substring); + Instant instant = time.toInstant(); + LocalDate dateToCheck = instant.atZone(ZoneId.systemDefault()).toLocalDate(); + // 获取今天的日期 + LocalDate today = LocalDate.now(); + // 计算一周前的日期 + LocalDate oneWeekAgo = today.minusYears(1); + // 计算一周后的日期 + LocalDate oneWeekLater = today.plusYears(1); + return dateToCheck.isAfter(oneWeekAgo) && dateToCheck.isBefore(oneWeekLater); } catch (ParseException e) { e.printStackTrace(); return false; diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java index 3458faa..afc238a 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java @@ -324,7 +324,6 @@ } -// if (cIds.size()>0) { List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>().in("id", cIds) .eq("state", 1) @@ -341,9 +340,10 @@ integralCommodity.setSort(merchandise.getSort()); commodity.add(integralCommodity); } -// } } + + System.out.println(commodity); return commodity; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java index ca92254..d0db8ce 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java @@ -450,7 +450,9 @@ CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setInsertTime(new Date()); - if (orinPay.getAppUserId().compareTo(studentPay.getAppUserId()) != 0) { + Integer appUserId = orinPay.getAppUserId(); + Integer appUserId1 = studentPay.getAppUserId(); + if (appUserId.compareTo(appUserId1) != 0) { courseCounsum.setReason("课时赠送"); } else { courseCounsum.setReason("课时转移"); @@ -466,19 +468,9 @@ courseCounsum.setPaymentId(orinPay.getId()); counsumService.save(courseCounsum); - Integer laveClassHours1 = studentPay.getLaveClassHours(); - Integer totalClassHours1 = studentPay.getTotalClassHours(); - int total = totalClassHours + totalClassHours1; - int lave = laveClassHours + laveClassHours1; - - studentPay.setAppUserId(null); - studentPay.setLaveClassHours(lave); - studentPay.setTotalClassHours(total); - orderStudentService.updateById(studentPay); - CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setInsertTime(new Date()); - if (orinPay.getAppUserId().compareTo(studentPay.getAppUserId()) != 0) { + if (appUserId.compareTo(appUserId1) != 0) { courseCounsum1.setReason("课时赠送"); } else { courseCounsum1.setReason("课时转移"); @@ -488,10 +480,10 @@ courseCounsum1.setPaymentId(studentPay.getId()); counsumService.save(courseCounsum1); - schedulingService.addNewCoursePackageScheduling(studentPay.getId(),laveClassHours); + schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours); //删除原排课数据 List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() - .eq("type", 1).eq("appUserId", orinPay.getAppUserId()) + .eq("type", 1).eq("appUserId", appUserId) .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()) .orderByAsc("classDate")); int num = totalClassHours - laveClassHours; @@ -501,12 +493,13 @@ coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId())); } } else { + Integer totalClassHours = orinPay.getTotalClassHours(); Integer laveClassHours = orinPay.getLaveClassHours(); Student student = studentClient.queryStudentById(toClassDto.getToStudentId()); CoursePackageOrderStudent to = new CoursePackageOrderStudent(); to.setStudentId(toClassDto.getToStudentId()); - to.setTotalClassHours(totalClassHours); + to.setTotalClassHours(laveClassHours); to.setLaveClassHours(laveClassHours); to.setCoursePackageId(orinPay.getCoursePackageId()); to.setState(1); @@ -519,10 +512,9 @@ calendar.setTime(new Date()); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); to.setUseTime(calendar.getTime()); - orderStudentService.save(to); - + Integer appUserId = orinPay.getAppUserId(); orinPay.setLaveClassHours(0); orinPay.setAppUserId(null); orinPay.setStatus(6); @@ -544,13 +536,13 @@ courseCounsum1.setNum(orinPay.getLaveClassHours()); courseCounsum1.setChangeType(1); courseCounsum1.setPaymentId(to.getId()); - counsumService.save(courseCounsum); + counsumService.save(courseCounsum1); //开始排课 addPackageStudent(coursePackage, to.getAppUserId(), to.getStudentId(), to); //删除原排课数据 List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() - .eq("type", 1).eq("appUserId", orinPay.getAppUserId()) + .eq("type", 1).eq("appUserId", appUserId) .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()) .orderByAsc("classDate")); int num = totalClassHours - laveClassHours; diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java index a6ca198..3b2c382 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java @@ -132,7 +132,7 @@ String[] split = classWeeks.split(";"); List<String> integerList = Arrays.asList(split); String weekOfDate = DateTimeHelper.getWeekOfDate(new Date()); - if (integerList.contains(weekOfDate)) { +// if (integerList.contains(weekOfDate)) { String dat = simpleDateFormat.format(byId.getClassDate()) + " " + dateString1.substring(11); Date start = null; @@ -171,9 +171,9 @@ } } } - } else { - recordVo.setStatus(1); - } +// } else { +// recordVo.setStatus(1); +// } recordVoList.add(recordVo); } 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 0f46a7b..b8e875a 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 @@ -68,10 +68,20 @@ int count1 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 1)); int count2 = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", id).eq("reservationStatus", 0)); + CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(id); - map.put("registered", count2); - map.put("actualArrival", count1); - map.put("nonArrival", count - count1); + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingMapper.selectList(new QueryWrapper<CoursePackageScheduling>().eq("classDate", coursePackageScheduling.getClassDate()).eq("coursePackageId", coursePackageScheduling.getCoursePackageId())); + List<Long> scs = new ArrayList<>(); + for (CoursePackageScheduling packageScheduling : coursePackageSchedulings) { + scs.add(packageScheduling.getId()); + } + int res = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().in("coursePackageSchedulingId", scs).eq("signInOrNot", 2)); + int act = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().in("coursePackageSchedulingId", scs).eq("signInOrNot", 1)); + int nonArrival = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().in("coursePackageSchedulingId", scs).eq("signInOrNot", 0)); + + map.put("registered", res); + map.put("actualArrival", act); + map.put("nonArrival",nonArrival); // Integer totalClassHours = (Integer) map.get("totalClassHours"); // Integer laveClassHours = (Integer) map.get("laveClassHours"); // map.put("already",totalClassHours-laveClassHours); @@ -297,161 +307,234 @@ */ @Override public void addNewCoursePackageScheduling(Long coursePackageOrderStudentId, Integer classNumber) { - CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(coursePackageOrderStudentId); - CoursePackageScheduling coursePackageScheduling = this.getOne(new QueryWrapper<CoursePackageScheduling>() - .eq("appUserId", coursePackageOrderStudent.getAppUserId()) - .eq("studentId", coursePackageOrderStudent.getStudentId()) - .eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()) - .eq("status", 1) - .orderByDesc("classDate") - .last(" limit 0, 1") - ); - TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); - Integer codeTime = coursePackage.getCodeTime(); - Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); - Date classDate = coursePackageScheduling.getClassDate(); - Student student = studentClient.queryStudentById(coursePackageScheduling.getStudentId()); - Date validity = student.getValidity(); + try { + CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(coursePackageOrderStudentId); + CoursePackageScheduling coursePackageScheduling = this.getOne(new QueryWrapper<CoursePackageScheduling>() + .eq("appUserId", coursePackageOrderStudent.getAppUserId()) + .eq("studentId", coursePackageOrderStudent.getStudentId()) + .eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()) + .eq("status", 1) + .orderByDesc("classDate") + .last(" limit 0, 1") + ); + TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); + Integer codeTime = coursePackage.getCodeTime(); + Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); + Student student = studentClient.queryStudentById(coursePackageScheduling.getStudentId()); + Date validity = student.getValidity(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); - int day_week = calendar.get(Calendar.DAY_OF_WEEK); - day_week = day_week - 1 == 0 ? 7 : day_week - 1; - calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 7 - day_week); - calendar.set(Calendar.HOUR_OF_DAY, 23); - calendar.set(Calendar.MINUTE, 59); - calendar.set(Calendar.SECOND, 59); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + int day_week = calendar.get(Calendar.DAY_OF_WEEK); + day_week = day_week - 1 == 0 ? 7 : day_week - 1; + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 7 - day_week); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); - //剩余课时已不足以继续排课,且最后一次的排课时间是在本周(因为定时任务会周一凌晨去继续进行排课处理 - // 如果最后一次排课时间不是本周,则直接增加剩余课时,剩余排课逻辑交由定时任务处理) - if(codeTime.compareTo(laveClassHours) > 0 && calendar.getTimeInMillis() > classDate.getTime()){ - //从第二天开始 - Calendar startTime = Calendar.getInstance(); - startTime.setTime(new Date()); - 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); - int day_week1 = startTime.get(Calendar.DAY_OF_WEEK); - day_week1 = day_week1 - 1 == 0 ? 7 : day_week1 - 1; - int num = 8 - day_week1 + 7; - - //上课星期 - String classWeeks = coursePackage.getClassWeeks(); - List<Integer> week = week(classWeeks); - //新剩余课时 - laveClassHours += classNumber; //新有效期 Calendar calendar1 = Calendar.getInstance(); calendar1.setTime(coursePackageOrderStudent.getUseTime()); calendar1.set(Calendar.DAY_OF_YEAR, calendar1.get(Calendar.DAY_OF_YEAR) + classNumber); Date useTime = calendar1.getTime(); - //判断最后一天是否所有时段都已排完 - 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(" ") + 1); - String classStartTime = coursePackage.getClassStartTime(); - String classEndTime = coursePackage.getClassEndTime(); - String[] split = classStartTime.split(","); - String[] split1 = classEndTime.split(","); - int n = Arrays.asList(split).indexOf(time); - if(n != split.length - 1){ - //单独处理剩余没排课的时段 - n++; - for (int i = n; i < split.length; i++) { - //剩余数量不足以排课 - if (laveClassHours.compareTo(codeTime) < 0) { + //剩余课时已不足以继续排课,且最后一次的排课时间是在本周(因为定时任务会周一凌晨去继续进行排课处理 + // 如果最后一次排课时间不是本周,则直接增加剩余课时,剩余排课逻辑交由定时任务处理) + if(0 == laveClassHours){ + //从第二天开始 + Calendar startTime = Calendar.getInstance(); + startTime.setTime(new Date()); + startTime.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + startTime.set(Calendar.HOUR_OF_DAY, 0); + startTime.set(Calendar.MINUTE, 0); + startTime.set(Calendar.SECOND, 0); + int day_week1 = startTime.get(Calendar.DAY_OF_WEEK); + day_week1 = day_week1 - 1 == 0 ? 7 : day_week1 - 1; + int num = 8 - day_week1 + 7; + + //上课星期 + String classWeeks = coursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + //新剩余课时 + laveClassHours += classNumber; + + String classStartTime = coursePackage.getClassStartTime(); + String classEndTime = coursePackage.getClassEndTime(); + String[] split = classStartTime.split(","); + String[] split1 = classEndTime.split(","); + for (int i = 0; i < num; i++) { + Date time1 = startTime.getTime(); + + //判断当天是否在排课星期内 + int day = startTime.get(Calendar.DAY_OF_WEEK); + day = day - 1 == 0 ? 7 : day - 1; + if (!week.contains(day)) { + startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); + continue; + } + + //大于有效期不进行排课 + if (startTime.getTimeInMillis() >= validity.getTime()) { break; } - laveClassHours -= codeTime; - CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); - packageScheduling.setType(coursePackage.getType()); - packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); - packageScheduling.setStudentId(coursePackageOrderStudent.getStudentId()); - packageScheduling.setCoursePackageId(coursePackage.getId()); - try { - Date parse = sdf.parse(format.format(time) + " " + split[i]); - Date parse1 = sdf.parse(format.format(time) + " " + split1[i]); - packageScheduling.setClassDate(parse); - packageScheduling.setEndDate(parse1); - }catch (Exception e){ - e.printStackTrace(); - } - packageScheduling.setStatus(1); - this.save(packageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(coursePackageOrderStudent.getAppUserId()); - student1.setStudentId(coursePackageOrderStudent.getStudentId()); - student1.setCoursePackageId(coursePackage.getId()); - student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); - student1.setCoursePackageSchedulingId(packageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - coursePackageStudentMapper.insert(student1); - } - } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); + for (int j = 0; j < split.length; j++) { + //剩余数量不足以排课 + if (laveClassHours.compareTo(codeTime) < 0) { + break; + } - for (int i = 0; i < num; i++) { - Date time1 = startTime.getTime(); + laveClassHours -= codeTime; - //判断当天是否在排课星期内 - int day = startTime.get(Calendar.DAY_OF_WEEK); - day = day - 1 == 0 ? 7 : day - 1; - if (!week.contains(day)) { - startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); - continue; - } - - //大于有效期不进行排课 - if (startTime.getTimeInMillis() >= validity.getTime()) { - break; - } - for (int j = 0; j < split.length; j++) { - //剩余数量不足以排课 - if (laveClassHours.compareTo(codeTime) < 0) { - break; - } - - laveClassHours -= codeTime; - - CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); - packageScheduling.setType(coursePackage.getType()); - packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); - packageScheduling.setStudentId(coursePackageOrderStudent.getStudentId()); - packageScheduling.setCoursePackageId(coursePackage.getId()); - try { + CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); + packageScheduling.setType(coursePackage.getType()); + packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); + packageScheduling.setStudentId(coursePackageOrderStudent.getStudentId()); + packageScheduling.setCoursePackageId(coursePackage.getId()); Date parse = sdf.parse(sdf1.format(time1) + " " + split[j]); Date parse1 = sdf.parse(sdf1.format(time1) + " " + split1[j]); packageScheduling.setClassDate(parse); packageScheduling.setEndDate(parse1); - }catch (Exception e){ - e.printStackTrace(); + packageScheduling.setStatus(1); + this.save(packageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(coursePackageOrderStudent.getAppUserId()); + student1.setStudentId(coursePackageOrderStudent.getStudentId()); + student1.setCoursePackageId(coursePackage.getId()); + student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); + student1.setCoursePackageSchedulingId(packageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + coursePackageStudentMapper.insert(student1); } - packageScheduling.setStatus(1); - this.save(packageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(coursePackageOrderStudent.getAppUserId()); - student1.setStudentId(coursePackageOrderStudent.getStudentId()); - student1.setCoursePackageId(coursePackage.getId()); - student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); - student1.setCoursePackageSchedulingId(packageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - coursePackageStudentMapper.insert(student1); + //增加日期,用于判断 + startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); } - //增加日期,用于判断 - startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); + + }else{ + Date classDate = coursePackageScheduling.getClassDate(); + if(codeTime.compareTo(laveClassHours) > 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.set(Calendar.HOUR_OF_DAY, 0); + startTime.set(Calendar.MINUTE, 0); + startTime.set(Calendar.SECOND, 0); + int day_week1 = startTime.get(Calendar.DAY_OF_WEEK); + day_week1 = day_week1 - 1 == 0 ? 7 : day_week1 - 1; + int num = 8 - day_week1 + 7; + + //上课星期 + String classWeeks = coursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + //新剩余课时 + laveClassHours += 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 classStartTime = coursePackage.getClassStartTime(); + String classEndTime = coursePackage.getClassEndTime(); + String[] split = classStartTime.split(","); + String[] split1 = classEndTime.split(","); + int n = Arrays.asList(split).indexOf(time); + if(n != split.length - 1){ + //单独处理剩余没排课的时段 + n++; + for (int i = n; i < split.length; i++) { + //剩余数量不足以排课 + if (laveClassHours.compareTo(codeTime) < 0) { + break; + } + laveClassHours -= codeTime; + CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); + packageScheduling.setType(coursePackage.getType()); + packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); + packageScheduling.setStudentId(coursePackageOrderStudent.getStudentId()); + packageScheduling.setCoursePackageId(coursePackage.getId()); + Date parse = sdf.parse(format.format(time) + " " + split[i]); + Date parse1 = sdf.parse(format.format(time) + " " + split1[i]); + packageScheduling.setClassDate(parse); + packageScheduling.setEndDate(parse1); + packageScheduling.setStatus(1); + this.save(packageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(coursePackageOrderStudent.getAppUserId()); + student1.setStudentId(coursePackageOrderStudent.getStudentId()); + student1.setCoursePackageId(coursePackage.getId()); + student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); + student1.setCoursePackageSchedulingId(packageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + coursePackageStudentMapper.insert(student1); + } + } + + for (int i = 0; i < num; i++) { + Date time1 = startTime.getTime(); + + //判断当天是否在排课星期内 + int day = startTime.get(Calendar.DAY_OF_WEEK); + day = day - 1 == 0 ? 7 : day - 1; + if (!week.contains(day)) { + startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); + continue; + } + + //大于有效期不进行排课 + if (startTime.getTimeInMillis() >= validity.getTime()) { + break; + } + for (int j = 0; j < split.length; j++) { + //剩余数量不足以排课 + if (laveClassHours.compareTo(codeTime) < 0) { + break; + } + + laveClassHours -= codeTime; + + CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); + packageScheduling.setType(coursePackage.getType()); + packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); + packageScheduling.setStudentId(coursePackageOrderStudent.getStudentId()); + packageScheduling.setCoursePackageId(coursePackage.getId()); + Date parse = sdf.parse(sdf1.format(time1) + " " + split[j]); + Date parse1 = sdf.parse(sdf1.format(time1) + " " + split1[j]); + packageScheduling.setClassDate(parse); + packageScheduling.setEndDate(parse1); + packageScheduling.setStatus(1); + this.save(packageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(coursePackageOrderStudent.getAppUserId()); + student1.setStudentId(coursePackageOrderStudent.getStudentId()); + student1.setCoursePackageId(coursePackage.getId()); + student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); + student1.setCoursePackageSchedulingId(packageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + coursePackageStudentMapper.insert(student1); + } + //增加日期,用于判断 + startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); + } + } } //开始更新剩余课时和有效期 coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + classNumber); coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + classNumber); coursePackageOrderStudent.setUseTime(useTime); + coursePackageOrderStudent.setStatus(1); coursePackageOrderStudentService.updateById(coursePackageOrderStudent); + }catch (Exception e){ + e.printStackTrace(); } } 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 ea7de54..80f53c0 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 @@ -1180,7 +1180,7 @@ //增加学员课时有效期 Student student = studentClient.queryStudentById(Integer.valueOf(id)); 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()); @@ -1212,10 +1212,31 @@ //开始排课 addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity()); + //课时记录 + 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); @@ -1236,14 +1257,29 @@ if (useTime.compareTo(new Date()) < 0) { addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity()); } + + //课时记录 + 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); + } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java index f8034c5..1268a81 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java @@ -556,6 +556,7 @@ integers.add(coursePackageScheduling.getId()); coursePackageScheduling.setCancelClasses(cancelClasses); coursePackageScheduling.setDeductClassHour(deductClassHour); + coursePackageScheduling.setStatus(3); } diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js index c2d777f..429e960 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/classRecord.js @@ -16,7 +16,13 @@ {field: 'selectItem', radio: true}, {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'}, {title: '日期', field: 'classDate', align: 'center', valign: 'middle'}, - {title: '请假学员', field: 'registered', align: 'center', valign: 'middle'}, + {title: '请假学员', field: 'registered', align: 'center', valign: 'middle',formatter: function (v, row) { + if (row.cancelClasses === undefined) { + return 0; + } else { + return v; + } + }}, {title: '实到学员', field: 'actualArrival', align: 'center', valign: 'middle', formatter: function (v, row) { if (row.cancelClasses === undefined) { @@ -28,7 +34,7 @@ }, {title: '未到学员', field: 'nonArrival', align: 'center', valign: 'middle', formatter: function (v, row) { - if (row.absencesNumber === undefined) { + if (row.cancelClasses === undefined) { return 0; } else { return v; -- Gitblit v1.7.1