From acad524bfb7f376c09ff8e6600fab207780156e1 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期四, 23 十一月 2023 18:46:05 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 622 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 381 insertions(+), 241 deletions(-) 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 cf5625e..b8f931c 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 @@ -12,6 +12,7 @@ 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.dto.ToClassDto; import com.dsh.course.service.*; import com.dsh.course.util.ResultUtil; @@ -28,6 +29,9 @@ import javax.swing.text.html.parser.Entity; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.Period; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -42,7 +46,10 @@ TCoursePackagePaymentService paymentService; @Autowired private CourseCounsumService counsumService; - + @Autowired + private TCoursePackageService coursePackageService; + @Resource + private CoursePackageStudentMapper cpsMapper; //获取退费记录 @RequestMapping("/getRefund") @ResponseBody @@ -73,13 +80,16 @@ @RequestMapping("/bypac") @ResponseBody public List<Map<String, Object>> bypac(@RequestBody PacQueryDto pacQueryDto) { - - - - - System.out.println("-====studentQeryDto========="+pacQueryDto); + if (pacQueryDto.getStoreIds()!=null && pacQueryDto.getStoreIds().size()!=0){ + // 根据门店id 查询课包ids + List<Integer> coursePackageIds = coursePackageService.list(new QueryWrapper<TCoursePackage>() + .in("storeId", pacQueryDto.getStoreIds())).stream() + .map(TCoursePackage::getId).collect(Collectors.toList()); + pacQueryDto.setStoreIds(coursePackageIds); + } List<Map<String, Object>> pays = paymentService.bypac(pacQueryDto); + System.out.println("=========pays======"+pays); return pays; @@ -255,12 +265,7 @@ queryWrapper.like("reason", consumeQuery.getReason()); } - List<CourseCounsum> list = counsumService.list(queryWrapper); - - - - // List<CourseCounsum> list = counsumService.list(new QueryWrapper<CourseCounsum>().eq("paymentId", consumeQuery.getPayId()).eq("changeType", consumeQuery.getChangeType()).between("insertTime", consumeQuery.getStart(), consumeQuery.getEnd()).like("reason", consumeQuery.getReason())); return list; } @@ -321,9 +326,9 @@ @ResponseBody public void zeroClass(@RequestParam("id")Integer id){ MoneyBack byId = moneyBackService.getById(id); - String[] split = byId.getIds().split(","); - System.out.println("========split===>"+split); - List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split)); + String[] split2 = byId.getIds().split(","); + System.out.println("========split===>"+split2); + List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split2)); for (TCoursePackagePayment o :id1){ CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setNum(o.getLaveClassHours()); @@ -338,6 +343,25 @@ o.setStatus(2); o.setAppUserId(null); + + + TCoursePackage tCoursePackage = packageService.getById(o.getCoursePackageId()); + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + // 本周周几 + + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId",o.getStudentId()).eq("coursePackageId", o.getCoursePackageId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", o.getStudentId()).eq("coursePackageId", o.getCoursePackageId())); + } @@ -386,27 +410,37 @@ //课程转移 @RequestMapping("/toClass") @ResponseBody - public void toClass(@RequestBody ToClassDto toClassDto){ + public void toClass(@RequestBody ToClassDto toClassDto) throws ParseException { System.out.println("===========到达getSelect======="+toClassDto); - TCoursePackagePayment orinPay = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId())); - TCoursePackagePayment studentPay = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId",orinPay.getCoursePackageId())); + TCoursePackagePayment orinPay = + paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId())); + TCoursePackagePayment studentPay = paymentService.getOne + (new QueryWrapper<TCoursePackagePayment>() + .eq("studentId", toClassDto.getToStudentId()) + .eq("coursePackageId",orinPay.getCoursePackageId())); if (studentPay!=null) { System.out.println("======orinPay=====>" + orinPay); System.out.println("======studentPay=====>" + studentPay); Integer laveClassHours = orinPay.getLaveClassHours(); Integer totalClassHours = orinPay.getTotalClassHours(); - orinPay.setTotalClassHours(0); orinPay.setLaveClassHours(0); - orinPay.setStatus(5); + orinPay.setStatus(1); orinPay.setAppUserId(null); paymentService.updateById(orinPay); - + //删除orin的排课记录 + List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId())); + List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect1.size()>0){ + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect1)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + } CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setInsertTime(new Date()); if (orinPay.getAppUserId()!=studentPay.getAppUserId()){ - courseCounsum.setReason("赠课"); - }else { courseCounsum.setReason("转课"); + courseCounsum.setReason("课时转移"); + }else { courseCounsum.setReason("课时转移"); } courseCounsum.setNum(laveClassHours); courseCounsum.setChangeType(0); @@ -425,11 +459,86 @@ CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setInsertTime(new Date()); - courseCounsum1.setReason("转课"); + if (orinPay.getAppUserId()!=studentPay.getAppUserId()){ + courseCounsum1.setReason("课时转移"); + }else { courseCounsum1.setReason("课时转移"); + } courseCounsum1.setNum(laveClassHours); courseCounsum1.setChangeType(1); courseCounsum1.setPaymentId(studentPay.getId()); counsumService.save(courseCounsum1); + + + //排课 + TCoursePackage tCoursePackage = packageService.getById(studentPay.getCoursePackageId()); + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + // 本周周几 + + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + } + + Student student = studentClient.queryStudentById(toClassDto.getToStudentId()); + + Date today = new Date(); + + + + + TCoursePackagePayment pay = coursePackagePaymentService.getById(studentPay.getId()); + Integer laveClassHours2 = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + int count = 0; + // 本周周几 +// int i = DateUtil.dayOfWeek(new Date())-1; + + Date[] dates = generateDateArray(14,today); + can = laveClassHours2/codeTime; + + for (Date date : dates) { + if (count==can){ + break; + } + int wei = DateUtil.dayOfWeek(date); + if (week.contains(wei)){ + for (int i1 = 0; i1 < split.length; i1++) { + if (count==can){ + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(student.getAppUserId()); + student1.setStudentId(student.getId()); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(studentPay.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + count++; + } + } + } + }else { @@ -453,15 +562,24 @@ orinPay.setTotalClassHours(0); orinPay.setLaveClassHours(0); orinPay.setAppUserId(null); - orinPay.setStatus(6); + orinPay.setStatus(1); paymentService.updateById(orinPay); + //删除orin的排课记录 + List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId())); + List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect1.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect1)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + } + CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setInsertTime(new Date()); - courseCounsum.setReason("赠课"); + courseCounsum.setReason("课时转移"); courseCounsum.setNum(orinPay.getLaveClassHours()); courseCounsum.setChangeType(0); courseCounsum.setPaymentId(orinPay.getId()); @@ -473,11 +591,82 @@ CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setInsertTime(new Date()); - courseCounsum1.setReason("赠课"); + courseCounsum1.setReason("课时转移"); courseCounsum1.setNum(orinPay.getLaveClassHours()); courseCounsum1.setChangeType(1); courseCounsum1.setPaymentId(to.getId()); counsumService.save(courseCounsum); + + + + TCoursePackage tCoursePackage = packageService.getById(studentPay.getCoursePackageId()); + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + // 本周周几 + + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + } + + + + Date today = new Date(); + + + + + TCoursePackagePayment pay = coursePackagePaymentService.getById(studentPay.getId()); + Integer laveClassHours2 = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + int count = 0; + // 本周周几 +// int i = DateUtil.dayOfWeek(new Date())-1; + + Date[] dates = generateDateArray(14,today); + can = laveClassHours2/codeTime; + + for (Date date : dates) { + if (count==can){ + break; + } + int wei = DateUtil.dayOfWeek(date); + if (week.contains(wei)){ + for (int i1 = 0; i1 < split.length; i1++) { + if (count==can){ + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(student.getAppUserId()); + student1.setStudentId(student.getId()); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(studentPay.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + count++; + } + } + } } @@ -486,9 +675,11 @@ @Resource private StudentClient studentClient; + @Autowired + private CourseCounsumService courseCounsumService; @RequestMapping(value = "/toHoli",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") @ResponseBody - public String toHoli(@RequestBody ToHoliDto toHoliDto){ + public String toHoli(@RequestBody ToHoliDto toHoliDto) throws ParseException { String [] ids = toHoliDto.getIds(); List<String> strings = new ArrayList<>(); @@ -515,7 +706,7 @@ payment.setLaveClassHours(laveClassHoursnew); payment.setTotalClassHours(totalClassHoursnew); payment.setAppUserId(null); - payment.setStatus(3); +// payment.setStatus(3); paymentService.updateById(payment); @@ -534,117 +725,73 @@ holi.setPayStatus(2); paymentService.save(holi); + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(holi.getId()); + courseCounsum.setChangeType(0); + courseCounsum.setNum(classNum); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("报名假期班"); + courseCounsumService.save(courseCounsum); + + //排假期课 + TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId()); String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); + Date today = new Date(); + + Date startTime = tCoursePackage.getStartTime(); + Date endTime = tCoursePackage.getEndTime(); + LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + Period period = Period.between(startDate, endDate); + int days = period.getDays() + 1; + Integer can =999; + int count = 0; String[] split = tCoursePackage.getClassStartTime().split(","); String[] split1 = tCoursePackage.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - // 本周周几 - int i = DateUtil.dayOfWeek(new Date())-1; - for (Integer integer : week) { - if(integer<i){ - // 找下一周的时间 - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7-(i-integer)); - Date time = instance.getTime(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startTime); + calendar.add(Calendar.DAY_OF_MONTH, -1); + + Date[] dates = generateDateArray(days,calendar.getTime()); + for (Date date : dates) { + if (count==can){ + break; + } + int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date)-1; + if (wei == 0){ + wei =7; + } + if (week.contains(wei)){ for (int i1 = 0; i1 < split.length; i1++) { - + if (count==can){ + break; + } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - } catch (ParseException e) { - e.printStackTrace(); - } - - } - - }else if(integer>i) { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,integer-i); - Date time1 = instance.getTime(); - List<Date> list = new ArrayList<>(); - list.add(time1); - instance.add(Calendar.DATE,7); - Date time2 = instance.getTime(); - list.add(time2); - for (Date time : list) { - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - } catch (ParseException e) { - e.printStackTrace(); - } - } - } - - }else { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7); - Date time = instance.getTime(); - - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - } catch (ParseException e) { - e.printStackTrace(); - } + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(student.getAppUserId()); + student1.setStudentId(student.getId()); + student1.setCoursePackageId(toHoliDto.getClassId()); + student1.setCoursePackagePaymentId(holi.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + studentService.save(student1); + count++; } } } @@ -665,6 +812,23 @@ + } + + + @Autowired + private TCoursePackagePaymentService coursePackagePaymentService; + public static Date[] generateDateArray(int numDays,Date date) { +// LocalDate tomorrow = LocalDate.now().plusDays(1); + LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1); + + Date[] dates = new Date[numDays]; + + for (int i = 0; i < numDays; i++) { + LocalDate currentDate = tomorrow.plusDays(i); + dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + return dates; } private List<Integer> week(String week){ String[] split = week.split(";"); @@ -697,9 +861,12 @@ return integers; } + + @Autowired + private CoursePackageStudentService coursePackageStudentService; @RequestMapping(value = "/toTrans",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") @ResponseBody - public String toTrans(@RequestBody ToHoliDto toHoliDto){ + public String toTrans(@RequestBody ToHoliDto toHoliDto) throws ParseException { String [] ids = toHoliDto.getIds(); List<String> strings = new ArrayList<>(); @@ -733,18 +900,40 @@ //新增课时 - TCoursePackagePayment holi = new TCoursePackagePayment(); - holi.setAppUserId(student.getAppUserId()); - holi.setStudentId(student.getId()); - holi.setCoursePackageId(toHoliDto.getClassId()); - holi.setTotalClassHours(laveClassHours); - holi.setLaveClassHours(laveClassHours); - holi.setState(1); - holi.setInsertTime(new Date()); - holi.setPayStatus(2); - paymentService.save(holi); + TCoursePackagePayment one = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); + TCoursePackagePayment holi = new TCoursePackagePayment(); + if (one==null){ + holi.setAppUserId(student.getAppUserId()); + holi.setStudentId(student.getId()); + holi.setCoursePackageId(toHoliDto.getClassId()); + holi.setTotalClassHours(laveClassHours); + holi.setLaveClassHours(laveClassHours); + holi.setState(1); + holi.setInsertTime(new Date()); + holi.setPayStatus(2); + holi.setStatus(1); + paymentService.save(holi); + + }else{ + one.setTotalClassHours(one.getTotalClassHours()+laveClassHours); + one.setLaveClassHours(one.getLaveClassHours()+laveClassHours); + one.setAppUserId(null); + paymentService.updateById(one); + holi=one; + } System.out.println("保存成功=============》="+holi); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(holi.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(laveClassHours); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("换课"); + courseCounsumService.save(courseCounsum); + + TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId()); String classWeeks = tCoursePackage.getClassWeeks(); @@ -755,112 +944,67 @@ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // 本周周几 - int i = DateUtil.dayOfWeek(new Date())-1; - for (Integer integer : week) { - if(integer<i){ - // 找下一周的时间 - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7-(i-integer)); - Date time = instance.getTime(); + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); + } + + + Date today = new Date(); + + + + + TCoursePackagePayment pay = coursePackagePaymentService.getById(holi.getId()); + Integer laveClassHours1 = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + + + int count = 0; + + // 本周周几 +// int i = DateUtil.dayOfWeek(new Date())-1; + + Date[] dates = generateDateArray(14,today); + can = laveClassHours1/codeTime; + + for (Date date : dates) { + if (count==can){ + break; + } + int wei = DateUtil.dayOfWeek(date); + if (week.contains(wei)){ for (int i1 = 0; i1 < split.length; i1++) { - + if (count==can){ + break; + } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - } catch (ParseException e) { - e.printStackTrace(); - } - - } - - }else if(integer>i) { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,integer-i); - Date time1 = instance.getTime(); - List<Date> list = new ArrayList<>(); - list.add(time1); - instance.add(Calendar.DATE,7); - Date time2 = instance.getTime(); - list.add(time2); - for (Date time : list) { - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - } catch (ParseException e) { - e.printStackTrace(); - } - } - } - - }else { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7); - Date time = instance.getTime(); - - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - } catch (ParseException e) { - e.printStackTrace(); - } + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(student.getAppUserId()); + student1.setStudentId(student.getId()); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(holi.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + count++; } } } - @@ -870,10 +1014,6 @@ String join = StringUtils.join(stringArray, ","); System.out.println("==========join========"+join); return "转课成功"; - - - - } -- Gitblit v1.7.1