diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/ClassController.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/ClassController.java index 80b5f31..983ca5d 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/ClassController.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/ClassController.java @@ -2,6 +2,8 @@ package com.yinlihupo.enlish.service.controller; import com.yinlihupo.enlish.service.domain.dataobject.ClassDO; import com.yinlihupo.enlish.service.domain.dataobject.GradeDO; +import com.yinlihupo.enlish.service.model.vo.classs.AddClassReqVO; +import com.yinlihupo.enlish.service.model.vo.classs.DeleteClassReqVO; import com.yinlihupo.enlish.service.model.vo.classs.FindClassReqVO; import com.yinlihupo.enlish.service.model.vo.classs.FindClassRspVO; import com.yinlihupo.enlish.service.service.ClassService; @@ -41,4 +43,16 @@ public class ClassController { return PageResponse.success(findClassRspVOS, page, total, pageSize); } + + @PostMapping("add") + @ApiOperationLog(description = "添加班级") + public void addClass(@RequestBody AddClassReqVO addClassReqVO) { + classService.addClass(addClassReqVO.getTitle(), addClassReqVO.getGradeId()); + } + + @PostMapping("delete") + @ApiOperationLog(description = "删除班级") + public void deleteClass(@RequestBody DeleteClassReqVO deleteClassReqVO) { + classService.deleteClass(deleteClassReqVO.getId()); + } } diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/ClassDOMapper.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/ClassDOMapper.java index f921018..7a2259a 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/ClassDOMapper.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/ClassDOMapper.java @@ -14,4 +14,8 @@ public interface ClassDOMapper { Integer selectClassDOCount(); List selectClassDOListByIds(@Param("classIds") List classIds); + + void insert(ClassDO classDO); + + void delete(@Param("id") Integer id); } \ No newline at end of file diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/GradeClassDOMapper.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/GradeClassDOMapper.java index 3ff3f68..93817e5 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/GradeClassDOMapper.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/GradeClassDOMapper.java @@ -7,4 +7,10 @@ import java.util.List; public interface GradeClassDOMapper { List selectByClassIds(@Param("classIds") List classIds); + + void insert(@Param("classId") Integer classId, @Param("gradeId") Integer gradeId); + + void deleteByClassId(@Param("classId") Integer classId); + + Integer selectByGradeId(@Param("gradeId") Integer gradeId); } \ No newline at end of file diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/classs/AddClassReqVO.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/classs/AddClassReqVO.java new file mode 100644 index 0000000..7abe156 --- /dev/null +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/classs/AddClassReqVO.java @@ -0,0 +1,16 @@ +package com.yinlihupo.enlish.service.model.vo.classs; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class AddClassReqVO { + + private String title; + private Integer gradeId; +} diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/classs/DeleteClassReqVO.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/classs/DeleteClassReqVO.java new file mode 100644 index 0000000..20ed2a2 --- /dev/null +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/classs/DeleteClassReqVO.java @@ -0,0 +1,15 @@ +package com.yinlihupo.enlish.service.model.vo.classs; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Builder +@Data +public class DeleteClassReqVO { + + private Integer id; +} diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/ClassService.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/ClassService.java index 0cc0e2d..02620a4 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/ClassService.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/ClassService.java @@ -15,4 +15,8 @@ public interface ClassService { int getClassCount(); Map findClassIds2GradeMap(List classIds); + + void addClass(String className, Integer gradeId); + + void deleteClass(Integer classId); } 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 7220f38..c7eed27 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 @@ -70,4 +70,18 @@ public class ClassServiceImpl implements ClassService { HashMap::new // 指定返回 HashMap )); } + + @Override + public void addClass(String className, Integer gradeId) { + ClassDO classDO = ClassDO.builder().title(className).build(); + classDOMapper.insert(classDO); + Integer id = classDO.getId(); + + gradeClassDOMapper.insert(id, gradeId); + } + + @Override + public void deleteClass(Integer classId) { + classDOMapper.delete(classId); + } } diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/grade/GradeServiceImpl.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/grade/GradeServiceImpl.java index 4b35ff3..75e230e 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/grade/GradeServiceImpl.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/grade/GradeServiceImpl.java @@ -1,6 +1,7 @@ package com.yinlihupo.enlish.service.service.grade; import com.yinlihupo.enlish.service.domain.dataobject.GradeDO; +import com.yinlihupo.enlish.service.domain.mapper.GradeClassDOMapper; import com.yinlihupo.enlish.service.domain.mapper.GradeDOMapper; import com.yinlihupo.enlish.service.service.GradeService; import jakarta.annotation.Resource; @@ -13,6 +14,8 @@ public class GradeServiceImpl implements GradeService { @Resource private GradeDOMapper gradeDOMapper; + @Resource + private GradeClassDOMapper gradeClassDOMapper; @Override public GradeDO findByClassId(Integer classId) { @@ -36,6 +39,12 @@ public class GradeServiceImpl implements GradeService { @Override public void delete(Integer id) { - gradeDOMapper.deleteById(id); + + Integer classIds = gradeClassDOMapper.selectByGradeId(id); + if (classIds == null || classIds == 0) { + gradeDOMapper.deleteById(id); + } else { + throw new RuntimeException("请先删除与该年级关联的班级"); + } } } diff --git a/enlish-service/src/main/resources/mapper/ClassDOMapper.xml b/enlish-service/src/main/resources/mapper/ClassDOMapper.xml index d8ae0e5..e144b0a 100644 --- a/enlish-service/src/main/resources/mapper/ClassDOMapper.xml +++ b/enlish-service/src/main/resources/mapper/ClassDOMapper.xml @@ -32,5 +32,14 @@ + + insert into `class` + (title) + values (#{title}) + + + delete from `class` + where id = #{id} + \ No newline at end of file diff --git a/enlish-service/src/main/resources/mapper/GradeClassDOMapper.xml b/enlish-service/src/main/resources/mapper/GradeClassDOMapper.xml index 26027b5..67b1060 100644 --- a/enlish-service/src/main/resources/mapper/GradeClassDOMapper.xml +++ b/enlish-service/src/main/resources/mapper/GradeClassDOMapper.xml @@ -6,12 +6,27 @@ - + + + + insert into grade_class + (class_id, grade_id) + values + (#{classId}, #{gradeId}) + + + + delete from grade_class where class_id = #{classId} + \ No newline at end of file diff --git a/enlish-vue/src/api/class.js b/enlish-vue/src/api/class.js index 67051a4..1bdf969 100644 --- a/enlish-vue/src/api/class.js +++ b/enlish-vue/src/api/class.js @@ -5,4 +5,17 @@ export function getClassList(page, size) { page: page, pageSize: size }) +} + +export function addClass(name, gradeId) { + return axios.post('/class/add', { + title: name, + gradeId: gradeId + }) +} + +export function deleteClass(id) { + return axios.post('/class/delete', { + id: id + }) } \ No newline at end of file diff --git a/enlish-vue/src/layouts/components/AddClassDialog.vue b/enlish-vue/src/layouts/components/AddClassDialog.vue new file mode 100644 index 0000000..f6653a2 --- /dev/null +++ b/enlish-vue/src/layouts/components/AddClassDialog.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/enlish-vue/src/pages/class.vue b/enlish-vue/src/pages/class.vue index 75ea8a5..6b5b36d 100644 --- a/enlish-vue/src/pages/class.vue +++ b/enlish-vue/src/pages/class.vue @@ -16,12 +16,22 @@ + + +
+
+ 新增班级 +
+ @@ -35,18 +45,13 @@ selectedGradeId }}) 查询 重置 - + 生成试题 - + @@ -58,22 +63,20 @@ :total="studentTotalCount" :page-size="studentPageSize" :current-page="studentPageNo" @current-change="handleStudentPageChange" @size-change="handleStudentSizeChange" /> - +
年级列表
- + @@ -98,10 +101,11 @@