<p>@PostMapping(&quot;/updateOneUpdateTimeByIDByIsBreak&quot;)
public Result<Object> updateOneUpdateTimeByIDByIsBreak(@RequestBody Map&lt;String, Object&gt; params, HttpServletRequest request) throws ParseException {</p>
<pre><code>//权限验证
String token = (String) request.getAttribute(&quot;claims_coach&quot;);
if (token == null || &quot;&quot;.equals(token)) {
    throw new RuntimeException(&quot;权限不足!&quot;);
}

log.info(&quot;updateOneUpdateTimeByIDByIsBreak报文:&quot; + params);

long coachId = Optional.ofNullable(params.get(&quot;coachId&quot;))
        .map(Object::toString)
        .map(Long::parseLong)
        .orElseThrow(() -&gt; new IllegalArgumentException(&quot;coachId为null&quot;));

Boolean isBreakDate = (Boolean) params.get(&quot;isBreakDate&quot;);
String date = (String) params.get(&quot;date&quot;);

Coach coach = coachService.queryOneCoachByID(coachId);

//转换前端传递日期格式
Date convertedDate = RcqtUtils.getconvertedDate(date);

if (isBreakDate) {
    log.info(&quot;修改当天为休息状态&quot;);
    //查询教练当天对应所有课程信息
    List&lt;UpdateTime&gt; updateTimeList = updateTimeService.queryUpdateTimeByDate(coachId, convertedDate);

    if (!updateTimeList.isEmpty()) {
        List&lt;CourseInfo&gt; courseInfoList = new ArrayList&lt;&gt;();//存放修改的课程对象

        for (UpdateTime updateTime : updateTimeList) {
            List&lt;CourseDto&gt; courseInfos = courseInfoService.queryCourseByUpdateTimeIdByStatus0(updateTime.getUpdateTimeId());

            //存放待训练的课程
            List&lt;CourseDto&gt; courseDtoListByNow = courseInfos.stream()
                    .filter(courseDto0 -&gt; {
                        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(&quot;修改课程状态失败!&quot;);
                    return new Result&lt;&gt;(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(&quot;修改课程状态失败!&quot;);
            return new Result&lt;&gt;(ResultCode.FAIL);
        }
        log.info(&quot;修改成功!&quot;);

        //修改成功后通知短信
        for (CourseDto courseDto : courseInfoList) {
            CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());
            CarUser carUser = carUserService.queryOneCarUserById(courseInfo.getUserId());
            Map&lt;String, String&gt; map = new HashMap&lt;&gt;();
            map.put(&quot;userName&quot;, carUser.getRealName());
            map.put(&quot;coachName&quot;, coach.getCoachName());
            map.put(&quot;date&quot;, DateUtils.getTime(updateTime.getCourseDate()));
            map.put(&quot;time&quot;, RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()));
            map.put(&quot;project&quot;, updateTime.getProjectType());

            boolean c = msgService.noticeByCancelUserCourse(map, carUser.getUserPhone());

            if (!c) {
                log.info(&quot;发送信息失败!&quot;);
                return new Result&lt;&gt;(ResultCode.FAIL);
            }

            System.out.println(&quot;【软件名称】&quot; + carUser.getRealName() + &quot;学员,&quot; + coach.getCoachName() + &quot;教练已取消了您&quot; + DateUtils.getTime(updateTime.getCourseDate()) + RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()) + updateTime.getProjectType() + &quot;的练车,如有变动及时登录系统&quot;);
        }

        boolean b = updateTimeService.updateBatchById(updateTimeList);

        if (b) {
            log.info(&quot;修改成功!&quot;);
            return new Result&lt;&gt;(ResultCode.SUCCESS);
        } else {
            log.info(&quot;修改失败!&quot;);
            return new Result&lt;&gt;(ResultCode.FAIL);
        }
    }
}

return new Result&lt;&gt;(ResultCode.FAIL);
</code></pre>
6确认修改-修改当天休息状态-当前修改时间有预约学员-短信通知学员取消课程 PostMappingupdateOneUpdateTimeByIDByIsBreak public ResultObject updateOneUpdateTimeByIDByIsBreakRequestBody MapString Object params HttpServletRequest reque

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

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