<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&lt;&gt;(ResultCode.FAIL);//n    }//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        Coach coach = coachService.queryOneCoachByID(coachId);//n        coaches.add(coach);//n    }//n//n    List<CoachDto> coachDtoList = new ArrayList&lt;&gt;();//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&lt;&gt;(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) -&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}//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 -&gt; LocalTime.now().isAfter(c.getStartReservationTime().toLocalTime()) &amp;&amp; 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 著作权归作者所有。请勿转载和采集!

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