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/resources/mapper/CoursePackagePaymentConfigMapper.xml | 2
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 92 ++++++++++++++++++++++++++++++++++++++++++---
cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java | 5 ++
3 files changed, 91 insertions(+), 8 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();
//扣除课时数
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java b/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java
index d0080af..3e695f7 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java
@@ -3,7 +3,9 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
+import javax.naming.PartialResultException;
import java.math.BigDecimal;
+import java.util.Date;
/**
* 购课记录列表VO
@@ -68,4 +70,7 @@
private Integer buyType;
// 当状态为手动支付时使用 用于显示手动支付时显示操作人
private String buyTypeName;
+ private Integer classHours;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+ private Date insertTime;
}
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
index cce8880..d5b02bd 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
@@ -25,7 +25,7 @@
<select id="listAll" resultType="com.dsh.course.model.CoursePackagePaymentVO">
select
t1.id,t1.payUserType,t1.payStatus,t1.payType,t1.originalPrice,t1.userCouponId,t1.payUserId,t1.studentIds as studentId,t1.appUserId,t1.cashPayment,t1.playPaiCoin,
- t1.payUserName as buyTypeName,
+ t1.payUserName as buyTypeName, t1.classHours as classHours,t1.insertTime as insertTime,t1.coursePackageId as coursePackageId,
CONCAT(t2.province,t2.city) as provinceAndCity,t2.coursePackageTypeId,t2.storeId,t2.name as coursePackage,
t3.name as coursePackageType
from t_course_package_order t1
--
Gitblit v1.7.1