From c036557db88c6297b9a626a892dce35c14ab8ee5 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期四, 09 十一月 2023 18:30:31 +0800 Subject: [PATCH] 11.6 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 405 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 375 insertions(+), 30 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java index 8834457..7184451 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -430,7 +430,7 @@ Student student = studentClient.queryStudentById(stuId); List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() .eq("appUserId",student.getAppUserId()) - .eq("studentId",stuId)); + .eq("studentId",stuId).eq("payStatus",2)); if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { @@ -570,6 +570,62 @@ } + @Autowired + private CourseCounsumService courseCounsumService; + + @Autowired + private TCoursePackagePaymentService coursePackagePaymentService; + + @PostMapping("/base/coursePack/getRecord") + public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) { + List<TCoursePackagePayment> list = new ArrayList<>(); + Integer [] changes = {1,0}; + if (recordTimeRequest.getType()==null) { + list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); + }else { + + list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); + + } + List<Long> ids = new ArrayList<>(); + for (TCoursePackagePayment coursePackagePayment : list) { + ids.add(coursePackagePayment.getId()); + } + + + + QueryWrapper<CourseCounsum> in = new QueryWrapper<CourseCounsum>().in("paymentId", ids).in("changeType", changes); + + if (recordTimeRequest.getType()!=null){ + if (recordTimeRequest.getType()==2){ + recordTimeRequest.setType(0); + } + in.eq("changeType",recordTimeRequest.getType()); + } + List<CourseCounsum> paymentId = courseCounsumService.list(in); + List<PurchaseRecordVo> recordVos =new ArrayList<>(); + for (CourseCounsum courseCounsum : paymentId) { + PurchaseRecordVo purchaseRecordVo = new PurchaseRecordVo(); + if (courseCounsum.getChangeType() == 0) { + purchaseRecordVo.setPurchaseAmount("-" + courseCounsum.getNum()); + purchaseRecordVo.setPurchaseType(courseCounsum.getReason()); + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm"); + String formattedDate = sdf.format(courseCounsum.getInsertTime()); + purchaseRecordVo.setPurchaseTime(formattedDate); + } else { + purchaseRecordVo.setPurchaseAmount("+" + courseCounsum.getNum()); + purchaseRecordVo.setPurchaseType(courseCounsum.getReason()); + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm"); + String formattedDate = sdf.format(courseCounsum.getInsertTime()); + purchaseRecordVo.setPurchaseTime(formattedDate); + } + recordVos.add(purchaseRecordVo); + } + + return recordVos; + } + + @PostMapping("/base/coursePack/stuOfCourses") public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody GetStuOfCoursesDetails getStuOfCoursesDetails){ @@ -695,7 +751,7 @@ @ResponseBody public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId){ List<CouponPaymentVo> paymentVos = new ArrayList<>(); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm"); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() .eq("appUserId", appUserId) .eq("payType", 3) @@ -746,7 +802,11 @@ baseVo.setName(coursePackage.getName()); list.add(baseVo); }); - return ResultUtil.success(list); + + Set<BaseVo> set = new HashSet<>(list); + List<BaseVo> back = new ArrayList<>(set); + + return ResultUtil.success(back); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); @@ -797,8 +857,16 @@ List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId")); List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs); + if (search.getSearch()!=null) { + List<AppUserVideoResponse> filteredList = new ArrayList<>(); + for (AppUserVideoResponse response : coursePackageSchedulings1) { + if (response.getVideoName().contains(search.getSearch())) { + filteredList.add(response); + } + } + return ResultUtil.success(filteredList); - + } return ResultUtil.success(coursePackageSchedulings1); @@ -1127,6 +1195,16 @@ coursePackagePayment.setAppUserId(null); packagePaymentService.updateById(coursePackagePayment); + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePayment.getId()); + courseCounsum.setChangeType(0); + courseCounsum.setNum(classHour); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("报名赛事"); + courseCounsumService.save(courseCounsum); + + + // coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId())); @@ -1139,47 +1217,30 @@ - Student student = studentClient.queryStudentById(coursePackagePayment.getStudentId()); +// Student student = studentClient.queryStudentById(coursePackagePayment.getStudentId()); TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId()); String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); - List<TCoursePackagePayment> pays = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId())); + TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId())); - - for (TCoursePackagePayment pay : pays) { - - - List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", pay.getStudentId()).eq("coursePackageId", pay.getCoursePackageId())); - List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); +// List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", pay.getStudentId()).eq("coursePackageId", pay.getCoursePackageId())); +// List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); //拿到最后一天的排课记录 - CoursePackageScheduling cs = null; - if (collect1.size()>0) { - cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect1).orderByDesc("classDate").last("limit 1")); - - } +// CoursePackageScheduling cs = null; +// if (collect1.size()>0) { +// cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect1).orderByDesc("classDate").last("limit 1")); // -// Calendar calendar = Calendar.getInstance(); -// Date currentDate = calendar.getTime(); -// calendar.add(Calendar.DAY_OF_MONTH, -1); -// Date today = calendar.getTime(); +// } Date today = new Date(); - - //判断最后一天是否超过当前日期 - if (cs==null||cs.getClassDate().before(new Date())){ - }else { - today = cs.getClassDate(); - } 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"); @@ -1219,7 +1280,7 @@ } } - } +// } @@ -1456,6 +1517,14 @@ return objects; } + @ResponseBody + @PostMapping("/coursePackagePayment/isHave") + public Integer isHave(@RequestBody String ids){ + String[] split = ids.split(","); + return coursePackagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().in("studentId",split)); + + } + /** * 课包续费玩湃币支付 @@ -1495,6 +1564,15 @@ tCourseInfoRecord.setType(1); tCourseInfoRecord.setNum(paymentConfig.getClassHours()); auClitn.addCourseInfoRecord(tCourseInfoRecord); + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(packagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(packagePayment.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("购买课包"); + courseCounsumService.save(courseCounsum); + } catch (Exception e) { return 4; } @@ -1534,6 +1612,16 @@ tCourseInfoRecord.setType(1); tCourseInfoRecord.setTime(new Date()); id = appUserClient.addCourseInfoRecord(tCourseInfoRecord); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(packagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(packagePayment.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("续课"); + courseCounsumService.save(courseCounsum); + } return id; } @@ -1542,6 +1630,248 @@ public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment){ return packagePaymentService.save(packagePayment); + } + + + @PostMapping("/base/coursePack/orderClass") + public void orderClass(@RequestBody OrderDto orderDto) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + String[] split = orderDto.getStuIds().split(","); + for (String s : split) { + TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId",orderDto.getClassId())); + + + + if (coursePackagePaymentServiceOne==null) { + TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); + coursePackagePayment.setCode(code); + coursePackagePayment.setAppUserId(orderDto.getAppUserId()); + coursePackagePayment.setStudentId(Integer.valueOf(s)); + coursePackagePayment.setCoursePackageId(orderDto.getClassId()); + coursePackagePayment.setPayType(4); + coursePackagePayment.setClassHours(orderDto.getClassHours()); + coursePackagePayment.setTotalClassHours(orderDto.getClassHours()); + coursePackagePayment.setLaveClassHours(orderDto.getClassHours()); + coursePackagePayment.setAbsencesNumber(0); + coursePackagePayment.setPayUserType(1); + coursePackagePayment.setPayStatus(2); + coursePackagePayment.setPayUserId(orderDto.getAppUserId()); + coursePackagePayment.setStatus(1); + coursePackagePayment.setState(1); + coursePackagePayment.setInsertTime(new Date()); + coursePackagePaymentService.save(coursePackagePayment); + Integer sId = null; + Student student = studentClient.queryDefaultStudent(orderDto.getAppUserId()); + if (student != null) { + sId = student.getId(); + } + addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment.getId()); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(orderDto.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("积分兑换"); + courseCounsumService.save(courseCounsum); + + }else { + coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+orderDto.getClassHours()); + coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+orderDto.getClassHours()); + coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+orderDto.getClassHours()); + coursePackagePaymentServiceOne.setAppUserId(null); + coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); + + Integer sId = null; + Student student = studentClient.queryDefaultStudent(orderDto.getAppUserId()); + if (student != null) { + sId = student.getId(); + } + addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne.getId()); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(orderDto.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("积分兑换"); + courseCounsumService.save(courseCounsum); + + + } + + } + + } + + + public static Date[] generateDateArray1(Date startDate, Date endDate) { + List<Date> dateList = new ArrayList<>(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startDate); + + while (!calendar.getTime().after(endDate)) { + Date currentDate = calendar.getTime(); + dateList.add(currentDate); + calendar.add(Calendar.DAY_OF_MONTH, 1); + } + + return dateList.toArray(new Date[0]); + } + + @Autowired + private TCoursePackageService coursePackageService; + private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId) throws ParseException { + // 课包 + TCoursePackage tCoursePackage = coursePackageService.getById(courseId); + + 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"); + + //查出当前用户当前学员当前课包最后一天的排课数据 + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId)); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size() > 0) { + coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId)); + } + Date today = new Date(); + TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId); + Integer laveClassHours = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + int count = 0; + // 本周周几 + Date[] dates = generateDateArray(14, today); + if (tCoursePackage.getType() == 1) { + can = laveClassHours / codeTime; + } + if (tCoursePackage.getType() == 2) { + Date startDate = tCoursePackage.getStartTime(); + Date endDate = tCoursePackage.getEndTime(); + dates = generateDateArray1(startDate, endDate); + can = 999; + } + 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(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(paymentId); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + coursePackageStudentService.save(student1); + count++; + } + } + } + + }else if (tCoursePackage.getType()==2){ + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + + Date today = new Date(); + + Date startTime = tCoursePackage.getStartTime(); + Date endTime = tCoursePackage.getEndTime(); + LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + Period period = Period.between(startDate, endDate); + int days = period.getDays() + 1; + Integer can =999; + int count = 0; + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startTime); + calendar.add(Calendar.DAY_OF_MONTH, -1); + + TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId); + + + Date[] dates = generateDateArray(days,calendar.getTime()); + for (Date date : dates) { + if (count==can){ + break; + } + int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date)-1; + if (wei == 0){ + wei =7; + } + if (week.contains(wei)){ + for (int i1 = 0; i1 < split.length; i1++) { + if (count==can){ + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + 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(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(pay.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + coursePackageStudentService.save(student1); + count++; + } + } + } + } + + + // 2.0 + TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); + tCourseInfoRecord.setUserId(userId); + tCourseInfoRecord.setCourseId(courseId); + tCourseInfoRecord.setName("报名运动营"); + tCourseInfoRecord.setNum(tCoursePackage.getNeedNum()); + tCourseInfoRecord.setTime(new Date()); + tCourseInfoRecord.setType(2); + appUserClient.addCourseInfoRecord(tCourseInfoRecord); + + } @ResponseBody @@ -1732,6 +2062,21 @@ } } + + + @ResponseBody + @PostMapping("/base/coursePack/getConsumes") + List<CourseCounsum> getConsumes(@RequestBody BillingDataRequestVo requestVo) { + Integer[] integers = {2,3}; + QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>().in("changeType",integers).eq("appUserId",requestVo.getAppUserId()); + if (requestVo.getMonthEnd()!=null){ + courseCounsumQueryWrapper.ge("insertTime",requestVo.getMonthStart()); + courseCounsumQueryWrapper.le("insertTime",requestVo.getMonthEnd()); + } + return courseCounsumService.list(courseCounsumQueryWrapper); + + } + @ResponseBody @PostMapping("/base/coursePack/weeksOfCourseDetailsList") HashMap<String, Object> weeksOfCourseDetailsList(@RequestBody CourseDetailReq courseDetailReq){ -- Gitblit v1.7.1