修复课程资源删除bug

beetlsql3-dev
Mlxa0324 2 years ago
parent 837efb7910
commit 0748cf8a86

@ -901,17 +901,23 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
public Tree<String> getTreeByTeacherOpenCourseId( public Tree<String> getTreeByTeacherOpenCourseId(
@NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) { @NotNull(message = "开课ID不能为空") final Long teacherOpenCourseId) {
// 查询开课下的课程章节小节等所有信息
List<TeacherOpenCourseMergeCourseInfoMyTree> courseInfoList = teacherOpenCourseMergeCourseInfoDao List<TeacherOpenCourseMergeCourseInfoMyTree> courseInfoList = teacherOpenCourseMergeCourseInfoDao
.getByOpenCourseId(teacherOpenCourseId); .getByOpenCourseId(teacherOpenCourseId);
dictParser(courseInfoList);
// 有@Dict注解的时候再开启
// dictParser(courseInfoList);
// 查询开课下的,资源信息
TeacherOpenCourseMergeResourcesInfoQuery resourcesInfoQuery = new TeacherOpenCourseMergeResourcesInfoQuery(); TeacherOpenCourseMergeResourcesInfoQuery resourcesInfoQuery = new TeacherOpenCourseMergeResourcesInfoQuery();
resourcesInfoQuery.setResourcesInfoStatus(UP); resourcesInfoQuery.setResourcesInfoStatus(UP);
resourcesInfoQuery.setTeacherOpenCourseId(teacherOpenCourseId); resourcesInfoQuery.setTeacherOpenCourseId(teacherOpenCourseId);
final List<TeacherOpenCourseMergeResourcesInfo> resourcesInfoList = teacherOpenCourseMergeResourcesInfoService.getValuesByQueryNotWithPermission(resourcesInfoQuery); final List<TeacherOpenCourseMergeResourcesInfo> resourcesInfoList = teacherOpenCourseMergeResourcesInfoService.getValuesByQueryNotWithPermission(resourcesInfoQuery);
// 下面会有删除操作,所以用线程安全的集合
CopyOnWriteArrayList<TeacherOpenCourseMergeResourcesInfo> resourcesInfoCopyOnWriteArrayList = new CopyOnWriteArrayList<>(resourcesInfoList); CopyOnWriteArrayList<TeacherOpenCourseMergeResourcesInfo> resourcesInfoCopyOnWriteArrayList = new CopyOnWriteArrayList<>(resourcesInfoList);
// 自定义树型配置
TreeNodeConfig defaultConfig = new TreeNodeConfig(); TreeNodeConfig defaultConfig = new TreeNodeConfig();
defaultConfig.setIdKey(TeacherOpenCourseMergeCourseInfoMyTree.Fields.teacherOpenCourseMergeCourseInfoId); defaultConfig.setIdKey(TeacherOpenCourseMergeCourseInfoMyTree.Fields.teacherOpenCourseMergeCourseInfoId);
defaultConfig.setParentIdKey(TeacherOpenCourseMergeCourseInfoMyTree.Fields.courseInfoParentId); defaultConfig.setParentIdKey(TeacherOpenCourseMergeCourseInfoMyTree.Fields.courseInfoParentId);
@ -922,6 +928,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
List<Tree<String>> build = TreeUtil.build(courseInfoList, "0", defaultConfig, ((courseInfo, treeNode) -> { List<Tree<String>> build = TreeUtil.build(courseInfoList, "0", defaultConfig, ((courseInfo, treeNode) -> {
Long courseInfoId = courseInfo.getTeacherOpenCourseMergeCourseInfoId(); Long courseInfoId = courseInfo.getTeacherOpenCourseMergeCourseInfoId();
// 找到这个课程章节ID下的资源
List<TeacherOpenCourseMergeResourcesInfo> filteredResourcesInfoList = resourcesInfoCopyOnWriteArrayList.stream() List<TeacherOpenCourseMergeResourcesInfo> filteredResourcesInfoList = resourcesInfoCopyOnWriteArrayList.stream()
.filter(it -> it.getTeacherOpenCourseMergeCourseInfoId().equals(courseInfoId)).collect(Collectors.toList()); .filter(it -> it.getTeacherOpenCourseMergeCourseInfoId().equals(courseInfoId)).collect(Collectors.toList());
@ -929,7 +936,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
String courseInfoIds = filteredResourcesInfoList.stream().map(TeacherOpenCourseMergeResourcesInfo::getTeacherOpenCourseMergeCourseInfoId) String courseInfoIds = filteredResourcesInfoList.stream().map(TeacherOpenCourseMergeResourcesInfo::getTeacherOpenCourseMergeCourseInfoId)
.map(Objects::toString) .map(Objects::toString)
.collect(Collectors.joining(",")); .collect(Collectors.joining(","));
// 删除临时变量 // 删除临时变量中的资源,提升下次查找的速度
resourcesInfoCopyOnWriteArrayList.removeIf(it -> courseInfoIds.contains(it.getTeacherOpenCourseMergeCourseInfoId().toString())); resourcesInfoCopyOnWriteArrayList.removeIf(it -> courseInfoIds.contains(it.getTeacherOpenCourseMergeCourseInfoId().toString()));
//对key进行映射赋值 //对key进行映射赋值

Loading…
Cancel
Save