44323
2023-11-28 77fd41252279b11698fa1ddaf975e9ea3ab313c6
购课记录重写
3个文件已修改
99 ■■■■■ 已修改文件
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();
                //扣除课时数
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;
}
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