From 044aff7d85f7a9e1dfc41c4ebdd9e24882ac4089 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期五, 08 十二月 2023 20:19:29 +0800 Subject: [PATCH] 学员回显bug --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 210 +++++++++++++++++++++++++++++----------------------- 1 files changed, 117 insertions(+), 93 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index 870960c..e2aa6ee 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java @@ -1023,24 +1023,29 @@ String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); //生成支付订单 CoursePackageOrder coursePackageOrder = new CoursePackageOrder(); - coursePackageOrder.setCode(code); - coursePackageOrder.setAppUserId(uid); - coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds()); - coursePackageOrder.setCoursePackageId(paymentCourseVo.getId()); - coursePackageOrder.setPayType(paymentCourseVo.getPayType()); - coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice()); - coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId()); - coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice)); - coursePackageOrder.setPayUserType(1); - coursePackageOrder.setPayStatus(1); - coursePackageOrder.setPayUserId(uid); - coursePackageOrder.setState(1); - coursePackageOrder.setInsertTime(new Date()); - coursePackageOrderService.save(coursePackageOrder); + if (paymentCourseVo.getOrderId()==null){ + coursePackageOrder.setCode(code); + coursePackageOrder.setAppUserId(uid); + coursePackageOrder.setStudentIds(paymentCourseVo.getStudentIds()); + coursePackageOrder.setCoursePackageId(paymentCourseVo.getId()); + coursePackageOrder.setPayType(paymentCourseVo.getPayType()); + coursePackageOrder.setClassHours(coursePackagePaymentConfig.getClassHours()); + coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice()); + coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId()); + coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice)); + coursePackageOrder.setPayUserType(1); + coursePackageOrder.setPayStatus(1); + coursePackageOrder.setPayUserId(uid); + coursePackageOrder.setState(1); + coursePackageOrder.setInsertTime(new Date()); + coursePackageOrderService.save(coursePackageOrder); + }else { + code = coursePackageOrderService.getById(paymentCourseVo.getOrderId()).getCode(); + } ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", coursePackagePaymentConfig.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback"); if (alipay.getCode() == 200) { + String finalCode = code; new Thread(new Runnable() { @Override public void run() { @@ -1054,11 +1059,11 @@ wait += (min * num); Thread.sleep(wait); CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() - .eq("code", code).eq("state", 1)); + .eq("code", finalCode).eq("state", 1)); if (coursePackageOrder1.getPayStatus() == 2) { break; } - AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); + AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(finalCode); if (null != alipayTradeQueryResponse) { /** * WAIT_BUYER_PAY(交易创建,等待买家付款)、 @@ -1242,6 +1247,7 @@ coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + coursePackagePaymentConfig.getClassHours()); coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + coursePackagePaymentConfig.getClassHours()); coursePackageOrderStudent.setStatus(1); + coursePackageOrderStudent.setInsertTime(new Date()); Integer validDays = coursePackage.getValidDays(); Calendar calendar = Calendar.getInstance(); calendar.setTime(useTime.compareTo(new Date()) < 0 ? new Date() : useTime); @@ -1315,7 +1321,6 @@ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - //剩余课时 Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); //扣除课时数 @@ -1342,11 +1347,26 @@ continue; } - //大于有效期不进行排课 if (calendar.getTimeInMillis() >= validity.getTime()) { break; } + + //检查是否有体验购课 + int count = coursePackageSchedulingService.count(new QueryWrapper<CoursePackageScheduling>() + .eq("type", 3) + .eq("appUserId", userId) + .eq("studentId", sId) + .eq("coursePackageId", tCoursePackage.getId()) + .eq("status", 1) + .eq("DATE_FORMAT(classDate, '%Y-%m-%d')", format.format(time)) + ); + //有体验购课,不进行排课 + if(count != 0){ + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + continue; + } + for (int j = 0; j < split.length; j++) { //剩余数量不足以排课 if (laveClassHours.compareTo(codeTime) < 0) { @@ -1702,9 +1722,8 @@ @Override public Integer addCoursePackage(TCoursePackage coursePackage) { try { - + coursePackage.setInsertTime(new Date()); this.baseMapper.insert(coursePackage); - if (coursePackage.getClassStartTime() != null && coursePackage.getClassStartTime() != "") { //生成排课数据 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -1783,6 +1802,8 @@ } + @Autowired + private ICoursePackageOrderStudentService orderStudentService; /** * 修改数据 * @@ -1790,82 +1811,85 @@ */ @Override public void updateCoursePackageById(TCoursePackage coursePackage) { - try { - List<CoursePackageStudent> coursePackageStudents = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackage.getId())); - List<Long> collect = coursePackageStudents.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); +// try { +// List<CoursePackageStudent> coursePackageStudents = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackage.getId())); +// List<Long> collect = coursePackageStudents.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); +// +// QueryWrapper<CoursePackageScheduling> coursePackageSchedulingQueryWrapper = new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()); +// if (collect.size() > 0) { +// coursePackageSchedulingQueryWrapper.notIn("id", collect); +// } +// coursePackageSchedulingService.remove(coursePackageSchedulingQueryWrapper); +// int coursePackageId = orderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", coursePackage.getId())); +// if (coursePackageId>0) { + this.baseMapper.updateById(coursePackage); - QueryWrapper<CoursePackageScheduling> coursePackageSchedulingQueryWrapper = new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()); - if (collect.size() > 0) { - coursePackageSchedulingQueryWrapper.notIn("id", collect); - } - coursePackageSchedulingService.remove(coursePackageSchedulingQueryWrapper); - - this.baseMapper.updateById(coursePackage); - - //生成排课数据 - Date date = null; - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()).last(" and classDate > now() order by classDate desc limit 0, 1")); - if (null != coursePackageScheduling) { - date = sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00"); - } else { - date = sdf1.parse(sdf.format(new Date()) + " 00:00:00"); - } - List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";")); - String classStartTime = coursePackage.getClassStartTime(); - String[] split = classStartTime.split(":"); - String classEndTime = coursePackage.getClassEndTime(); - String[] split1 = classEndTime.split(":"); - Calendar s = Calendar.getInstance(); - s.setTime(date); - s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); - - Calendar e = Calendar.getInstance(); - e.setTime(date); - if (null != coursePackageScheduling) { - long time = sdf1.parse(sdf.format(new Date()) + " 00:00:00").getTime(); - int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue(); - e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d); - } else { - e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14); - } - long timeInMillis = e.getTimeInMillis(); - - while (true) { - int w = s.get(Calendar.DAY_OF_WEEK); - WeekEnum weekEnum = WeekEnum.getWeekEnum(w); - if (list.contains(weekEnum.getChineseName())) { - Calendar classDate = Calendar.getInstance(); - classDate.setTime(s.getTime()); - classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); - classDate.set(Calendar.MINUTE, Integer.valueOf(split[1])); - classDate.set(Calendar.SECOND, 0); - - Calendar endDate = Calendar.getInstance(); - endDate.setTime(s.getTime()); - endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0])); - endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1])); - endDate.set(Calendar.SECOND, 0); - - CoursePackageScheduling coursePackageScheduling1 = new CoursePackageScheduling(); - coursePackageScheduling1.setCoursePackageId(coursePackage.getId()); - coursePackageScheduling1.setClassDate(classDate.getTime()); - coursePackageScheduling1.setEndDate(endDate.getTime()); - coursePackageScheduling1.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling1); - } - s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); - if (s.getTimeInMillis() > timeInMillis) { - break; - } - } - } catch (Exception e) { - e.printStackTrace(); - } + //生成排课数据 +// Date date = null; +// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); +// SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()).last(" and classDate > now() order by classDate desc limit 0, 1")); +// if (null != coursePackageScheduling) { +// date = sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00"); +// } else { +// date = sdf1.parse(sdf.format(new Date()) + " 00:00:00"); +// } +// List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";")); +// String classStartTime = coursePackage.getClassStartTime(); +// String[] split = classStartTime.split(":"); +// String classEndTime = coursePackage.getClassEndTime(); +// String[] split1 = classEndTime.split(":"); +// Calendar s = Calendar.getInstance(); +// s.setTime(date); +// s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); +// +// Calendar e = Calendar.getInstance(); +// e.setTime(date); +// if (null != coursePackageScheduling) { +// long time = sdf1.parse(sdf.format(new Date()) + " 00:00:00").getTime(); +// int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue(); +// e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d); +// } else { +// e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14); +// } +// long timeInMillis = e.getTimeInMillis(); +// +// while (true) { +// int w = s.get(Calendar.DAY_OF_WEEK); +// WeekEnum weekEnum = WeekEnum.getWeekEnum(w); +// if (list.contains(weekEnum.getChineseName())) { +// Calendar classDate = Calendar.getInstance(); +// classDate.setTime(s.getTime()); +// classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); +// classDate.set(Calendar.MINUTE, Integer.valueOf(split[1])); +// classDate.set(Calendar.SECOND, 0); +// +// Calendar endDate = Calendar.getInstance(); +// endDate.setTime(s.getTime()); +// endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0])); +// endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1])); +// endDate.set(Calendar.SECOND, 0); +// +// CoursePackageScheduling coursePackageScheduling1 = new CoursePackageScheduling(); +// coursePackageScheduling1.setCoursePackageId(coursePackage.getId()); +// coursePackageScheduling1.setClassDate(classDate.getTime()); +// coursePackageScheduling1.setEndDate(endDate.getTime()); +// coursePackageScheduling1.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling1); +// } +// s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); +// if (s.getTimeInMillis() > timeInMillis) { +// break; +// } +// } +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } } + /** * 获取课包审核列表 * -- Gitblit v1.7.1