feat(class): 删除班级时验证是否存在学生
- 新增StudentDOMapper接口方法selectStudentCountByClassId,用于查询班级下学生数量 - 在ClassServiceImpl中注入StudentDOMapper - 删除班级时先判断班级下是否存在学生,若存在则抛出异常防止删除 - 更新StudentDOMapper.xml,添加对应的SQL查询语句selectStudentCountByClassId
This commit is contained in:
@@ -19,4 +19,6 @@ public interface StudentDOMapper {
|
|||||||
|
|
||||||
// 逻辑删除
|
// 逻辑删除
|
||||||
void deleteById(Integer id);
|
void deleteById(Integer id);
|
||||||
|
|
||||||
|
int selectStudentCountByClassId(@Param("classId") Integer classId);
|
||||||
}
|
}
|
||||||
@@ -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.ClassDOMapper;
|
||||||
import com.yinlihupo.enlish.service.domain.mapper.GradeClassDOMapper;
|
import com.yinlihupo.enlish.service.domain.mapper.GradeClassDOMapper;
|
||||||
import com.yinlihupo.enlish.service.domain.mapper.GradeDOMapper;
|
import com.yinlihupo.enlish.service.domain.mapper.GradeDOMapper;
|
||||||
|
import com.yinlihupo.enlish.service.domain.mapper.StudentDOMapper;
|
||||||
import com.yinlihupo.enlish.service.service.ClassService;
|
import com.yinlihupo.enlish.service.service.ClassService;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -24,6 +25,8 @@ public class ClassServiceImpl implements ClassService {
|
|||||||
private GradeClassDOMapper gradeClassDOMapper;
|
private GradeClassDOMapper gradeClassDOMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private GradeDOMapper gradeDOMapper;
|
private GradeDOMapper gradeDOMapper;
|
||||||
|
@Resource
|
||||||
|
private StudentDOMapper studentDOMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ClassDO findClassById(Integer id) {
|
public ClassDO findClassById(Integer id) {
|
||||||
@@ -82,6 +85,10 @@ public class ClassServiceImpl implements ClassService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteClass(Integer classId) {
|
public void deleteClass(Integer classId) {
|
||||||
|
int selectStudentCountByClassId = studentDOMapper.selectStudentCountByClassId(classId);
|
||||||
|
if (selectStudentCountByClassId > 0) {
|
||||||
|
throw new RuntimeException("该班级下有学生,请先删除该班级下的学生");
|
||||||
|
}
|
||||||
classDOMapper.delete(classId);
|
classDOMapper.delete(classId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,4 +61,11 @@
|
|||||||
set is_deleted = 1
|
set is_deleted = 1
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="selectStudentCountByClassId" resultType="java.lang.Integer">
|
||||||
|
select count(1)
|
||||||
|
from student
|
||||||
|
where class_id = #{classId}
|
||||||
|
and is_deleted = 0
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user