feat(student): 添加学生查询功能并支持按姓名过滤
- 学生查询页面新增姓名输入框及查询、重置按钮 - 实现学生列表展示与分页功能 - 支持根据选中班级和年级联动查询学生 - 学生接口新增按姓名条件查询支持 - 服务层及Mapper层方法添加姓名参数过滤功能 - Vue页面同步新增学生相关响应式状态与方法 - 优化表格交互,支持点击行选中高亮及联动查询
This commit is contained in:
@@ -41,8 +41,8 @@ public class StudentController {
|
||||
Integer gradeId = findStudentsReqVO.getGradeId();
|
||||
Integer pageNo = findStudentsReqVO.getPageNo();
|
||||
Integer pageSize = findStudentsReqVO.getPageSize();
|
||||
|
||||
List<StudentDO> students = studentService.getStudentsByClassIdAndGradeId(classId, gradeId, pageNo, pageSize);
|
||||
String name = findStudentsReqVO.getName();
|
||||
List<StudentDO> students = studentService.getStudentsByClassIdAndGradeId(classId, gradeId, name, pageNo, pageSize);
|
||||
int allStudents = studentService.getAllStudents();
|
||||
|
||||
List<StudentItemRspVO> studentItemRspVOS = students.stream().map(studentDO -> StudentItemRspVO.builder()
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package com.yinlihupo.enlish.service.domain.mapper;
|
||||
|
||||
import com.yinlihupo.enlish.service.domain.dataobject.StudentDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface StudentDOMapper {
|
||||
|
||||
List<StudentDO> selectStudentDOListByClassIdAndGradeId(Integer classId, Integer gradeId, Integer pageSize, Integer offset);
|
||||
List<StudentDO> selectStudentDOListByClassIdAndGradeId(@Param("classId") Integer classId, @Param("gradeId") Integer gradeId, @Param("name") String name, @Param("startIndex") Integer startIndex, @Param("pageSize") Integer pageSize);
|
||||
|
||||
int selectStudentCount();
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
|
||||
@Builder
|
||||
public class FindStudentsReqVO {
|
||||
|
||||
private String name;
|
||||
private Integer classId;
|
||||
private Integer gradeId;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.List;
|
||||
|
||||
public interface StudentService {
|
||||
|
||||
List<StudentDO> getStudentsByClassIdAndGradeId(Integer classId, Integer gradeId, Integer pageNo, Integer pageSize);
|
||||
List<StudentDO> getStudentsByClassIdAndGradeId(Integer classId, Integer gradeId, String name, Integer pageNo, Integer pageSize);
|
||||
|
||||
int getAllStudents();
|
||||
|
||||
|
||||
@@ -16,9 +16,9 @@ public class StudentServiceImpl implements StudentService {
|
||||
private StudentDOMapper studentDOMapper;
|
||||
|
||||
@Override
|
||||
public List<StudentDO> getStudentsByClassIdAndGradeId(Integer classId, Integer gradeId, Integer pageNo, Integer pageSize) {
|
||||
public List<StudentDO> getStudentsByClassIdAndGradeId(Integer classId, Integer gradeId, String name, Integer pageNo, Integer pageSize) {
|
||||
|
||||
return studentDOMapper.selectStudentDOListByClassIdAndGradeId(classId, gradeId, pageSize, (pageNo - 1) * pageSize);
|
||||
return studentDOMapper.selectStudentDOListByClassIdAndGradeId(classId, gradeId, name, (pageNo - 1) * pageSize, pageSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -22,7 +22,10 @@
|
||||
<if test="gradeId != null">
|
||||
AND grade_id = #{gradeId}
|
||||
</if>
|
||||
LIMIT #{offset}, #{pageSize}
|
||||
<if test="name != null">
|
||||
AND name like concat('%', #{name}, '%')
|
||||
</if>
|
||||
LIMIT #{startIndex}, #{pageSize}
|
||||
</select>
|
||||
|
||||
<select id="selectStudentCount">
|
||||
|
||||
Reference in New Issue
Block a user