天机学堂-day3(学习计划和进度)

目录


文章目录


前言

本文章使用的是《天机学堂》开源的资料,并从创建虚拟机开始部署《天机学堂项目》,避免还要下载资料中的20GB虚拟机 ,只需要下载镜像以及其他基础资料即可,请大家放心食用

注意:若是还不可以启动项目的可以先看上一篇:天机学堂-自定义部署详细流程(部署篇:初始化项目、启动)

上一篇:《天机学堂------day2(我的课表)》


因为课程中基本上将代码讲了,这里就不放上来了,只做一些我在课堂上所遇到的TIP

一、课程讲解小TIP

1、为什么视频播放不了?

  1. 我们需要讲tj-exam服务因为这个服务便是播放视频的服务
  2. 课程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);
    }
}
相关推荐
二哈赛车手4 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
栗子~~5 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8295 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
未若君雅裁6 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手7 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记7 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI7 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
辰海Coding8 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
小小编程路9 小时前
C++ 多线程与并发
java·jvm·c++
AI视觉网奇9 小时前
linux 检索库 判断库是否支持
java·linux·服务器