|
|
|
@ -3,6 +3,7 @@ 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.Assert;
|
|
|
|
|
import cn.hutool.core.lang.Snowflake;
|
|
|
|
|
import cn.hutool.core.util.EnumUtil;
|
|
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
|
@ -92,10 +93,10 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
private TeacherOpenCourseHandsOnSimulationTasksAssessmentService teacherOpenCourseHandsOnSimulationTasksAssessmentService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private HandsOnSimulationTasksFileService handsOnSimulationTasksFileService;
|
|
|
|
|
private HandsOnSimulationTasksFileService handsOnSimulationTasksFileService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private TeacherOpenCourseHandsOnSimulationTasksFileService teacherOpenCourseHandsOnSimulationTasksFileService;
|
|
|
|
|
private TeacherOpenCourseHandsOnSimulationTasksFileService teacherOpenCourseHandsOnSimulationTasksFileService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private TeacherOpenCourseKnowledgePointDao teacherOpenCourseKnowledgePointDao;
|
|
|
|
@ -103,6 +104,10 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
@Autowired
|
|
|
|
|
private TeacherOpenCourseKnowledgePointRelationService teacherOpenCourseKnowledgePointRelationService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
@Lazy
|
|
|
|
|
private TeacherOpenCourseService teacherOpenCourseService;
|
|
|
|
|
|
|
|
|
|
// 这里简单使用一个雪花算法,来生成新的ID
|
|
|
|
|
private static final Snowflake snowflake = new Snowflake();
|
|
|
|
|
|
|
|
|
@ -138,6 +143,37 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 院校管理删除实训
|
|
|
|
|
*
|
|
|
|
|
* @param ids
|
|
|
|
|
*/
|
|
|
|
|
public void manageDeleteTeacherOpenCourseHandsOn(String ids) {
|
|
|
|
|
TeacherOpenCourseHandsOn teacherOpenCourseHandsOn = teacherOpenCourseHandsOnDao.getSQLManager()
|
|
|
|
|
.lambdaQuery(TeacherOpenCourseHandsOn.class)
|
|
|
|
|
.andEq(TeacherOpenCourseHandsOn::getHandsOnId, ids)
|
|
|
|
|
.single();
|
|
|
|
|
if (!ObjectUtil.isEmpty(teacherOpenCourseHandsOn)) {
|
|
|
|
|
|
|
|
|
|
TeacherOpenCourse teacherOpenCourse = new TeacherOpenCourse();
|
|
|
|
|
teacherOpenCourse.setTeacherOpenCourseId(teacherOpenCourseHandsOn.getTeacherOpenCourseId());
|
|
|
|
|
List<TeacherOpenCourse> teacherOpenCourses = teacherOpenCourseService.getValues(teacherOpenCourse);
|
|
|
|
|
|
|
|
|
|
if (CollectionUtil.isNotEmpty(teacherOpenCourses) && teacherOpenCourses.get(0).getEndTime().getTime() >= new Date().getTime()) {
|
|
|
|
|
Assert.isTrue(false, "课程在使用中");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
teacherOpenCourseHandsOnDao.deleteTeacherOpenCourseHandsOnByIds(ids);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
throw new PlatformException("批量删除教师开课-课程实操失败", e);
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
Assert.isTrue(false, "找不到课程实训");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String addAll(TeacherOpenCourseHandsOnQuery teacherOpenCourseHandsOnQuery) {
|
|
|
|
|
String msg = "";
|
|
|
|
|
List<TeacherOpenCourseHandsOn> teacherOpenCourseHandsOnList = new ArrayList<>();
|
|
|
|
@ -171,7 +207,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
teacherOpenCourseHandsOn.setHandsOnStatus(UP.getCode());
|
|
|
|
|
teacherOpenCourseHandsOnDao.insert(teacherOpenCourseHandsOn);
|
|
|
|
|
teacherOpenCourseHandsOnQuery.setHandsOnId(teacherOpenCourseHandsOn.getHandsOnId());
|
|
|
|
|
if (isBindingKnowledgePoint){
|
|
|
|
|
if (isBindingKnowledgePoint) {
|
|
|
|
|
|
|
|
|
|
String collect = teacherOpenCourseKnowledgePointDao.getSQLManager().lambdaQuery(TeacherOpenCourseKnowledgePoint.class)
|
|
|
|
|
.andEq(TeacherOpenCourseKnowledgePoint::getUserId, teacherOpenCourseHandsOnQuery.getUserId())
|
|
|
|
@ -191,7 +227,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
relationQuery.setBussinessId(teacherOpenCourseHandsOn.getHandsOnId());
|
|
|
|
|
relationQuery.setChapterId(teacherOpenCourseHandsOn.getCourseChildNode());
|
|
|
|
|
relationQuery.setTeacherOpenCourseId(teacherOpenCourseHandsOn.getTeacherOpenCourseId().toString());
|
|
|
|
|
teacherOpenCourseKnowledgePointRelationService.addBindingKnowledge(relationQuery,true,2);
|
|
|
|
|
teacherOpenCourseKnowledgePointRelationService.addBindingKnowledge(relationQuery, true, 2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
JsonResult jsonResult = new JsonResult();
|
|
|
|
@ -303,11 +339,11 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
}
|
|
|
|
|
for (TeacherOpenCourseHandsOnList teacherOpenCourseHandsOnList : teacherOpenCourseHandsOnLists) {
|
|
|
|
|
List<HandsOnAchievement> collect = achievementList.stream().filter(v -> v.getHandOnId().equals(teacherOpenCourseHandsOnList.getHandsOnId())).collect(Collectors.toList());
|
|
|
|
|
Double videoScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getVideoScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double pptAvgScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getPptScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double theoryAvgScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getTheoryScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double stepAvgScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getPracticalTrainingScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double reportAvgScore = collect.stream().map(e->ObjectUtil.defaultIfNull(e.getReportWritingScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double videoScore = collect.stream().map(e -> ObjectUtil.defaultIfNull(e.getVideoScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double pptAvgScore = collect.stream().map(e -> ObjectUtil.defaultIfNull(e.getPptScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double theoryAvgScore = collect.stream().map(e -> ObjectUtil.defaultIfNull(e.getTheoryScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double stepAvgScore = collect.stream().map(e -> ObjectUtil.defaultIfNull(e.getPracticalTrainingScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double reportAvgScore = collect.stream().map(e -> ObjectUtil.defaultIfNull(e.getReportWritingScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
//查询知识id
|
|
|
|
|
List<TeacherOpenCourseKnowledgePoint> select = teacherOpenCourseKnowledgePointDao.getSQLManager().lambdaQuery(TeacherOpenCourseKnowledgePoint.class)
|
|
|
|
|
.andEq(TeacherOpenCourseKnowledgePoint::getChapterId, teacherOpenCourseHandsOnList.getCourseChildNode()).select();
|
|
|
|
@ -386,11 +422,11 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
achievementList = handsOnAchievementService.getListByhandIdsAndClassId(handIds, param.getClassId());
|
|
|
|
|
}
|
|
|
|
|
TeacherOpenCourseHandsOnList teacherOpenCourseHandsOnList = new TeacherOpenCourseHandsOnList();
|
|
|
|
|
Double videoScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getVideoScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double pptAvgScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getPptScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double theoryAvgScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getTheoryScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double stepAvgScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getPracticalTrainingScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double reportAvgScore = achievementList.stream().map(e->ObjectUtil.defaultIfNull(e.getReportWritingScore(),"0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double videoScore = achievementList.stream().map(e -> ObjectUtil.defaultIfNull(e.getVideoScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double pptAvgScore = achievementList.stream().map(e -> ObjectUtil.defaultIfNull(e.getPptScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double theoryAvgScore = achievementList.stream().map(e -> ObjectUtil.defaultIfNull(e.getTheoryScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double stepAvgScore = achievementList.stream().map(e -> ObjectUtil.defaultIfNull(e.getPracticalTrainingScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
Double reportAvgScore = achievementList.stream().map(e -> ObjectUtil.defaultIfNull(e.getReportWritingScore(), "0")).collect(Collectors.averagingDouble(Double::parseDouble));
|
|
|
|
|
teacherOpenCourseHandsOnList.setVideoAvgScore(videoScore);
|
|
|
|
|
teacherOpenCourseHandsOnList.setPptAvgScore(pptAvgScore);
|
|
|
|
|
teacherOpenCourseHandsOnList.setTheoryAvgScore(theoryAvgScore);
|
|
|
|
@ -569,7 +605,6 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 复制开课实训到开课
|
|
|
|
|
*
|
|
|
|
@ -579,19 +614,19 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
* @date 2023/04/28 03:59:44
|
|
|
|
|
*/
|
|
|
|
|
public void copyOpenCourseHandsToOpenCourse(@NotNull(message = "开课ID不能为空!") Long teacherOpenCourseId,
|
|
|
|
|
@Nullable Map<Long, Long> courseInfoIdPair,
|
|
|
|
|
@Nullable Map<Long, Long> resourcesQuestionIdPair
|
|
|
|
|
) {
|
|
|
|
|
if (CollUtil.isEmpty(courseInfoIdPair)){
|
|
|
|
|
@Nullable Map<Long, Long> courseInfoIdPair,
|
|
|
|
|
@Nullable Map<Long, Long> resourcesQuestionIdPair
|
|
|
|
|
) {
|
|
|
|
|
if (CollUtil.isEmpty(courseInfoIdPair)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (resourcesQuestionIdPair==null){
|
|
|
|
|
if (resourcesQuestionIdPair == null) {
|
|
|
|
|
resourcesQuestionIdPair = new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
Date now = new Date();
|
|
|
|
|
CoreUser currentUser = getUser();
|
|
|
|
|
if (currentUser==null){
|
|
|
|
|
if (currentUser == null) {
|
|
|
|
|
throw new PlatformException("请先登录");
|
|
|
|
|
}
|
|
|
|
|
TeacherOpenCourseHandsOnQuery handsOnQuery = new TeacherOpenCourseHandsOnQuery();
|
|
|
|
@ -632,8 +667,6 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
List<TeacherOpenCourseHandsOnSimulationTasks> handsOnSimulationTasksList = teacherOpenCourseHandsOnSimulationTasksService.getValuesByQuery(handsOnSimulationTasksQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Long, Long> simulationTaskOldToNewMap = new HashMap<>();
|
|
|
|
|
for (TeacherOpenCourseHandsOnSimulationTasks teacherOpenCourseHandsOnSimulationTasks : handsOnSimulationTasksList) {
|
|
|
|
|
Long newHandsOnId = handsOnIdOldToNewMap.get(teacherOpenCourseHandsOnSimulationTasks.getHandsOnId());
|
|
|
|
@ -648,13 +681,13 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
simulationTaskOldToNewMap.put(oldTaskId, newTaskId);
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskId(newTaskId);
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(teacherOpenCourseHandsOnSimulationTasks.getTaskList())){
|
|
|
|
|
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);
|
|
|
|
|
newIdList.add(newQuestionId != null ? newQuestionId : oldQuestionId);
|
|
|
|
|
}
|
|
|
|
|
String collect = newIdList.stream().map(String::valueOf).collect(Collectors.joining(","));
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskList(collect);
|
|
|
|
@ -703,7 +736,6 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksFileService.insertBatch(handsOnSimulationTasksFileList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -720,13 +752,13 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
@Nullable Map<Long, Long> courseInfoIdPair,
|
|
|
|
|
@Nullable Map<Long, Long> resourcesQuestionIdPair
|
|
|
|
|
) {
|
|
|
|
|
if (resourcesQuestionIdPair==null){
|
|
|
|
|
if (resourcesQuestionIdPair == null) {
|
|
|
|
|
resourcesQuestionIdPair = new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Date now = new Date();
|
|
|
|
|
CoreUser currentUser = getUser();
|
|
|
|
|
if (currentUser==null){
|
|
|
|
|
if (currentUser == null) {
|
|
|
|
|
throw new PlatformException("请先登录");
|
|
|
|
|
}
|
|
|
|
|
HandsOnQuery handsOnQuery = new HandsOnQuery();
|
|
|
|
@ -747,7 +779,6 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
List<TeacherOpenCourseHandsOn> teacherOpenCourseHandsOnList = new ArrayList<>(BeanUtil.copyToList(handsOnList, TeacherOpenCourseHandsOn.class));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Long, Long> handsOnIdOldToNewMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
for (TeacherOpenCourseHandsOn teacherOpenCourseHandsOn : teacherOpenCourseHandsOnList) {
|
|
|
|
@ -783,7 +814,6 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
List<TeacherOpenCourseHandsOnSimulationTasks> teacherOpenCourseHandsOnSimulationTasksList = new ArrayList<>(BeanUtil.copyToList(handsOnSimulationTasksList, TeacherOpenCourseHandsOnSimulationTasks.class));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Map<Long, Long> simulationTaskOldToNewMap = new HashMap<>();
|
|
|
|
|
|
|
|
|
|
Map<Long, Long> finalResourcesQuestionIdPair = resourcesQuestionIdPair;
|
|
|
|
@ -806,14 +836,14 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskId(newTaskId);
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(teacherOpenCourseHandsOnSimulationTasks.getTaskList())){
|
|
|
|
|
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 = finalResourcesQuestionIdPair.get(oldQuestionId);
|
|
|
|
|
newIdList.add(newQuestionId!=null ? newQuestionId : oldQuestionId);
|
|
|
|
|
newIdList.add(newQuestionId != null ? newQuestionId : oldQuestionId);
|
|
|
|
|
}
|
|
|
|
|
String collect = newIdList.stream().map(String::valueOf).collect(Collectors.joining(","));
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasks.setTaskList(collect);
|
|
|
|
@ -837,7 +867,7 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
|
|
|
|
|
//记录来源
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setFromType(CopyFromEnum.FROM_SYSTEM);
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setSourceFromId( teacherOpenCourseHandsOnSimulationTasksAssessment.getHandsOnSimulationTasksAssessmentId());
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setSourceFromId(teacherOpenCourseHandsOnSimulationTasksAssessment.getHandsOnSimulationTasksAssessmentId());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksAssessment.setHandsOnTaskId(simulationTaskOldToNewMap.get(teacherOpenCourseHandsOnSimulationTasksAssessment.getHandsOnTaskId()));
|
|
|
|
@ -882,12 +912,12 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
|
|
|
|
|
teacherOpenCourseHandsOnSimulationTasksFileService.insertBatch(teacherOpenCourseHandsOnSimulationTasksFileList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 批量修改 状态
|
|
|
|
|
* 1 上架 2下架 0删除
|
|
|
|
|
*
|
|
|
|
|
* @param ids
|
|
|
|
|
* @param status
|
|
|
|
|
*/
|
|
|
|
|