| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @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); |
| | | |
| | |
| | | studentClassInfo.setInDate(minDate); |
| | | System.out.println("===========>" + studentClassInfo); |
| | | |
| | | // appUserClient.queryGift(tStudentId); |
| | | |
| | | return studentClassInfo; |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | @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); |
| | |
| | | } |
| | | |
| | | |
| | | @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()); |
| | |
| | | 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); |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | @RequestMapping("/noStatus") |
| | | @ResponseBody |
| | | public void noStatus(@RequestParam("id") Integer id) { |
| | |
| | | for (CoursePackageOrderStudent o : pays) { |
| | | o.setStatus(1); |
| | | o.setAppUserId(null); |
| | | schedulingService.addNewCoursePackageScheduling(o.getId(),o.getLaveClassHours()); |
| | | } |
| | | orderStudentService.updateBatchById(pays); |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | @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") |
| | |
| | | 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("课时转移"); |
| | | } |
| | |
| | | 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); |
| | |
| | | |
| | | 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]); |
| | | 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()); |
| | | 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 |
| | |
| | | @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()); |
| | | 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 "报名成功"; |
| | | |
| | | |
| | | } |
| | |
| | | @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 "转课成功"; |
| | | } |
| | | |
| | | |
| | | } |