瀏覽代碼

3.3.0 fix

xiaofei 1 年之前
父節點
當前提交
ad493beaf3

+ 3 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TeachClazzMapper.java

@@ -21,10 +21,12 @@ public interface TeachClazzMapper extends BaseMapper<TeachClazz> {
      * @param basicCourseId  基础课程主键
      * @param teachClazzName 教学班级名称
      * @param schoolId       学校id
+     * @param id
      * @return 结果
      */
     IPage<TeachClazzResult> findTeachClazzPage(@Param("iPage") Page<TeachClazzResult> iPage,
                                                @Param("basicCourseId") Long basicCourseId,
                                                @Param("teachClazzName") String teachClazzName,
-                                               @Param("schoolId") Long schoolId);
+                                               @Param("schoolId") Long schoolId,
+                                               @Param("userId") Long userId);
 }

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TeachClazzService.java

@@ -52,4 +52,6 @@ public interface TeachClazzService extends IService<TeachClazz> {
      * @return 字典结果
      */
     List<DictionaryResult> findTeachCourseByUserId(Long userId);
+
+    List<TeachClazz> listByBasicCourseIdAndUserId(Long schoolId, Long basicCourseId, Long userId);
 }

+ 13 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachClazzServiceImpl.java

@@ -48,8 +48,9 @@ public class TeachClazzServiceImpl extends ServiceImpl<TeachClazzMapper,TeachCla
     @Override
     public IPage<TeachClazzResult> teachClazzPage(Long basicCourseId, String teachClazzName, int pageNumber, int pageSize) {
         Long schoolId = SystemConstant.convertIdToLong(ServletUtil.getRequestHeaderSchoolId().toString());
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         teachClazzName = SystemConstant.translateSpecificSign(teachClazzName);
-        IPage<TeachClazzResult> resultIPage = this.baseMapper.findTeachClazzPage(new Page<>(pageNumber, pageSize), basicCourseId, teachClazzName, schoolId);
+        IPage<TeachClazzResult> resultIPage = this.baseMapper.findTeachClazzPage(new Page<>(pageNumber, pageSize), basicCourseId, teachClazzName, schoolId, sysUser.getId());
         List<TeachClazzResult> teachClazzResultList = resultIPage.getRecords();
 
         for (TeachClazzResult teachClazzResult : teachClazzResultList) {
@@ -107,8 +108,8 @@ public class TeachClazzServiceImpl extends ServiceImpl<TeachClazzMapper,TeachCla
     @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean deleteTeachClazzBatch(List<Long> idList) {
-        // TODO: 2022/2/10 删除逻辑不确定 先直接删除 (同时删除下级所有学生)
-        List<TeachStudent> teachStudentList = teachStudentService.list(new QueryWrapper<TeachStudent>().lambda().eq(TeachStudent::getTeachClazzId, idList));
+        // 删除班级时、同步删除学生
+        List<TeachStudent> teachStudentList = teachStudentService.list(new QueryWrapper<TeachStudent>().lambda().in(TeachStudent::getTeachClazzId, idList));
         // 删除教学学生
         teachStudentService.deleteTeachStudentBatch(teachStudentList.stream().map(BaseEntity::getId).distinct().collect(Collectors.toList()));
         return this.removeByIds(idList);
@@ -134,4 +135,13 @@ public class TeachClazzServiceImpl extends ServiceImpl<TeachClazzMapper,TeachCla
         }
         return dictionaryResultList;
     }
+
+    @Override
+    public List<TeachClazz> listByBasicCourseIdAndUserId(Long schoolId, Long basicCourseId, Long userId) {
+        QueryWrapper<TeachClazz> teachClazzQueryWrapper = new QueryWrapper<>();
+        teachClazzQueryWrapper.lambda().eq(TeachClazz::getSchoolId, schoolId)
+                .eq(TeachClazz::getBasicCourseId, basicCourseId)
+                .eq(TeachClazz::getUserId, userId);
+        return this.list(teachClazzQueryWrapper);
+    }
 }

+ 14 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TeachCourseServiceImpl.java

@@ -12,8 +12,10 @@ import com.qmth.distributed.print.business.bean.params.TeachCourseParams;
 import com.qmth.distributed.print.business.bean.params.TeacherTeamParam;
 import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
+import com.qmth.distributed.print.business.entity.TeachClazz;
 import com.qmth.distributed.print.business.entity.TeachCourse;
 import com.qmth.distributed.print.business.mapper.TeachCourseMapper;
+import com.qmth.distributed.print.business.service.TeachClazzService;
 import com.qmth.distributed.print.business.service.TeachCourseService;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.bean.params.BasicCourseParams;
@@ -69,6 +71,9 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
     @Resource
     private SysRoleService sysRoleService;
 
+    @Resource
+    private TeachClazzService teachClazzService;
+
     @Override
     public IPage<TeachCourseResult> teachCoursePage(String courseName, int pageNumber, int pageSize, Long userId) {
         if (!SystemConstant.longNotNull(userId)) {
@@ -218,6 +223,15 @@ public class TeachCourseServiceImpl extends ServiceImpl<TeachCourseMapper, Teach
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void deleteTeachCourseBatch(List<Long> idList) {
+        // 删除课程时,同步删除班级、学生、教师
+        List<TeachCourse> teachCourseList = this.listByIds(idList);
+        for (TeachCourse teachCourse : teachCourseList) {
+            List<TeachClazz> teachClazzList = teachClazzService.listByBasicCourseIdAndUserId(teachCourse.getSchoolId(), teachCourse.getBasicCourseId(), teachCourse.getUserId());
+            if(CollectionUtils.isNotEmpty(teachClazzList)){
+                List<Long> teachClazzIds = teachClazzList.stream().map(TeachClazz::getId).collect(Collectors.toList());
+                teachClazzService.deleteTeachClazzBatch(teachClazzIds);
+            }
+        }
         this.removeByIds(idList);
     }
 

+ 3 - 0
distributed-print-business/src/main/resources/mapper/TeachClazzMapper.xml

@@ -15,6 +15,9 @@
             <if test="schoolId != null and schoolId != ''">
                 AND school_id = #{schoolId}
             </if>
+            <if test="userId != null">
+                AND user_id = #{userId}
+            </if>
             <if test="teachClazzName != null and teachClazzName != ''">
                 AND teach_clazz_name LIKE CONCAT('%',#{teachClazzName},'%')
             </if>