Browse Source

课程管理删除 判断命题任务

caozixuan 3 năm trước cách đây
mục cha
commit
13da2d2004

+ 3 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/BasicCourseMapper.java

@@ -9,6 +9,7 @@ import com.qmth.teachcloud.common.entity.BasicCourse;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -44,5 +45,7 @@ public interface BasicCourseMapper extends BaseMapper<BasicCourse> {
                                                  @Param("schoolId") Long schoolId,
                                                  @Param("orgIds") Set<Long> orgIds);
 
+    List<Map<String,Object>> findExamTaskByCourseCode(@Param("schoolId") Long schoolId,@Param("courseCodeSet") Set<String> courseCodeSet);
+
 
 }

+ 19 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/BasicCourseServiceImpl.java

@@ -24,6 +24,7 @@ import org.springframework.util.LinkedMultiValueMap;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -151,10 +152,28 @@ public class BasicCourseServiceImpl extends ServiceImpl<BasicCourseMapper, Basic
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean removeBasicCourseBatch(List<Long> idList) {
+        Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
         if (idList.size() == 0) {
             throw ExceptionResultEnum.ERROR.exception("请选择要删除的目标");
         }
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        // 业务判断
+        Set<String> courseCodeSet = idList.stream().map(e -> {
+            BasicCourse basicCourse = this.getById(e);
+            if (Objects.isNull(basicCourse)){
+                throw ExceptionResultEnum.ERROR.exception("未找到课程");
+            }
+            return basicCourse.getCode();
+        }).collect(Collectors.toSet());
+        List<Map<String,Object>> mapList = basicCourseMapper.findExamTaskByCourseCode(schoolId,courseCodeSet);
+        if (mapList.size() > 0){
+            StringBuilder courseNames = new StringBuilder();
+            for (Map<String, Object> map : mapList) {
+                courseNames.append(map.get("courseName")).append(",");
+            }
+            throw ExceptionResultEnum.ERROR.exception("【课程】 : " + courseNames.substring(0,courseNames.length() - 1) + " 已经生成了命题任务,不允许删除");
+        }
+
         basicUserCourseService.remove(new QueryWrapper<BasicUserCourse>().lambda().in(BasicUserCourse::getCourseId, idList).eq(BasicUserCourse::getSchoolId, sysUser.getSchoolId()));
 
         UpdateWrapper<BasicCourse> updateWrapper = new UpdateWrapper<>();

+ 15 - 0
teachcloud-common/src/main/resources/mapper/BasicCourseMapper.xml

@@ -103,5 +103,20 @@
         GROUP BY bc.id
         ORDER BY createTime DESC
     </select>
+    <select id="findExamTaskByCourseCode" resultType="java.util.Map">
+        SELECT
+            course_code AS courseCode, course_name AS courseName
+        FROM
+            exam_task
+        <where>
+            AND school_id = #{schoolId}
+            <if test="courseCodeSet != null">
+                AND course_code IN
+                <foreach collection="courseCodeSet" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
 
 </mapper>