From f518949014fec34694f1d2569a180e16688c5fa4 Mon Sep 17 00:00:00 2001
From: yaodan <1421553879@qq.com>
Date: Mon, 1 May 2023 22:41:54 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8B=B7=E8=B4=9D=E5=BC=80?=
 =?UTF-8?q?=E8=AF=BE=E5=AE=9E=E8=AE=AD=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../TeacherOpenCourseHandsOnService.java      | 155 +++++++++++++++++-
 ...urseHandsOnSimulationTasksFileService.java |  16 +-
 ...enCourseHandsOnSimulationTasksService.java |  21 ++-
 ...acherOpenCourseMergeCourseInfoService.java |   6 +-
 ...enCourseMergeResourcesQuestionService.java |  30 ++--
 5 files changed, 205 insertions(+), 23 deletions(-)

diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java
index 8aa5585b..977e8824 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnService.java
@@ -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();
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnSimulationTasksFileService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnSimulationTasksFileService.java
index 02f07380..17e297fd 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnSimulationTasksFileService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnSimulationTasksFileService.java
@@ -1,5 +1,6 @@
 package com.ibeetl.jlw.service;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.jlw.util.ToolUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
@@ -22,6 +23,10 @@ import org.springframework.validation.annotation.Validated;
 import javax.validation.constraints.NotNull;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
+
+import static cn.hutool.core.util.ArrayUtil.join;
+import static java.util.stream.Collectors.toSet;
 
 /**
  * 教师开课-课程实操任务附件 Service
@@ -155,7 +160,16 @@ public class TeacherOpenCourseHandsOnSimulationTasksFileService extends CoreBase
 
     @Override
     public void resetOperationByTeacherOpenCourseId(Long teacherOpenCourseId) {
-        log.info("可能需要实现重置操作!");
+        log.info("重置开课课程");
+        TeacherOpenCourseHandsOnSimulationTasksFileQuery query = new TeacherOpenCourseHandsOnSimulationTasksFileQuery();
+        query.setTeacherOpenCourseId(teacherOpenCourseId);
+        List<TeacherOpenCourseHandsOnSimulationTasksFile> values = getValuesByQuery(query);
+
+        // 根据ID删除数据
+        Set<Long> delIdList = values.stream().map(TeacherOpenCourseHandsOnSimulationTasksFile::getTaskId).collect(toSet());
+        if (ObjectUtil.isNotEmpty(delIdList)) {
+            deleteTeacherOpenCourseHandsOnSimulationTasksFile(join(delIdList.toArray(), ","));
+        }
     }
 
     @Override
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnSimulationTasksService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnSimulationTasksService.java
index 74ce6ae6..894f91c9 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnSimulationTasksService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseHandsOnSimulationTasksService.java
@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.NumberUtil;
-import cn.jlw.Interceptor.SCoreUser;
+import cn.hutool.core.util.ObjectUtil;
 import cn.jlw.util.ToolUtils;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -36,12 +36,12 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.validation.constraints.NotNull;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
+import static cn.hutool.core.util.ArrayUtil.join;
+import static java.util.stream.Collectors.toSet;
+
 /**
  * 教师开课-课程实操任务 Service
  * 当分布式ID开启后请勿使用insert(*,true)
@@ -507,7 +507,16 @@ public class TeacherOpenCourseHandsOnSimulationTasksService extends CoreBaseServ
 
     @Override
     public void resetOperationByTeacherOpenCourseId(Long teacherOpenCourseId) {
-        log.info("可能需要实现重置操作!");
+        log.info("重置开课课程");
+        TeacherOpenCourseHandsOnSimulationTasksQuery teacherOpenCourseHandsOnSimulationTasksQuery = new TeacherOpenCourseHandsOnSimulationTasksQuery();
+        teacherOpenCourseHandsOnSimulationTasksQuery.setTeacherOpenCourseId(teacherOpenCourseId);
+        List<TeacherOpenCourseHandsOnSimulationTasks> values = getValuesByQuery(teacherOpenCourseHandsOnSimulationTasksQuery);
+
+        // 根据ID删除数据
+        Set<Long> delIdList = values.stream().map(TeacherOpenCourseHandsOnSimulationTasks::getTaskId).collect(toSet());
+        if (ObjectUtil.isNotEmpty(delIdList)) {
+            deleteTeacherOpenCourseHandsOnSimulationTasks(join(delIdList.toArray(), ","));
+        }
     }
 
     @Override
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeCourseInfoService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeCourseInfoService.java
index b0458a0e..c77eb8d8 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeCourseInfoService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeCourseInfoService.java
@@ -1386,13 +1386,17 @@ public class TeacherOpenCourseMergeCourseInfoService extends CoreBaseService<Tea
             // 如果课程章节没查到记录,则下面的资源也没必要执行,资源依赖课程章节
             if (ObjectUtil.isNotEmpty(courseInfos)) {
                 // 拷贝系统题目库到教师开课
-                teacherOpenCourseMergeResourcesQuestionService.copyOpenCourseQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
+                Map<Long, Long> resourcesQuestionIdPair =teacherOpenCourseMergeResourcesQuestionService.copyOpenCourseQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
                 // 取出来所有的课程章、节的ID。大于等于2,就是章和他的子节点.从系统题目表抽取
 //                teacherOpenCourseQuestionSettingService.copySystemQuestionChapterTestQuestionToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
                 // 从开课题库中抽取章节练习题
                 teacherOpenCourseQuestionSettingService.copyOpenQuestionChapterTestQuestionToOpenCourse(teacherOpenCourseId, courseInfoIdPair);
                 // 拷贝开课资源库到教师开课
                 teacherOpenCourseMergeResourcesInfoService.copyOpenCourseResourcesInfoToOpenCourse(teacherOpenCourseId, courseInfos, courseInfoIdPair);
+
+                teacherOpenCourseHandsOnService.copyOpenCourseHandsToOpenCourse(teacherOpenCourseId, oldTeacherOpenCourseId, courseInfoIdPair,resourcesQuestionIdPair);
+
+
             }
         }
 
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java
index f73c7c12..510639b3 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java
@@ -82,7 +82,7 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
     @Autowired
     private ResourcesQuestionSnapshotService resourcesQuestionSnapshotService;
 
-    private static final   Snowflake snowflake = new Snowflake();
+    private static final Snowflake snowflake = new Snowflake();
 
 
     public PageQuery<TeacherOpenCourseMergeResourcesQuestion> queryByCondition(PageQuery query) {
@@ -489,7 +489,6 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
     }
 
 
-
     /**
      * 从resources_question 表,拷贝数据。类似从模板中,拉取数据
      * <p>
@@ -505,7 +504,7 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
                                                   @NotNull(message = "开课ID不能为空!") Long teacherOpenCourseId, Map<Long, Long> courseInfoIdPair) {
 
         if (ObjectUtil.isEmpty(systemResourcesQuestionIds)) {
-            return courseInfoIdPair;
+            return new HashMap<>();
         }
         // 题目ID集合
         String ids = join(systemResourcesQuestionIds.toArray(), ",");
@@ -554,7 +553,7 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
             // 记录映射关系
             resourcesQuestionIdPair.put(teacherOpenCourseMergeResourcesQuestion.getTeacherOpenCourseMergeResourcesQuestionId(),
                     newId);
-            teacherOpenCourseMergeResourcesQuestion.setTeacherOpenCourseMergeCourseInfoId(newId);
+            teacherOpenCourseMergeResourcesQuestion.setTeacherOpenCourseMergeResourcesQuestionId(newId);
         }
 
         if (ObjectUtil.isAllEmpty(to, courseInfoIdPair)) {
@@ -693,8 +692,8 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
         return result;
     }
 
-    public void copyOpenCourseQuestionToOpenCourse(@NotNull(message = "开课ID不能为空!") Long teacherOpenCourseId,
-                                                   Collection<TeacherOpenCourseMergeCourseInfo> allTeacherOpenCourseMergeCourseInfo, @NotNull Map<Long, Long> courseInfoIdPair) {
+    public Map<Long, Long> copyOpenCourseQuestionToOpenCourse(@NotNull(message = "开课ID不能为空!") Long teacherOpenCourseId,
+                                                              Collection<TeacherOpenCourseMergeCourseInfo> allTeacherOpenCourseMergeCourseInfo, @NotNull Map<Long, Long> courseInfoIdPair) {
         // 待拷贝的开课课程课程ID不能为空.才会执行
         if (ObjectUtil.isNotEmpty(allTeacherOpenCourseMergeCourseInfo)) {
             // 取出所有的课程章节ID
@@ -706,8 +705,9 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
             List<TeacherOpenCourseMergeResourcesQuestion> questionList = getValuesByQuery(teacherOpenCourseMergeResourcesQuestionQuery);
 
             // 拷贝其他开课题目目库到教师开课
-            copyFromOpenCourseQuestion(questionList, teacherOpenCourseId, courseInfoIdPair);
+            return copyFromOpenCourseQuestion(questionList, teacherOpenCourseId, courseInfoIdPair);
         }
+        return new HashMap<>();
     }
 
     /**
@@ -721,17 +721,16 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
      * @param courseInfoIdPair
      * @return
      */
-    public void copyFromOpenCourseQuestion(List<TeacherOpenCourseMergeResourcesQuestion> questionList,
-                                           @NotNull(message = "开课ID不能为空!") Long teacherOpenCourseId, Map<Long, Long> courseInfoIdPair) {
+    public Map<Long, Long> copyFromOpenCourseQuestion(List<TeacherOpenCourseMergeResourcesQuestion> questionList,
+                                                      @NotNull(message = "开课ID不能为空!") Long teacherOpenCourseId, Map<Long, Long> courseInfoIdPair) {
 
+        HashMap<Long, Long> questionIdMapOldAndNew = new HashMap<>();
         if (ObjectUtil.isEmpty(questionList)) {
-            return;
+            return new HashMap<>();
         }
 
         // 转换后的数据暂存
         List<TeacherOpenCourseMergeResourcesQuestion> convertedList = new ArrayList<>();
-        //// 类转换方法
-        //resourcesQuestionConvertToTeacherOpenCourseMergeResourcesQuestion(resourcesQuestions, convertedList, courseInfoIdPair);
 
         // 重置开课课程ID
         resetNewId(questionList, courseInfoIdPair);
@@ -739,11 +738,16 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ
         // 设置开课ID
         questionList.forEach(item -> {
                     item.setTeacherOpenCourseId(teacherOpenCourseId);
-                    item.setTeacherOpenCourseMergeResourcesQuestionId(null);
+                    Long oldId = item.getTeacherOpenCourseMergeResourcesQuestionId();
+                    long newId = snowflake.nextId();
+                    questionIdMapOldAndNew.put(oldId, newId);
+                    item.setTeacherOpenCourseMergeResourcesQuestionId(newId);
                 }
         );
         // 批量插入
         teacherOpenCourseMergeResourcesQuestionDao.insertBatch(questionList);
+
+        return questionIdMapOldAndNew;
     }