<p>///'@GetMapping//(///'/queryCoachesByUserID///'//)//npublic 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//n        JSONArray jsonArray = JSONArray.parseArray(carUser0.getCoachId()); //拿出数据库字符串转为json数组//n//n        List<Coach> coaches = new ArrayList&lt;&gt;();//n//n        for (Object o : jsonArray) {//n            //从json数组中拿出的教练id//n            long coachId = ((Integer) o).longValue();//n//n            Coach coach = coachService.queryOneCoachByID(coachId);//n//n            coaches.add(coach);//n        }//n//n        List<CoachDto> coachDtoList = new ArrayList&lt;&gt;();//n//n        if (!CollectionUtils.isEmpty(coaches)) {//n            LocalDate currentDate = RcqtUtils.getDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();//n//n            for (Coach coach : coaches) {//n                CoachDto coachDto = new CoachDto();//n                BeanUtils.copyProperties(coach, coachDto);//n//n                //判断教练是否在工作中//n                //1.获取当前查询时间//n                LocalTime currentTime = LocalTime.now();//n//n                //2.查询当前教练课程//n                //判断教练的工作状态(true工作中/false休息中)//n                List<CourseDto> courseDtoList = courseInfoService.queryCourseByCoachId(coach.getCoachId(), RcqtUtils.getDay());//n                boolean isWorking = courseDtoList.stream()//n                        .anyMatch(c -&gt; currentTime.isAfter(c.getStartReservationTime().toLocalTime()) &amp;&amp; currentTime.isBefore(c.getEndReservationTime().toLocalTime()));//n//n                coachDto.setWorkStatus(isWorking);//n//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                    String address3 = drivingSchool.getAddress3();//n                    if (!StringUtils.isEmpty(address3)) {//n                        List<String> addressList = tengXunMapService.getLongitudeAndLatitudeByAddress(address3);//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 serveDate = coach.getServeDate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();//n                    //计算驾龄//n                    int years = RcqtUtils.calculateYears(serveDate, currentDate);//n                    coachDto.setDrivingYear(years + ///'年///');//n                }//n//n                coachDtoList.add(coachDto);//n            }//n//n            //排序(按照工作状态和姓名排序)//n            Comparator<CoachDto> comparator = Comparator.comparing(CoachDto::getWorkStatus, Comparator.reverseOrder())//n                    .thenComparing((c1, c2) -&gt; Collator.getInstance(Locale.CHINESE).compare(c1.getRealName(), c2.getRealName()));//n//n            coachDtoList.sort(comparator);//n        }//n//n        //把查询到的的对象放入map集合//n        Map&lt;String, Object&gt; map = new HashMap&lt;&gt;();//n        map.put(///'coaches///', coachDtoList);//n//n        //查询到学员传给前端//n        log.info(///'查询学员绑定的教练成功!///');//n        return new Result&lt;&gt;(ResultCode.SUCCESS, map);//n    } else {//n        log.info(///'查不到此学员!///');//n        return new Result&lt;&gt;(ResultCode.FAIL);//n    }//n}//n/</p>
查询学员绑定的教练信息 API -  /queryCoachesByUserID

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

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