diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/GradeController.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/GradeController.java new file mode 100644 index 0000000..db7105e --- /dev/null +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/controller/GradeController.java @@ -0,0 +1,41 @@ +package com.yinlihupo.enlish.service.controller; + + +import com.yinlihupo.enlish.service.domain.dataobject.GradeDO; +import com.yinlihupo.enlish.service.model.vo.grade.FindGradeListReqVO; +import com.yinlihupo.enlish.service.model.vo.grade.FindGradeListRspVO; +import com.yinlihupo.enlish.service.service.GradeService; +import com.yinlihupo.framework.biz.operationlog.aspect.ApiOperationLog; +import com.yinlihupo.framework.common.response.PageResponse; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/grade") +public class GradeController { + + @Resource + private GradeService gradeService; + + @PostMapping("/list") + @ApiOperationLog(description = "查询年级列表") + public PageResponse findGradeList(@RequestBody FindGradeListReqVO findGradeListReqVO) { + Integer page = findGradeListReqVO.getPage(); + Integer pageSize = findGradeListReqVO.getPageSize(); + List gradeList = gradeService.findGradeList(page, pageSize); + + List list = gradeList.stream().map(gradeDO -> FindGradeListRspVO.builder() + .id(gradeDO.getId()) + .title(gradeDO.getTitle()) + .build() + ).toList(); + Integer gradeCount = gradeService.findGradeCount(); + + return PageResponse.success(list, page, gradeCount, pageSize); + } +} diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/GradeDOMapper.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/GradeDOMapper.java index 49e3525..74a4821 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/GradeDOMapper.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/domain/mapper/GradeDOMapper.java @@ -10,4 +10,8 @@ public interface GradeDOMapper { GradeDO selectById(Integer id); List selectByGradeIds(@Param("gradeIds") List gradeIds); + + List selectList(@Param("startIndex") Integer startIndex, @Param("pageSize") Integer pageSize); + + Integer selectCount(); } \ No newline at end of file diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/grade/FindGradeListReqVO.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/grade/FindGradeListReqVO.java new file mode 100644 index 0000000..df11160 --- /dev/null +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/grade/FindGradeListReqVO.java @@ -0,0 +1,16 @@ +package com.yinlihupo.enlish.service.model.vo.grade; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class FindGradeListReqVO { + + Integer page; + Integer pageSize; +} diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/grade/FindGradeListRspVO.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/grade/FindGradeListRspVO.java new file mode 100644 index 0000000..e08cbdd --- /dev/null +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/model/vo/grade/FindGradeListRspVO.java @@ -0,0 +1,16 @@ +package com.yinlihupo.enlish.service.model.vo.grade; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@Builder +public class FindGradeListRspVO { + + private Integer id; + private String title; +} diff --git a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/GradeService.java b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/GradeService.java index af8afac..fdaa5de 100644 --- a/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/GradeService.java +++ b/enlish-service/src/main/java/com/yinlihupo/enlish/service/service/GradeService.java @@ -2,7 +2,13 @@ package com.yinlihupo.enlish.service.service; import com.yinlihupo.enlish.service.domain.dataobject.GradeDO; +import java.util.List; + public interface GradeService { GradeDO findByClassId(Integer classId); + + List findGradeList(Integer page, Integer PageSize); + + Integer findGradeCount(); } 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 4baf4e7..0aba5bd 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 @@ -6,6 +6,8 @@ import com.yinlihupo.enlish.service.service.GradeService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class GradeServiceImpl implements GradeService { @@ -16,4 +18,14 @@ public class GradeServiceImpl implements GradeService { public GradeDO findByClassId(Integer classId) { return gradeDOMapper.selectById(classId); } + + @Override + public List findGradeList(Integer page, Integer PageSize) { + return gradeDOMapper.selectList((page - 1) * PageSize, PageSize); + } + + @Override + public Integer findGradeCount() { + return gradeDOMapper.selectCount(); + } } diff --git a/enlish-service/src/main/resources/mapper/GradeDOMapper.xml b/enlish-service/src/main/resources/mapper/GradeDOMapper.xml index b73ddef..b27b294 100644 --- a/enlish-service/src/main/resources/mapper/GradeDOMapper.xml +++ b/enlish-service/src/main/resources/mapper/GradeDOMapper.xml @@ -12,6 +12,7 @@ from grade where id = #{id} + + + + + \ No newline at end of file diff --git a/enlish-vue/src/api/grade.js b/enlish-vue/src/api/grade.js new file mode 100644 index 0000000..4435307 --- /dev/null +++ b/enlish-vue/src/api/grade.js @@ -0,0 +1,8 @@ +import axios from "@/axios"; + +export function getGradeList(page, size) { + return axios.post('/grade/list', { + page: page, + pageSize: size + }) +} \ No newline at end of file diff --git a/enlish-vue/src/pages/class.vue b/enlish-vue/src/pages/class.vue index 8a8720b..e3e2c9d 100644 --- a/enlish-vue/src/pages/class.vue +++ b/enlish-vue/src/pages/class.vue @@ -7,24 +7,21 @@
+
班级列表
- -
-
-
@@ -32,11 +29,19 @@
内容待完善
-
-
左下卡片
-
内容待完善
+
+
年级列表
+ + + + +
+ +
- +
@@ -48,12 +53,18 @@ import Header from '@/layouts/components/Header.vue' import { ref, onMounted } from 'vue' import { getClassList } from '@/api/class' +import { getGradeList } from '@/api/grade' const classes = ref([]) const pageNo = ref(1) const pageSize = ref(10) const totalCount = ref(0) const loading = ref(false) +const grades = ref([]) +const gradePageNo = ref(1) +const gradePageSize = ref(10) +const gradeTotalCount = ref(0) +const gradeLoading = ref(false) async function fetchClasses() { loading.value = true @@ -69,6 +80,20 @@ async function fetchClasses() { } } +async function fetchGrades() { + gradeLoading.value = true + try { + const res = await getGradeList(gradePageNo.value, gradePageSize.value) + const d = res.data + grades.value = Array.isArray(d.data) ? d.data : [] + gradeTotalCount.value = d.totalCount || 0 + gradePageNo.value = d.pageNo || gradePageNo.value + gradePageSize.value = d.pageSize || gradePageSize.value + } finally { + gradeLoading.value = false + } +} + function handlePageChange(p) { pageNo.value = p fetchClasses() @@ -79,7 +104,18 @@ function handleSizeChange(s) { fetchClasses() } +function handleGradePageChange(p) { + gradePageNo.value = p + fetchGrades() +} +function handleGradeSizeChange(s) { + gradePageSize.value = s + gradePageNo.value = 1 + fetchGrades() +} + onMounted(() => { fetchClasses() + fetchGrades() })