天机学堂-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);
    }
}
相关推荐
OxYGC17 分钟前
[AI工程] Spring AI 第十四篇:Agent 五种模式在 2.0 里怎么写
java·spring·ai·ai编程
code2cat18 分钟前
【随笔】从聊天到调用工具:理解MCP在AI应用中的位置
java·人工智能
2501_9339232526 分钟前
Spring Bean作用域揭秘:单例、原型、请求与会话的区别
java·后端·spring·java-ee
学编程就要猛44 分钟前
基于Spring AI 的智能聊天机器人
java·spring ai·chat robot
修炼室1 小时前
Java开发工程师笔试经验贴【高频知识】
java
木井巳1 小时前
【记忆化搜索】最长递增子序列
java·算法·leetcode·深度优先·剪枝·推荐算法
杨杨杨大侠1 小时前
知识库已经有了,Java 程序员还要做什么?Spring AI RAG 实战
java·openai·ai编程
伊信1 小时前
Spring AI 基础学习与应用
java·后端
夜郎king1 小时前
基于 Java + Playwright 实现网站自动访问与数据采集(以腾讯云开发者社区为例)
java·playwright·网页数据获取
Anastasiozzzz1 小时前
重新定义 Agent 基建:Redis 在现代 AI 与智能体系统中的工程实践
java·人工智能·redis·ai