用户预约课程接口
<p>///'@PostMapping//(///'/orderCourseByUser///'//)//npublic Result<Object> orderCourseByUser(//@RequestBody Map<String, Object> params, HttpServletRequest request) {//n // 权限验证//n String token = (String) request.getAttribute(///'claims_user///');//n if (token == null || ///'///'.equals(token)) {//n throw new RuntimeException(///'权限不足!///');//n }//n//n log.info(///'orderCourseByCoach请求报文:///' + params);//n//n // 前端传递参数//n long updateTimeId = Long.parseLong(params.get(///'updateTimeId///').toString());//n long userId = Long.parseLong(params.get(///'userId///').toString());//n//n CourseInfo courseInfo0 = courseInfoService.queryCourseByUpdateTimeIdAndUserId(updateTimeId, userId);//n//n if (courseInfo0 != null && courseInfo0.getTrainingStatus() != 3) {//n log.info(///'请勿重复预约!///');//n return new Result<>(ResultCode.IS_ORDERED);//n }//n//n CarUser carUser = carUserService.queryOneCarUserById(userId);//n // 查询当前课程信息//n UpdateTime updateTime = updateTimeService.getById(updateTimeId);//n // 查询课程教练信息//n Coach coach = coachService.queryOneCoachByID(updateTime.getCoachId());//n//n if (updateTime.getIsUpdate() != null && updateTime.getIsUpdate() == 1) {//n log.info(///'教练正在修改数据,无法预约!///');//n return new Result<>(ResultCode.CAN_NOT_ORDER);//n }//n//n // 查询此updateTimeId所有约课情况//n List<CourseInfo> courseInfos = courseInfoService.queryCourseByUpdateTimeId(updateTimeId);//n // 存放当前所有预约的学员//n List<CarUser> currentCarUsers = courseInfos.stream().map(courseInfo -> carUserService.queryOneCarUserById(courseInfo.getUserId())).toList();//n//n if (currentCarUsers.stream().anyMatch(carUser1 -> Objects.equals(userId, carUser1.getUserId()))) {//n log.info(///'你已预约该时间段///');//n return new Result<>(ResultCode.ALREADY_ORDER);//n }//n//n if (currentCarUsers.size() == updateTime.getMaxReservation()) {//n log.info(///'该时间段已约满,请选择其他时间段///');//n return new Result<>(ResultCode.ALREADY_ORDER_FULL);//n }//n//n Date today = RcqtUtils.getDay();//n if (updateTime.getCourseDate().before(today) || (updateTime.getCourseDate().equals(today) && LocalTime.now().isAfter(updateTime.getStartReservationTime().toLocalTime()))) {//n log.info(///'该时间段已过期,请选择其他时间段///');//n return new Result<>(ResultCode.TIME_OUT);//n }//n//n // 给课程表添加新课程//n CourseInfo courseInfo = new CourseInfo();//n courseInfo.setUpdateTimeId(updateTimeId);//n courseInfo.setUserId(userId);//n courseInfo.setTrainingStatus(0);// 新增预约时训练状态默认待训练//n//n courseInfo.setProjectTypeByUser(updateTime.getProjectType());//n courseInfo.setCourseDateByUser(updateTime.getCourseDate());//n courseInfo.setStartReservationTimeByUser(updateTime.getStartReservationTime());//n courseInfo.setEndReservationTimeByUser(updateTime.getEndReservationTime());//n//n courseInfo.setSubmitTime(new Date());//n//n boolean b = courseInfoService.save(courseInfo);//n//n if (b) {//n log.info(///'新增成功!///');//n // 通知教练//n CompletableFuture.runAsync(() -> {//n try {//n Map<String, String> map = new HashMap<>();//n map.put(///'coachName///', coach.getRealName());//n map.put(///'userName///', carUser.getRealName());//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 boolean c = msgService.noticeByOrderUserCourseByUser(map, coach.getCoachPhone());//n//n if (!c) {//n log.info(///'发送信息失败!///');//n }//n System.out.println(///'【软件名称】///' + coach.getRealName() + ///'教练,///' + carUser.getRealName() + ///'学员预约了您///' + DateUtils.getTime(updateTime.getCourseDate()) +///' ///' + RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()) +///' ///' + updateTime.getProjectType() + ///'的练车,如有变动及时登录系统。///');//n } catch (Exception e) {//n log.error(///'发送信息失败!///', e);//n }//n });//n//n return new Result<>(ResultCode.SUCCESS);//n } else {//n log.info(///'新增失败!!///');//n return new Result<>(ResultCode.FAIL);//n }//n}//n///</p>
原文地址: https://www.cveoy.top/t/topic/p9Zc 著作权归作者所有。请勿转载和采集!