44323
2023-11-27 e9085eb620dcae1ceae24bc8b70e1a6bca228b15
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -123,6 +123,8 @@
    @Autowired
    private CoursePackageStudentService coursePackageStudentService;
    @Autowired
    private TOrderService orderService;
    private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
@@ -159,124 +161,54 @@
     */
    @RequestMapping("/base/coursePackagePayment/add")
    public Object addCoursePackagePayment(@RequestBody TCoursePackagePayment packagePayment) {
        packagePayment.setInsertTime(new Date());
        packagePayment.setInsertTime(new Date());
        Integer studentId = packagePayment.getStudentId();
        // 添加学员上课记录
        CoursePackageStudent coursePackageStudent = new CoursePackageStudent();
        TCoursePackagePayment one = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", packagePayment.getStudentId())
                .orderByDesc("insertTime")
                .last("LIMIT 1"));
        if (one != null) {
            Integer totalClassHours = one.getTotalClassHours();
            Integer absencesNumber = one.getAbsencesNumber();
            // 没有过期
            if (one.getUseTime().after(new Date())) {
                if (one.getLaveClassHours() - packagePayment.getClassHours() < 0) {
                    return 5002;
                }
                packagePayment.setTotalClassHours(one.getTotalClassHours());
                packagePayment.setLaveClassHours(one.getLaveClassHours() - packagePayment.getClassHours());
                packagePayment.setAbsencesNumber(one.getAbsencesNumber());
        //校验是否已经报满
        Integer cpId = Integer.valueOf((int) packagePayment.getCoursePackageId());
        Integer integer = coursePackagePaymentService.queryCountNumber(cpId);
        TCoursePackage course = coursePackageService.getById(packagePayment.getId());
        if (course.getType() != 3) {
            if (integer + 1 > course.getMaxSubscribeNumber()) {
                return 5001;
            }
            packagePayment.setTotalClassHours(packagePayment.getClassHours());
            packagePayment.setLaveClassHours(packagePayment.getClassHours());
            packagePayment.setAbsencesNumber(one.getAbsencesNumber());
        } else {
            packagePayment.setTotalClassHours(packagePayment.getClassHours());
            packagePayment.setLaveClassHours(packagePayment.getClassHours());
            packagePayment.setAbsencesNumber(0);
        }
        // 如果重复购买 累加课时
        CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
        coursePackageOrder.setAppUserId(packagePayment.getAppUserId());
        coursePackageOrder.setStudentIds(String.valueOf(packagePayment.getStudentId()));
        coursePackageOrder.setCoursePackageId(packagePayment.getCoursePackageId());
        coursePackageOrder.setClassHours(packagePayment.getClassHours());
        coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice());
        coursePackageOrder.setCashPayment(packagePayment.getCashPayment());
        coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin());
        coursePackageOrder.setPayStatus(1);
        coursePackageOrder.setState(1);
        coursePackageOrder.setInsertTime(new Date());
        coursePackageOrder.setSalesName(packagePayment.getSalesName());
        coursePackageOrderService.save(coursePackageOrder);
        TCoursePackage byId = coursePackageService.getById(packagePayment.getCoursePackageId());
        if (byId.getType()==1){
            CoursePackageOrderStudent coursePackageOrderStudent = new CoursePackageOrderStudent();
            coursePackageOrderStudent.setAppUserId(packagePayment.getAppUserId());
            coursePackageOrderStudent.setStudentId(packagePayment.getStudentId());
            coursePackageOrderStudent.setCoursePackageId(packagePayment.getCoursePackageId());
            coursePackageOrderStudent.setTotalClassHours(packagePayment.getClassHours());
            coursePackageOrderStudent.setLaveClassHours(packagePayment.getClassHours());
            coursePackageOrderStudent.setAbsencesNumber(0);
            coursePackageOrderStudent.setDropoutsNumber(0);
            coursePackageOrderStudent.setStatus(1);
            coursePackageOrderStudent.setState(1);
            coursePackageOrderStudent.setInsertTime(new Date());
            coursePackageOrderStudent.setGiftClassHours(packagePayment.getGiftClassHours());
            // 获取常规课的有效期 计算是哪一天
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.DAY_OF_MONTH, byId.getValidDays());
            Date time = calendar.getTime();
            coursePackageOrderStudent.setUseTime(time);
            return coursePackageOrderStudentService.save(coursePackageOrderStudent);
        }
        // 生成排课数据
        TCoursePackage coursePackage = tcpService.getById(packagePayment.getCoursePackageId());
        //生成排课数据
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
            List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
            String value = coursePackage.getClassStartTime();
            String value1 = coursePackage.getClassEndTime();
        return null;
            String[] star = value.split(",");
            String[] end = value1.split(",");
            for (int i = 0; i < star.length; i++) {
                //                int index = star[i].indexOf(",");
                //                String result = value.substring(0, index).trim();
                String classStartTime = star[i];
                String[] split = classStartTime.split(":");
                //            String value1 = en;
                int index1 = value1.indexOf(",");
                //                String result1 = value.substring(0, index1).trim();
                String classEndTime = end[i];
                String[] split1 = classEndTime.split(":");
                Calendar s = Calendar.getInstance();
                s.setTime(date);
                s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
                s.set(Calendar.MINUTE, Integer.valueOf(split[1]));
                s.set(Calendar.SECOND, 0);
                Calendar e = Calendar.getInstance();
                e.setTime(date);
                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 coursePackageScheduling = new CoursePackageScheduling();
                        coursePackageScheduling.setCoursePackageId(coursePackage.getId());
                        coursePackageScheduling.setClassDate(classDate.getTime());
                        coursePackageScheduling.setEndDate(endDate.getTime());
                        coursePackageScheduling.setStatus(1);
                        coursePackageSchedulingService.save(coursePackageScheduling);
                        coursePackageStudent.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                        List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
                                .eq("coursePackageId", coursePackage.getId())
                                .eq("classDate", classDate.getTime())
                                .eq("endDate", endDate.getTime()));
                        if (list1.size() + 1 > coursePackage.getMaxSubscribeNumber()) {
                            // 当前课包预约人数已满
                            return 5001;
                        }
                    }
                    s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                    if (s.getTimeInMillis() > timeInMillis) {
                        break;
                    }
                }
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        coursePackageStudent.setStudentId(packagePayment.getStudentId());
        coursePackageStudent.setCoursePackageId(packagePayment.getCoursePackageId());
        coursePackageStudent.setSignInOrNot(0);
        coursePackageStudent.setReservationStatus(1);
        coursePackageStudent.setInsertTime(new Date());
        coursePackageStudent.setAppUserId(packagePayment.getAppUserId());
        packagePaymentService.save(packagePayment);
        coursePackageStudent.setCoursePackagePaymentId(packagePayment.getId());
        return coursePackageStudentService.save(coursePackageStudent);
    }
    /**
@@ -715,11 +647,11 @@
        Integer totalNu = 0;
        Integer dedutNu = 0;
        Integer remainNu = 0;
        List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
        List<CoursePackageOrderStudent> byUserId = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                .eq("appUserId", getStuOfCoursesDetails.getAppUserId())
                .eq("studentId", getStuOfCoursesDetails.getStuId()));
        if (byUserId.size() > 0) {
            for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
            for (CoursePackageOrderStudent tCoursePackagePayment : byUserId) {
                totalNu = totalNu + tCoursePackagePayment.getTotalClassHours();
                dedutNu = dedutNu + tCoursePackagePayment.getLaveClassHours();
                remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
@@ -2347,13 +2279,14 @@
                }
                //排课的ids
                List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
                if (collect2.isEmpty()) {
                if (collect2.isEmpty()){
                    collect2.add(-1l);
                }
                List<CoursePackageStudent> list4 = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
                        .eq(CoursePackageStudent::getAppUserId, courseDetailReq.getAppUserId())
                        .eq(CoursePackageStudent::getStudentId, courseDetailReq.getStuId())
                        .eq(CoursePackageStudent::getCoursePackageId, tCoursePackage.getId())
                        .in(CoursePackageStudent::getCoursePackageSchedulingId, collect2)
                );
@@ -2494,7 +2427,8 @@
        List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.listOne(userPt);
        int sum = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getTotalClassHours).sum();
        int sum1 = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getLaveClassHours).sum();
        map.put("allCourse", sum - sum1);
        // 查询介绍有礼课时数量
        map.put("allCourse",sum-sum1);
        //所有课包
        List<TCoursePackage> coursePackages = tcpService.list();