nickchange
2023-11-17 4a055748da8c4e8baf002dff7b74e12ec150610a
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -451,6 +451,12 @@
                resp.setTotalCourseNums(tCoursePackagePayment.getTotalClassHours());
                resp.setResidueNums(tCoursePackagePayment.getLaveClassHours());
                resp.setDeductionNums(tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours());
                resp.setCourseType(tCoursePackage.getType());
                if (tCoursePackage.getType()!=1||tCoursePackage.getState()==2||tCoursePackagePayment.getPayStatus()==1){
                    resp.setIsAble(0);
                }else {
                    resp.setIsAble(1);
                }
                if (tCoursePackage.getValidDays()!=null){
                String afterDayDate = DateUtil.getAfterDayDate2(tCoursePackage.getInsertTime(),tCoursePackage.getValidDays() + "");
                resp.setPeriodOfValidity(afterDayDate);
@@ -545,11 +551,13 @@
                    .in("id", collect));
            list.forEach(vo -> {
                StuSessionDetailsVo detVo = new StuSessionDetailsVo();
                detVo.setSessionid(vo.getId());
                detVo.setSessionName(vo.getName());
                String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(),vo.getValidDays() + "");
                detVo.setPeriodOfValidity(afterDayDate);
                detailsVos.add(detVo);
                if (vo.getType()!=2) {
                    detVo.setSessionid(vo.getId());
                    detVo.setSessionName(vo.getName());
                    String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(), vo.getValidDays() + "");
                    detVo.setPeriodOfValidity(afterDayDate);
                    detailsVos.add(detVo);
                }
            });
        }
        return detailsVos;
@@ -848,7 +856,7 @@
//            }
            QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("appUserId", appUserId);
            QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("studentId", search.getStuId());
            if (ToolUtil.isNotEmpty(search.getCourseTypeId())){
                queryWrapper1.eq("coursePackageId",search.getCourseTypeId());
            }
@@ -860,7 +868,7 @@
            }
            System.out.println("======longs========"+longs);
           List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId"));
//           List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId"));
           List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs);
           if (search.getSearch()!=null) {
@@ -914,6 +922,13 @@
    })
    public ResultUtil<PayCourseInfoReq> payCourseInfo(Integer courseId){
        try {
            PayCourseInfoReq payCourseInfoReq = packagePaymentService.payCourseInfo(courseId);
//            Arrays.sort(payCourseInfoReq.getDay(), (a, b) -> a.compareTo(b));
            Collections.sort(payCourseInfoReq.getDay(), Comparator.comparing(String::toString));
            return ResultUtil.success(packagePaymentService.payCourseInfo(courseId));
        }catch (Exception e){
            return ResultUtil.runErr();
@@ -1212,7 +1227,6 @@
//                    coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId()));
                    List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
@@ -1223,7 +1237,6 @@
//                    Student student = studentClient.queryStudentById(coursePackagePayment.getStudentId());
                    TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId());
                    String classWeeks = tCoursePackage.getClassWeeks();
@@ -1231,15 +1244,6 @@
                    TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId()));
//                        List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", pay.getStudentId()).eq("coursePackageId", pay.getCoursePackageId()));
//                        List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
                        //拿到最后一天的排课记录
//                        CoursePackageScheduling cs = null;
//                        if (collect1.size()>0) {
//                            cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect1).orderByDesc("classDate").last("limit 1"));
//
//                        }
                        Date today = new Date();
                    Integer laveClassHours = pay.getLaveClassHours();
@@ -1286,105 +1290,7 @@
                        }
                    }
//                    }
//                    // 本周周几
//                    int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date()) - 1;
//                    for (Integer integer : week) {
//                        if (integer < i) {
//                            // 找下一周的时间
//                            Calendar instance = Calendar.getInstance();
//                            instance.add(Calendar.DATE, 7 - (i - integer));
//                            Date time = instance.getTime();
//
//                            for (int i1 = 0; i1 < split.length; i1++) {
//
//                                CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
//                                coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
//                                Date parse = format1.parse(format.format(time) + " " + split[i1]);
//                                Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
//                                coursePackageScheduling.setClassDate(parse);
//                                coursePackageScheduling.setEndDate(parse1);
//                                coursePackageScheduling.setStatus(1);
//                                coursePackageSchedulingService.save(coursePackageScheduling);
//                                CoursePackageStudent student1 = new CoursePackageStudent();
//                                student1.setAppUserId(student.getAppUserId());
//                                student1.setStudentId(student.getId());
//                                student1.setCoursePackageId(tCoursePackage.getId());
//                                student1.setCoursePackagePaymentId(coursePackagePayment.getId());
//                                student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
//                                student1.setSignInOrNot(1);
//                                student1.setReservationStatus(1);
//                                student1.setInsertTime(new Date());
//                                studentService.save(student1);
//
//                            }
//
//                        } else if (integer > i) {
//                            Calendar instance = Calendar.getInstance();
//                            instance.add(Calendar.DATE, integer - i);
//                            Date time1 = instance.getTime();
//                            List<Date> list6 = new ArrayList<>();
//                            list6.add(time1);
//                            instance.add(Calendar.DATE, 7);
//                            Date time2 = instance.getTime();
//                            list6.add(time2);
//                            for (Date time : list6) {
//                                for (int i1 = 0; i1 < split.length; i1++) {
//                                    CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
//                                    coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
//                                    Date parse = format1.parse(format.format(time) + " " + split[i1]);
//                                    Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
//                                    coursePackageScheduling.setClassDate(parse);
//                                    coursePackageScheduling.setEndDate(parse1);
//                                    coursePackageScheduling.setStatus(1);
//                                    coursePackageSchedulingService.save(coursePackageScheduling);
//
//                                    CoursePackageStudent student1 = new CoursePackageStudent();
//                                    student1.setAppUserId(student.getAppUserId());
//                                    student1.setStudentId(student.getId());
//                                    student1.setCoursePackageId(tCoursePackage.getId());
//                                    student1.setCoursePackagePaymentId(coursePackagePayment.getId());
//                                    student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
//                                    student1.setSignInOrNot(1);
//                                    student1.setReservationStatus(1);
//                                    student1.setInsertTime(new Date());
//                                    studentService.save(student1);
//                                }
//                            }
//
//                        } else {
//                            Calendar instance = Calendar.getInstance();
//                            instance.add(Calendar.DATE, 7);
//                            Date time = instance.getTime();
//
//                            for (int i1 = 0; i1 < split.length; i1++) {
//                                CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
//                                coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
//                                Date parse = format1.parse(format.format(time) + " " + split[i1]);
//                                Date parse1 = format1.parse(format.format(time) + " " + split1[i1]);
//                                coursePackageScheduling.setClassDate(parse);
//                                coursePackageScheduling.setEndDate(parse1);
//                                coursePackageScheduling.setStatus(1);
//                                coursePackageSchedulingService.save(coursePackageScheduling);
//
//                                CoursePackageStudent student1 = new CoursePackageStudent();
//                                student1.setAppUserId(student.getAppUserId());
//                                student1.setStudentId(student.getId());
//                                student1.setCoursePackageId(tCoursePackage.getId());
//                                student1.setCoursePackagePaymentId(coursePackagePayment.getId());
//                                student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
//                                student1.setSignInOrNot(1);
//                                student1.setReservationStatus(1);
//                                student1.setInsertTime(new Date());
//                                studentService.save(student1);
//                            }
//                        }
//                    }
                        // 2.0 少于3课时 推送
@@ -1512,6 +1418,9 @@
        for (TCoursePackagePayment tCoursePackagePayment : list) {
            Integer coursePackageId = tCoursePackagePayment.getCoursePackageId();
            TCoursePackage byId = tcpService.getById(coursePackageId);
            if (byId.getType()==3){
                continue;
            }
            if(storeIds.contains(byId.getStoreId())){
                PayCourseRes payCourseRes = new PayCourseRes();
                payCourseRes.setCourseNum(tCoursePackagePayment.getLaveClassHours());
@@ -1909,11 +1818,90 @@
    // 2.0 送课时
    @PostMapping("/base/coursePack/sendHours")
    public Integer sendHours(@RequestBody  String s){
        String[] split = s.split("_");
        TCoursePackagePayment byId = packagePaymentService.getById(Long.valueOf(split[0]));
        byId.setTotalClassHours(byId.getTotalClassHours()+Integer.valueOf(split[2]));
        boolean b = packagePaymentService.updateHoursById(byId,Integer.valueOf(split[2]));
    public Integer sendHours(@RequestBody  String s) throws ParseException {
        String[] split2 = s.split("_");
        TCoursePackagePayment byId = packagePaymentService.getById(Long.valueOf(split2[0]));
        byId.setTotalClassHours(byId.getTotalClassHours()+Integer.valueOf(split2[2]));
        boolean b = packagePaymentService.updateHoursById(byId,Integer.valueOf(split2[2]));
        CourseCounsum courseCounsum = new CourseCounsum();
        courseCounsum.setPaymentId(byId.getId());
        courseCounsum.setChangeType(1);
        courseCounsum.setNum(Integer.valueOf(split2[2]));
        courseCounsum.setInsertTime(new Date());
        courseCounsum.setReason("介绍有礼");
        courseCounsumService.save(courseCounsum);
        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
        List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
        coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id",collect));
        coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
        TCoursePackage tCoursePackage = packageService.getById(byId.getCoursePackageId());
        String classWeeks = tCoursePackage.getClassWeeks();
        List<Integer> week = week(classWeeks);
        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", byId.getCoursePackageId()).eq("studentId", byId.getStudentId()));
        Date today = new Date();
        Integer laveClassHours = pay.getLaveClassHours();
        Integer codeTime = tCoursePackage.getCodeTime();
        Integer can = laveClassHours/codeTime;
        int count = 0;
        String[] split = tCoursePackage.getClassStartTime().split(",");
        String[] split1 = tCoursePackage.getClassEndTime().split(",");
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        Date[] dates = generateDateArray(14,today);
        for (Date date : dates) {
            if (count==can){
                break;
            }
            int wei =  cn.hutool.core.date.DateUtil.dayOfWeek(date);
            if (week.contains(wei)){
                for (int i1 = 0; i1 < split.length; i1++) {
                    if (count==can){
                        break;
                    }
                    CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                    coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
                    Date parse = format1.parse(format.format(date) + " " + split[i1]);
                    Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
                    coursePackageScheduling.setClassDate(parse);
                    coursePackageScheduling.setEndDate(parse1);
                    coursePackageScheduling.setStatus(1);
                    coursePackageSchedulingService.save(coursePackageScheduling);
                    CoursePackageStudent student1 = new CoursePackageStudent();
                    student1.setAppUserId(pay.getAppUserId());
                    student1.setStudentId(pay.getStudentId());
                    student1.setCoursePackageId(pay.getCoursePackageId());
                    student1.setCoursePackagePaymentId(pay.getId());
                    student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                    student1.setSignInOrNot(1);
                    student1.setReservationStatus(1);
                    student1.setInsertTime(new Date());
                    studentService.save(student1);
                    count++;
                }
            }
        }
        if(b){
            return 1;
        }else {
@@ -2116,10 +2104,13 @@
            List<TCoursePackagePayment> list1 = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>().eq(TCoursePackagePayment::getAppUserId, courseDetailReq.getAppUserId()).eq(TCoursePackagePayment::getStudentId, courseDetailReq.getStuId()).in(TCoursePackagePayment::getCoursePackageId, collect));
            List<Integer> collect1 = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
            List<Long> ids = list1.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList());
            for (TCoursePackage tCoursePackage : list) {
                DetailsListVo detailsListVo = new DetailsListVo();
                detailsListVo.setId(tCoursePackage.getId());
                detailsListVo.setName(tCoursePackage.getName());
                detailsListVo.setCourseType(tCoursePackage.getType());
                String classStartTime = tCoursePackage.getClassStartTime();
                String[] split = classStartTime.split(",");
                String classEndTime = tCoursePackage.getClassEndTime();
@@ -2131,8 +2122,22 @@
                        strings.add(s);
                    }
                }
                if (detailsListVo.getCourseType()==1) {
                    detailsListVo.setTime(strings);
                }else {
                    Date startTime = tCoursePackage.getStartTime();
                    Date endTime = tCoursePackage.getEndTime();
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    String formattedStartTime = sdf.format(startTime);
                    String formattedEndTime = sdf.format(endTime);
                detailsListVo.setTime(strings);
                    String result = formattedStartTime + "至" + formattedEndTime;
                    List<String> stringLists = new ArrayList<>();
                    stringLists.add(result);
                    detailsListVo.setTime(stringLists);
                }
                //价格
                List<CoursePackagePaymentConfig> list2 = icppcService.list(new LambdaQueryWrapper<CoursePackagePaymentConfig>().eq(CoursePackagePaymentConfig::getCoursePackageId, tCoursePackage.getId()).orderByAsc(CoursePackagePaymentConfig::getCashPayment));
                if (list2.size() > 0) {
                    Double cashPayment = list2.get(0).getCashPayment();
@@ -2146,12 +2151,17 @@
                            .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
                    );
                    if(list3.size()==0){
                        break;
                        detailsListVo.setType(2);
                        objects.add(detailsListVo);
                        continue;
                    }
                    //排课的ids
                    List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
                    if(collect2.size()==0){
                        collect2.add(-1l);
                    }
                    List<CoursePackageStudent> list4 = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
                            .eq(CoursePackageStudent::getAppUserId, courseDetailReq.getAppUserId())
                            .eq(CoursePackageStudent::getCoursePackageId, tCoursePackage.getId())
@@ -2159,7 +2169,9 @@
                                    in(CoursePackageStudent::getCoursePackagePaymentId, ids)
                    );
                    if(list4.size()>0){
                    List<CoursePackageStudent> list5 = cspsService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", courseDetailReq.getStuId()).eq("coursePackageId",tCoursePackage.getId()));
                    if(list5.size()>0){
                        Integer signInOrNot = list4.get(0).getSignInOrNot();
                        detailsListVo.setType(1);
@@ -2168,15 +2180,48 @@
                        }
                        detailsListVo.setIsType(list4.get(0).getType());
                        for (CoursePackageStudent coursePackageStudent : list4) {
                            Integer signInOrNot1 = coursePackageStudent.getSignInOrNot();
                            detailsListVo.setType(1);
                            if(signInOrNot1==2){
                                detailsListVo.setType(3);
                            }
                            detailsListVo.setIsType(coursePackageStudent.getType());
                            CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
                            Date classDate = coursePackageScheduling.getClassDate();
                            Date endDate = coursePackageScheduling.getEndDate();
                            SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
                            String formattedClassDate = sdf.format(classDate);
                            String formattedEndDate = sdf.format(endDate);
                            String result = formattedClassDate + "-" + formattedEndDate;
                            List<String> strings1 =new ArrayList<>();
                            strings1.add(result);
                            detailsListVo.setTime(strings1);
                            DetailsListVo detailsListVo1 = new DetailsListVo();
//                            detailsListVo1.setId(coursePackageStudent.getId());
                            BeanUtils.copyProperties(detailsListVo,detailsListVo1);
                            objects.add(detailsListVo1);
                        }
                    }else {
                        detailsListVo.setType(2);
                        objects.add(detailsListVo);
                    }
                } else {
                    detailsListVo.setType(2);
                    objects.add(detailsListVo);
                }
                objects.add(detailsListVo);
//                objects.add(detailsListVo);
            }
            map.put("data",objects);