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