|
|
@ -109,6 +109,10 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
@Lazy
|
|
|
|
@Lazy
|
|
|
|
private TeacherOpenCourseMergeCourseInfoService teacherOpenCourseMergeCourseInfoService;
|
|
|
|
private TeacherOpenCourseMergeCourseInfoService teacherOpenCourseMergeCourseInfoService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private TeacherOpenCourseHandsOnService teacherOpenCourseHandsOnService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 这里简单使用一个雪花算法,来生成新的开课课程ID
|
|
|
|
// 这里简单使用一个雪花算法,来生成新的开课课程ID
|
|
|
|
private static final Snowflake snowflake = new Snowflake();
|
|
|
|
private static final Snowflake snowflake = new Snowflake();
|
|
|
|
|
|
|
|
|
|
|
@ -183,8 +187,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
// int a = 1/0;
|
|
|
|
// int a = 1/0;
|
|
|
|
|
|
|
|
|
|
|
|
// 只匹配章节
|
|
|
|
// 只匹配章节
|
|
|
|
Set<Long> idSet = courseInfoList.stream().filter(item -> Integer.valueOf(2).equals(item.getCourseInfoType()))
|
|
|
|
Set<Long> idSet = courseInfoList.stream().filter(item -> Integer.valueOf(2).equals(item.getCourseInfoType())).map(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId).collect(toSet());
|
|
|
|
.map(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId).collect(toSet());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(idSet)) {
|
|
|
|
if (ObjectUtil.isNotEmpty(idSet)) {
|
|
|
|
teacherOpenCourseQuestionSettingService.deleteSettingAndSnapByIds(join(idSet.toArray(), ","));
|
|
|
|
teacherOpenCourseQuestionSettingService.deleteSettingAndSnapByIds(join(idSet.toArray(), ","));
|
|
|
@ -266,9 +269,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param mergeCourseInfoQuery
|
|
|
|
* @param mergeCourseInfoQuery
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public JsonResult addCourseAndQuestionWithQuestionSnap(@Validated(ValidateConfig.ADD.class) @NotNull(message = "开课题目信息不能为空!")
|
|
|
|
public JsonResult addCourseAndQuestionWithQuestionSnap(@Validated(ValidateConfig.ADD.class) @NotNull(message = "开课题目信息不能为空!") TeacherOpenCourseMergeCourseInfoQuery mergeCourseInfoQuery, @Nullable List<QuestionSettingDTO> questionSettingOptions, Map<Long, Long> courseInfoIdPair) {
|
|
|
|
TeacherOpenCourseMergeCourseInfoQuery mergeCourseInfoQuery,
|
|
|
|
|
|
|
|
@Nullable List<QuestionSettingDTO> questionSettingOptions, Map<Long, Long> courseInfoIdPair) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getParentCourseIdIfTypeEquals2(mergeCourseInfoQuery);
|
|
|
|
getParentCourseIdIfTypeEquals2(mergeCourseInfoQuery);
|
|
|
|
// 添加开课课程表
|
|
|
|
// 添加开课课程表
|
|
|
@ -324,12 +325,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
LambdaQuery.Property<TeacherOpenCourseMergeCourseInfo, Object> pIdpt = TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId;
|
|
|
|
LambdaQuery.Property<TeacherOpenCourseMergeCourseInfo, Object> pIdpt = TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId;
|
|
|
|
|
|
|
|
|
|
|
|
// 课程节点的信息
|
|
|
|
// 课程节点的信息
|
|
|
|
TeacherOpenCourseMergeCourseInfo courseTargetInfo = lambdaQuery
|
|
|
|
TeacherOpenCourseMergeCourseInfo courseTargetInfo = lambdaQuery.andEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseId, teacherOpenCourseId).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, 1).and(lambdaQuery.condition().andEq(pIdpt, "").orIsNull(pIdpt)).single();
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseId, teacherOpenCourseId)
|
|
|
|
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
|
|
|
|
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, 1)
|
|
|
|
|
|
|
|
.and(lambdaQuery.condition().andEq(pIdpt, "").orIsNull(pIdpt))
|
|
|
|
|
|
|
|
.single();
|
|
|
|
|
|
|
|
return courseTargetInfo;
|
|
|
|
return courseTargetInfo;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -432,23 +428,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
//获取最大列数
|
|
|
|
//获取最大列数
|
|
|
|
int colNum = firstRow.getPhysicalNumberOfCells();
|
|
|
|
int colNum = firstRow.getPhysicalNumberOfCells();
|
|
|
|
|
|
|
|
|
|
|
|
String[] columns = {
|
|
|
|
String[] columns = {"开课", "名称", "课程缩略图", "课程标签", "课程学习人数基数", "课程简介", "状态", "类型", "父节点", "视频", "课件", "附件IDs", "客观题IDs", "竞赛题IDs", "实训题IDs",};
|
|
|
|
"开课",
|
|
|
|
|
|
|
|
"名称",
|
|
|
|
|
|
|
|
"课程缩略图",
|
|
|
|
|
|
|
|
"课程标签",
|
|
|
|
|
|
|
|
"课程学习人数基数",
|
|
|
|
|
|
|
|
"课程简介",
|
|
|
|
|
|
|
|
"状态",
|
|
|
|
|
|
|
|
"类型",
|
|
|
|
|
|
|
|
"父节点",
|
|
|
|
|
|
|
|
"视频",
|
|
|
|
|
|
|
|
"课件",
|
|
|
|
|
|
|
|
"附件IDs",
|
|
|
|
|
|
|
|
"客观题IDs",
|
|
|
|
|
|
|
|
"竞赛题IDs",
|
|
|
|
|
|
|
|
"实训题IDs",
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, Integer> map = new HashMap<>();//获取需要的表头的列
|
|
|
|
Map<String, Integer> map = new HashMap<>();//获取需要的表头的列
|
|
|
|
|
|
|
|
|
|
|
@ -598,8 +578,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param courseInfoIdPair 转换之前的ID和转换之后的ID对(用于后面的题目、资源的ID替换)
|
|
|
|
* @param courseInfoIdPair 转换之前的ID和转换之后的ID对(用于后面的题目、资源的ID替换)
|
|
|
|
* @return 转换之前的ID和转换之后的ID对(用于后面的题目、资源的ID替换)
|
|
|
|
* @return 转换之前的ID和转换之后的ID对(用于后面的题目、资源的ID替换)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void batchUpdateSomeMergeId(List<TeacherOpenCourseMergeCourseInfoTree> copyToList,
|
|
|
|
public void batchUpdateSomeMergeId(List<TeacherOpenCourseMergeCourseInfoTree> copyToList, final Long parentId, ConcurrentHashMap<Long, Long> courseInfoIdPair) {
|
|
|
|
final Long parentId, ConcurrentHashMap<Long, Long> courseInfoIdPair) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 转换成线程安全的集合,来并行操作。
|
|
|
|
// 转换成线程安全的集合,来并行操作。
|
|
|
|
List<TeacherOpenCourseMergeCourseInfoTree> safeList = new CopyOnWriteArrayList<>(copyToList);
|
|
|
|
List<TeacherOpenCourseMergeCourseInfoTree> safeList = new CopyOnWriteArrayList<>(copyToList);
|
|
|
@ -630,8 +609,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
Map<Long, Long> courseInfoIdPair = new HashMap<>(initCourseInfoIdPair);
|
|
|
|
Map<Long, Long> courseInfoIdPair = new HashMap<>(initCourseInfoIdPair);
|
|
|
|
|
|
|
|
|
|
|
|
// 查找列表中所有的ID
|
|
|
|
// 查找列表中所有的ID
|
|
|
|
Set<Long> mergeCourseInfoIdSet = copyToList.stream()
|
|
|
|
Set<Long> mergeCourseInfoIdSet = copyToList.stream().map(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId).collect(toSet());
|
|
|
|
.map(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId).collect(toSet());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (Long oldId : mergeCourseInfoIdSet) {
|
|
|
|
for (Long oldId : mergeCourseInfoIdSet) {
|
|
|
|
// 只取第一次ID对,后面加进来的丢弃
|
|
|
|
// 只取第一次ID对,后面加进来的丢弃
|
|
|
@ -654,8 +632,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param result 结果集
|
|
|
|
* @param result 结果集
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void treeListConvertArrayList(List<TeacherOpenCourseMergeCourseInfoTree> copyToList,
|
|
|
|
public void treeListConvertArrayList(List<TeacherOpenCourseMergeCourseInfoTree> copyToList, CopyOnWriteArrayList<TeacherOpenCourseMergeCourseInfo> result) {
|
|
|
|
CopyOnWriteArrayList<TeacherOpenCourseMergeCourseInfo> result) {
|
|
|
|
|
|
|
|
// 启用并行操作,使用线程安全的集合用来保存
|
|
|
|
// 启用并行操作,使用线程安全的集合用来保存
|
|
|
|
copyToList.stream().parallel().forEach(item -> {
|
|
|
|
copyToList.stream().parallel().forEach(item -> {
|
|
|
|
result.add(BeanUtil.copyProperties(item, TeacherOpenCourseMergeCourseInfo.class));
|
|
|
|
result.add(BeanUtil.copyProperties(item, TeacherOpenCourseMergeCourseInfo.class));
|
|
|
@ -727,8 +704,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param courseInfoList 系统课程列表
|
|
|
|
* @param courseInfoList 系统课程列表
|
|
|
|
* @param somecourseInfoIdPair 一些修改前修改后的ID对(指定一些修改的ID对)
|
|
|
|
* @param somecourseInfoIdPair 一些修改前修改后的ID对(指定一些修改的ID对)
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void updateSpecifyMergeCourseInfoIdTargetList(List<TeacherOpenCourseMergeCourseInfo> courseInfoList,
|
|
|
|
public void updateSpecifyMergeCourseInfoIdTargetList(List<TeacherOpenCourseMergeCourseInfo> courseInfoList, @NotEmpty(message = "ID对不能为空!") Map<Long, Long> somecourseInfoIdPair) {
|
|
|
|
@NotEmpty(message = "ID对不能为空!") Map<Long, Long> somecourseInfoIdPair) {
|
|
|
|
|
|
|
|
for (TeacherOpenCourseMergeCourseInfo courseInfo : courseInfoList) {
|
|
|
|
for (TeacherOpenCourseMergeCourseInfo courseInfo : courseInfoList) {
|
|
|
|
if (somecourseInfoIdPair.containsKey(courseInfo.getTeacherOpenCourseMergeCourseInfoId())) {
|
|
|
|
if (somecourseInfoIdPair.containsKey(courseInfo.getTeacherOpenCourseMergeCourseInfoId())) {
|
|
|
|
courseInfo.setTeacherOpenCourseMergeCourseInfoId(somecourseInfoIdPair.get(courseInfo.getTeacherOpenCourseMergeCourseInfoId()));
|
|
|
|
courseInfo.setTeacherOpenCourseMergeCourseInfoId(somecourseInfoIdPair.get(courseInfo.getTeacherOpenCourseMergeCourseInfoId()));
|
|
|
@ -750,8 +726,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param teacherOpenCourseId 开课ID
|
|
|
|
* @param teacherOpenCourseId 开课ID
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public Map<Long, Long> copyFromCourseInfo(@NotEmpty(message = "系统课程ID不能为空!") Set<Long> courseInfoIds,
|
|
|
|
public Map<Long, Long> copyFromCourseInfo(@NotEmpty(message = "系统课程ID不能为空!") Set<Long> courseInfoIds, @NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) {
|
|
|
|
@NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ConcurrentHashMap<Long, Long> courseInfoIdPair = new ConcurrentHashMap<>(16);
|
|
|
|
ConcurrentHashMap<Long, Long> courseInfoIdPair = new ConcurrentHashMap<>(16);
|
|
|
|
// 查询是否绑定过课程
|
|
|
|
// 查询是否绑定过课程
|
|
|
@ -802,8 +777,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
HashMap<String, String> mapping = MapUtil.of("courseInfoId", "teacherOpenCourseMergeCourseInfoId");
|
|
|
|
HashMap<String, String> mapping = MapUtil.of("courseInfoId", "teacherOpenCourseMergeCourseInfoId");
|
|
|
|
mapping.put("orderIndex", "teacherOpenCourseMergeCourseInfoOrder");
|
|
|
|
mapping.put("orderIndex", "teacherOpenCourseMergeCourseInfoOrder");
|
|
|
|
CopyOptions copyOptions = CopyOptions.create().setFieldMapping(mapping);
|
|
|
|
CopyOptions copyOptions = CopyOptions.create().setFieldMapping(mapping);
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> copyToList =
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> copyToList = BeanUtil.copyToList(chapterList, TeacherOpenCourseMergeCourseInfo.class, copyOptions);
|
|
|
|
BeanUtil.copyToList(chapterList, TeacherOpenCourseMergeCourseInfo.class, copyOptions);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
result.addAll(copyToList);
|
|
|
|
result.addAll(copyToList);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -817,8 +791,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param teacherOpenCourseId 开课ID
|
|
|
|
* @param teacherOpenCourseId 开课ID
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void importCourseInfo(@NotEmpty(message = "系统课程ID不能为空!") Set<Long> courseInfoIds,
|
|
|
|
public void importCourseInfo(@NotEmpty(message = "系统课程ID不能为空!") Set<Long> courseInfoIds, @NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) {
|
|
|
|
@NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 拷贝课程章节。返回的Map是不可修改的。
|
|
|
|
// 拷贝课程章节。返回的Map是不可修改的。
|
|
|
|
Map<Long, Long> courseInfoIdPair = copyFromCourseInfo(courseInfoIds, teacherOpenCourseId);
|
|
|
|
Map<Long, Long> courseInfoIdPair = copyFromCourseInfo(courseInfoIds, teacherOpenCourseId);
|
|
|
@ -842,6 +815,9 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
teacherOpenCourseQuestionSettingService.copyOpenQuestionChapterTestQuestionToOpenCourse(teacherOpenCourseId, courseInfoIdPair);
|
|
|
|
teacherOpenCourseQuestionSettingService.copyOpenQuestionChapterTestQuestionToOpenCourse(teacherOpenCourseId, courseInfoIdPair);
|
|
|
|
// 拷贝系统资源库到教师开课
|
|
|
|
// 拷贝系统资源库到教师开课
|
|
|
|
teacherOpenCourseMergeResourcesInfoService.copySystemResourcesInfoToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
|
|
|
|
teacherOpenCourseMergeResourcesInfoService.copySystemResourcesInfoToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
teacherOpenCourseHandsOnService.copySystemHandsToOpenCourse(teacherOpenCourseId, courseInfoId, courseInfoIdPair);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -911,10 +887,8 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param teacherOpenCourseId
|
|
|
|
* @param teacherOpenCourseId
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId(
|
|
|
|
public TeacherOpenCourseMergeCourseInfoTree getTreeLocalCacheByTeacherOpenCourseId(@NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) {
|
|
|
|
@NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) {
|
|
|
|
TeacherOpenCourseMergeCourseInfoTree teacherOpenCourseMergeCourseInfoTree = teacherOpenCourseMergeCourseInfoDao.getTreeLocalCacheByTeacherOpenCourseId(teacherOpenCourseId);
|
|
|
|
TeacherOpenCourseMergeCourseInfoTree teacherOpenCourseMergeCourseInfoTree =
|
|
|
|
|
|
|
|
teacherOpenCourseMergeCourseInfoDao.getTreeLocalCacheByTeacherOpenCourseId(teacherOpenCourseId);
|
|
|
|
|
|
|
|
dictParser(teacherOpenCourseMergeCourseInfoTree);
|
|
|
|
dictParser(teacherOpenCourseMergeCourseInfoTree);
|
|
|
|
return teacherOpenCourseMergeCourseInfoTree;
|
|
|
|
return teacherOpenCourseMergeCourseInfoTree;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -926,10 +900,8 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param teacherOpenCourseId
|
|
|
|
* @param teacherOpenCourseId
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public TeacherOpenCourseMergeCourseInfo getTreeByTeacherOpenCourseId1(
|
|
|
|
public TeacherOpenCourseMergeCourseInfo getTreeByTeacherOpenCourseId1(@NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) {
|
|
|
|
@NotNull(message = "开课ID不能为空!") final Long teacherOpenCourseId) {
|
|
|
|
TeacherOpenCourseMergeCourseInfo treeCacheByTeacherOpenCourseId = teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(teacherOpenCourseId);
|
|
|
|
TeacherOpenCourseMergeCourseInfo treeCacheByTeacherOpenCourseId =
|
|
|
|
|
|
|
|
teacherOpenCourseMergeCourseInfoDao.getValueByTeacherOpenCourseId(teacherOpenCourseId);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ObjectUtil.isEmpty(treeCacheByTeacherOpenCourseId)) {
|
|
|
|
if (ObjectUtil.isEmpty(treeCacheByTeacherOpenCourseId)) {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
@ -945,12 +917,10 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param teacherOpenCourseId
|
|
|
|
* @param teacherOpenCourseId
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 有@Dict注解的时候,再开启
|
|
|
|
// 有@Dict注解的时候,再开启
|
|
|
|
// dictParser(courseInfoList);
|
|
|
|
// dictParser(courseInfoList);
|
|
|
@ -976,9 +946,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
Long courseInfoId = courseInfo.getTeacherOpenCourseMergeCourseInfoId();
|
|
|
|
Long courseInfoId = courseInfo.getTeacherOpenCourseMergeCourseInfoId();
|
|
|
|
|
|
|
|
|
|
|
|
// 找到这个课程章节ID下的资源,并排序
|
|
|
|
// 找到这个课程章节ID下的资源,并排序
|
|
|
|
List<TeacherOpenCourseMergeResourcesInfo> filteredResourcesInfoList = resourcesInfoCopyOnWriteArrayList.stream()
|
|
|
|
List<TeacherOpenCourseMergeResourcesInfo> filteredResourcesInfoList = resourcesInfoCopyOnWriteArrayList.stream().filter(it -> it.getTeacherOpenCourseMergeCourseInfoId().equals(courseInfoId)).sorted((o1, o2) -> {
|
|
|
|
.filter(it -> it.getTeacherOpenCourseMergeCourseInfoId().equals(courseInfoId))
|
|
|
|
|
|
|
|
.sorted((o1, o2) -> {
|
|
|
|
|
|
|
|
if (ObjectUtil.isAllNotEmpty(o1.getOrderIndex(), o2.getOrderIndex())) {
|
|
|
|
if (ObjectUtil.isAllNotEmpty(o1.getOrderIndex(), o2.getOrderIndex())) {
|
|
|
|
return o1.getOrderIndex().compareTo(o2.getOrderIndex());
|
|
|
|
return o1.getOrderIndex().compareTo(o2.getOrderIndex());
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -986,9 +954,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
}).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
|
|
|
// 获取课程ids
|
|
|
|
// 获取课程ids
|
|
|
|
String courseInfoIds = filteredResourcesInfoList.stream().map(TeacherOpenCourseMergeResourcesInfo::getTeacherOpenCourseMergeCourseInfoId)
|
|
|
|
String courseInfoIds = filteredResourcesInfoList.stream().map(TeacherOpenCourseMergeResourcesInfo::getTeacherOpenCourseMergeCourseInfoId).map(Objects::toString).collect(Collectors.joining(","));
|
|
|
|
.map(Objects::toString)
|
|
|
|
|
|
|
|
.collect(Collectors.joining(","));
|
|
|
|
|
|
|
|
// 删除临时变量中的资源,提升下次查找的速度
|
|
|
|
// 删除临时变量中的资源,提升下次查找的速度
|
|
|
|
resourcesInfoCopyOnWriteArrayList.removeIf(it -> courseInfoIds.contains(it.getTeacherOpenCourseMergeCourseInfoId().toString()));
|
|
|
|
resourcesInfoCopyOnWriteArrayList.removeIf(it -> courseInfoIds.contains(it.getTeacherOpenCourseMergeCourseInfoId().toString()));
|
|
|
|
|
|
|
|
|
|
|
@ -1083,14 +1049,10 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param result 递归的结果集
|
|
|
|
* @param result 递归的结果集
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void getCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList,
|
|
|
|
public void getCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList, @NotNull Long filterTeacherOpenCourseMergeCourseInfoId, Collection<TeacherOpenCourseMergeCourseInfo> result) {
|
|
|
|
@NotNull Long filterTeacherOpenCourseMergeCourseInfoId,
|
|
|
|
|
|
|
|
Collection<TeacherOpenCourseMergeCourseInfo> result) {
|
|
|
|
|
|
|
|
for (TeacherOpenCourseMergeCourseInfo courseInfo : courseInfoList) {
|
|
|
|
for (TeacherOpenCourseMergeCourseInfo courseInfo : courseInfoList) {
|
|
|
|
// 先处理掉一些不合规的数据。防止死循环,过滤掉父类ID是他自己的情况
|
|
|
|
// 先处理掉一些不合规的数据。防止死循环,过滤掉父类ID是他自己的情况
|
|
|
|
if (courseInfo.getCourseInfoParentId() == null
|
|
|
|
if (courseInfo.getCourseInfoParentId() == null || courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId()) || courseInfo.getTeacherOpenCourseMergeCourseInfoId().equals(filterTeacherOpenCourseMergeCourseInfoId)) {
|
|
|
|
|| courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId())
|
|
|
|
|
|
|
|
|| courseInfo.getTeacherOpenCourseMergeCourseInfoId().equals(filterTeacherOpenCourseMergeCourseInfoId)) {
|
|
|
|
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 处理关系
|
|
|
|
// 处理关系
|
|
|
@ -1111,16 +1073,13 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
* @param result 递归的结果集
|
|
|
|
* @param result 递归的结果集
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public void getTreeCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList,
|
|
|
|
public void getTreeCourseResourcesByList(@NotNull Collection<TeacherOpenCourseMergeCourseInfo> courseInfoList, @NotNull Long filterTeacherOpenCourseMergeCourseInfoId, TeacherOpenCourseMergeCourseInfo result) {
|
|
|
|
@NotNull Long filterTeacherOpenCourseMergeCourseInfoId,
|
|
|
|
|
|
|
|
TeacherOpenCourseMergeCourseInfo result) {
|
|
|
|
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> tempList = new ArrayList<>();
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> tempList = new ArrayList<>();
|
|
|
|
Iterator<TeacherOpenCourseMergeCourseInfo> iterator = courseInfoList.iterator();
|
|
|
|
Iterator<TeacherOpenCourseMergeCourseInfo> iterator = courseInfoList.iterator();
|
|
|
|
while (iterator.hasNext()) {
|
|
|
|
while (iterator.hasNext()) {
|
|
|
|
TeacherOpenCourseMergeCourseInfo courseInfo = iterator.next();
|
|
|
|
TeacherOpenCourseMergeCourseInfo courseInfo = iterator.next();
|
|
|
|
// 先处理掉一些不合规的数据。防止死循环,过滤掉父类ID是他自己的情况
|
|
|
|
// 先处理掉一些不合规的数据。防止死循环,过滤掉父类ID是他自己的情况
|
|
|
|
if (courseInfo.getCourseInfoParentId() == null
|
|
|
|
if (courseInfo.getCourseInfoParentId() == null || courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId())) {
|
|
|
|
|| courseInfo.getCourseInfoParentId().equals(courseInfo.getTeacherOpenCourseMergeCourseInfoId())) {
|
|
|
|
|
|
|
|
iterator.remove();
|
|
|
|
iterator.remove();
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1239,14 +1198,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
switch (moveType) {
|
|
|
|
switch (moveType) {
|
|
|
|
|
|
|
|
|
|
|
|
case MOVE_TOP: {
|
|
|
|
case MOVE_TOP: {
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery()
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery().andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType()).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId()).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1).andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id).asc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder).limit(1, 1).select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType())
|
|
|
|
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId())
|
|
|
|
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
|
|
|
|
|
|
|
|
.andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id)
|
|
|
|
|
|
|
|
.asc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder)
|
|
|
|
|
|
|
|
.limit(1, 1)
|
|
|
|
|
|
|
|
.select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(result)) {
|
|
|
|
if (CollectionUtil.isEmpty(result)) {
|
|
|
|
throw new PlatformException("已处于置顶状态!");
|
|
|
|
throw new PlatformException("已处于置顶状态!");
|
|
|
@ -1262,15 +1214,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case MOVE_LEFT: {
|
|
|
|
case MOVE_LEFT: {
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery()
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery().andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType()).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId()).andLess(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder, defaultIfNull(mergeCourseInfo.getTeacherOpenCourseMergeCourseInfoOrder(), 50)).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1).andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id).desc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder).limit(1, 2).select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType())
|
|
|
|
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId())
|
|
|
|
|
|
|
|
.andLess(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder, defaultIfNull(mergeCourseInfo.getTeacherOpenCourseMergeCourseInfoOrder(), 50))
|
|
|
|
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
|
|
|
|
|
|
|
|
.andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id)
|
|
|
|
|
|
|
|
.desc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder)
|
|
|
|
|
|
|
|
.limit(1, 2)
|
|
|
|
|
|
|
|
.select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(result)) {
|
|
|
|
if (CollectionUtil.isEmpty(result)) {
|
|
|
|
throw new PlatformException("已处于置顶状态!");
|
|
|
|
throw new PlatformException("已处于置顶状态!");
|
|
|
@ -1293,15 +1237,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case MOVE_RIGHT: {
|
|
|
|
case MOVE_RIGHT: {
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery()
|
|
|
|
List<TeacherOpenCourseMergeCourseInfo> result = teacherOpenCourseMergeCourseInfoDao.createLambdaQuery().andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType()).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId()).andGreat(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder, defaultIfNull(mergeCourseInfo.getTeacherOpenCourseMergeCourseInfoOrder(), 50)).andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1).andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id).asc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder).limit(1, 2).select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoType, mergeCourseInfo.getCourseInfoType())
|
|
|
|
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoParentId, mergeCourseInfo.getCourseInfoParentId())
|
|
|
|
|
|
|
|
.andGreat(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder, defaultIfNull(mergeCourseInfo.getTeacherOpenCourseMergeCourseInfoOrder(), 50))
|
|
|
|
|
|
|
|
.andEq(TeacherOpenCourseMergeCourseInfo::getCourseInfoStatus, 1)
|
|
|
|
|
|
|
|
.andNotEq(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoId, id)
|
|
|
|
|
|
|
|
.asc(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder)
|
|
|
|
|
|
|
|
.limit(1, 2)
|
|
|
|
|
|
|
|
.select(TeacherOpenCourseMergeCourseInfo::getTeacherOpenCourseMergeCourseInfoOrder);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(result)) {
|
|
|
|
if (CollectionUtil.isEmpty(result)) {
|
|
|
|
throw new PlatformException("已处于置底状态!");
|
|
|
|
throw new PlatformException("已处于置底状态!");
|
|
|
@ -1370,14 +1306,11 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
|
|
|
|
Assert.isFalse(!hasLeft && !hasRight, "左右元素ID不能同时为空!");
|
|
|
|
Assert.isFalse(!hasLeft && !hasRight, "左右元素ID不能同时为空!");
|
|
|
|
|
|
|
|
|
|
|
|
// 自身元素
|
|
|
|
// 自身元素
|
|
|
|
TeacherOpenCourseMergeCourseInfo selfElement = allElement.stream()
|
|
|
|
TeacherOpenCourseMergeCourseInfo selfElement = allElement.stream().filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(id)).findFirst().get();
|
|
|
|
.filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(id)).findFirst().get();
|
|
|
|
|
|
|
|
// 左侧元素
|
|
|
|
// 左侧元素
|
|
|
|
TeacherOpenCourseMergeCourseInfo leftElement = allElement.stream()
|
|
|
|
TeacherOpenCourseMergeCourseInfo leftElement = allElement.stream().filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(leftId)).findFirst().orElse(null);
|
|
|
|
.filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(leftId)).findFirst().orElse(null);
|
|
|
|
|
|
|
|
// 右侧元素
|
|
|
|
// 右侧元素
|
|
|
|
TeacherOpenCourseMergeCourseInfo rightElement = allElement.stream()
|
|
|
|
TeacherOpenCourseMergeCourseInfo rightElement = allElement.stream().filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(rightId)).findFirst().orElse(null);
|
|
|
|
.filter(item -> item.getTeacherOpenCourseMergeCourseInfoId().equals(rightId)).findFirst().orElse(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义排序值
|
|
|
|
// 定义排序值
|
|
|
|
BigDecimal clacedOrder = null;
|
|
|
|
BigDecimal clacedOrder = null;
|
|
|
|