nickchange
2023-11-21 41b60f3df5f3054aad44307c13a26b14f3b32ac0
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -330,8 +330,7 @@
                    re.setBuyTypeName("手动支付"+"-"+re.getBuyTypeName());
                }
            }
            BigDecimal subtract = re.getOriginalPrice().subtract(re.getCashPayment());
            re.setDiscountAmount(subtract);
            // 如果支付用户类型为管理员 则购买方式则为1线下购买
            if (re.getPayUserType()!=null){
                if (re.getPayUserType()== 2){
@@ -347,6 +346,13 @@
                    }
                }
            }
            if(re.getCashPayment()==null){
                BigDecimal bigDecimal = new BigDecimal("0.00");
                re.setDiscountAmount(bigDecimal);
                continue;
            }
            BigDecimal subtract = re.getOriginalPrice().subtract(re.getCashPayment());
            re.setDiscountAmount(subtract);
            }
        if (query.getPayStudent()== null || query.getPayStudent().equals("")){
            if (query.getPayUser()== null || query.getPayUser().equals("")){
@@ -445,10 +451,24 @@
                resp.setTotalCourseNums(tCoursePackagePayment.getTotalClassHours());
                resp.setResidueNums(tCoursePackagePayment.getLaveClassHours());
                resp.setDeductionNums(tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours());
                if (tCoursePackage.getValidDays()!=null){
                String afterDayDate = DateUtil.getAfterDayDate2(tCoursePackage.getInsertTime(),tCoursePackage.getValidDays() + "");
                resp.setPeriodOfValidity(afterDayDate);
                resp.setCourseType(tCoursePackage.getType());
                if (tCoursePackage.getType()!=1||tCoursePackage.getState()==2||tCoursePackagePayment.getPayStatus()==1){
                    resp.setIsAble(0);
                }else {
                    resp.setIsAble(1);
                }
                if (tCoursePackagePayment.getUseTime()!=null){
//                String afterDayDate = DateUtil.getAfterDayDate2(tCoursePackage.getInsertTime(),tCoursePackage.getValidDays() + "");
//                resp.setPeriodOfValidity(afterDayDate);
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    String str = sdf.format(tCoursePackagePayment.getUseTime());
                    resp.setPeriodOfValidity(str);
                }
                resps.add(resp);
            }
        }
@@ -539,11 +559,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;
@@ -842,7 +864,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());
            }
@@ -854,7 +876,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) {
@@ -908,7 +930,14 @@
    })
    public ResultUtil<PayCourseInfoReq> payCourseInfo(Integer courseId){
        try {
            return ResultUtil.success(packagePaymentService.payCourseInfo(courseId));
            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(payCourseInfoReq);
        }catch (Exception e){
            return ResultUtil.runErr();
        }
@@ -1206,7 +1235,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()));
@@ -1217,7 +1245,6 @@
//                    Student student = studentClient.queryStudentById(coursePackagePayment.getStudentId());
                    TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId());
                    String classWeeks = tCoursePackage.getClassWeeks();
@@ -1225,16 +1252,11 @@
                    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();
                    Calendar calendar = Calendar.getInstance();
                    calendar.add(Calendar.DATE, -1);
                    today = calendar.getTime();
                    Integer laveClassHours = pay.getLaveClassHours();
                    Integer codeTime = tCoursePackage.getCodeTime();
@@ -1280,105 +1302,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课时 推送
@@ -1506,6 +1430,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());
@@ -1903,11 +1830,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 {
@@ -2110,10 +2116,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();
@@ -2125,8 +2134,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();
@@ -2140,12 +2163,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())
@@ -2153,7 +2181,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);
@@ -2162,15 +2192,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);