nickchange
2023-11-09 c036557db88c6297b9a626a892dce35c14ab8ee5
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -6,8 +6,10 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alipay.api.domain.Person;
import com.alipay.api.response.AlipayTradeQueryResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.*;
@@ -33,12 +35,10 @@
import com.dsh.course.model.vo.RegisterCourseVo;
import com.dsh.course.model.vo.request.*;
import com.dsh.course.model.vo.response.*;
import com.dsh.course.service.ICoursePackageSchedulingService;
import com.dsh.course.service.TCoursePackagePaymentService;
import com.dsh.course.service.*;
import com.dsh.course.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
@@ -49,10 +49,13 @@
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.persistence.criteria.CriteriaBuilder;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -160,15 +163,6 @@
        List<Map<String, Object>> studentTotal = this.baseMapper.getStudentTotal(studentQeryDto);
        for (Map<String, Object> student : studentTotal) {
            BigDecimal cashPayment = (BigDecimal) student.get("cashPayment");
            BigDecimal totalClassHours = (BigDecimal) student.get("totalClassHours");
            BigDecimal hasHours = (BigDecimal) student.get("hasHours");
            BigDecimal hasPayment = cashPayment.divide(totalClassHours, 2, RoundingMode.HALF_UP)
                    .multiply(hasHours).setScale(2, RoundingMode.HALF_UP);
            student.put("hasPayment", hasPayment);
            Integer appUserId = (Integer) student.get("appUserId");
            AppUser appUser = appuClient.queryAppUser(appUserId);
            student.put("province", appUser.getProvince());
@@ -179,8 +173,18 @@
            Student studentId = studentClient.queryStudentById((Integer) student.get("studentId"));
            student.put("studentName", studentId.getName());
            BigDecimal cashPayment = (BigDecimal) student.get("cashPayment");
            BigDecimal totalClassHours = (BigDecimal) student.get("totalClassHours");
            BigDecimal hasHours = (BigDecimal) student.get("hasHours");
            if (cashPayment==null){
                continue;
            }
            if (totalClassHours.compareTo(BigDecimal.ZERO)==0){
                totalClassHours = totalClassHours.add(new BigDecimal("1"));
            }
            BigDecimal hasPayment = cashPayment.divide(totalClassHours, 2, RoundingMode.HALF_UP)
                    .multiply(hasHours).setScale(2, RoundingMode.HALF_UP);
            student.put("hasPayment", hasPayment);
        }
        if (studentQeryDto.getCityCode()!=null&&studentQeryDto.getCityCode()!="") {
@@ -316,28 +320,35 @@
        }
        return responses;
    }
    @Autowired
    private TCourseService courseService;
    @Override
    public CourseOfVideoResponse queryVideoDetails(CourseWithDetailsRequest detailsRequest,Integer appUserId) {
        CourseOfVideoResponse response = new CourseOfVideoResponse();
        BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(detailsRequest.getVideoId());
//        BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(detailsRequest.getVideoId());
        TCourse byId = courseService.getById(detailsRequest.getVideoId());
        TCoursePackage coursePackage = tcpmapper.selectById(detailsRequest.getCoursePackageId());
        if (null != videosWithIds && null != coursePackage){
        if (null != coursePackage){
            response.setCoursePackageId(coursePackage.getId());
            response.setVideoId(videosWithIds.getId());
            response.setVideoURL(videosWithIds.getVideos());
            response.setVideoName(videosWithIds.getName());
            response.setIntegral(videosWithIds.getIntegral());
            response.setVideoId(byId.getId());
            response.setVideoURL(byId.getCourseVideo());
            response.setVideoName(coursePackage.getName());
//            response.setIntegral(byId.getIntegral());
            UserVideoDetails userVideoDetails = uvdmapper.selectOne(new QueryWrapper<UserVideoDetails>()
                    .eq("appUserId",appUserId )
                    .eq("coursePackageId",coursePackage.getId())
                    .eq("courseId",videosWithIds.getId()));
                    .eq("courseId",detailsRequest.getVideoId()));
            response.setStudyStatus(userVideoDetails.getState());
            if (userVideoDetails!=null) {
                response.setStudyStatus(userVideoDetails.getState());
            }else {
                response.setStudyStatus(1);
            }
            response.setPackageName(coursePackage.getName());
            response.setSynopsis(videosWithIds.getIntroduction());
            response.setDetailedDiagram(coursePackage.getIntroduceDrawing());
            response.setCover(videosWithIds.getCover());
            response.setSynopsis(byId.getIntroduce());
            response.setDetailedDiagram(byId.getIntroductionDrawing());
            response.setCover(byId.getCoverDrawing());
        }
        return response;
@@ -385,6 +396,9 @@
                    registerCourseVo.setCourseTime(new SimpleDateFormat("yyyy-MM-dd").format(tCoursePackagePayment.getInsertTime()));
                    Coach coach = coachClient.queryCoachById(coursePackage.getCoachId());
                    registerCourseVo.setCourseTeacher(ToolUtil.isEmpty(coach) ? "" : coach.getName());
                    if (coursePackage.getType()==2) {
                        registerCourseVo.setTime(new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getStartTime()) + "-" + new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getEndTime()));
                    }
                    List<CoursePackageStudent> coursePackageStudents = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>()
                            .eq("coursePackageId",coursePackage.getId())
                            .eq("studentId",appUserId ));
@@ -426,22 +440,45 @@
        if (null != tCoursePackagePayment){
            TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
            if (coursePackage.getType()==2) {
                response.setTime(new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getStartTime()) + "-" + new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getEndTime()));
            }
            response.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
            response.setCoverDrawing(coursePackage.getCoverDrawing());
            response.setDetailDrawing(coursePackage.getDetailDrawing());
            response.setCoursePackageName(coursePackage.getName());
            response.setCoursePayId(tCoursePackagePayment.getId());
            response.setType(coursePackage.getType());
            List<Integer> integers = StrUtils.dealStrToList(coursePackage.getClassWeeks());
            String classWeeks = coursePackage.getClassWeeks();
            if (integers.size() > 0){
                StringBuilder courWeeks = new StringBuilder("每");
                for (Integer integer : integers) {
                    courWeeks.append(integer).append("、");
                }
                if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){
                    courWeeks.deleteCharAt(courWeeks.length() - 1);
                }
                StringBuilder courWeeks = new StringBuilder("每"+classWeeks);
//                for (Integer integer : integers) {
//                    courWeeks.append(integer).append("、");
//                }
//                if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){
//                    courWeeks.deleteCharAt(courWeeks.length() - 1);
//                }
                response.setWeeks(courWeeks.toString());
            }
            response.setCourseTimeFrame(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
            ArrayList<String> classTime = new ArrayList<>();
            String[] split4 = coursePackage.getClassStartTime().split(",");
            String[] split3 = coursePackage.getClassEndTime().split(",");
            if(ToolUtil.isNotEmpty(coursePackage.getClassStartTime())){
                for (int i = 0; i < split4.length; i++) {
                    String s = split4[i].substring(0,5) + "-" +  split3[i].substring(0,5);
                    classTime.add(s);
                }
            }
            String joinedString = String.join("|", classTime);
            response.setCourseTimeFrame(joinedString);
//            response.setCourseTimeFrame(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
            response.setIntroduceDrawing(coursePackage.getIntroduceDrawing());
            Integer payType = tCoursePackagePayment.getPayType();
@@ -658,7 +695,7 @@
    public ResultUtil AlipayPayment(String code, BigDecimal request){
        TCoursePackagePaymentMapper baseMapper1 = this.baseMapper;
        ResultUtil alipay = payMoneyUtil.alipay("课包购买", "", "", code, request.toString(),
        ResultUtil alipay = payMoneyUtil.alipay("课包购买", "课包购买", "", code, request.toString(),
                "/base/coursePackage/alipayRegisteredCoursesCallback");
        if(alipay.getCode() == 200){
            new Thread(new Runnable() {
@@ -675,17 +712,18 @@
                            if(coursePackagePayment.getPayStatus() == 2){
                                break;
                            }
                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
                            if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){
                            AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code);
                            if(coursePackagePayment.getPayStatus() == 1){
                                /**
                                 * WAIT_BUYER_PAY(交易创建,等待买家付款)、
                                 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
                                 * TRADE_SUCCESS(交易支付成功)、
                                 * TRADE_FINISHED(交易结束,不可退款)
                                 */
                                Map<String, String> data1 = resultUtil.getData();
                                String s = data1.get("tradeStatus");
                                String tradeNo = data1.get("tradeNo");
//                                Map<String, String> data1 = resultUtil.getData();
                                String s = alipayTradeQueryResponse.getTradeStatus();
                                String tradeNo = alipayTradeQueryResponse.getTradeNo();
                                if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){
                                    coursePackagePayment.setState(3);
                                    baseMapper1.deleteById(coursePackagePayment.getId());
@@ -728,8 +766,9 @@
    }
    @Override
    public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId) {
    public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId,Integer pageNum) {
        List<RecordAppoint> recordVoList = new ArrayList<>();
        List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>()
                .eq("studentId",stuId )
@@ -737,36 +776,84 @@
                .eq("payStatus",2 )
                .eq("status",1 )
                .orderByDesc("insertTime"));
        List<Integer> ids = new ArrayList<>();
        for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
            ids.add(tCoursePackagePayment.getCoursePackageId());
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
        if (tCoursePackagePayments.size() > 0 ){
            for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
                List<CoursePackageStudent> coursePackageStudent1 = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>()
                        .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() )
                        .eq("studentId",stuId)
                        .eq("appUserId",appUserId)
                        .eq("reservationStatus",1));
                if (ToolUtil.isNotEmpty(coursePackageStudent1) && coursePackageStudent1.size() > 0){
//            int pageNum = 1; // 页码
            int pageSize = 100; // 每页记录数
            Page<CoursePackageStudent> page = new Page<>(1, pageSize);
//            for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
//                List<CoursePackageStudent> coursePackageStudent1 = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>()
//                        .in("coursePackageId",ids)
//                        .eq("studentId",stuId)
//                        .eq("appUserId",appUserId)
//                        .eq("reservationStatus",1));
            IPage<CoursePackageStudent> coursePackageStudentPage = cpsMapper.selectPage(page, new QueryWrapper<CoursePackageStudent>()
                    .in("coursePackageId", ids)
                    .eq("studentId", stuId)
                    .eq("appUserId", appUserId)
                    .eq("reservationStatus", 1));
            List<CoursePackageStudent> coursePackageStudent1 = coursePackageStudentPage.getRecords();
            if (ToolUtil.isNotEmpty(coursePackageStudent1) && coursePackageStudent1.size() > 0){
                    TCoursePackage coursePackage = new TCoursePackage();
                    Integer coursePackageId = -1;
                    for (CoursePackageStudent coursePackageStudent : coursePackageStudent1) {
                        RecordAppoint recordVo = new RecordAppoint();
                        recordVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
                        recordVo.setCoursePackageId(coursePackageStudent.getCoursePackageId());
                        TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
                        if (!coursePackageStudent.getCoursePackageId().equals(coursePackageId)) {
                             coursePackage = tcpmapper.selectById(coursePackageStudent.getCoursePackageId());
                             coursePackageId = coursePackageStudent.getCoursePackageId();
                        }
                        recordVo.setSid(Arrays.asList(coursePackage.getStoreId()));
                        List<Integer> rid  = stoClient.querySiteId(coursePackage.getStoreId());
                        recordVo.setRid(rid);
                        recordVo.setUserId(appUserId);
                        recordVo.setSiteId(coursePackage.getSiteId());
                        List<Integer> ids = getIds(coursePackage.getSiteId());
                        recordVo.setIds(ids);
                        List<Integer> ids1 = getIds(coursePackage.getSiteId());
                        recordVo.setIds(ids1);
                        recordVo.setCoursePackageName(coursePackage.getName());
                        recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
                        for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
                            if (Objects.equals(coursePackageStudent.getCoursePackageId(), tCoursePackagePayment.getCoursePackageId())){
                                                        recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
                            }
                        }
//                        recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
                        Date date = DateUtil.getDate();
                        String classStartTime = coursePackage.getClassStartTime();
                        String classEndTime = coursePackage.getClassEndTime();
                        recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime);
                        CoursePackageScheduling byId = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId());
//                        String classStartTime = coursePackage.getClassStartTime();
//                        String classEndTime = coursePackage.getClassEndTime();
                            //这里是过滤今天之后的数据
//                        if (byId == null||byId.getClassDate().after(new Date())){
//                            continue;
//                        }
                        if (byId == null){
                            continue;
                        }
                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                        String dateString1 = sdf.format(byId.getClassDate());
                        String dateString2 = sdf.format(byId.getEndDate());
                        recordVo.setTimeFrame(dateString1 + "-" + dateString2.substring(11));
//                        recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime);
                        Store store = stoClient.queryStoreById(coursePackage.getStoreId());
                        recordVo.setStoreNameAddr(store.getName()+store.getAddress());
                        recordVo.setCourseStuRecordId(coursePackageStudent.getId());
@@ -775,7 +862,7 @@
                        List<String> integerList = Arrays.asList(split);
                        String weekOfDate = DateTimeHelper.getWeekOfDate(new Date());
                        if (integerList.contains(weekOfDate)){
                            String dat = simpleDateFormat.format(date) +" "+ classStartTime;
                            String dat = simpleDateFormat.format(byId.getClassDate()) +" "+ dateString1.substring(11);
                            Date start = null;
                            try {
@@ -783,13 +870,22 @@
                            } catch (ParseException e) {
                                throw new RuntimeException(e);
                            }
                            if (start.after(new Date())){
                                recordVo.setStatus(1);
                            }else if(coursePackageStudent.getSignInOrNot()==2){
                            if (byId.getStatus()==4){
                                recordVo.setStatus(4);
                            } else if(coursePackageStudent.getSignInOrNot()==2){
                                recordVo.setStatus(5);
                            }else {
                            }
                            else 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",coursePackageStudent.getCoursePackageId()));
                                CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
                                        .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() ));
                                        .eq("coursePackageSchedulingId",byId.getId()));
                                if (ToolUtil.isNotEmpty(cancelledClasses)){
                                    recordVo.setStatus(3);
                                    // 消课 到课状态0 旷课
@@ -812,7 +908,8 @@
                }
            }
        }
//        }
        return recordVoList;
    }
    public List<Integer>  getIds(Integer siteId) {
@@ -1047,36 +1144,15 @@
        return integers;
    }
    public static void main(String[] args) {
        List<Integer> week = week("周一,周二");
        // 今天周几
        int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date())-1;
    @Autowired
    private TCoursePackageService packageService;
        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));
    @Autowired
    private TCoursePackagePaymentService packagePaymentService;
    @Autowired
    private CoursePackageStudentService coursePackageStudentService;
            }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){
@@ -1090,6 +1166,67 @@
        }
        tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours()-req.getNum());
        this.baseMapper.updateHoursById(tCoursePackagePayment.getId(),-req.getNum());
//
//        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.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", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
//
//        TCoursePackage tCoursePackage = packageService.getById(tCoursePackagePayment.getCoursePackageId());
//        String classWeeks = tCoursePackage.getClassWeeks();
//        List<Integer> week = week(classWeeks);
//
//        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", tCoursePackagePayment.getCoursePackageId()).eq("studentId", tCoursePackagePayment.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++;
//                }
//            }
//        }
        TCoursePackage tCoursePackage = tcpmapper.selectById(req.getCourseId());
@@ -1203,5 +1340,18 @@
    public static Date[] generateDateArray(int numDays,Date date) {
//        LocalDate tomorrow = LocalDate.now().plusDays(1);
        LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
        Date[] dates = new Date[numDays];
        for (int i = 0; i < numDays; i++) {
            LocalDate currentDate = tomorrow.plusDays(i);
            dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
        }
        return dates;
    }
}