diff --git a/course/src/main/java/com/ruoyi/course/controller/ClazzController.java b/course/src/main/java/com/ruoyi/course/controller/ClazzController.java index 8dcc84ee..cd86ed26 100644 --- a/course/src/main/java/com/ruoyi/course/controller/ClazzController.java +++ b/course/src/main/java/com/ruoyi/course/controller/ClazzController.java @@ -112,12 +112,9 @@ public class ClazzController extends BaseController { } @Operation(summary = "查询所有班级", description = "获取所有班级列表") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "查询成功") - }) @GetMapping("/list") public TableDataInfo listTeachers( Clazz clazz) { - startPage(); + // 创建查询条件 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -144,7 +141,8 @@ public class ClazzController extends BaseController { // 按创建时间倒序 wrapper.orderByDesc(Clazz::getCreateTime); - List list = clazzService.list(); + startPage(); + List list = clazzService.list(wrapper); return getDataTable(list); } diff --git a/course/src/main/java/com/ruoyi/course/controller/CourseController.java b/course/src/main/java/com/ruoyi/course/controller/CourseController.java index a6c02d90..41fc4636 100644 --- a/course/src/main/java/com/ruoyi/course/controller/CourseController.java +++ b/course/src/main/java/com/ruoyi/course/controller/CourseController.java @@ -84,8 +84,46 @@ public class CourseController extends BaseController { @ApiOperation("查询所有课程") @GetMapping("/list") public TableDataInfo listCourse(Course course) { + // 创建查询条件 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + // 添加查询条件(非空判断) + if (StringUtils.hasText(course.getCourseCode())) { + wrapper.like(Course::getCourseCode, course.getCourseCode()); + } + + if (StringUtils.hasText(course.getCourseName())) { + wrapper.like(Course::getCourseName, course.getCourseName()); + } + + if (StringUtils.hasText(course.getCourseType())) { + wrapper.eq(Course::getCourseType, course.getCourseType()); + } + + if (StringUtils.hasText(course.getSubject())) { + wrapper.eq(Course::getSubject, course.getSubject()); + } + + if (StringUtils.hasText(course.getGradeLevel())) { + wrapper.eq(Course::getGradeLevel, course.getGradeLevel()); + } + + if (course.getPriority() != null) { + wrapper.eq(Course::getPriority, course.getPriority()); + } + + if (course.getCrossClass() != null) { + wrapper.eq(Course::getCrossClass, course.getCrossClass()); + } + + if (course.getStatus() != null) { + wrapper.eq(Course::getStatus, course.getStatus()); + } + + // 按创建时间倒序 + wrapper.orderByDesc(Course::getCreateTime); startPage(); - List list = courseService.list(); + List list = courseService.list(wrapper); return getDataTable(list); } diff --git a/course/src/main/java/com/ruoyi/course/controller/StudentController.java b/course/src/main/java/com/ruoyi/course/controller/StudentController.java index 49a57ce8..4d29977a 100644 --- a/course/src/main/java/com/ruoyi/course/controller/StudentController.java +++ b/course/src/main/java/com/ruoyi/course/controller/StudentController.java @@ -7,11 +7,14 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.course.common.R; import com.ruoyi.course.domain.Student; +import com.ruoyi.course.domain.dto.StudentQueryDTO; import com.ruoyi.course.domain.vo.StudentQueryVO; +import com.ruoyi.course.enums.GradeEnum; import com.ruoyi.course.service.IStudentService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; @@ -30,6 +33,7 @@ import java.util.List; @RestController @RequestMapping("/course/student") @Api(tags = "学生管理") +@Slf4j public class StudentController extends BaseController { @Autowired @@ -86,38 +90,40 @@ public class StudentController extends BaseController { @ApiOperation("查询所有学生") @GetMapping("/list") - public TableDataInfo listStudents(Student student) { + public TableDataInfo listStudents(StudentQueryDTO queryDTO) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + + // 处理年级条件 + try { + GradeEnum gradeEnum = queryDTO.getGradeEnum(); + if (gradeEnum != null && gradeEnum != GradeEnum.ALL) { + wrapper.eq(Student::getGrade, gradeEnum); + } + } catch (IllegalArgumentException e) { + log.warn("年级参数转换失败: {}", queryDTO.getGrade()); + } + + // 其他条件 + if (StringUtils.hasText(queryDTO.getStudentNo())) { + wrapper.like(Student::getStudentNo, queryDTO.getStudentNo()); + } + if (StringUtils.hasText(queryDTO.getName())) { + wrapper.like(Student::getName, queryDTO.getName()); + } + if (queryDTO.getClassId() != null) { + wrapper.eq(Student::getClassId, queryDTO.getClassId()); + } + if (queryDTO.getStatus() != null) { + wrapper.eq(Student::getStatus, queryDTO.getStatus()); + } + + wrapper.orderByDesc(Student::getCreateTime); startPage(); -// // 创建查询条件 -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// -// // 添加查询条件(非空判断) -// if (StringUtils.hasText(student.getStudentNo())) { -// wrapper.like(Student::getStudentNo, student.getStudentNo()); -// } -// -// if (StringUtils.hasText(student.getName())) { -// wrapper.like(Student::getName, student.getName()); -// } -// -// if (student.getClassId() != null) { -// wrapper.eq(Student::getClassId, student.getClassId()); -// } -// -// if (StringUtils.hasText(String.valueOf(student.getGrade()))) { -// wrapper.eq(Student::getGrade, student.getGrade()); -// } -// -// if (student.getStatus() != null) { -// wrapper.eq(Student::getStatus, student.getStatus()); -// } -// -// // 按创建时间倒序 -// wrapper.orderByDesc(Student::getCreateTime); -// List list = studentService.list(wrapper); - List list = studentService.list(); + + + List list = studentService.list(wrapper); return getDataTable(list); } diff --git a/course/src/main/java/com/ruoyi/course/controller/TeacherController.java b/course/src/main/java/com/ruoyi/course/controller/TeacherController.java index fd57b238..352f7af8 100644 --- a/course/src/main/java/com/ruoyi/course/controller/TeacherController.java +++ b/course/src/main/java/com/ruoyi/course/controller/TeacherController.java @@ -119,7 +119,7 @@ public class TeacherController extends BaseController { }) @GetMapping("/list") public TableDataInfo listTeachers(Teacher teacher) { - startPage(); + // 创建查询条件 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -151,6 +151,7 @@ public class TeacherController extends BaseController { // 按创建时间倒序 wrapper.orderByDesc(Teacher::getCreateTime); + startPage(); List list = teacherService.list(wrapper); return getDataTable(list); } diff --git a/course/src/main/java/com/ruoyi/course/domain/Student.java b/course/src/main/java/com/ruoyi/course/domain/Student.java index 516186bd..e999d8dc 100644 --- a/course/src/main/java/com/ruoyi/course/domain/Student.java +++ b/course/src/main/java/com/ruoyi/course/domain/Student.java @@ -4,12 +4,12 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.course.enums.GradeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -import com.ruoyi.course.enums.GradeEnum; import java.io.Serializable; import java.time.LocalDateTime; diff --git a/course/src/main/java/com/ruoyi/course/domain/dto/StudentQueryDTO.java b/course/src/main/java/com/ruoyi/course/domain/dto/StudentQueryDTO.java new file mode 100644 index 00000000..96f4eb6a --- /dev/null +++ b/course/src/main/java/com/ruoyi/course/domain/dto/StudentQueryDTO.java @@ -0,0 +1,60 @@ +package com.ruoyi.course.domain.dto; + +import com.ruoyi.course.enums.GradeEnum; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.util.StringUtils; + +@Data +@ApiModel("学生查询DTO") +public class StudentQueryDTO { + + @ApiModelProperty("学号") + private String studentNo; + + @ApiModelProperty("姓名") + private String name; + + @ApiModelProperty("年级(支持多种格式:1、'高一'、'FRESHMAN')") + private String grade; + + @ApiModelProperty("班级ID") + private Long classId; + + @ApiModelProperty("状态") + private Integer status; + + @ApiModelProperty("页码") + private Integer pageNum; + + @ApiModelProperty("每页数量") + private Integer pageSize; + + /** + * 转换为GradeEnum + */ + public GradeEnum getGradeEnum() { + if (!StringUtils.hasText(grade)) { + return null; + } + + try { + // 尝试解析为数字 + int code = Integer.parseInt(grade); + return GradeEnum.fromCode(code); + } catch (NumberFormatException e1) { + try { + // 尝试根据显示名称转换 + return GradeEnum.fromDisplayName(grade); + } catch (IllegalArgumentException e2) { + try { + // 尝试根据枚举名称转换 + return GradeEnum.valueOf(grade.toUpperCase()); + } catch (IllegalArgumentException e3) { + throw new IllegalArgumentException("无效的年级格式: " + grade); + } + } + } + } +} \ No newline at end of file diff --git a/course/src/main/java/com/ruoyi/course/mapper/CourseMapper.java b/course/src/main/java/com/ruoyi/course/mapper/CourseMapper.java index fbc7c818..e96f4542 100644 --- a/course/src/main/java/com/ruoyi/course/mapper/CourseMapper.java +++ b/course/src/main/java/com/ruoyi/course/mapper/CourseMapper.java @@ -1,12 +1,9 @@ package com.ruoyi.course.mapper; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.course.domain.Course; import org.apache.ibatis.annotations.Mapper; -import java.util.List; - /** *

* 课程信息表 Mapper 接口 @@ -18,20 +15,6 @@ import java.util.List; @Mapper public interface CourseMapper extends BaseMapper { - default List findByGradeLevel(String gradeLevel) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Course::getGradeLevel, gradeLevel) - .eq(Course::getStatus, 1) - .orderByAsc(Course::getCourseName); - return selectList(wrapper); - } - default List findByType(String courseType) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Course::getCourseType, courseType) - .eq(Course::getStatus, 1) - .orderByAsc(Course::getId); - return selectList(wrapper); - } } diff --git a/course/src/main/java/com/ruoyi/course/mapper/TeacherMapper.java b/course/src/main/java/com/ruoyi/course/mapper/TeacherMapper.java index 9fa3f91a..7ac2e1d7 100644 --- a/course/src/main/java/com/ruoyi/course/mapper/TeacherMapper.java +++ b/course/src/main/java/com/ruoyi/course/mapper/TeacherMapper.java @@ -1,12 +1,9 @@ package com.ruoyi.course.mapper; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.course.domain.Teacher; import org.apache.ibatis.annotations.Mapper; -import java.util.List; - /** *

* 教师信息表 Mapper 接口 @@ -18,34 +15,5 @@ import java.util.List; @Mapper public interface TeacherMapper extends BaseMapper { - default List findBySubject(String subject) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Teacher::getSubject, subject) - .eq(Teacher::getStatus, 1) - .orderByAsc(Teacher::getTeacherNo); - return selectList(wrapper); - } - - default List findByGradeLevel(String gradeLevel) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper - .eq(Teacher::getStatus, 1) - .orderByAsc(Teacher::getTeacherName); - return selectList(wrapper); - } - - default Teacher findByTeacherNo(String teacherNo) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Teacher::getTeacherNo, teacherNo) - .eq(Teacher::getStatus, 1); - return selectOne(wrapper); - } - - default List findAll() { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Teacher::getStatus, 1) - .orderByAsc(Teacher::getId); - return selectList(wrapper); - } }