目录
文章目录
前言
本文章使用的是《天机学堂》开源的资料,并从创建虚拟机开始部署《天机学堂项目》,避免还要下载资料中的20GB虚拟机 ,只需要下载镜像以及其他基础资料即可,请大家放心食用
注意:若是还不可以启动项目的可以先看上一篇:《天机学堂-自定义部署详细流程(部署篇:初始化项目、启动)》
因为课程中基本上将代码讲了,这里就不放上来了,只做一些我在课堂上所遇到的
TIP
一、课程讲解小TIP
1、为什么视频播放不了?
- 我们需要讲
tj-exam服务因为这个服务便是播放视频的服务
- 课程
tj-course表中的过期日期也修改一下:
2、为什么视频播放时,并没有下发请求?
这里我当时遇到这个
BUG时重启一下服务就可以了,若是还不可以大家可以在评论区内讨论一下
3、为什么免费课程播放视频显示无权限?
这里大家可以找到免费的视频
id
二、作业
编写一个SpringTask定时任务,定期检查learning_lesson表中的课程是否过期,如果过期则将课程状态修改为已过期。
创建
task文件,用来存放task任务:
java
@Component
@Slf4j
@RequiredArgsConstructor
public class LearningLessonExpiredTask {
private final LearningLessonMapper lessonMapper;
@Scheduled(cron = "0 0 0 * * ?") // 每天00:00:00执行
public void checkAndUpdateExpiredLesson(){
//1.构造更新条件
LambdaUpdateWrapper<LearningLesson> updateWrapper=new LambdaUpdateWrapper<>();
LocalDateTime now = LocalDateTime.now();
//2.已过期且状态为未过期,设置状态为过期
updateWrapper
.set(LearningLesson::getStatus, LessonStatus.EXPIRED)//设置状态为过期
.le(LearningLesson::getExpireTime,now)//逻辑过期时间小于当前时间
.ne(LearningLesson::getStatus, LessonStatus.EXPIRED);//状态为未过期
int updateCount = lessonMapper.update(null, updateWrapper);//记录更新条数
// 3. 记录日志
log.info("课程过期定时任务执行完成:共更新{}个课程为"已过期"状态", updateCount);
}
}





