From 77fd41252279b11698fa1ddaf975e9ea3ab313c6 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期二, 28 十一月 2023 10:12:56 +0800 Subject: [PATCH] 购课记录重写 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 92 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 85 insertions(+), 7 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 7831e10..50f4bc6 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 @@ -187,7 +187,6 @@ coursePackageOrder.setInsertTime(new Date()); coursePackageOrder.setSalesName(packagePayment.getSalesName()); coursePackageOrderService.save(coursePackageOrder); - // 生成排课数据 return 200; @@ -230,7 +229,7 @@ .eq("type", 4).eq("auditStatus", 2).eq("status", 1) .eq("coursePackagePaymentConfigId",one1.getId())); if (one!=null){ - Integer giftClassHours = getGiftClassHours(one); + Integer giftClassHours = getGiftClassHours(one,null); coursePackageOrderStudent.setGiftClassHours(giftClassHours); coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours()+giftClassHours); coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()+giftClassHours); @@ -265,7 +264,7 @@ .eq("type", 4).eq("auditStatus", 2).eq("status", 1) .eq("coursePackagePaymentConfigId",one1.getId())); if (one!=null){ - Integer giftClassHours = getGiftClassHours(one); + Integer giftClassHours = getGiftClassHours(one,null); coursePackageOrderStudent.setGiftClassHours(giftClassHours); }else{ coursePackageOrderStudent.setGiftClassHours(0); @@ -283,6 +282,9 @@ } } } + if(byId.getType() == 2){ + addPackageStudent1(byId, byId1.getAppUserId(), Integer.valueOf(byId1.getStudentIds()), null); + } return packagePaymentService.changeState(dto); } @@ -303,6 +305,25 @@ List<CoursePackagePaymentVO> res = packagePaymentService.listAll(query); List<CoursePackagePaymentVO> result = new ArrayList<>(); for (CoursePackagePaymentVO re : res) { + // 判断这条记录有没有赠送课时 + Integer coursePackageId = re.getCoursePackageId(); + Integer classHours = re.getClassHours(); + CoursePackagePaymentConfig one = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("coursePackageId", coursePackageId) + .eq("classHours", classHours)); + if (one!=null){ + TCoursePackageDiscount one1 = discountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", coursePackageId) + .eq("coursePackagePaymentConfigId", one.getId()) + .eq("auditStatus",2).eq("status",1).eq("type",4)); + if (one1 == null){ + re.setGiftClassHours(0); + }else{ + Integer giftClassHours = getGiftClassHours(one1,re.getInsertTime()); + re.setGiftClassHours(giftClassHours); + } + }else{ + re.setGiftClassHours(0); + } if (re.getCashPayment() == null) { if (re.getPlayPaiCoin() != null) { String value = String.valueOf(re.getPlayPaiCoin()); @@ -371,7 +392,7 @@ if (discountService.list(new QueryWrapper<TCoursePackageDiscount>() .eq("coursePackageId", re.getCoursePackageId()).eq("auditStatus", 2)).size() > 0) { re.setBuyType(3); - re.setDiscountAmount(re.getOriginalPrice().subtract(re.getPayMoney())); + re.setDiscountAmount(re.getOriginalPrice().subtract(re.getCashPayment())); } else { re.setBuyType(2); } @@ -1790,7 +1811,66 @@ return dateList.toArray(new Date[0]); } - public Integer getGiftClassHours(TCoursePackageDiscount one){ + public Integer getGiftClassHours(TCoursePackageDiscount one,Date insertTime){ + if (insertTime!=null){ + // 判断购买时间 是否满足折扣规则 + char c = one.getContent().charAt(0); + String value1 = String.valueOf(c); + JSONObject jsonObject ; + if (value1.equals("[")){ + jsonObject = JSONObject.fromObject(one.getContent() + .substring(1,one.getContent().length() - 1)); + }else{ + jsonObject = JSONObject.fromObject(one.getContent()); + } + // 赠送课时 判断当前课包有没有赠送课时 + String weeks = jsonObject.getString("weeks"); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(insertTime); + // 获取星期几,星期日是1,星期一是2,以此类推 + int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); + // 将星期日(Calendar定义为1)转换为7 + if (dayOfWeek == Calendar.SUNDAY) { + dayOfWeek = 7; + } else { + // 其他星期减一即可得到1-6的数字表示 + dayOfWeek -= 1; + } + // todo + if (weeks.contains(String.valueOf(dayOfWeek))){ + // 限时折扣判断是否在有效期 + try { + // 判断当日时间是否能享受到折扣 + String startTime = jsonObject.getString("startTime"); + String endTime = jsonObject.getString("endTime"); + + // 定义时间格式 + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); + // 解析开始时间和结束时间为Date对象 + Date startTime1 = sdf.parse(startTime); + Date endTime1 = sdf.parse(endTime); + Date date1 = new Date(); + date1.setHours(startTime1.getHours()); + date1.setMinutes(startTime1.getMinutes()); + date1.setSeconds(startTime1.getSeconds()); + Date date2 = new Date(); + date2.setHours(endTime1.getHours()); + date2.setMinutes(endTime1.getMinutes()); + date2.setSeconds(endTime1.getSeconds()); + // 检查当前时间是否在开始时间和结束时间之间 + if (insertTime.after(date1) && insertTime.before(date2)) { + System.out.println("当前时间在开始时间和结束时间之间。"); + String hour = jsonObject.getString("hour"); + return Integer.valueOf(hour); + } else { + System.out.println("当前时间不在开始时间和结束时间之间。"); + return 0; + } + } catch (ParseException e) { + e.printStackTrace(); + } + } + } // 判断购买时间 是否满足折扣规则 char c = one.getContent().charAt(0); String value1 = String.valueOf(c); @@ -1860,8 +1940,6 @@ String[] split1 = tCoursePackage.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - - //剩余课时 Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); //扣除课时数 -- Gitblit v1.7.1