nickchange
2023-10-10 ee9cb0da4a43bcf523ebb157678f64a2895fba1a
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -143,9 +143,11 @@
            ArrayList<String> classTime = new ArrayList<>();
            String[] split = classStartTime.split(",");
            String[] split3 = classEndTime.split(",");
            for (int i = 0; i < split.length; i++) {
                String s = split[i] + "-" +  split3[i];
                classTime.add(s);
            if(ToolUtil.isNotEmpty(classStartTime)) {
                for (int i = 0; i < split.length; i++) {
                    String s = split[i].substring(0,5) + "-" + split3[i].substring(0,5);
                    classTime.add(s);
                }
            }
            coursePackageListVo.setClassStartTime(classTime);
            coursePackageListVo.setType(coursePackage.getType());
@@ -283,6 +285,7 @@
        }
        return listVos;
    }
    @Override
@@ -484,7 +487,11 @@
            TCoursePackage coursePackage = this.getById(id);
            CoursePackageInfo coursePackageInfo = new CoursePackageInfo();
            coursePackageInfo.setId(id);
            coursePackageInfo.setTime(coursePackage.getStartTime()+"-"+coursePackage.getEndTime());
        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
        if(coursePackage.getType()==2){
            coursePackageInfo.setTime(format.format(coursePackage.getStartTime())+"-"+format.format(coursePackage.getEndTime()));
        }
            coursePackageInfo.setCoverDrawing(coursePackage.getCoverDrawing());
            coursePackageInfo.setName(coursePackage.getName());
            Store store = storeClient.queryStoreById(coursePackage.getStoreId());
@@ -508,10 +515,13 @@
            ArrayList<String> classTime = new ArrayList<>();
            String[] split4 = classStartTime.split(",");
            String[] split3 = classEndTime.split(",");
            for (int i = 0; i < split4.length; i++) {
                String s = split4[i] + "-" +  split3[i];
                classTime.add(s);
            if(ToolUtil.isNotEmpty(classStartTime)){
                for (int i = 0; i < split4.length; i++) {
                    String s = split4[i].substring(0,5) + "-" +  split3[i].substring(0,5);
                    classTime.add(s);
                }
            }
            coursePackageInfo.setTimes(classTime);
            coursePackageInfo.setType(coursePackage.getType());
@@ -662,13 +672,27 @@
        String[] students = paymentCourseVo.getStudentIds().split(";");
        for (CoursePackagePaymentConfigVo coursePackagePaymentConfigVo : list) {
            if(paymentCourseVo.getCoursePackagePaymentConfigId().compareTo(coursePackagePaymentConfigVo.getId()) == 0){
                CoursePackagePaymentConfig byId = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
                Double cashPayment = byId.getCashPayment();
                Integer payType = coursePackagePaymentConfigVo.getPayType();
                if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付
                    return ResultUtil.error("支付方式错误,请刷新后重试");
                Integer playPaiCoin1 = byId.getPlayPaiCoin();
                if(cashPayment!=null || cashPayment>0){
                    payType=1;
                }
                if(payType == 2 && paymentCourseVo.getPayType() != 3){//玩湃币支付
                    return ResultUtil.error("支付方式错误,请刷新后重试");
                if(playPaiCoin1!=null || playPaiCoin1>0){
                    payType=2;
                }
                if(cashPayment!=null && cashPayment>0 && playPaiCoin1 !=null && playPaiCoin1>0){
                }else {
                    if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付
                        return ResultUtil.error("支付方式错误,请刷新后重试");
                    }
                    if(payType == 2 && paymentCourseVo.getPayType() != 3){//玩湃币支付
                        return ResultUtil.error("支付方式错误,请刷新后重试");
                    }
                }
                Double paymentPrice = coursePackagePaymentConfigVo.getPaymentPrice();//支付价
                paymentPrice = new BigDecimal(students.length).multiply(new BigDecimal(paymentPrice)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                Double playPaiCoin = coursePackagePaymentConfigVo.getPlayPaiCoin().doubleValue();//支付币
@@ -1048,7 +1072,7 @@
                        student1.setCoursePackageId(tCoursePackage.getId());
                        student1.setCoursePackagePaymentId(paymentId);
                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                        student1.setSignInOrNot(0);
                        student1.setSignInOrNot(1);
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        cpsMapper.insert(student1);
@@ -1085,7 +1109,7 @@
                            student1.setCoursePackageId(tCoursePackage.getId());
                            student1.setCoursePackagePaymentId(paymentId);
                            student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                            student1.setSignInOrNot(0);
                            student1.setSignInOrNot(1);
                            student1.setReservationStatus(1);
                            student1.setInsertTime(new Date());
                            cpsMapper.insert(student1);
@@ -1109,10 +1133,6 @@
                        coursePackageScheduling.setClassDate(parse);
                        coursePackageScheduling.setEndDate(parse1);
                        coursePackageScheduling.setStatus(1);
                        coursePackageScheduling.setCourseId(tCoursePackage.getId());
                        coursePackageScheduling.setIntegral(0);
                        coursePackageScheduling.setCancelClasses("");
                        coursePackageScheduling.setDeductClassHour(0);
                        coursePackageSchedulingService.save(coursePackageScheduling);
                        CoursePackageStudent student1 = new CoursePackageStudent();
@@ -1121,7 +1141,7 @@
                        student1.setCoursePackageId(tCoursePackage.getId());
                        student1.setCoursePackagePaymentId(paymentId);
                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                        student1.setSignInOrNot(0);
                        student1.setSignInOrNot(1);
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        cpsMapper.insert(student1);
@@ -1213,75 +1233,78 @@
    @Override
    public Integer addCoursePackage(TCoursePackage coursePackage) {
        try {
            coursePackage.setAuditStatus(2);
            this.baseMapper.insert(coursePackage);
            //生成排课数据
            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().trim();
            String[] star = value.split(",");
            String[] end = value1.split(",");
            if (coursePackage.getClassStartTime()!=null&&coursePackage.getClassStartTime()!="") {
                //生成排课数据
                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().trim();
            for (int i = 0; i < star.length; i++) {
                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 classStartTime = star[i];
                    String[] split = classStartTime.split(":");
//            String value1 = en;
                int index1 = value1.indexOf(",");
                    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) + 13);
                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);
                    }
                    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);
                    if(s.getTimeInMillis() > timeInMillis){
                        break;
                    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) + 13);
                    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);
                        }
                        s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                        if (s.getTimeInMillis() > timeInMillis) {
                            break;
                        }
                    }
                }
            }
            return coursePackage.getId();
        }catch (Exception e){