diff --git a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseMergeCourseInfoDao.java b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseMergeCourseInfoDao.java index 0bf59bcb..3f111987 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseMergeCourseInfoDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseMergeCourseInfoDao.java @@ -53,4 +53,13 @@ public interface TeacherOpenCourseMergeCourseInfoDao extends BaseMapper treeLocalCache + private final LoadingCache> treeLocalCache = CacheUtils.buildAsyncReloadingCache(Duration.ofHours(1L), // 过期时间 1 小时 - new CacheLoader() { + new CacheLoader>() { @Override - public TeacherOpenCourseMergeCourseInfoTree load(Long teacherOpenCourseId) { - return teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(teacherOpenCourseId); + public Optional load(Long teacherOpenCourseId) { + return Optional.fromNullable(teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(teacherOpenCourseId)); } }); @@ -468,6 +470,11 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService courseInfoIds, @NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) { + // 查询是否绑定过课程 + boolean notExists = teacherOpenCourseMergeCourseInfoDao.isNotExistsByTeacherOpenCourseId(teacherOpenCourseId); + + Assert.isTrue(notExists, "已绑定过课程,请先重置!"); + // 开启并行处理 courseInfoIds.stream().parallel().forEach(courseInfoId -> { // 当前的课程信息 @@ -557,6 +564,8 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService beansOfType = SpringUtil.getBeansOfType(DeleteResourcesBy.class); // 调用子类实现 beansOfType.forEach((beanName, bean) -> bean.deleteByTeacherOpenCourseId(teacherOpenCourseId)); + // 清理缓存 + invalidateAllCleanUpCourseInfoTreeLocalCache(); } /** @@ -581,7 +590,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService