<p>///'@PostMapping//(///'/orderCourseByUser///'//)//npublic Result<Object> orderCourseByUser(//@RequestBody Map&lt;String, Object&gt; 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 &amp;&amp; courseInfo0.getTrainingStatus() != 3) {//n        log.info(///'请勿重复预约!///');//n        return new Result&lt;&gt;(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 &amp;&amp; updateTime.getIsUpdate() == 1) {//n        log.info(///'教练正在修改数据,无法预约!///');//n        return new Result&lt;&gt;(ResultCode.CAN_NOT_ORDER);//n    }//n//n    // 查询此updateTimeId所有约课情况//n    List<CourseInfo> courseInfos = courseInfoService.queryCourseByUpdateTimeId(updateTimeId);//n    // 存放当前所有预约的学员//n    List<CarUser> currentCarUsers = courseInfos.stream().map(courseInfo -&gt; carUserService.queryOneCarUserById(courseInfo.getUserId())).toList();//n//n    if (currentCarUsers.stream().anyMatch(carUser1 -&gt; Objects.equals(userId, carUser1.getUserId()))) {//n        log.info(///'你已预约该时间段///');//n        return new Result&lt;&gt;(ResultCode.ALREADY_ORDER);//n    }//n//n    if (currentCarUsers.size() == updateTime.getMaxReservation()) {//n        log.info(///'该时间段已约满,请选择其他时间段///');//n        return new Result&lt;&gt;(ResultCode.ALREADY_ORDER_FULL);//n    }//n//n    Date today = RcqtUtils.getDay();//n    if (updateTime.getCourseDate().before(today) || (updateTime.getCourseDate().equals(today) &amp;&amp; LocalTime.now().isAfter(updateTime.getStartReservationTime().toLocalTime()))) {//n        log.info(///'该时间段已过期,请选择其他时间段///');//n        return new Result&lt;&gt;(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(() -&gt; {//n            try {//n                Map&lt;String, String&gt; map = new HashMap&lt;&gt;();//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&lt;&gt;(ResultCode.SUCCESS);//n    } else {//n        log.info(///'新增失败!!///');//n        return new Result&lt;&gt;(ResultCode.FAIL);//n    }//n}//n///</p>
用户预约课程接口

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

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