导入课程验证

beetlsql3-dev
Mlxa0324 2 years ago
parent 9eb350103b
commit 0300fcb461

@ -53,4 +53,13 @@ public interface TeacherOpenCourseMergeCourseInfoDao extends BaseMapper<TeacherO
* @return
*/
TeacherOpenCourseMergeCourseInfo getTreeLocalCacheByTeacherOpenCourseId(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId);
/**
* ID
*
*
* @param teacherOpenCourseId
* @return
*/
boolean isNotExistsByTeacherOpenCourseId(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId);
}

@ -3,6 +3,7 @@ package com.ibeetl.jlw.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.stream.CollectorUtil;
import cn.hutool.core.util.ObjectUtil;
@ -10,6 +11,7 @@ import cn.hutool.extra.spring.SpringUtil;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Optional;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.ibeetl.admin.core.entity.CoreUser;
@ -88,12 +90,12 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
/**
* {@link #getTreeLocalCacheByTeacherOpenCourseId}
*/
private final LoadingCache<Long, TeacherOpenCourseMergeCourseInfoTree> treeLocalCache
private final LoadingCache<Long, Optional<TeacherOpenCourseMergeCourseInfoTree>> treeLocalCache
= CacheUtils.buildAsyncReloadingCache(Duration.ofHours(1L), // 过期时间 1 小时
new CacheLoader<Long, TeacherOpenCourseMergeCourseInfoTree>() {
new CacheLoader<Long, Optional<TeacherOpenCourseMergeCourseInfoTree>>() {
@Override
public TeacherOpenCourseMergeCourseInfoTree load(Long teacherOpenCourseId) {
return teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(teacherOpenCourseId);
public Optional<TeacherOpenCourseMergeCourseInfoTree> load(Long teacherOpenCourseId) {
return Optional.fromNullable(teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(teacherOpenCourseId));
}
});
@ -468,6 +470,11 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
public void copyFromCourseInfo(@NotEmpty(message = "系统课程ID不能为空") Set<Long> 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<Tea
Map<String, DeleteResourcesBy> beansOfType = SpringUtil.getBeansOfType(DeleteResourcesBy.class);
// 调用子类实现
beansOfType.forEach((beanName, bean) -> bean.deleteByTeacherOpenCourseId(teacherOpenCourseId));
// 清理缓存
invalidateAllCleanUpCourseInfoTreeLocalCache();
}
/**
@ -581,7 +590,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
*/
public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId(
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
return treeLocalCache.getUnchecked(teacherOpenCourseId);
return treeLocalCache.getUnchecked(teacherOpenCourseId).orNull();
}
/**

@ -813,7 +813,7 @@ getExcelValues
getValueByTeacherOpenCourseId
===
* 根据开课课程章节小节ID
* 根据开课ID查询列表
select *
from teacher_open_course_merge_course_info t
@ -823,6 +823,18 @@ getValueByTeacherOpenCourseId
and t.course_info_parent_id is null
limit 1
isNotExistsByTeacherOpenCourseId
===
* 通过开课ID查询是否已经绑定过课程
select count(1) = 0
from teacher_open_course_merge_course_info t
where 1 = 1
and t.teacher_open_course_id = #teacherOpenCourseId#
and t.course_info_status = 1
limit 1
getTreeLocalCacheByTeacherOpenCourseId
===
* 根据开课课程章节小节ID

Loading…
Cancel
Save