导入课程验证

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

@ -53,4 +53,13 @@ public interface TeacherOpenCourseMergeCourseInfoDao extends BaseMapper<TeacherO
* @return * @return
*/ */
TeacherOpenCourseMergeCourseInfo getTreeLocalCacheByTeacherOpenCourseId(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId); 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.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.stream.CollectorUtil; import cn.hutool.core.stream.CollectorUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
@ -10,6 +11,7 @@ import cn.hutool.extra.spring.SpringUtil;
import cn.jlw.util.ToolUtils; import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Optional;
import com.google.common.cache.CacheLoader; import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache; import com.google.common.cache.LoadingCache;
import com.ibeetl.admin.core.entity.CoreUser; import com.ibeetl.admin.core.entity.CoreUser;
@ -88,12 +90,12 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
/** /**
* {@link #getTreeLocalCacheByTeacherOpenCourseId} * {@link #getTreeLocalCacheByTeacherOpenCourseId}
*/ */
private final LoadingCache<Long, TeacherOpenCourseMergeCourseInfoTree> treeLocalCache private final LoadingCache<Long, Optional<TeacherOpenCourseMergeCourseInfoTree>> treeLocalCache
= CacheUtils.buildAsyncReloadingCache(Duration.ofHours(1L), // 过期时间 1 小时 = CacheUtils.buildAsyncReloadingCache(Duration.ofHours(1L), // 过期时间 1 小时
new CacheLoader<Long, TeacherOpenCourseMergeCourseInfoTree>() { new CacheLoader<Long, Optional<TeacherOpenCourseMergeCourseInfoTree>>() {
@Override @Override
public TeacherOpenCourseMergeCourseInfoTree load(Long teacherOpenCourseId) { public Optional<TeacherOpenCourseMergeCourseInfoTree> load(Long teacherOpenCourseId) {
return teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(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, public void copyFromCourseInfo(@NotEmpty(message = "系统课程ID不能为空") Set<Long> courseInfoIds,
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) { @NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
// 查询是否绑定过课程
boolean notExists = teacherOpenCourseMergeCourseInfoDao.isNotExistsByTeacherOpenCourseId(teacherOpenCourseId);
Assert.isTrue(notExists, "已绑定过课程,请先重置!");
// 开启并行处理 // 开启并行处理
courseInfoIds.stream().parallel().forEach(courseInfoId -> { courseInfoIds.stream().parallel().forEach(courseInfoId -> {
// 当前的课程信息 // 当前的课程信息
@ -557,6 +564,8 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
Map<String, DeleteResourcesBy> beansOfType = SpringUtil.getBeansOfType(DeleteResourcesBy.class); Map<String, DeleteResourcesBy> beansOfType = SpringUtil.getBeansOfType(DeleteResourcesBy.class);
// 调用子类实现 // 调用子类实现
beansOfType.forEach((beanName, bean) -> bean.deleteByTeacherOpenCourseId(teacherOpenCourseId)); beansOfType.forEach((beanName, bean) -> bean.deleteByTeacherOpenCourseId(teacherOpenCourseId));
// 清理缓存
invalidateAllCleanUpCourseInfoTreeLocalCache();
} }
/** /**
@ -581,7 +590,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
*/ */
public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId( public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId(
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) { @NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
return treeLocalCache.getUnchecked(teacherOpenCourseId); return treeLocalCache.getUnchecked(teacherOpenCourseId).orNull();
} }
/** /**

@ -813,7 +813,7 @@ getExcelValues
getValueByTeacherOpenCourseId getValueByTeacherOpenCourseId
=== ===
* 根据开课课程章节小节ID * 根据开课ID查询列表
select * select *
from teacher_open_course_merge_course_info t from teacher_open_course_merge_course_info t
@ -823,6 +823,18 @@ getValueByTeacherOpenCourseId
and t.course_info_parent_id is null and t.course_info_parent_id is null
limit 1 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 getTreeLocalCacheByTeacherOpenCourseId
=== ===
* 根据开课课程章节小节ID * 根据开课课程章节小节ID

Loading…
Cancel
Save