diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRecordController.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRecordController.java index be7e95fc..a692de04 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRecordController.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRecordController.java @@ -112,6 +112,18 @@ public class XskhDisciplineRecordController extends BaseController { return R.ok(xskhDisciplineRecordService.getStudentOptions(keyword)); } + /** + * 分页查询学生选项列表(用于移动端) + */ + @SaCheckPermission("disciplineRecord:disciplineRecord:query") + @GetMapping("/studentOptionsPage") + public R> getStudentOptionsPage( + @RequestParam(required = false) String keyword, + @RequestParam(required = false, defaultValue = "1") Integer pageNum, + @RequestParam(required = false, defaultValue = "20") Integer pageSize) { + return R.ok(xskhDisciplineRecordService.getStudentOptionsPage(keyword, pageNum, pageSize)); + } + /** * 查询当前登录学生的违纪处分记录列表 */ @@ -166,4 +178,14 @@ public class XskhDisciplineRecordController extends BaseController { @RequestParam String endTime) { return R.ok(xskhDisciplineRecordService.getMaxScoreByTypeAndPeriod(typeId, startTime, endTime)); } + + /** + * 查询当前用户创建的违纪记录列表(支持按学生姓名或学号搜索) + */ + @SaCheckPermission("disciplineRecord:disciplineRecord:query") + @GetMapping("/myCreated") + public TableDataInfo getMyCreatedDisciplineRecords(XskhDisciplineRecordBo bo, + PageQuery pageQuery) { + return xskhDisciplineRecordService.queryMyCreatedPageList(bo, pageQuery); + } } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRecordMapper.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRecordMapper.java index 75db4990..c93965ff 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRecordMapper.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRecordMapper.java @@ -22,10 +22,14 @@ public interface XskhDisciplineRecordMapper extends BaseMapperPlus selectStudentOptions(String keyword); + List selectStudentOptions(@Param("keyword") String keyword, + @Param("pageNum") Integer pageNum, + @Param("pageSize") Integer pageSize); /** * 查询班主任班级的违纪处分记录列表(班主任专用) @@ -78,7 +82,7 @@ public interface XskhDisciplineRecordMapper extends BaseMapperPlus getStudentOptions(String keyword); + /** + * 分页查询学生选项列表(用于移动端) + * + * @param keyword 搜索关键词 + * @param pageNum 页码 + * @param pageSize 每页数量 + * @return 学生选项列表 + */ + List getStudentOptionsPage(String keyword, Integer pageNum, Integer pageSize); + /** * 查询当前登录学生的违纪处分记录列表 */ @@ -101,4 +114,13 @@ public interface IXskhDisciplineRecordService { * @return 最高总扣分 */ java.math.BigDecimal getMaxScoreByTypeAndPeriod(Long typeId, String startTime, String endTime); + + /** + * 查询当前用户创建的违纪记录列表(支持按学生姓名或学号搜索) + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 违纪记录分页列表 + */ + TableDataInfo queryMyCreatedPageList(XskhDisciplineRecordBo bo, PageQuery pageQuery); } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRecordServiceImpl.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRecordServiceImpl.java index 97a73cbf..69798c8e 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRecordServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRecordServiceImpl.java @@ -165,7 +165,15 @@ public class XskhDisciplineRecordServiceImpl implements IXskhDisciplineRecordSer */ @Override public List getStudentOptions(String keyword) { - return baseMapper.selectStudentOptions(keyword); + return baseMapper.selectStudentOptions(keyword, null, null); + } + + /** + * 分页查询学生选项列表(用于移动端) + */ + @Override + public List getStudentOptionsPage(String keyword, Integer pageNum, Integer pageSize) { + return baseMapper.selectStudentOptions(keyword, pageNum, pageSize); } /** @@ -286,4 +294,46 @@ public class XskhDisciplineRecordServiceImpl implements IXskhDisciplineRecordSer log.info("违纪类型 {} 的最高总扣分为: {}", typeId, maxScore); return maxScore; } + + /** + * 查询当前用户创建的违纪记录列表(支持按学生姓名或学号搜索) + */ + @Override + public TableDataInfo queryMyCreatedPageList(XskhDisciplineRecordBo bo, + PageQuery pageQuery) { + // 获取当前登录用户ID + Long currentUserId = LoginHelper.getUserId(); + log.info("查询用户 {} 创建的违纪记录列表", currentUserId); + + // 构建查询条件,强制只查询当前用户创建的记录 + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + + // 核心条件:只查询当前用户创建的记录 + lqw.eq(XskhDisciplineRecord::getCreateBy, currentUserId); + + // 支持按学生姓名或学号模糊搜索(使用OR连接) + if (StringUtils.isNotBlank(bo.getStudentName()) || StringUtils.isNotBlank(bo.getStudentNo())) { + String keyword = StringUtils.isNotBlank(bo.getStudentName()) ? bo.getStudentName() : bo.getStudentNo(); + lqw.and(wrapper -> wrapper + .like(XskhDisciplineRecord::getStudentName, keyword) + .or() + .like(XskhDisciplineRecord::getStudentNo, keyword)); + } + + // 其他可选查询条件 + lqw.eq(bo.getStudentId() != null, XskhDisciplineRecord::getStudentId, bo.getStudentId()); + lqw.eq(bo.getCollegeId() != null, XskhDisciplineRecord::getCollegeId, bo.getCollegeId()); + lqw.eq(bo.getMajorId() != null, XskhDisciplineRecord::getMajorId, bo.getMajorId()); + lqw.eq(bo.getClassId() != null, XskhDisciplineRecord::getClassId, bo.getClassId()); + lqw.eq(bo.getDisciplineTypeId() != null, XskhDisciplineRecord::getDisciplineTypeId, bo.getDisciplineTypeId()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), XskhDisciplineRecord::getStatus, bo.getStatus()); + + // 按创建时间倒序排列 + lqw.orderByDesc(XskhDisciplineRecord::getCreateTime); + + // 执行分页查询 + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + log.info("查询到 {} 条记录", result.getTotal()); + return TableDataInfo.build(result); + } } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRecordMapper.xml b/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRecordMapper.xml index ac51253f..18e6125c 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRecordMapper.xml +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRecordMapper.xml @@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, student_id, student_no, student_name, college_id, college_name, major_id, major_name, class_id, class_name, discipline_type_id, discipline_type_name, discipline_date, discipline_reason, discipline_content, score_deduction, status, violation_source, attachment_oss_ids, create_by, create_time, create_dept, update_by, update_time, deleted, tenant_id from xskh_discipline_record - select id, student_no, name, college_id, college_name, major_id, major_name, class_id, class_name @@ -61,7 +61,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" or name like concat('%', #{keyword}, '%')) order by student_no - limit 50 + + + limit ${(pageNum - 1) * pageSize}, #{pageSize, jdbcType=INTEGER} + + + limit 50 + +