{"title":"public Map<String, Object> queryCarUsersByCoachIdByPage(QueryRequest queryRequest, Coach coach) {\n Map<String, Object> map = new HashMap<>();\n\n QueryWrapper queryWrapper = new QueryWrapper<>();\n queryWrapper.like("coach_id", coach.getCoachId());\n queryWrapper.last("order by case when study_status = 1 then 1 else 2 end,SUBSTR(CONVERT(real_name USING gbk), 1, 1) asc"); //按照名字首字母排序(学习中最前面)\n List carUsers = carUserMapper.selectList(queryWrapper);\n\n if (!CollectionUtils.isEmpty(carUsers)) {\n // 查询约课记录\n List courseDtos = courseInfoService.queryCourseByCoachIdAndUserId(coach.getCoachId(), carUsers.stream().map(CarUser::getUserId).collect(Collectors.toList()));\n\n // 存放要修改的课程数据\n List courseInfoList = new ArrayList<>();\n\n for (CarUser carUser : carUsers) {\n // 1.计算学车天数\n Date today = RcqtUtils.getDay();\n long days = RcqtUtils.getDaysBetweenDates(carUser.getStartTime(), today);\n if (!Objects.equals(carUser.getStudyTime(), String.valueOf(days))) {\n carUser.setStudyTime(String.valueOf(days));\n }\n\n // 2.计算学车次数(2表示已训练的)\n List userCourseDtos = courseDtos.stream().filter(courseDto -> Objects.equals(courseDto.getUserId(), carUser.getUserId())).collect(Collectors.toList());\n\n for (CourseDto courseDto : userCourseDtos) {\n // 查询周几\n String week = RcqtUtils.getDayOfWeek(DateUtils.getTime(courseDto.getCourseDate()));\n courseDto.setWeek(week);\n\n if (courseDto.getTrainingStatus() != 3) {\n if (courseDto.getCourseDate().after(today)) {\n courseDto.setTrainingStatus(0);\n // 修改数据库状态\n CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());\n courseInfo.setTrainingStatus(0);\n courseInfoList.add(courseInfo);\n } else if (courseDto.getCourseDate().before(today)) {\n courseDto.setTrainingStatus(2);\n // 修改数据库状态\n CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());\n courseInfo.setTrainingStatus(2);\n courseInfoList.add(courseInfo);\n } else if (courseDto.getCourseDate().equals(today)) {\n if (LocalTime.now().isAfter(courseDto.getEndReservationTime().toLocalTime())) {\n courseDto.setTrainingStatus(2);\n // 修改数据库状态\n CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());\n courseInfo.setTrainingStatus(2);\n courseInfoList.add(courseInfo);\n } else if (LocalTime.now().isAfter(courseDto.getStartReservationTime().toLocalTime()) && LocalTime.now().isBefore(courseDto.getEndReservationTime().toLocalTime())) {\n courseDto.setTrainingStatus(1);\n // 修改数据库状态\n CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());\n courseInfo.setTrainingStatus(1);\n courseInfoList.add(courseInfo);\n } else if (LocalTime.now().isBefore(courseDto.getStartReservationTime().toLocalTime())) {\n courseDto.setTrainingStatus(0);\n // 修改数据库状态\n CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());\n courseInfo.setTrainingStatus(0);\n courseInfoList.add(courseInfo);\n }\n }\n }\n }\n\n int count = (int) userCourseDtos.stream().filter(courseDto -> courseDto.getTrainingStatus() == 2).count();\n carUser.setDrivingCount(count);\n }\n\n if (!courseInfoList.isEmpty()) {\n courseInfoService.updateBatchById(courseInfoList);\n }\n\n carUserService.updateBatchById(carUsers);\n }\n\n List carUserList = carUsers.stream()\n .skip((long) (queryRequest.getPageNum() - 1) * queryRequest.getPageSize())\n .limit(queryRequest.getPageSize())\n .toList();\n\n map.put("carUsers", carUserList);\n map.put("total", carUsers.size());\n return map;\n }


原文地址: https://www.cveoy.top/t/topic/p317 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录