添加记录

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, public void copySystemHandsToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
@NotNull(message = "课程ID不能为空") Long courseInfoId, @NotNull(message = "课程ID不能为空") Long courseInfoId,
@Nullable Map<Long, Long> courseInfoIdPair) { @Nullable Map<Long, Long> courseInfoIdPair,
@Nullable Map<Long, Long> resourcesQuestionIdPair
) {
Date now = new Date(); Date now = new Date();
CoreUser currentUser = getUser(); CoreUser currentUser = getUser();

@ -807,8 +807,8 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
// 如果课程章节没查到记录,则下面的资源也没必要执行,资源依赖课程章节 // 如果课程章节没查到记录,则下面的资源也没必要执行,资源依赖课程章节
if (ObjectUtil.isNotEmpty(courseInfos)) { if (ObjectUtil.isNotEmpty(courseInfos)) {
// 拷贝系统题目库到教师开课 // 拷贝系统题目库到教师开课,并返回新旧题目ID的映射关系
teacherOpenCourseMergeResourcesQuestionService.copySystemQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair); Map<Long, Long> resourcesQuestionIdPair = teacherOpenCourseMergeResourcesQuestionService.copySystemQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
// 取出来所有的课程章、节的ID。大于等于2就是章和他的子节点.从系统题目表抽取 // 取出来所有的课程章、节的ID。大于等于2就是章和他的子节点.从系统题目表抽取
// teacherOpenCourseQuestionSettingService.copySystemQuestionChapterTestQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair); // teacherOpenCourseQuestionSettingService.copySystemQuestionChapterTestQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
// 从开课题库中抽取章节练习题 // 从开课题库中抽取章节练习题
@ -816,7 +816,7 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
// 拷贝系统资源库到教师开课 // 拷贝系统资源库到教师开课
teacherOpenCourseMergeResourcesInfoService.copySystemResourcesInfoToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair); 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.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.EnumUtil; import cn.hutool.core.util.EnumUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
@ -81,6 +82,8 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
@Autowired @Autowired
private ResourcesQuestionSnapshotService resourcesQuestionSnapshotService; private ResourcesQuestionSnapshotService resourcesQuestionSnapshotService;
private static final Snowflake snowflake = new Snowflake();
public PageQuery<TeacherOpenCourseMergeResourcesQuestion> queryByCondition(PageQuery query) { public PageQuery<TeacherOpenCourseMergeResourcesQuestion> queryByCondition(PageQuery query) {
PageQuery ret = teacherOpenCourseMergeResourcesQuestionDao.queryByCondition(query); PageQuery ret = teacherOpenCourseMergeResourcesQuestionDao.queryByCondition(query);
@ -465,7 +468,7 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
* @param allCourseInfo * @param allCourseInfo
* @param courseInfoIdPair IDIDID * @param courseInfoIdPair IDIDID
*/ */
public void copySystemQuestionToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId, public Map<Long, Long> copySystemQuestionToOpenCourse(@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId,
Collection<CourseInfo> allCourseInfo, @NotNull Map<Long, Long> courseInfoIdPair) { Collection<CourseInfo> allCourseInfo, @NotNull Map<Long, Long> courseInfoIdPair) {
// 待拷贝的系统课程ID不能为空.才会执行 // 待拷贝的系统课程ID不能为空.才会执行
@ -480,33 +483,12 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
// 系统题目库ID集合 // 系统题目库ID集合
Set<Long> resourcesQuestionIds = resourcesQuestionList.stream().map(ResourcesQuestion::getResourcesQuestionId).collect(toSet()); 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 * resources_question
@ -519,11 +501,11 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
* @param courseInfoIdPair * @param courseInfoIdPair
* @return * @return
*/ */
public void copyFromSystemQuestion(Set<Long> systemResourcesQuestionIds, public Map<Long, Long> copyFromSystemQuestion(Set<Long> systemResourcesQuestionIds,
@NotNull(message = "开课ID不能为空") Long teacherOpenCourseId, Map<Long, Long> courseInfoIdPair) { @NotNull(message = "开课ID不能为空") Long teacherOpenCourseId, Map<Long, Long> courseInfoIdPair) {
if (ObjectUtil.isEmpty(systemResourcesQuestionIds)) { if (ObjectUtil.isEmpty(systemResourcesQuestionIds)) {
return; return courseInfoIdPair;
} }
// 题目ID集合 // 题目ID集合
String ids = join(systemResourcesQuestionIds.toArray(), ","); String ids = join(systemResourcesQuestionIds.toArray(), ",");
@ -536,11 +518,13 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
// 转换后的数据暂存 // 转换后的数据暂存
List<TeacherOpenCourseMergeResourcesQuestion> convertedList = new ArrayList<>(); List<TeacherOpenCourseMergeResourcesQuestion> convertedList = new ArrayList<>();
// 类转换方法 // 类转换方法
resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion(resourcesQuestions, convertedList, courseInfoIdPair); Map<Long, Long> resourcesQuestionIdPair = resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion(resourcesQuestions, convertedList, courseInfoIdPair);
// 设置开课ID // 设置开课ID
convertedList.forEach(item -> item.setTeacherOpenCourseId(teacherOpenCourseId)); convertedList.forEach(item -> item.setTeacherOpenCourseId(teacherOpenCourseId));
// 批量插入 // 批量插入
teacherOpenCourseMergeResourcesQuestionDao.insertBatch(convertedList); teacherOpenCourseMergeResourcesQuestionDao.insertBatch(convertedList);
return resourcesQuestionIdPair;
} }
/** /**
@ -550,21 +534,37 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
* @param to * @param to
* @param courseInfoIdPair * @param courseInfoIdPair
*/ */
public void resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion( public Map<Long, Long> resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion(
@NotNull Collection<ResourcesQuestion> from, @NotNull Collection<ResourcesQuestion> from,
@NotNull Collection<TeacherOpenCourseMergeResourcesQuestion> to, @NotNull Collection<TeacherOpenCourseMergeResourcesQuestion> to,
Map<Long, Long> courseInfoIdPair) { 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)); 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)) { if (ObjectUtil.isAllEmpty(to, courseInfoIdPair)) {
return; return new HashMap<>();
} }
// 重置开课课程ID // 重置开课课程ID
resetNewId(to, courseInfoIdPair); resetNewId(to, courseInfoIdPair);
return resourcesQuestionIdPair;
} }
/** /**

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

Loading…
Cancel
Save