From e5fbb445cf2b2cf36badbc0f3d9e40b61d1f051b Mon Sep 17 00:00:00 2001 From: lbw <1192299468@qq.com> Date: Mon, 15 Dec 2025 16:37:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(class):=20=E5=88=A0=E9=99=A4=E7=8F=AD?= =?UTF-8?q?=E7=BA=A7=E6=97=B6=E9=AA=8C=E8=AF=81=E6=98=AF=E5=90=A6=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=AD=A6=E7=94=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增StudentDOMapper接口方法selectStudentCountByClassId,用于查询班级下学生数量 - 在ClassServiceImpl中注入StudentDOMapper - 删除班级时先判断班级下是否存在学生,若存在则抛出异常防止删除 - 更新StudentDOMapper.xml,添加对应的SQL查询语句selectStudentCountByClassId --- .../enlish/service/domain/mapper/StudentDOMapper.java | 2 ++ .../enlish/service/service/classs/ClassServiceImpl.java | 7 +++++++ .../src/main/resources/mapper/StudentDOMapper.xml | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/StudentDOMapper.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/StudentDOMapper.java index 3931254..ce85bcc 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/StudentDOMapper.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/StudentDOMapper.java @@ -19,4 +19,6 @@ public interface StudentDOMapper { // 逻辑删除 void deleteById(Integer id); + + int selectStudentCountByClassId(@Param("classId") Integer classId); } \ No newline at end of file diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/classs/ClassServiceImpl.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/classs/ClassServiceImpl.java index c7eed27..5e5271f 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/classs/ClassServiceImpl.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/classs/ClassServiceImpl.java @@ -6,6 +6,7 @@ import com.yinlihupo.enlish.service.domain.dataobject.GradeDO; import com.yinlihupo.enlish.service.domain.mapper.ClassDOMapper; import com.yinlihupo.enlish.service.domain.mapper.GradeClassDOMapper; import com.yinlihupo.enlish.service.domain.mapper.GradeDOMapper; +import com.yinlihupo.enlish.service.domain.mapper.StudentDOMapper; import com.yinlihupo.enlish.service.service.ClassService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -24,6 +25,8 @@ public class ClassServiceImpl implements ClassService { private GradeClassDOMapper gradeClassDOMapper; @Resource private GradeDOMapper gradeDOMapper; + @Resource + private StudentDOMapper studentDOMapper; @Override public ClassDO findClassById(Integer id) { @@ -82,6 +85,10 @@ public class ClassServiceImpl implements ClassService { @Override public void deleteClass(Integer classId) { + int selectStudentCountByClassId = studentDOMapper.selectStudentCountByClassId(classId); + if (selectStudentCountByClassId > 0) { + throw new RuntimeException("该班级下有学生,请先删除该班级下的学生"); + } classDOMapper.delete(classId); } } diff --git a/enlish-service/src/main/resources/mapper/StudentDOMapper.xml b/enlish-service/src/main/resources/mapper/StudentDOMapper.xml index f6ad208..8f323fd 100644 --- a/enlish-service/src/main/resources/mapper/StudentDOMapper.xml +++ b/enlish-service/src/main/resources/mapper/StudentDOMapper.xml @@ -61,4 +61,11 @@ set is_deleted = 1 where id = #{id} + + \ No newline at end of file