添加记录

beetlsql3-dev
yaodan 2 years ago
parent 1fca8867d6
commit c836bbe133

@ -485,7 +485,9 @@ public class TeacherOpenCourseHandsOnService extends CoreBaseService<TeacherOpen
*/
public void copySystemHandsToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
@NotNull(message = "课程ID不能为空") Long courseInfoId,
@Nullable Map<Long, Long> courseInfoIdPair) {
@Nullable Map<Long, Long> courseInfoIdPair,
@Nullable Map<Long, Long> resourcesQuestionIdPair
) {
Date now = new Date();
CoreUser currentUser = getUser();

@ -807,8 +807,8 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
// 如果课程章节没查到记录,则下面的资源也没必要执行,资源依赖课程章节
if (ObjectUtil.isNotEmpty(courseInfos)) {
// 拷贝系统题目库到教师开课
teacherOpenCourseMergeResourcesQuestionService.copySystemQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
// 拷贝系统题目库到教师开课,并返回新旧题目ID的映射关系
Map<Long, Long> resourcesQuestionIdPair = teacherOpenCourseMergeResourcesQuestionService.copySystemQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
// 取出来所有的课程章、节的ID。大于等于2就是章和他的子节点.从系统题目表抽取
// teacherOpenCourseQuestionSettingService.copySystemQuestionChapterTestQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
// 从开课题库中抽取章节练习题
@ -816,7 +816,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
// 拷贝系统资源库到教师开课
teacherOpenCourseMergeResourcesInfoService.copySystemResourcesInfoToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
teacherOpenCourseHandsOnService.copySystemHandsToOpenCourse(teacherOpenCourseId, courseInfoId, courseInfoIdPair);
teacherOpenCourseHandsOnService.copySystemHandsToOpenCourse(teacherOpenCourseId, courseInfoId, courseInfoIdPair,resourcesQuestionIdPair);
}
});

@ -3,6 +3,7 @@ package com.ibeetl.jlw.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.NumberUtil;
@ -81,6 +82,8 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
@Autowired
private ResourcesQuestionSnapshotService resourcesQuestionSnapshotService;
private static final Snowflake snowflake = new Snowflake();
public PageQuery<TeacherOpenCourseMergeResourcesQuestion> queryByCondition(PageQuery query) {
PageQuery ret = teacherOpenCourseMergeResourcesQuestionDao.queryByCondition(query);
@ -465,8 +468,8 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
* @param allCourseInfo
* @param courseInfoIdPair IDIDID
*/
public void copySystemQuestionToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
Collection<CourseInfo> allCourseInfo, @NotNull Map<Long, Long> courseInfoIdPair) {
public Map<Long, Long> copySystemQuestionToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
Collection<CourseInfo> allCourseInfo, @NotNull Map<Long, Long> courseInfoIdPair) {
// 待拷贝的系统课程ID不能为空.才会执行
if (ObjectUtil.isNotEmpty(allCourseInfo)) {
@ -480,33 +483,12 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
// 系统题目库ID集合
Set<Long> resourcesQuestionIds = resourcesQuestionList.stream().map(ResourcesQuestion::getResourcesQuestionId).collect(toSet());
// 拷贝系统题目库到教师开课
copyFromSystemQuestion(resourcesQuestionIds, teacherOpenCourseId, courseInfoIdPair);
return copyFromSystemQuestion(resourcesQuestionIds, teacherOpenCourseId, courseInfoIdPair);
}
return new HashMap<>();
}
/**
* IDID
*
* @param teacherOpenCourseId ID
* @param allCourseInfoIdsJoin ID
* @param courseInfoIdPair IDIDID
*/
public void copySystemQuestionToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
String allCourseInfoIdsJoin, @NotNull Map<Long, Long> courseInfoIdPair) {
// 待拷贝的系统课程ID不能为空.才会执行
if (ObjectUtil.isNotEmpty(allCourseInfoIdsJoin)) {
ResourcesQuestionQuery resourcesQuestionQuery = new ResourcesQuestionQuery();
resourcesQuestionQuery.setCourseInfoIds(allCourseInfoIdsJoin);
resourcesQuestionQuery.setQuestionStatus(1);
List<ResourcesQuestion> resourcesQuestionList = resourcesQuestionService.getValuesByQuery(resourcesQuestionQuery);
// 系统题目库ID集合
Set<Long> resourcesQuestionIds = resourcesQuestionList.stream().map(ResourcesQuestion::getResourcesQuestionId).collect(toSet());
// 拷贝系统题目库到教师开课
copyFromSystemQuestion(resourcesQuestionIds, teacherOpenCourseId, courseInfoIdPair);
}
}
/**
* resources_question
@ -519,11 +501,11 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
* @param courseInfoIdPair
* @return
*/
public void copyFromSystemQuestion(Set<Long> systemResourcesQuestionIds,
@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId, Map<Long, Long> courseInfoIdPair) {
public Map<Long, Long> copyFromSystemQuestion(Set<Long> systemResourcesQuestionIds,
@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId, Map<Long, Long> courseInfoIdPair) {
if (ObjectUtil.isEmpty(systemResourcesQuestionIds)) {
return;
return courseInfoIdPair;
}
// 题目ID集合
String ids = join(systemResourcesQuestionIds.toArray(), ",");
@ -536,11 +518,13 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
// 转换后的数据暂存
List<TeacherOpenCourseMergeResourcesQuestion> convertedList = new ArrayList<>();
// 类转换方法
resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion(resourcesQuestions, convertedList, courseInfoIdPair);
Map<Long, Long> resourcesQuestionIdPair = resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion(resourcesQuestions, convertedList, courseInfoIdPair);
// 设置开课ID
convertedList.forEach(item -> item.setTeacherOpenCourseId(teacherOpenCourseId));
// 批量插入
teacherOpenCourseMergeResourcesQuestionDao.insertBatch(convertedList);
return resourcesQuestionIdPair;
}
/**
@ -550,21 +534,37 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
* @param to
* @param courseInfoIdPair
*/
public void resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion(
public Map<Long, Long> resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion(
@NotNull Collection<ResourcesQuestion> from,
@NotNull Collection<TeacherOpenCourseMergeResourcesQuestion> to,
Map<Long, Long> courseInfoIdPair) {
Map<Long, Long> resourcesQuestionIdPair = new HashMap<>();
// 拷贝部分字段映射
CopyOptions copyOptions = CopyOptions.create().setFieldMapping(MapUtil.of("courseInfoId", "teacherOpenCourseMergeCourseInfoId"));
Map<String, String> of = MapUtil.of("courseInfoId", "teacherOpenCourseMergeCourseInfoId");
of.put("resourcesQuestionId", "teacherOpenCourseMergeResourcesQuestionId");
CopyOptions copyOptions = CopyOptions.create().setFieldMapping(of);
// 拷贝
to.addAll(BeanUtil.copyToList(from, TeacherOpenCourseMergeResourcesQuestion.class, copyOptions));
// 主动更改Id并记录映射关系
for (TeacherOpenCourseMergeResourcesQuestion teacherOpenCourseMergeResourcesQuestion : to) {
long newId = snowflake.nextId();
// 记录映射关系
resourcesQuestionIdPair.put(teacherOpenCourseMergeResourcesQuestion.getTeacherOpenCourseMergeResourcesQuestionId(),
newId);
teacherOpenCourseMergeResourcesQuestion.setTeacherOpenCourseMergeCourseInfoId(newId);
}
if (ObjectUtil.isAllEmpty(to, courseInfoIdPair)) {
return;
return new HashMap<>();
}
// 重置开课课程ID
resetNewId(to, courseInfoIdPair);
return resourcesQuestionIdPair;
}
/**

@ -466,8 +466,7 @@ public class TeacherOpenCourseMergeResourcesQuestionController extends BaseContr
*/
@PostMapping(API + "/copyFromQuestion.do")
public JsonResult copyFromQuestion(Long[] resourcesQuestionIds, Long teacherOpenCourseId) {
teacherOpenCourseMergeResourcesQuestionService.copyFromSystemQuestion(CollectionUtil.newHashSet(resourcesQuestionIds), teacherOpenCourseId, null);
return JsonResult.success();
return JsonResult.success(teacherOpenCourseMergeResourcesQuestionService.copyFromSystemQuestion(CollectionUtil.newHashSet(resourcesQuestionIds), teacherOpenCourseId, null));
}
/**

Loading…
Cancel
Save