beetlsql3-dev
Mlxa0324 2 years ago
parent 0fbec5dc3f
commit 7e08d2b82d

@ -88,4 +88,17 @@ public interface TeacherOpenCourseMergeCourseInfoDao extends BaseMapper<TeacherO
*/
@Update
void deleteMergeCourseInfoByTeacherOpenCourseIds(String teacherOpenCourseIds);
/**
* ID
* @param teacherOpenCourseId
* @return
*/
@Cacheable(value = "teacherOpenCourseMergeCourseInfoDao.getCourseInfoNodeByTeacherOpenCourseId", unless = "#result != null")
default TeacherOpenCourseMergeCourseInfo getCourseInfoNodeByTeacherOpenCourseId(@NotNull Long teacherOpenCourseId) {
return createLambdaQuery().andEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseId, teacherOpenCourseId)
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
.andIsNull(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId)
.unique();
}
}

@ -161,9 +161,9 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
for (String id : ids.split(",")) {
List<TeacherOpenCourseMergeCourseInfo> courseResources = getCourseResources(Long.valueOf(id));
// TODO 这里要优化
List<TeacherOpenCourseMergeCourseInfo> courseResources2 = getCourseResourcesByList(Long.valueOf(id));
int a = 1/0;
// List<TeacherOpenCourseMergeCourseInfo> courseResources2 = getCourseResourcesByList(Long.valueOf(id));
//
// int a = 1/0;
// 只匹配章节
Set<Long> idSet = courseResources.stream().filter(item -> Integer.valueOf(2).equals(item.getCourseInfoType()))
@ -930,7 +930,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @return
*/
public List<TeacherOpenCourseMergeCourseInfo> getCourseResourcesByList(@NotNull Long teacherOpenCourseMergeCourseInfoId){
ArrayList<TeacherOpenCourseMergeCourseInfo> result = new ArrayList<>();
List<TeacherOpenCourseMergeCourseInfo> result = new CopyOnWriteArrayList<>();
getCourseResourcesByList(teacherOpenCourseMergeCourseInfoDao.getAllWithCache(), teacherOpenCourseMergeCourseInfoId, result);
return result;
}
@ -944,7 +944,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
* @return
*/
public List<TeacherOpenCourseMergeCourseInfo> getCourseResourcesByList(@NotNull Long teacherOpenCourseMergeCourseInfoId, @NotNull Long teacherOpenCourseId){
ArrayList<TeacherOpenCourseMergeCourseInfo> result = new ArrayList<>();
List<TeacherOpenCourseMergeCourseInfo> result = new CopyOnWriteArrayList<>();
getCourseResourcesByList(teacherOpenCourseMergeCourseInfoDao.getAllWithCacheWithTeacherOpenCourseId(teacherOpenCourseId), teacherOpenCourseMergeCourseInfoId, result);
return result;
}
@ -963,20 +963,15 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
public void getCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList,
@NotNull Long filterTeacherOpenCourseMergeCourseInfoId,
Collection<TeacherOpenCourseMergeCourseInfo> result){
Iterator<TeacherOpenCourseMergeCourseInfo> iterator = courseInfoList.iterator();
while (iterator.hasNext()) {
TeacherOpenCourseMergeCourseInfo courseInfo = iterator.next();
for (TeacherOpenCourseMergeCourseInfo courseInfo : courseInfoList) {
// 先处理掉一些不合规的数据。防止死循环过滤掉父类ID是他自己的情况
if(courseInfo.getCourseInfoParentId() == null
|| courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId())) {
iterator.remove();
continue;
}
// 处理关系
if(courseInfo.getCourseInfoParentId().equals(filterTeacherOpenCourseMergeCourseInfoId)) {
result.add(courseInfo);
iterator.remove();
getCourseResourcesByList(courseInfoList, courseInfo.getTeacherOpenCourseMergeCourseInfoId(), result);
}
}

@ -1,6 +1,7 @@
package com.ibeetl.jlw.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.ConcurrentHashSet;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.func.Func1;
import cn.hutool.core.util.ObjectUtil;
@ -562,7 +563,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
.filter(item -> Integer.valueOf(2).equals(item.getCourseInfoType())).collect(Collectors.toSet());
// 章下面所有小节,包含章节点
Set<TeacherOpenCourseMergeCourseInfo> result = new HashSet<>(12);
Set<TeacherOpenCourseMergeCourseInfo> result = new ConcurrentHashSet<>(12);
for (TeacherOpenCourseMergeCourseInfo chapter : chapterSet) {
result.clear();
Long teacherOpenCourseMergeCourseInfoId = chapter.getTeacherOpenCourseMergeCourseInfoId();

Loading…
Cancel
Save