44323
2023-09-20 ef96dbc9278ebae4af204cca9de98c63f0d6328e
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -298,22 +298,29 @@
            Integer payType = tCoursePackagePayment.getPayType();
            BigDecimal cashPayment = tCoursePackagePayment.getCashPayment();
            double cashPaymentValue = cashPayment.doubleValue();
            double cashPaymentValue = 0.0;
            if(cashPayment!=null){
                 cashPaymentValue = cashPayment.doubleValue();
            }
            Integer playPaiCoin = tCoursePackagePayment.getPlayPaiCoin();
            TCoursePackageDiscount coursePackageDiscount = tcpdMapper.selectOne(new QueryWrapper<TCoursePackageDiscount>()
                    .eq("coursePackageId",coursePackage.getId() )
                    .eq("type",1)
                    .eq("auditStatus",2));
            ObjectMapper objectMapper = new ObjectMapper();
            String content = coursePackageDiscount.getContent();
            double discountMember = 0.0;
            DiscountJsonDto discountJsonDto = null;
            try {
                discountJsonDto = objectMapper.readValue(content, DiscountJsonDto.class);
                discountMember = discountJsonDto.getDiscountMember();
            } catch (JsonProcessingException e) {
                throw new RuntimeException(e);
            if(coursePackageDiscount!=null){
                String content = coursePackageDiscount.getContent();
                DiscountJsonDto discountJsonDto = null;
                try {
                    discountJsonDto = objectMapper.readValue(content, DiscountJsonDto.class);
                    discountMember = discountJsonDto.getDiscountMember();
                } catch (JsonProcessingException e) {
                    throw new RuntimeException(e);
                }
            }
            switch (payType) {
                case 1:
                case 2:
@@ -586,67 +593,70 @@
        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
        if (tCoursePackagePayments.size() > 0 ){
            for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
                RecordAppoint recordVo = new RecordAppoint();
                recordVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
                TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
                recordVo.setCoursePackageName(coursePackage.getName());
                recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
                Date date = DateUtil.getDate();
                String classStartTime = coursePackage.getClassStartTime();
                String classEndTime = coursePackage.getClassEndTime();
                recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime);
                Store store = stoClient.queryStoreById(coursePackage.getStoreId());
                recordVo.setStoreNameAddr(store.getName()+store.getAddress());
                CoursePackageStudent coursePackageStudent = cpsMapper.selectOne(new QueryWrapper<CoursePackageStudent>()
                List<CoursePackageStudent> coursePackageStudent1 = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>()
                        .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() )
                        .eq("studentId",stuId)
                        .eq("appUserId",appUserId)
                        .eq("reservationStatus",1));
                if (ToolUtil.isNotEmpty(coursePackageStudent) && coursePackageStudent.getReservationStatus() == 1){
                if (ToolUtil.isNotEmpty(coursePackageStudent1) && coursePackageStudent1.size() > 0){
                    for (CoursePackageStudent coursePackageStudent : coursePackageStudent1) {
                        RecordAppoint recordVo = new RecordAppoint();
                        recordVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
                    recordVo.setCourseStuRecordId(coursePackageStudent.getId());
                    String classWeeks = coursePackage.getClassWeeks();
                    String[] split = classWeeks.split(";");
                    List<String> integerList = Arrays.asList(split);
                    String weekOfDate = DateTimeHelper.getWeekOfDate(new Date());
                    if (integerList.contains(weekOfDate)){
                        String dat = simpleDateFormat.format(date) +" "+ classStartTime;
                        TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
                        Date start = null;
                        try {
                            start = format.parse(dat);
                        } catch (ParseException e) {
                            throw new RuntimeException(e);
                        }
                        if (start.after(new Date())){
                            recordVo.setStatus(1);
                        }else if(coursePackageStudent.getSignInOrNot()==2){
                            recordVo.setStatus(5);
                        }else {
                            CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
                                    .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() ));
                            if (ToolUtil.isNotEmpty(cancelledClasses)){
                                recordVo.setStatus(3);
                                // 消课 到课状态0 旷课
                                if(coursePackageStudent.getSignInOrNot()==0){
                                    recordVo.setStatus(6);
                                }
                        recordVo.setCoursePackageName(coursePackage.getName());
                        recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
                        Date date = DateUtil.getDate();
                            }else {
                                recordVo.setStatus(2);
                        String classStartTime = coursePackage.getClassStartTime();
                        String classEndTime = coursePackage.getClassEndTime();
                        recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime);
                        Store store = stoClient.queryStoreById(coursePackage.getStoreId());
                        recordVo.setStoreNameAddr(store.getName()+store.getAddress());
                        recordVo.setCourseStuRecordId(coursePackageStudent.getId());
                        String classWeeks = coursePackage.getClassWeeks();
                        String[] split = classWeeks.split(";");
                        List<String> integerList = Arrays.asList(split);
                        String weekOfDate = DateTimeHelper.getWeekOfDate(new Date());
                        if (integerList.contains(weekOfDate)){
                            String dat = simpleDateFormat.format(date) +" "+ classStartTime;
                            Date start = null;
                            try {
                                start = format.parse(dat);
                            } catch (ParseException e) {
                                throw new RuntimeException(e);
                            }
                            if (start.after(new Date())){
                                recordVo.setStatus(1);
                            }else if(coursePackageStudent.getSignInOrNot()==2){
                                recordVo.setStatus(5);
                            }else {
                                CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
                                        .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() ));
                                if (ToolUtil.isNotEmpty(cancelledClasses)){
                                    recordVo.setStatus(3);
                                    // 消课 到课状态0 旷课
                                    if(coursePackageStudent.getSignInOrNot()==0){
                                        recordVo.setStatus(6);
                                    }
                                }else {
                                    recordVo.setStatus(2);
                                }
                            }
                        }else {
                            recordVo.setStatus(1);
                        }
                    }else {
                        recordVo.setStatus(1);
                        recordVoList.add(recordVo);
                    }
                }else {
                    recordVo.setStatus(4);
//                    recordVo.setStatus(4);
                }
                recordVoList.add(recordVo);
            }
        }
        return recordVoList;
@@ -799,9 +809,98 @@
            strings.add(s);
        }
        payCourseInfoReq.setTime(strings);
        List<Integer> week = week(tCoursePackage.getClassWeeks());
        // 今天周几
        int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
        SimpleDateFormat format = new SimpleDateFormat("MM.dd");
        ArrayList<String> strings1 = new ArrayList<>();
        for (Integer integer : week) {
            if(integer<i){
                // 找下一周的时间
                Calendar instance = Calendar.getInstance();
                instance.add(Calendar.DATE,7-(i-integer));
                Date time = instance.getTime();
                strings1.add(format.format(time));
            }else if(integer>i) {
                Calendar instance = Calendar.getInstance();
                instance.add(Calendar.DATE,integer-i);
                Date time = instance.getTime();
                strings1.add(format.format(time));
            }else {
                Calendar instance = Calendar.getInstance();
                instance.add(Calendar.DATE,7);
                Date time = instance.getTime();
                strings1.add(format.format(time));
            }
        }
        payCourseInfoReq.setDay(strings1);
        return payCourseInfoReq;
    }
    private static List<Integer> week(String week){
        String[] split = week.split(";");
        ArrayList<Integer> integers = new ArrayList<>();
        for (String s : split) {
            switch (s){
                case "周一":
                    integers.add(1);
                    break;
                case "周二":
                    integers.add(2);
                    break;
                case "周三":
                    integers.add(3);
                    break;
                case "周四":
                    integers.add(4);
                    break;
                case "周五":
                    integers.add(5);
                    break;
                case "周六":
                    integers.add(6);
                    break;
                case "周日":
                    integers.add(7);
                    break;
            }
        }
        return integers;
    }
    public static void main(String[] args) {
        List<Integer> week = week("周一,周二");
        // 今天周几
        int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
        SimpleDateFormat format = new SimpleDateFormat("MM.dd");
        ArrayList<String> strings = new ArrayList<>();
        for (Integer integer : week) {
            if(integer<i){
                // 找下一周的时间
                Calendar instance = Calendar.getInstance();
                instance.add(Calendar.DATE,7-(i-integer));
                Date time = instance.getTime();
                strings.add(format.format(time));
            }else if(integer>i) {
                Calendar instance = Calendar.getInstance();
                instance.add(Calendar.DATE,integer-i);
                Date time = instance.getTime();
                strings.add(format.format(time));
            }else {
                Calendar instance = Calendar.getInstance();
                instance.add(Calendar.DATE,7);
                Date time = instance.getTime();
                strings.add(format.format(time));
            }
        }
        System.out.println(strings);
    }
    @Override
    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
    public ResultUtil payCourse(PayCourseReq req,Integer userId){
@@ -852,7 +951,7 @@
        for (String s : time) {
            for (int i = 0; i < split.length; i++) {
                CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                coursePackageScheduling.setCourseId(tCoursePackage.getId());
                coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
                try {
                    Date parse = format.parse(s + " " + split[i]);
                    Date parse1 = format.parse(s + " " + split1[i]);
@@ -910,5 +1009,15 @@
    }
    @Override
    public void updateUseTime(Long id, Date date) {
        this.baseMapper.updateUseTime(id,date);
    }
    @Override
    public List<Integer> getStudentIds(Integer payId) {
       return  this.baseMapper.getStudentIds(payId);
    }
}