<p>///'@PostMapping(///'/orderCourseByCoach///')//npublic Result<Object> orderCourseByCoach(@RequestBody Map&lt;String, Object&gt; params, HttpServletRequest request) {//n    //权限验证//n    String token = (String) request.getAttribute(///'claims_coach///');//n    if (StringUtils.isEmpty(token)) {//n        throw new RuntimeException(///'权限不足!///');//n    }//n//n    log.info(///'orderCourseByCoach请求报文:///' + params);//n//n    //解析前端传递参数//n    Long updateTimeId = Optional.ofNullable(params.get(///'updateTimeId///'))//n            .map(String::valueOf)//n            .map(Long::parseLong)//n            .orElseThrow(() -&gt; new RuntimeException(///'updateTimeId为null///'));//n//n    JSONArray jsonArray = Optional.ofNullable((JSONArray) params.get(///'carUser///'))//n            .orElseThrow(() -&gt; new RuntimeException(///'carUser为null///'));//n//n    List<Long> carUsers = jsonArray.toJavaList(Long.class);//n    log.info(///'通过前端传递拿到carUser为:///' + carUsers);//n//n    //查询当前课程信息//n    UpdateTime updateTime = updateTimeService.getById(updateTimeId);//n//n    if (updateTime.getCourseDate().before(RcqtUtils.getDay()) &amp;&amp; !updateTime.getCourseDate().equals(RcqtUtils.getDay())) {//n        log.info(///'课程过期,无法预约!///');//n        return new Result&lt;&gt;(ResultCode.COURSE_DATE_OUT);//n    } else if (updateTime.getCourseDate().equals(RcqtUtils.getDay()) &amp;&amp; LocalTime.now().isAfter(updateTime.getStartReservationTime().toLocalTime())) {//n        log.info(///'课程过期,无法预约!///');//n        return new Result&lt;&gt;(ResultCode.COURSE_DATE_OUT);//n    }//n//n    //查询课程教练信息//n    Coach coach = coachService.queryOneCoachByID(updateTime.getCoachId());//n//n    List<CourseInfo> courseInfoList = carUsers.stream().map(id -&gt; {//n        CourseInfo courseInfo = new CourseInfo();//n        courseInfo.setUserId(id);//n        courseInfo.setTrainingStatus(0);//训练状态为待训练//n        courseInfo.setUpdateTimeId(updateTimeId);//n        //存放一份课程数据给学员//n        courseInfo.setProjectTypeByUser(updateTime.getProjectType());//n        courseInfo.setCourseDateByUser(updateTime.getCourseDate());//n        courseInfo.setStartReservationTimeByUser(updateTime.getStartReservationTime());//n        courseInfo.setEndReservationTimeByUser(updateTime.getEndReservationTime());//n        courseInfo.setSubmitTime(new Date());//预约的时间//n        return courseInfo;//n    }).collect(Collectors.toList());//n//n    if (!CollectionUtils.isEmpty(courseInfoList) &amp;&amp; !courseInfoService.saveBatch(courseInfoList)) {//n        log.info(///'新增失败!!///');//n        return new Result&lt;&gt;(ResultCode.FAIL);//n    }//n//n    log.info(///'成功!///');//n    int count = updateTime.getCurrentReservation() + courseInfoList.size();//存放目前预约人数//n    log.info(///'当前预约人数:///' + count);//n//n    //修改当前预约人数//n    updateTime.setCurrentReservation(count);//n//n    int a = updateTimeService.updateOneUpdateTimeByID(updateTime);//n//n    if (a &lt; 0) {//n        log.info(///'修改当前预约人数失败!///');//n        return new Result&lt;&gt;(ResultCode.FAIL);//n    }//n//n    if (count &gt; updateTime.getMaxReservation()) {//n        log.info(///'当前预约人数大于以前设置的最大预约人数///');//n        //修改当前最大预约人数//n        updateTime.setMaxReservation(count);//n//n        int ret = updateTimeService.updateOneUpdateTimeByID(updateTime);//n//n        if (ret &gt; 0) {//n            log.info(///'修改成功!给所有约课学员发送短信!///');//n//n            //通知学员//n            for (Long id : carUsers) {//n                CarUser carUser1 = carUserService.queryOneCarUserById(id);//n//n                Map&lt;String, String&gt; map = new HashMap&lt;&gt;();//n                map.put(///'coachName///', coach.getCoachName());//n                map.put(///'date///', DateUtils.getTime(updateTime.getCourseDate()));//n                map.put(///'time///', RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()));//n                map.put(///'project///', updateTime.getProjectType());//n//n                boolean c = msgService.noticeByOrderUserCourse(map, carUser1.getUserPhone());//n//n                if (!c) {//n                    log.info(///'发送信息失败!///');//n                    return new Result&lt;&gt;(ResultCode.FAIL);//n                }//n//n                System.out.println(///'【软件名称】您的教练 ///' + coach.getRealName() + ///' 帮您已预约 ///' + DateUtils.getTime(updateTime.getCourseDate()) + ///' ///' + RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()) + ///' ///' + updateTime.getProjectType() + ///' 的练车,请准时前往驾校练车,如有变动及时登录系统。///');//n            }//n//n            return new Result&lt;&gt;(ResultCode.SUCCESS);//n        } else {//n            log.info(///'修改失败!///');//n            return new Result&lt;&gt;(ResultCode.FAIL);//n        }//n//n    } else {//n        log.info(///'当前预约人数小于等于以前设置预约人数!给所有约课学员发送短信!///');//n//n        for (Long id : carUsers) {//n            CarUser carUser1 = carUserService.queryOneCarUserById(id);//n//n            Map&lt;String, String&gt; map = new HashMap&lt;&gt;();//n            map.put(///'coachName///', coach.getCoachName());//n            map.put(///'date///', DateUtils.getTime(updateTime.getCourseDate()));//n            map.put(///'time///', RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()));//n            map.put(///'project///', updateTime.getProjectType());//n//n            boolean c = msgService.noticeByOrderUserCourse(map, carUser1.getUserPhone());//n//n            if (!c) {//n                log.info(///'发送信息失败!///');//n                return new Result&lt;&gt;(ResultCode.FAIL);//n            }//n//n            System.out.println(///'【软件名称】您的教练 ///' + coach.getRealName() + ///' 帮您已预约 ///' + DateUtils.getTime(updateTime.getCourseDate()) + ///' ///' + RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()) + ///' ///' + updateTime.getProjectType() + ///' 的练车,请准时前往驾校练车,如有变动及时登录系统。///');//n        }//n//n        return new Result&lt;&gt;(ResultCode.SUCCESS);//n    }//n}//n/</p>
教练帮学员预约练车 - API 接口

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

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