<p>&quot;@PostMapping(&quot;/updateOneUpdateTimeByIDByIsBreak&quot;)\npublic Result<Object> updateOneUpdateTimeByIDByIsBreak(@RequestBody Map&lt;String, Object&gt; params, HttpServletRequest request) throws ParseException {\n\n    //权限验证\n    String token = (String) request.getAttribute(&quot;claims_coach&quot;);\n    if (token == null || &quot;&quot;.equals(token)) {\n        throw new RuntimeException(&quot;权限不足!&quot;);\n    }\n\n    log.info(&quot;updateOneUpdateTimeByIDByIsBreak报文:&quot; + params);\n\n    long coachId = Optional.ofNullable(params.get(&quot;coachId&quot;))\n            .map(Object::toString)\n            .map(Long::parseLong)\n            .orElseThrow(() -&gt; new IllegalArgumentException(&quot;coachId为null&quot;));\n\n    Boolean isBreakDate = (Boolean) params.get(&quot;isBreakDate&quot;);\n    String date = (String) params.get(&quot;date&quot;);\n\n    Coach coach = coachService.queryOneCoachByID(coachId);\n\n    //转换前端传递日期格式\n    Date convertedDate = RcqtUtils.getconvertedDate(date);\n\n    if (isBreakDate) {\n        log.info(&quot;修改当天为休息状态&quot;);\n        //查询教练当天对应所有课程信息\n        List<UpdateTime> updateTimeList = updateTimeService.queryUpdateTimeByDate(coachId, convertedDate);\n\n        if (!updateTimeList.isEmpty()) {\n            List<CourseInfo> courseInfoList = new ArrayList&lt;&gt;();//存放修改的课程对象\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 -&gt; {\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(&quot;修改课程状态失败!&quot;);\n                        return new Result&lt;&gt;(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(&quot;修改课程状态失败!&quot;);\n                return new Result&lt;&gt;(ResultCode.FAIL);\n            }\n            log.info(&quot;修改成功!&quot;);\n\n            //修改成功后通知短信\n            for (CourseDto courseDto : courseInfoList) {\n                CourseInfo courseInfo = courseInfoService.getById(courseDto.getCourseId());\n                CarUser carUser = carUserService.queryOneCarUserById(courseInfo.getUserId());\n                Map&lt;String, String&gt; map = new HashMap&lt;&gt;();\n                map.put(&quot;userName&quot;, carUser.getRealName());\n                map.put(&quot;coachName&quot;, coach.getCoachName());\n                map.put(&quot;date&quot;, DateUtils.getTime(updateTime.getCourseDate()));\n                map.put(&quot;time&quot;, RcqtUtils.getStrTime(updateTime.getStartReservationTime(), updateTime.getEndReservationTime()));\n                map.put(&quot;project&quot;, updateTime.getProjectType());\n\n                boolean c = msgService.noticeByCancelUserCourse(map, carUser.getUserPhone());\n\n                if (!c) {\n                    log.info(&quot;发送信息失败!&quot;);\n                    return new Result&lt;&gt;(ResultCode.FAIL);\n                }\n\n                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;);\n            }\n\n            boolean b = updateTimeService.updateBatchById(updateTimeList);\n\n            if (b) {\n                log.info(&quot;修改成功!&quot;);\n                return new Result&lt;&gt;(ResultCode.SUCCESS);\n            } else {\n                log.info(&quot;修改失败!&quot;);\n                return new Result&lt;&gt;(ResultCode.FAIL);\n            }\n        }\n    }\n\n    return new Result&lt;&gt;(ResultCode.FAIL);\n}\n</p>

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

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