查询学员绑定的教练接口
<p>{/'@GetMapping/':/'///queryCoachesByUserID/',/'public/':/'Result<Object> queryCoachesByUserID(CarUser carUser, HttpServletRequest request) {//n//n //权限验证//n String token = (String) request.getAttribute(/'claims_user/');//n if (StringUtils.isEmpty(token)) {//n throw new RuntimeException(/'权限不足!/');//n }//n//n //调用方法查询出学员//n CarUser carUser0 = carUserService.queryOneCarUserById(carUser.getUserId());//n//n if (carUser0 == null) {//n log.info(/'查不到此学员!/');//n return new Result<>(ResultCode.FAIL);//n }//n//n JSONArray jsonArray = JSONArray.parseArray(carUser0.getCoachId()); //拿出数据库字符串转为json数组//n//n List<Coach> coaches = new ArrayList<>();//n//n for (Object o : jsonArray) {//n //从json数组中拿出的教练id//n long coachId = ((Integer) o).longValue();//n Coach coach = coachService.queryOneCoachByID(coachId);//n coaches.add(coach);//n }//n//n List<CoachDto> coachDtoList = new ArrayList<>();//n//n if (!CollectionUtils.isEmpty(coaches)) {//n for (Coach coach : coaches) {//n //判断教练是否在工作中//n boolean isWorking = isCoachWorking(coach);//n coach.setWorkStatus(isWorking);//n }//n//n boolean b = coachService.updateBatchById(coaches);//n if (!b) {//n log.info(/'修改失败!/');//n return new Result<>(ResultCode.FAIL);//n }//n//n for (Coach coach : coaches) {//n CoachDto coachDto = convertToCoachDto(coach);//n coachDtoList.add(coachDto);//n }//n//n //排序(按照工作状态和姓名排序)//n Comparator<CoachDto> comparator = Comparator.comparing(CoachDto::getWorkStatus, Comparator.reverseOrder())//n .thenComparing((c1, c2) -> Collator.getInstance(Locale.CHINESE).compare(c1.getRealName(), c2.getRealName()));//n//n coachDtoList.sort(comparator);//n }//n//n //把查询到的的对象放入map集合//n Map<String, Object> map = new HashMap<>();//n map.put(/'coaches/', coachDtoList);//n//n //查询到学员传给前端//n log.info(/'查询学员绑定的教练成功!/');//n return new Result<>(ResultCode.SUCCESS, map);//n}//n//nprivate boolean isCoachWorking(Coach coach) {//n //获取当前查询时间//n Date date = RcqtUtils.getDay();//n//n //查询当前教练课程//n List<CourseDto> courseDtoList = courseInfoService.queryCourseByCoachId(coach.getCoachId(), date);//n return courseDtoList.stream()//n .anyMatch(c -> LocalTime.now().isAfter(c.getStartReservationTime().toLocalTime()) && LocalTime.now().isBefore(c.getEndReservationTime().toLocalTime()));//n}//n//nprivate CoachDto convertToCoachDto(Coach coach) {//n CoachDto coachDto = new CoachDto();//n BeanUtils.copyProperties(coach, coachDto);//n DrivingSchool drivingSchool = drivingSchoolService.getById(coach.getDrivingSchoolId());//n//n if (drivingSchool != null) {//n coachDto.setDrivingSchoolName(drivingSchool.getDrivingSchoolName());//n coachDto.setAddress1(drivingSchool.getAddress1());//n coachDto.setAddress2(drivingSchool.getAddress2());//n coachDto.setAddress3(drivingSchool.getAddress3());//n//n //获得此车辆的地址经纬度//n if (!StringUtils.isEmpty(drivingSchool.getAddress3())) {//n List<String> addressList = tengXunMapService.getLongitudeAndLatitudeByAddress(drivingSchool.getAddress3());//n if (!CollectionUtils.isEmpty(addressList)) {//n coachDto.setLongitude(addressList.get(0));//n coachDto.setLatitude(addressList.get(1));//n }//n }//n }//n//n if (coach.getServeDate() != null) {//n LocalDate localDate1 = coach.getServeDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();//n LocalDate localDate2 = RcqtUtils.getDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();//n //计算驾龄//n int years = Period.between(localDate1, localDate2).getYears();//n coachDto.setDrivingYear(years + /'年/');//n }//n//n return coachDto;//n}/</p>
原文地址: https://www.cveoy.top/t/topic/p7R5 著作权归作者所有。请勿转载和采集!