From f88cfa02e36752e4acad7adc4b045155e8e50f21 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期五, 08 十二月 2023 09:16:29 +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 | 963 +++++++++++++++++++++++++++++++------------------------- 1 files changed, 535 insertions(+), 428 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 f3ad740..4d355e3 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 @@ -67,10 +67,7 @@ @RequestMapping("/getStudentTotal") @ResponseBody public List<Map<String, Object>> get(@RequestBody StudentQeryDto studentQeryDto) { - System.out.println("-====studentQeryDto=========" + studentQeryDto); List<Map<String, Object>> pays = paymentService.getStudentTotal(studentQeryDto); - System.out.println("=========pays======" + pays); - return pays; } @@ -107,10 +104,25 @@ } + + + @ResponseBody + @PostMapping("/queryAble") + public Integer queryAble(@RequestBody Integer id) { + + int coursePackageId = orderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id)); + if (coursePackageId>0){ + return 1; + }else { + return 0; + } + + } + //获取学员课时数信息 @RequestMapping("/getInfo") @ResponseBody - public StudentClassInfo list(@RequestParam("tStudentId") Integer tStudentId) { + public StudentClassInfo list(@RequestParam("tStudentId") Integer tStudentId){ // System.out.println("------------>"+tStudentId); @@ -126,6 +138,8 @@ studentClassInfo.setInDate(minDate); System.out.println("===========>" + studentClassInfo); +// appUserClient.queryGift(tStudentId); + return studentClassInfo; } @@ -136,7 +150,9 @@ System.out.println("==========getClassList===tStudentId====" + tStudentId); List<ClassListDto> listDtos = studentService.getClassList(tStudentId); for (ClassListDto dto : listDtos) { - dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours()); + if (dto.getClassType()!=2) { + dto.setHasClassHours(dto.getTotalClassHours() - dto.getLaveClassHours()); + } } System.out.println("======listDtos======" + listDtos); return listDtos; @@ -174,15 +190,29 @@ @Resource private AppUserClient appUserClient; + + @Autowired + private ICoursePackageOrderStudentService orderStudentService; //获取可转移学员 @RequestMapping("/getSelect") @ResponseBody public List<SelectDto> getSelect(@RequestParam("payId") Long payId) { - TCoursePackagePayment byId = paymentService.getById(payId); +// TCoursePackagePayment byId = paymentService.getById(payId); +// +// List<Integer> studentIds = paymentService.getStudentIds(payId, byId.getCoursePackageId(), byId.getAppUserId()); +// System.out.println("=========studentIds=================>" + studentIds); - List<Integer> studentIds = paymentService.getStudentIds(payId, byId.getCoursePackageId(), byId.getAppUserId()); - System.out.println("=========studentIds=================>" + studentIds); + CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(payId); + + + List<CoursePackageOrderStudent> orderStudent = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("appUserId", coursePackageOrderStudent.getAppUserId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).ne("id",payId)); + + List<Integer> studentIds = new ArrayList<>(); + for (CoursePackageOrderStudent packageOrderStudent : orderStudent) { + studentIds.add(packageOrderStudent.getStudentId()); + } + if (studentIds.size() > 0) { List<SelectDto> selectDtos = appUserClient.getSelects(studentIds); @@ -269,12 +299,18 @@ } - @Autowired - private ICoursePackageOrderStudentService orderStudentService; + @RequestMapping("/insertBack") @ResponseBody - public void insertBack(@RequestBody InsertBackDto insertBackDto) { + public Integer insertBack(@RequestBody InsertBackDto insertBackDto) { + + List<MoneyBack> ids = moneyBackService.list(new QueryWrapper<MoneyBack>().eq("ids", insertBackDto.getIds())); + + if (!ids.isEmpty()){ + return 1 ; + } + MoneyBack moneyBack = new MoneyBack(); moneyBack.setStudentId(insertBackDto.getId()); @@ -290,16 +326,34 @@ for (CoursePackageOrderStudent o : pays) { o.setStatus(4); o.setAppUserId(null); + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>().eq("studentId", o.getStudentId()).eq("coursePackageId", o.getCoursePackageId()).ge("classDate", new Date())); + List<Long> scs = new ArrayList<>(); + for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) { + scs.add(coursePackageScheduling.getId()); + } + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().in("coursePackageSchedulingId",scs)); + coursePackageSchedulingService.deleteBatchIds(scs); + + + } + + orderStudentService.updateBatchById(pays); + return 0; } + @Autowired + private ICoursePackageOrderService coursePackageOrderService; + + @Autowired + private ICoursePackageOrderStudentService coursePackageOrderStudentService; @RequestMapping("/queryByIds") @ResponseBody - public List<TCoursePackagePayment> queryByIds(@RequestParam("ids") String ids) { - List<TCoursePackagePayment> paymentList = paymentService.list(new QueryWrapper<TCoursePackagePayment>() + public List<CoursePackageOrderStudent> queryByIds(@RequestParam("ids") String ids) { + List<CoursePackageOrderStudent> paymentList = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .in("id", Arrays.asList(ids.split(",")))); System.out.println("========client==>" + paymentList); @@ -315,6 +369,8 @@ } + + @RequestMapping("/noStatus") @ResponseBody public void noStatus(@RequestParam("id") Integer id) { @@ -326,6 +382,7 @@ for (CoursePackageOrderStudent o : pays) { o.setStatus(1); o.setAppUserId(null); + schedulingService.addNewCoursePackageScheduling(o.getId(),o.getLaveClassHours()); } orderStudentService.updateBatchById(pays); @@ -377,18 +434,30 @@ } + + @RequestMapping("/getOrder") + @ResponseBody + public List<CoursePackageOrder> getOrder(@RequestParam("id") Long id) { + + CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(id); + + List<CoursePackageOrder> list = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).like("studentIds", coursePackageOrderStudent.getStudentId())); + return list; + } + + @RequestMapping("/backStausClass") @ResponseBody public void backStausClass(@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)); - for (TCoursePackagePayment o : id1) { - o.setStatus(1); - o.setAppUserId(null); - } - paymentService.updateBatchById(id1); +// MoneyBack byId = moneyBackService.getById(id); +// String[] split = byId.getIds().split(","); +// System.out.println("========split===>" + split); +// List<CoursePackageOrderStudent> id1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().in("id", split)); +// for (CoursePackageOrderStudent o : id1) { +// o.setStatus(1); +// o.setAppUserId(null); +// } +// coursePackageOrderStudentService.updateBatchById(id1); } @RequestMapping("/cancel") @@ -416,61 +485,49 @@ return moneyBacksck; } + + + @Autowired + private ICoursePackageSchedulingService schedulingService; + //课程转移 @RequestMapping("/toClass") @ResponseBody 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())); + CoursePackageOrderStudent orinPay = orderStudentService.getById(toClassDto.getId()); + CoursePackageOrderStudent studentPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>() + .eq("studentId", toClassDto.getToStudentId()) + .eq("coursePackageId", orinPay.getCoursePackageId())); + TCoursePackage coursePackage = packageService.getById(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(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("课时转移"); + Integer appUserId = orinPay.getAppUserId(); + Integer appUserId1 = studentPay.getAppUserId(); + if (appUserId.compareTo(appUserId1) != 0) { + courseCounsum.setReason("赠课"); } else { courseCounsum.setReason("课时转移"); } + + orinPay.setLaveClassHours(0); + orinPay.setStatus(5); + orinPay.setAppUserId(null); + orderStudentService.updateById(orinPay); + courseCounsum.setNum(laveClassHours); courseCounsum.setChangeType(0); 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); - paymentService.updateById(studentPay); - CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setInsertTime(new Date()); - if (orinPay.getAppUserId() != studentPay.getAppUserId()) { - courseCounsum1.setReason("课时转移"); + if (appUserId.compareTo(appUserId1) != 0) { + courseCounsum1.setReason("赠课"); } else { courseCounsum1.setReason("课时转移"); } @@ -479,114 +536,59 @@ 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())); + schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours); + //删除原排课数据 + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() + .eq("type", 1).eq("appUserId", appUserId) + .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()) + .orderByAsc("classDate")); + int num = totalClassHours - laveClassHours; + for (int i = num; i < coursePackageSchedulings.size(); i++) { + CoursePackageScheduling packageScheduling = coursePackageSchedulings.get(i); + coursePackageSchedulingService.deleteById(packageScheduling.getId()); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId())); } - - 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 { - + Integer totalClassHours = orinPay.getTotalClassHours(); + Integer laveClassHours = orinPay.getLaveClassHours(); Student student = studentClient.queryStudentById(toClassDto.getToStudentId()); - TCoursePackagePayment to = new TCoursePackagePayment(); + CoursePackageOrderStudent to = new CoursePackageOrderStudent(); to.setStudentId(toClassDto.getToStudentId()); - to.setTotalClassHours(orinPay.getTotalClassHours()); - to.setLaveClassHours(orinPay.getLaveClassHours()); + to.setTotalClassHours(laveClassHours); + to.setLaveClassHours(laveClassHours); to.setCoursePackageId(orinPay.getCoursePackageId()); to.setState(1); to.setAppUserId(student.getAppUserId()); - to.setPayStatus(2); to.setStatus(1); to.setInsertTime(new Date()); - paymentService.save(to); + + Integer validDays = coursePackage.getValidDays(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); + to.setUseTime(calendar.getTime()); + orderStudentService.save(to); + if(null == student.getValidity()){ + student.setValidity(calendar.getTime()); + }else if(student.getValidity().getTime() < calendar.getTime().getTime()){ + student.setValidity(calendar.getTime()); + } + studentClient.frozen(student); - orinPay.setTotalClassHours(0); + Integer laveClassHours1 = orinPay.getLaveClassHours(); + Integer appUserId = orinPay.getAppUserId(); orinPay.setLaveClassHours(0); orinPay.setAppUserId(null); - 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())); - } + orinPay.setStatus(6); + orderStudentService.updateById(orinPay); CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setInsertTime(new Date()); - courseCounsum.setReason("课时转移"); - courseCounsum.setNum(orinPay.getLaveClassHours()); + courseCounsum.setReason("赠课"); + courseCounsum.setNum(laveClassHours1); courseCounsum.setChangeType(0); courseCounsum.setPaymentId(orinPay.getId()); counsumService.save(courseCounsum); @@ -594,82 +596,184 @@ CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setInsertTime(new Date()); - courseCounsum1.setReason("课时转移"); - courseCounsum1.setNum(orinPay.getLaveClassHours()); + courseCounsum1.setReason("赠课"); + courseCounsum1.setNum(laveClassHours1); courseCounsum1.setChangeType(1); courseCounsum1.setPaymentId(to.getId()); - counsumService.save(courseCounsum); + 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())); + //开始排课 + addPackageStudent(coursePackage, to.getAppUserId(), to.getStudentId(), to); + //删除原排课数据 + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() + .eq("type", 1).eq("appUserId", appUserId) + .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()) + .orderByAsc("classDate")); + int num = totalClassHours - laveClassHours; + for (int i = num; i < coursePackageSchedulings.size(); i++) { + CoursePackageScheduling packageScheduling = coursePackageSchedulings.get(i); + coursePackageSchedulingService.deleteById(packageScheduling.getId()); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId())); } + } + } - Date today = new Date(); + + /** + * 新购买课程后的排课 + * + * @param userId + * @param sId + * @throws ParseException + */ + private void addPackageStudent(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrderStudent coursePackageOrderStudent) { + try { + //1常规 2假期 3体验 + if (tCoursePackage.getType() == 1) { + //上课星期 + 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"); - 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; + //剩余课时 + Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); + //扣除课时数 + Integer codeTime = tCoursePackage.getCodeTime(); + //排课 本周+下周,课时不够扣则直接剩余不排课 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + int day_week = calendar.get(Calendar.DAY_OF_WEEK); + day_week = day_week - 1 == 0 ? 7 : day_week - 1; + int num = 8 - day_week + 7; - Date[] dates = generateDateArray(14, today); - can = laveClassHours2 / codeTime; + Student student = studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()); + Date useTime = student.getValidity(); - 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) { + for (int i = 0; i < num; i++) { + Date time = calendar.getTime(); + + //判断当天是否在排课星期内 + int day = calendar.get(Calendar.DAY_OF_WEEK); + day = day - 1 == 0 ? 7 : day - 1; + if (!week.contains(day)) { + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + continue; + } + + + //大于有效期不进行排课 + if (calendar.getTimeInMillis() >= useTime.getTime()) { + break; + } + for (int j = 0; j < split.length; j++) { + //剩余数量不足以排课 + if (laveClassHours.compareTo(codeTime) < 0) { break; } + + laveClassHours -= codeTime; + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setType(tCoursePackage.getType()); + coursePackageScheduling.setAppUserId(userId); + coursePackageScheduling.setStudentId(sId); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(date) + " " + split[i1]); - Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setCoursePackagePaymentId(); + Date parse = format1.parse(format.format(time) + " " + split[j]); + Date parse1 = format1.parse(format.format(time) + " " + split1[j]); 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.setAppUserId(userId); + student1.setStudentId(sId); student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(studentPay.getId()); + student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); cpsMapper.insert(student1); - count++; } + //增加日期,用于判断 + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); } } + if (tCoursePackage.getType() == 2) { + //上课星期 + 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"); + + Date startTime = tCoursePackage.getStartTime(); + Date endTime = tCoursePackage.getEndTime(); + //排课 本周+下周,课时不够扣则直接剩余不排课 + Calendar calendar = Calendar.getInstance(); + //假期开始使用当前时间为起始时间进行排课 + calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + while (true) { + Date time = calendar.getTime(); + + //判断当天是否在排课星期内 + int day = calendar.get(Calendar.DAY_OF_WEEK); + day = day - 1 == 0 ? 7 : day - 1; + if (!week.contains(day)) { + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + continue; + } + + //大于有效期不进行排课 + if (calendar.getTimeInMillis() > endTime.getTime()) { + break; + } + for (int j = 0; j < split.length; j++) { + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setType(tCoursePackage.getType()); + coursePackageScheduling.setAppUserId(userId); + coursePackageScheduling.setStudentId(sId); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + coursePackageScheduling.setCoursePackagePaymentId(); + Date parse = format1.parse(format.format(time) + " " + split[j]); + Date parse1 = format1.parse(format.format(time) + " " + split1[j]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(null); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + } + //增加日期,用于判断 + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + } + } + } catch (Exception e) { + e.printStackTrace(); } - - } @Resource @@ -680,133 +784,137 @@ @RequestMapping(value = "/toHoli", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") @ResponseBody public String toHoli(@RequestBody ToHoliDto toHoliDto) throws ParseException { - - String[] ids = toHoliDto.getIds(); - List<String> strings = new ArrayList<>(); - - - for (String id : ids) { - //扣除课时 - TCoursePackagePayment payment = paymentService.getById(id); - System.out.println("=====byId=========" + payment); - - - Integer laveClassHours = payment.getLaveClassHours(); - - Integer classNum = toHoliDto.getClassNum(); - Integer totalClassHours = payment.getTotalClassHours(); - Student student = studentClient.queryStudentById(payment.getStudentId()); - - if (laveClassHours < classNum) { - strings.add(student.getName()); - continue; + String[] stuIds = toHoliDto.getIds(); + //查询出学员ids对应的棵树,判断剩余课时数是否够 + List<CoursePackageOrderStudent> list = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", toHoliDto.getClassId()).in("studentId", stuIds)); + List<String> notStudent = new ArrayList<>(); + for (CoursePackageOrderStudent coursePackageOrderStudent : list) { + if (coursePackageOrderStudent.getLaveClassHours() < toHoliDto.getClassNum()) { + notStudent.add(studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()).getName()); } + } + if (!notStudent.isEmpty()) { + String notStudentStr = String.join(",", notStudent); + return notStudentStr+":课时数不足"; + } - Integer laveClassHoursnew = laveClassHours - classNum; - Integer totalClassHoursnew = totalClassHours - classNum; - payment.setLaveClassHours(laveClassHoursnew); - payment.setTotalClassHours(totalClassHoursnew); - payment.setAppUserId(null); -// payment.setStatus(3); + for (String stuId : stuIds) { + Student student = studentClient.queryStudentById(Integer.valueOf(stuId)); - paymentService.updateById(payment); + // 扣除 原来的课时数 + // 添加购买课时 paytyoe为7 + // 排课可期 判断课程时间段 添加排课表 添加上课记录表 + // 找到原来的课包 扣课时 +// CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(toHoliDto.getId()); + CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId",toHoliDto.getId()).eq("studentId",stuId)); - //获取student信息 + TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); + TCoursePackage coursePackage1 = coursePackageService.getById(toHoliDto.getClassId()); + //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录 + List<CoursePackageScheduling> list1 = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() + .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1) + .eq("type", 1).orderByDesc("classDate")); + //已经排课但没有使用的课时数量 + int number = list1.size() * coursePackage.getNeedNum(); + Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours(); + laveClassHours1 -= number; + //需要购买使用的课时数 + Integer num = toHoliDto.getClassNum(); + //需要删除多余的排课记录 + if(num.compareTo(laveClassHours1) > 0){ + //课时数差额 + int number1 = num - laveClassHours1; + double o = number1 % coursePackage.getNeedNum(); + int l = 0; + if(0 != o){ + l = 1; + } + int n = Double.valueOf(number1 / coursePackage.getNeedNum()).intValue() + l; + for (int i = 0; i < n; i++) { + CoursePackageScheduling coursePackageScheduling = list1.get(i); + coursePackageSchedulingService.deleteById(coursePackageScheduling.getId()); - //新增课时 + coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>() + .eq("coursePackageSchedulingId", coursePackageScheduling.getId())); + } + } + coursePackageOrderStudent.setAppUserId(null); + coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-toHoliDto.getClassNum()); + orderStudentService.updateById(coursePackageOrderStudent); - TCoursePackagePayment holi = new TCoursePackagePayment(); - holi.setAppUserId(student.getAppUserId()); - holi.setStudentId(student.getId()); - holi.setCoursePackageId(toHoliDto.getClassId()); - holi.setTotalClassHours(toHoliDto.getClassNum()); - holi.setLaveClassHours(toHoliDto.getClassNum()); - holi.setState(1); - holi.setInsertTime(new Date()); - 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(); + //上课星期 + String classWeeks = coursePackage1.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(","); + //上课时段 + String[] split = coursePackage1.getClassStartTime().split(","); + String[] split1 = coursePackage1.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + Date startTime = coursePackage1.getStartTime(); + Date endTime = coursePackage1.getEndTime(); + //排课 本周+下周,课时不够扣则直接剩余不排课 Calendar calendar = Calendar.getInstance(); - calendar.setTime(startTime); - calendar.add(Calendar.DAY_OF_MONTH, -1); + //假期开始使用当前时间为起始时间进行排课 + calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + while (true) { + Date time = calendar.getTime(); - Date[] dates = generateDateArray(days, calendar.getTime()); - for (Date date : dates) { - if (count == can) { + //判断当天是否在排课星期内 + int day = calendar.get(Calendar.DAY_OF_WEEK); + day = day - 1 == 0 ? 7 : day - 1; + if (!week.contains(day)) { + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + continue; + } + + //大于有效期不进行排课 + if (calendar.getTimeInMillis() > endTime.getTime()) { break; } - int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date) - 1; - if (wei == 0) { - wei = 7; + for (int j = 0; j < split.length; j++) { + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setType(coursePackage1.getType()); + coursePackageScheduling.setAppUserId(student.getAppUserId()); + coursePackageScheduling.setStudentId(Integer.valueOf(stuId)); + coursePackageScheduling.setCoursePackageId(coursePackage1.getId()); + coursePackageScheduling.setCoursePackagePaymentId(); + Date parse = format1.parse(format.format(time) + " " + split[j]); + Date parse1 = format1.parse(format.format(time) + " " + split1[j]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(student.getAppUserId()); + student1.setStudentId(Integer.valueOf(stuId)); + student1.setCoursePackageId(coursePackage1.getId()); + student1.setCoursePackagePaymentId(null); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); } - 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(toHoliDto.getClassId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - count++; - } - } + //增加日期,用于判断 + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); } - System.out.println("保存成功=============》=" + holi); + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackageOrderStudent.getId()); + courseCounsum.setChangeType(0); + courseCounsum.setNum(toHoliDto.getClassNum()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("报名假期班"); +// courseCounsum.setAppUserId(userId); + courseCounsumService.save(courseCounsum); } - String[] stringArray = strings.toArray(new String[strings.size()]); - String join = StringUtils.join(stringArray, ","); - System.out.println("==========join========" + join); - return join; + return "报名成功"; } @@ -867,150 +975,149 @@ @RequestMapping(value = "/toTrans", produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") @ResponseBody public String toTrans(@RequestBody ToHoliDto toHoliDto) throws ParseException { - - String[] ids = toHoliDto.getIds(); - List<String> strings = new ArrayList<>(); - - - for (String id : ids) { - //扣除课时 - TCoursePackagePayment payment = paymentService.getById(id); - System.out.println("=====byId=========" + payment); - - - Integer laveClassHours = payment.getLaveClassHours(); - - Integer classNum = toHoliDto.getClassNum(); - Integer totalClassHours = payment.getTotalClassHours(); - Student student = studentClient.queryStudentById(payment.getStudentId()); - -// if (laveClassHours < classNum){ -// strings.add(student.getName()); continue; + String[] stuIds = toHoliDto.getIds(); +// //查询出学员ids对应的棵树,判断剩余课时数是否够 +// List<CoursePackageOrderStudent> list = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", toHoliDto.getClassId()).in("studentId", stuIds)); +// List<String> notStudent = new ArrayList<>(); +// for (CoursePackageOrderStudent coursePackageOrderStudent : list) { +// if (coursePackageOrderStudent.getLaveClassHours() < toHoliDto.getClassNum()) { +// notStudent.add(studentClient.queryStudentById(coursePackageOrderStudent.getStudentId()).getName()); // } -// -// Integer laveClassHoursnew = laveClassHours - classNum; -// Integer totalClassHoursnew = totalClassHours - classNum; - payment.setLaveClassHours(0); - payment.setTotalClassHours(0); - payment.setAppUserId(null); +// } +// if (!notStudent.isEmpty()) { +// String notStudentStr = String.join(",", notStudent); +// return notStudentStr+":课时数不足"; +// } - paymentService.updateById(payment); - //获取student信息 + //转移课程 + for (String stuId : stuIds) { +// CoursePackageOrderStudent orinPay = orderStudentService.getById(toHoliDto.getId()); + CoursePackageOrderStudent orinPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>() + .eq("studentId", stuId) + .eq("coursePackageId", toHoliDto.getId())); + CoursePackageOrderStudent studentPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>() + .eq("studentId", stuId) + .eq("coursePackageId", toHoliDto.getClassId())); + TCoursePackage coursePackage = packageService.getById(toHoliDto.getClassId()); + if (studentPay != null) { + //转移 + Integer laveClassHours = orinPay.getLaveClassHours(); + Integer totalClassHours = orinPay.getTotalClassHours(); - //新增课时 + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setInsertTime(new Date()); + Integer appUserId = orinPay.getAppUserId(); + Integer appUserId1 = studentPay.getAppUserId(); - TCoursePackagePayment one = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); + courseCounsum.setReason("换课"); - 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); + orinPay.setLaveClassHours(0); + orinPay.setStatus(3); + orinPay.setAppUserId(null); + orderStudentService.updateById(orinPay); + + courseCounsum.setNum(laveClassHours); + courseCounsum.setChangeType(0); + courseCounsum.setPaymentId(orinPay.getId()); + counsumService.save(courseCounsum); + + CourseCounsum courseCounsum1 = new CourseCounsum(); + courseCounsum1.setInsertTime(new Date()); +// if (appUserId.compareTo(appUserId1) != 0) { +// courseCounsum1.setReason("赠课"); +// } else { + courseCounsum1.setReason("换课"); +// } + courseCounsum1.setNum(laveClassHours); + courseCounsum1.setChangeType(1); + courseCounsum1.setPaymentId(studentPay.getId()); + counsumService.save(courseCounsum1); + + schedulingService.addNewCoursePackageScheduling(studentPay.getId(), laveClassHours); + //删除原排课数据 + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() + .eq("type", 1).eq("appUserId", appUserId) + .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()) + .orderByAsc("classDate")); + int num = totalClassHours - laveClassHours; + for (int i = num; i < coursePackageSchedulings.size(); i++) { + CoursePackageScheduling packageScheduling = coursePackageSchedulings.get(i); + coursePackageSchedulingService.deleteById(packageScheduling.getId()); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId())); + } } else { - one.setTotalClassHours(one.getTotalClassHours() + laveClassHours); - one.setLaveClassHours(one.getLaveClassHours() + laveClassHours); - one.setAppUserId(null); - paymentService.updateById(one); - holi = one; - } - System.out.println("保存成功=============》=" + holi); + Integer totalClassHours = orinPay.getTotalClassHours(); + Integer laveClassHours = orinPay.getLaveClassHours(); + Student student = studentClient.queryStudentById(Integer.valueOf(stuId)); + CoursePackageOrderStudent to = new CoursePackageOrderStudent(); + to.setStudentId(Integer.valueOf(stuId)); + to.setTotalClassHours(laveClassHours); + to.setLaveClassHours(laveClassHours); + to.setCoursePackageId(toHoliDto.getClassId()); + to.setState(1); + to.setAppUserId(student.getAppUserId()); + to.setStatus(1); + to.setInsertTime(new Date()); - 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(); - 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", 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; + Integer validDays = coursePackage.getValidDays(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); + to.setUseTime(calendar.getTime()); + orderStudentService.save(to); + if (null == student.getValidity()) { + student.setValidity(calendar.getTime()); + } else if (student.getValidity().getTime() < calendar.getTime().getTime()) { + student.setValidity(calendar.getTime()); } - 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(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - cpsMapper.insert(student1); - count++; - } + studentClient.frozen(student); + + + Integer laveClassHours1 = orinPay.getLaveClassHours(); + Integer appUserId = orinPay.getAppUserId(); + orinPay.setLaveClassHours(0); + orinPay.setAppUserId(null); + orinPay.setStatus(3); + orderStudentService.updateById(orinPay); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("换课"); + courseCounsum.setNum(laveClassHours1); + courseCounsum.setChangeType(0); + courseCounsum.setPaymentId(orinPay.getId()); + counsumService.save(courseCounsum); + + + CourseCounsum courseCounsum1 = new CourseCounsum(); + courseCounsum1.setInsertTime(new Date()); + courseCounsum1.setReason("换课"); + courseCounsum1.setNum(laveClassHours1); + courseCounsum1.setChangeType(1); + courseCounsum1.setPaymentId(to.getId()); + counsumService.save(courseCounsum1); + + //开始排课 + addPackageStudent(coursePackage, to.getAppUserId(), to.getStudentId(), to); + //删除原排课数据 + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.selectList(new QueryWrapper<CoursePackageScheduling>() + .eq("type", 1).eq("appUserId", appUserId) + .eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()) + .orderByAsc("classDate")); + int num = totalClassHours - laveClassHours; + for (int i = num; i < coursePackageSchedulings.size(); i++) { + CoursePackageScheduling packageScheduling = coursePackageSchedulings.get(i); + coursePackageSchedulingService.deleteById(packageScheduling.getId()); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageSchedulingId", packageScheduling.getId())); } } - } - String[] stringArray = strings.toArray(new String[strings.size()]); + return "换课成功"; - String join = StringUtils.join(stringArray, ","); - System.out.println("==========join========" + join); - return "转课成功"; } - - } -- Gitblit v1.7.1