From cf28c25d1a8e360ab328c5435d289c5cb9b414c1 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期六, 25 十一月 2023 21:06:34 +0800 Subject: [PATCH] 11.26 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 176 ++++++++++++++++++---------------------------------------- 1 files changed, 54 insertions(+), 122 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index 3d6656f..3f681cd 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -502,12 +502,31 @@ @Autowired private ICoursePackageOrderService coursePackageOrderService; + @Autowired + private ICoursePackageOrderStudentService coursePackageOrderStudentService; + + @Autowired + private TCoursePackageService coursePackageService; + + + @Override public CourseDetailsResponse queryRegisteredCourseDetails(Long coursePayId, Integer appUserId, String lon, String lat) { AppUser appUser = appuClient.queryAppUser(appUserId); CourseDetailsResponse response = new CourseDetailsResponse(); - CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(coursePayId); + CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(coursePayId); + CoursePackageOrder coursePackageOrder = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() + .eq("appUserId", coursePackageOrderStudent.getAppUserId()) + .eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()) + .eq("payStatus", 2) + .eq("state", 1) + .like("studentIds", coursePackageOrderStudent.getStudentId()) + .orderByDesc("insertTime") + .last(" limit 0, 1") + ); + + response.setChooseHours(coursePackageOrder.getClassHours()); if (null != coursePackageOrder) { @@ -1215,10 +1234,6 @@ Integer integer = cpsMapper.selectCount(new QueryWrapper<CoursePackageStudent>().eq("appUserId", appUserId) .eq("studentId", studentId).eq("coursePackagePaymentId", id).eq("signInOrNot", 2)); map.put("already", integer); -// if (student != null && student.getName().equals("杨锴1")) { -// map.put("totalClassHours", "测试"); -// } - ; } return list; } @@ -1277,9 +1292,9 @@ @Override public List<PayCourseRes> getMyCourseList(Integer storeId, Integer appUserId) { // 找到购买的课包 - List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackagePayment>().eq(TCoursePackagePayment::getAppUserId, appUserId)); + List<CoursePackageOrderStudent> tCoursePackagePayments = coursePackageOrderStudentService.list(new LambdaQueryWrapper<CoursePackageOrderStudent>().eq(CoursePackageOrderStudent::getAppUserId, appUserId)); ArrayList<PayCourseRes> payCourseRes = new ArrayList<>(); - for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { + for (CoursePackageOrderStudent tCoursePackagePayment : tCoursePackagePayments) { TCoursePackage tCoursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); if (tCoursePackage.getType() != 1) { continue; @@ -1396,121 +1411,46 @@ // 添加购买课时 paytyoe为7 // 排课可期 判断课程时间段 添加排课表 添加上课记录表 // 找到原来的课包 扣课时 - TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(req.getOldCourseId()); - if (req.getNum() > tCoursePackagePayment.getLaveClassHours()) { + CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(req.getOldCourseId()); + if (req.getNum() > coursePackageOrderStudent.getLaveClassHours()) { return ResultUtil.error("当前课包课时数不足"); } - tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - req.getNum()); - this.baseMapper.updateHoursById(tCoursePackagePayment.getId(), -req.getNum()); + TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); + coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - req.getNum()); + coursePackageOrderStudentService.updateById(coursePackageOrderStudent); + //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录 + List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(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(); + //需要删除多余的排课记录 + if(number > laveClassHours1){ + int n = number - laveClassHours1; + for (int i = 0; i < n; i++) { + CoursePackageScheduling coursePackageScheduling = list1.get(i); + coursePackageSchedulingService.getBaseMapper().deleteById(coursePackageScheduling.getId()); - - List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", tCoursePackagePayment.getStudentId()).eq("coursePackageId", tCoursePackagePayment.getCoursePackageId())); - List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); - - List<CoursePackageScheduling> list = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id", collect).le("classDate", new Date())); - coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect).le("classDate", new Date())); - List<Long> collect1 = list.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()); - - -// coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id",collect)); - coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", tCoursePackagePayment.getStudentId()).eq("coursePackageId", tCoursePackagePayment.getCoursePackageId())); - - TCoursePackage tCoursePackage = tcpmapper.selectById(req.getCourseId()); - String classWeeks = tCoursePackage.getClassWeeks(); - List<Integer> week = week(classWeeks); - - TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", tCoursePackagePayment.getCoursePackageId()).eq("studentId", tCoursePackagePayment.getStudentId())); - - - Date today = new Date(); - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE, -1); - today = calendar.getTime(); - - Integer laveClassHours = pay.getLaveClassHours(); - Integer codeTime = tCoursePackage.getCodeTime(); - Integer can = laveClassHours / codeTime; - - int count = 0; - String[] split = tCoursePackage.getClassStartTime().split(","); - String[] split1 = tCoursePackage.getClassEndTime().split(","); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - - Date[] dates = generateDateArray(14, today); - for (Date date : dates) { - if (count == can) { - break; - } - int wei = cn.hutool.core.date.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.save(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(pay.getAppUserId()); - student1.setStudentId(pay.getStudentId()); - student1.setCoursePackageId(pay.getCoursePackageId()); - student1.setCoursePackagePaymentId(pay.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - coursePackageStudentService.save(student1); - count++; - } + coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>() + .eq("coursePackageSchedulingId", coursePackageScheduling.getId())); } } -// TCoursePackage tCoursePackage = tcpmapper.selectById(req.getCourseId()); - // 添加课包 - TCoursePackagePayment tCoursePackagePayment1 = new TCoursePackagePayment(); -// tCoursePackagePayment1.setAppUserId(userId); -// Student student = studentClient.queryDefaultStudent(userId); -// // student ID -// -// Integer sId=null; -// if(student!=null){ -// tCoursePackagePayment1.setStudentId(student.getId()); -// sId=student.getId(); -// } - tCoursePackagePayment1.setCoursePackageId(tCoursePackage.getId()); - tCoursePackagePayment1.setStudentId(req.getStuId()); - tCoursePackagePayment1.setPayType(7); - tCoursePackagePayment1.setClassHours(req.getNum()); - tCoursePackagePayment1.setOriginalPrice(0.0); - tCoursePackagePayment1.setTotalClassHours(req.getNum()); - tCoursePackagePayment1.setLaveClassHours(req.getNum()); - tCoursePackagePayment1.setAbsencesNumber(0); - tCoursePackagePayment1.setPayUserType(1); - tCoursePackagePayment1.setPayStatus(2); - tCoursePackagePayment1.setPayUserId(userId); - tCoursePackagePayment1.setStatus(1); - tCoursePackagePayment1.setAppUserId(userId); - tCoursePackagePayment1.setState(1); - tCoursePackagePayment1.setInsertTime(new Date()); - this.baseMapper.insert(tCoursePackagePayment1); - // 找出课包时间段 -// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - String classStartTime = tCoursePackage.getClassStartTime(); - String classEndTime = tCoursePackage.getClassEndTime(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String classStartTime = coursePackage.getClassStartTime(); + String classEndTime = coursePackage.getClassEndTime(); String[] split5 = classStartTime.split(","); String[] split6 = classEndTime.split(","); List<String> time = req.getTime(); for (String s : time) { for (int i = 0; i < split5.length; i++) { CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + coursePackageScheduling.setType(3); + coursePackageScheduling.setAppUserId(userId); + coursePackageScheduling.setStudentId(req.getStuId()); + coursePackageScheduling.setCoursePackageId(coursePackage.getId()); try { Date parse = format.parse(s + " " + split5[i]); Date parse1 = format.parse(s + " " + split6[i]); @@ -1522,8 +1462,8 @@ CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(userId); student1.setStudentId(req.getStuId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(tCoursePackagePayment1.getId()); + student1.setCoursePackageId(coursePackage.getId()); + student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); @@ -1538,18 +1478,10 @@ } - // 2.0 -// TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); -// tCourseInfoRecord.setUserId(userId); -// tCourseInfoRecord.setCourseId(req.getCourseId()); -// tCourseInfoRecord.setName("体验购课"); -// tCourseInfoRecord.setNum(req.getNum()); -// tCourseInfoRecord.setTime(new Date()); -// tCourseInfoRecord.setType(2); -// appuClient.addCourseInfoRecord(tCourseInfoRecord); + CourseCounsum courseCounsum = new CourseCounsum(); - courseCounsum.setPaymentId(tCoursePackagePayment.getId()); + courseCounsum.setPaymentId(coursePackageOrderStudent.getId()); courseCounsum.setChangeType(0); courseCounsum.setNum(req.getNum()); courseCounsum.setInsertTime(new Date()); @@ -1558,7 +1490,7 @@ courseCounsumService.save(courseCounsum); - if (tCoursePackagePayment.getLaveClassHours() <= 3) { + if (coursePackageOrderStudent.getLaveClassHours() <= 3) { Integer appUserId = userId; //调用推送 -- Gitblit v1.7.1