修改教练休息状态并取消当天预约课程
<p>"@PostMapping("/updateOneUpdateTimeByIDByIsBreak")\npublic Result<Object> updateOneUpdateTimeByIDByIsBreak(@RequestBody Map<String, Object> params, HttpServletRequest request) throws ParseException {\n\n //权限验证\n String token = (String) request.getAttribute("claims_coach");\n if (token == null || "".equals(token)) {\n throw new RuntimeException("权限不足!");\n }\n\n log.info("updateOneUpdateTimeByIDByIsBreak报文:" + params);\n\n long coachId = Optional.ofNullable(params.get("coachId"))\n .map(Object::toString)\n .map(Long::parseLong)\n .orElseThrow(() -> new IllegalArgumentException("coachId为null"));\n\n Boolean isBreakDate = (Boolean) params.get("isBreakDate");\n String date = (String) params.get("date");\n\n Coach coach = coachService.queryOneCoachByID(coachId);\n\n //转换前端传递日期格式\n Date convertedDate = RcqtUtils.getconvertedDate(date);\n\n if (isBreakDate) {\n log.info("修改当天为休息状态");\n //查询教练当天对应所有课程信息\n List<UpdateTime> updateTimeList = updateTimeService.queryUpdateTimeByDate(coachId, convertedDate);\n\n if (!updateTimeList.isEmpty()) {\n List<CourseInfo> courseInfoList = new ArrayList<>();//存放修改的课程对象\n\n for (UpdateTime updateTime : updateTimeList) {\n List<CourseDto> courseInfos = courseInfoService.queryCourseByUpdateTimeIdByStatus0(updateTime.getUpdateTimeId());\n\n //存放待训练的课程\n List<CourseDto> courseDtoListByNow = courseInfos.stream()\n .filter(courseDto0 -> {\n if (courseDto0.getCourseDate().equals(RcqtUtils.getDay())) {\n return LocalTime.now().isBefore(courseDto0.getStartReservationTime().toLocalTime());\n } else {\n return courseDto0.getCourseDate().after(RcqtUtils.getDay());\n }\n })\n .collect(Collectors.toList());\n\n //当前有待训练的课程\n if (!courseDtoListByNow.isEmpty()) {\n updateTime.setIsBreakDate(true);\n\n boolean a = updateTimeService.updateBatchById(Collections.singletonList(updateTime));\n\n if (!a) {\n log.info("修改课程状态失败!");\n return new Result<>(ResultCode.FAIL);\n }\n\n for (CourseDto courseDto : courseDtoListByNow) {\n //修改状态为已取消\n CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());\n courseInfo.setTrainingStatus(3);\n courseInfoList.add(courseInfo);\n updateTime.setCurrentReservation(updateTime.getCurrentReservation() - 1);\n }\n }\n }\n\n boolean b = courseInfoService.updateBatchById(courseInfoList);\n\n if (!b) {\n log.info("修改课程状态失败!");\n return new Result<>(ResultCode.FAIL);\n }\n log.info("修改成功!");\n\n //修改成功后通知短信\n for (CourseDto courseDto : courseInfoList) {\n CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());\n CarUser carUser = carUserService.queryOneCarUserById(courseInfo.getUserId());\n Map<String, String> map = new HashMap<>();\n map.put("userName", carUser.getRealName());\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.noticeByCancelUserCourse(map, carUser.getUserPhone());\n\n if (!c) {\n log.info("发送信息失败!");\n return new Result<>(ResultCode.FAIL);\n }\n\n System.out.println("【软件名称】" + carUser.getRealName() + "学员," + coach.getCoachName() + "教练已取消了您" + DateUtils.getTime(updateTime.getCourseDate()) + RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()) + updateTime.getProjectType() + "的练车,如有变动及时登录系统");\n }\n\n boolean b = updateTimeService.updateBatchById(updateTimeList);\n\n if (b) {\n log.info("修改成功!");\n return new Result<>(ResultCode.SUCCESS);\n } else {\n log.info("修改失败!");\n return new Result<>(ResultCode.FAIL);\n }\n }\n }\n\n return new Result<>(ResultCode.FAIL);\n}\n</p>
原文地址: https://www.cveoy.top/t/topic/p4mK 著作权归作者所有。请勿转载和采集!