Pārlūkot izejas kodu

新增课程加入引入历史课程功能

liyanbo 4 mēneši atpakaļ
vecāks
revīzija
3a6df6d953

+ 30 - 9
byzs-course/src/main/java/cn/iocoder/byzs/module/bjdx/service/coursetype/CourseTypeServiceImpl.java

@@ -1,20 +1,23 @@
 package cn.iocoder.byzs.module.bjdx.service.coursetype;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.byzs.framework.common.enums.CommonStatusEnum;
+import cn.iocoder.byzs.framework.common.util.object.BeanUtils;
 import cn.iocoder.byzs.module.bjdx.controller.admin.coursetype.vo.CourseTypeListReqVO;
 import cn.iocoder.byzs.module.bjdx.controller.admin.coursetype.vo.CourseTypeSaveReqVO;
-import org.springframework.stereotype.Service;
+import cn.iocoder.byzs.module.bjdx.dal.dataobject.course.CourseDO;
+import cn.iocoder.byzs.module.bjdx.dal.dataobject.coursetype.CourseTypeDO;
+import cn.iocoder.byzs.module.bjdx.dal.mysql.course.CourseMapper;
+import cn.iocoder.byzs.module.bjdx.dal.mysql.coursetype.CourseTypeMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
-import java.util.*;
-import cn.iocoder.byzs.module.bjdx.controller.admin.coursetype.vo.*;
-import cn.iocoder.byzs.module.bjdx.dal.dataobject.coursetype.CourseTypeDO;
-import cn.iocoder.byzs.framework.common.util.object.BeanUtils;
-
-import cn.iocoder.byzs.module.bjdx.dal.mysql.coursetype.CourseTypeMapper;
+import java.util.List;
+import java.util.Objects;
 
 import static cn.iocoder.byzs.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.byzs.framework.common.util.collection.CollectionUtils.convertList;
 import static cn.iocoder.byzs.module.bjdx.enums.ErrorCodeConstants.*;
 
 /**
@@ -29,6 +32,9 @@ public class CourseTypeServiceImpl implements CourseTypeService {
     @Resource
     private CourseTypeMapper courseTypeMapper;
 
+    @Resource
+    private CourseMapper courseMapper;
+
     @Override
     public Long createCourseType(CourseTypeSaveReqVO createReqVO) {
         // 校验课程类型父级id的有效性
@@ -41,7 +47,22 @@ public class CourseTypeServiceImpl implements CourseTypeService {
         courseTypeMapper.insert(courseType);
         // 校验引入的课程历史id的有效性
         if (createReqVO.getHistoryCourseTypeId() != null) {
-            //查询类型下的所有课程小节,批量插入
+
+            List<CourseDO> courseHistoryList = courseMapper.selectList(
+                    new LambdaQueryWrapper<CourseDO>()
+                    .eq(CourseDO::getCourseType, createReqVO.getHistoryCourseTypeId())
+                    .eq(CourseDO::getCourseStatus, CommonStatusEnum.ENABLE.getStatus())
+                    .select(CourseDO::getCourseName, CourseDO::getCourseContentType, CourseDO::getCourseLabel,
+                            CourseDO::getCourseImagePath, CourseDO::getCourseVideoPath,
+                            CourseDO::getCourseMusicPath, CourseDO::getCourseFilePath,
+                            CourseDO::getCourseContent, CourseDO::getCourseOrder, CourseDO::getCourseStatus,
+                            CourseDO::getCourseTime, CourseDO::getCourseIsInspect)
+                    .orderByAsc(CourseDO::getCourseOrder));
+            // 批量插入
+            if (CollUtil.isNotEmpty(courseHistoryList)) {
+                courseHistoryList.forEach(item -> item.setCourseType(courseType.getId()));
+                courseMapper.insertBatch(courseHistoryList);
+            }
         }
 
         // 返回