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(","); 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; 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; } 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("课时转移"); @@ -491,7 +483,7 @@ 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; 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); } 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,6 +307,7 @@ */ @Override public void addNewCoursePackageScheduling(Long coursePackageOrderStudentId, Integer classNumber) { try { CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(coursePackageOrderStudentId); CoursePackageScheduling coursePackageScheduling = this.getOne(new QueryWrapper<CoursePackageScheduling>() .eq("appUserId", coursePackageOrderStudent.getAppUserId()) @@ -309,7 +320,6 @@ 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(); @@ -322,13 +332,19 @@ calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); //新有效期 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(); //剩余课时已不足以继续排课,且最后一次的排课时间是在本周(因为定时任务会周一凌晨去继续进行排课处理 // 如果最后一次排课时间不是本周,则直接增加剩余课时,剩余排课逻辑交由定时任务处理) if(codeTime.compareTo(laveClassHours) > 0 && calendar.getTimeInMillis() > classDate.getTime()){ if(0 == laveClassHours){ //从第二天开始 Calendar startTime = Calendar.getInstance(); startTime.setTime(new Date()); startTime.set(Calendar.DAY_OF_YEAR, startTime.get(Calendar.DAY_OF_YEAR) + 1); 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); @@ -341,17 +357,87 @@ 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(); 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; } 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; } 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); } }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(" ") + 1); String time = format.substring(format.indexOf(" ")); String classStartTime = coursePackage.getClassStartTime(); String classEndTime = coursePackage.getClassEndTime(); String[] split = classStartTime.split(","); @@ -371,14 +457,10 @@ 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(); @@ -422,14 +504,10 @@ packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); packageScheduling.setStudentId(coursePackageOrderStudent.getStudentId()); packageScheduling.setCoursePackageId(coursePackage.getId()); try { 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(); @@ -446,12 +524,17 @@ //增加日期,用于判断 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(); } } 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("购买课包"); 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); } } } 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); } 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;