|
|
|
@ -1,9 +1,11 @@
|
|
|
|
|
package com.ibeetl.jlw.service;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
|
import cn.hutool.core.lang.Snowflake;
|
|
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import cn.jlw.util.ToolUtils;
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
@ -34,7 +36,9 @@ import java.math.BigDecimal;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import static cn.hutool.core.util.ArrayUtil.join;
|
|
|
|
|
import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser;
|
|
|
|
|
import static java.util.stream.Collectors.toSet;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 教师开课-课程实操 Service
|
|
|
|
@ -336,7 +340,16 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void resetOperationByTeacherOpenCourseId(Long teacherOpenCourseId) {
|
|
|
|
|
log.info("可能需要实现重置操作!");
|
|
|
|
|
log.info("重置开课课程");
|
|
|
|
|
TeacherOpenCourseHandsOnQuery courseHandsOnQuery = new TeacherOpenCourseHandsOnQuery();
|
|
|
|
|
courseHandsOnQuery.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
|
|
|
List<TeacherOpenCourseHandsOn> values = getValuesByQuery(courseHandsOnQuery);
|
|
|
|
|
|
|
|
|
|
// 根据ID删除数据
|
|
|
|
|
Set<Long> delIdList = values.stream().map(TeacherOpenCourseHandsOn::getHandsOnId).collect(toSet());
|
|
|
|
|
if (ObjectUtil.isNotEmpty(delIdList)) {
|
|
|
|
|
deleteTeacherOpenCourseHandsOn(join(delIdList.toArray(), ","));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@ -474,6 +487,144 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
return JsonResult.success(studentHandsOnVOS);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 复制开课实训到开课
|
|
|
|
|
*
|
|
|
|
|
* @param teacherOpenCourseId 老师公开课id
|
|
|
|
|
* @param courseInfoId 课程信息id,传最顶级即可
|
|
|
|
|
* @param courseInfoIdPair 课程信息id对
|
|
|
|
|
* @author zhouzhao
|
|
|
|
|
* @date 2023/04/28 03:59:44
|
|
|
|
|
*/
|
|
|
|
|
public void copyOpenCourseHandsToOpenCourse(@NotNull(message = "开课ID不能为空!") Long teacherOpenCourseId,
|
|
|
|
|
@NotNull(message = "课程ID不能为空!") Long courseInfoId,
|
|
|
|
|
@Nullable Map<Long, Long> courseInfoIdPair,
|
|
|
|
|
@Nullable Map<Long, Long> resourcesQuestionIdPair
|
|
|
|
|
) {
|
|
|
|
|
if (CollUtil.isEmpty(courseInfoIdPair)){
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (resourcesQuestionIdPair==null){
|
|
|
|
|
resourcesQuestionIdPair = new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
Date now = new Date();
|
|
|
|
|
CoreUser currentUser = getUser();
|
|
|
|
|
if (currentUser==null){
|
|
|
|
|
throw new PlatformException("请先登录");
|
|
|
|
|
}
|
|
|
|
|
TeacherOpenCourseHandsOnQuery handsOnQuery = new TeacherOpenCourseHandsOnQuery();
|
|
|
|
|
//归属课程
|
|
|
|
|
handsOnQuery.setCourseInfoId(courseInfoId);
|
|
|
|
|
// 已上架的
|
|
|
|
|
List<TeacherOpenCourseHandsOn> handsOnList = getValuesByQuery(handsOnQuery);
|
|
|
|
|
|
|
|
|
|
if (CollectionUtils.isEmpty(handsOnList)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Long, Long> handsOnIdOldToNewMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
for (TeacherOpenCourseHandsOn teacherOpenCourseHandsOn : handsOnList) {
|
|
|
|
|
Long handsOnIdTemp = teacherOpenCourseHandsOn.getHandsOnId();
|
|
|
|
|
String courseChildNodeTemp = teacherOpenCourseHandsOn.getCourseChildNode();
|
|
|
|
|
|
|
|
|
|
Long newHandsOnId = snowflake.nextId();
|
|
|
|
|
handsOnIdOldToNewMap.put(handsOnIdTemp, newHandsOnId);
|
|
|
|
|
teacherOpenCourseHandsOn.setCourseChildNode(courseInfoIdPair.get(Long.parseLong(courseChildNodeTemp)).toString());
|
|
|
|
|
teacherOpenCourseHandsOn.setHandsOnId(newHandsOnId);
|
|
|
|
|
teacherOpenCourseHandsOn.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
|
|
|
//别问我这里为什么放这个,他们自己的代码就是这样的
|
|
|
|
|
teacherOpenCourseHandsOn.setCourseInfoId(teacherOpenCourseId);
|
|
|
|
|
teacherOpenCourseHandsOn.setOrgId(currentUser.getOrgId());
|
|
|
|
|
teacherOpenCourseHandsOn.setUserId(currentUser.getId());
|
|
|
|
|
teacherOpenCourseHandsOn.setAddTime(now);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 批量插入
|
|
|
|
|
insertBatch(handsOnList);
|
|
|
|
|
|
|
|
|
|
String handsOnIds = handsOnIdOldToNewMap.keySet().stream().map(String::valueOf).collect(Collectors.joining(","));
|
|
|
|
|
TeacherOpenCourseHandsOnSimulationTasksQuery handsOnSimulationTasksQuery = new TeacherOpenCourseHandsOnSimulationTasksQuery();
|
|
|
|
|
handsOnSimulationTasksQuery.setHandsOnIdPlural(handsOnIds);
|
|
|
|
|
List<TeacherOpenCourseHandsOnSimulationTasks> handsOnSimulationTasksList = teacherOpenCourseHandsOnSimulationTasksService.getValuesByQuery(handsOnSimulationTasksQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Long, Long> simulationTaskOldToNewMap = new HashMap<>();
|
|
|
|
|
for (TeacherOpenCourseHandsOnSimulationTasks teacherOpenCourseHandsOnSimulationTasks : handsOnSimulationTasksList) {
|
|
|
|
|
Long newHandsOnId = handsOnIdOldToNewMap.get(teacherOpenCourseHandsOnSimulationTasks.getHandsOnId());
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setHandsOnId(newHandsOnId);
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setOrgId(currentUser.getOrgId());
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setUserId(currentUser.getId());
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setAddTime(now);
|
|
|
|
|
|
|
|
|
|
Long oldTaskId = teacherOpenCourseHandsOnSimulationTasks.getTaskId();
|
|
|
|
|
Long newTaskId = snowflake.nextId();
|
|
|
|
|
simulationTaskOldToNewMap.put(oldTaskId, newTaskId);
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskId(newTaskId);
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(teacherOpenCourseHandsOnSimulationTasks.getTaskList())){
|
|
|
|
|
List<Long> newIdList = new ArrayList<>();
|
|
|
|
|
String[] split = teacherOpenCourseHandsOnSimulationTasks.getTaskList().split(",");
|
|
|
|
|
for (String s : split) {
|
|
|
|
|
Long oldQuestionId = Long.parseLong(s);
|
|
|
|
|
Long newQuestionId = resourcesQuestionIdPair.get(oldQuestionId);
|
|
|
|
|
newIdList.add(newQuestionId!=null ? newQuestionId : oldQuestionId);
|
|
|
|
|
}
|
|
|
|
|
String collect = newIdList.stream().map(String::valueOf).collect(Collectors.joining(","));
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskList(collect);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 批量插入
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksService.insertBatch(handsOnSimulationTasksList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TeacherOpenCourseHandsOnSimulationTasksAssessmentQuery handsOnSimulationTasksAssessmentQuery = new TeacherOpenCourseHandsOnSimulationTasksAssessmentQuery();
|
|
|
|
|
handsOnSimulationTasksAssessmentQuery.setHandsOnIdPlural(handsOnIds);
|
|
|
|
|
List<TeacherOpenCourseHandsOnSimulationTasksAssessment> handsOnSimulationTasksAssessmentList = teacherOpenCourseHandsOnSimulationTasksAssessmentService.getValuesByQuery(handsOnSimulationTasksAssessmentQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
handsOnSimulationTasksAssessmentList.forEach(teacherOpenCourseHandsOnSimulationTasksAssessment -> {
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnTaskId(simulationTaskOldToNewMap.get(teacherOpenCourseHandsOnSimulationTasksAssessment.getHandsOnTaskId()));
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnId(handsOnIdOldToNewMap.get(teacherOpenCourseHandsOnSimulationTasksAssessment.getHandsOnId()));
|
|
|
|
|
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setOrgId(currentUser.getOrgId());
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setUserId(currentUser.getId());
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnSimulationTasksAssessmentId(snowflake.nextId());
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setAddTime(now);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 批量插入
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessmentService.insertBatch(handsOnSimulationTasksAssessmentList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TeacherOpenCourseHandsOnSimulationTasksFileQuery handsOnSimulationTasksFileQuery = new TeacherOpenCourseHandsOnSimulationTasksFileQuery();
|
|
|
|
|
handsOnSimulationTasksFileQuery.setHandsOnIdPlural(handsOnIds);
|
|
|
|
|
|
|
|
|
|
List<TeacherOpenCourseHandsOnSimulationTasksFile> handsOnSimulationTasksFileList = teacherOpenCourseHandsOnSimulationTasksFileService.getValuesByQuery(handsOnSimulationTasksFileQuery);
|
|
|
|
|
|
|
|
|
|
handsOnSimulationTasksFileList.forEach(item -> {
|
|
|
|
|
item.setTaskId(simulationTaskOldToNewMap.get(item.getTaskId()));
|
|
|
|
|
item.setHandsOnId(handsOnIdOldToNewMap.get(item.getHandsOnId()));
|
|
|
|
|
item.setTeacherOpenCourseId(teacherOpenCourseId);
|
|
|
|
|
item.setOrgId(currentUser.getOrgId());
|
|
|
|
|
item.setUserId(currentUser.getId());
|
|
|
|
|
item.setTaskFileId(snowflake.nextId());
|
|
|
|
|
item.setAddTime(now);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 批量插入
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksFileService.insertBatch(handsOnSimulationTasksFileList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 复制系统授权课实训到开课
|
|
|
|
|
*
|
|
|
|
@ -487,7 +638,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
@NotNull(message = "课程ID不能为空!") Long courseInfoId,
|
|
|
|
|
@Nullable Map<Long, Long> courseInfoIdPair,
|
|
|
|
|
@Nullable Map<Long, Long> resourcesQuestionIdPair
|
|
|
|
|
) {
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
|
|
Date now = new Date();
|
|
|
|
|
CoreUser currentUser = getUser();
|
|
|
|
|