From 999e0159112d9405bad7fcd839b339e006a3530d Mon Sep 17 00:00:00 2001
From: wenminjie <1036699586@qq.com>
Date: 星期三, 15 七月 2026 15:07:07 +0800
Subject: [PATCH] 修复了已知的BUG
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java | 44 +++++++++++++++++++++++++++++++-------------
1 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java
index 053bdbd..205ee79 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TTrainLibraryServiceImpl.java
@@ -35,24 +35,42 @@
@Override
public PageInfo<TTrainLibraryVO> pageList(TTrainLibraryQuery query, String roleType) {
- PageInfo<TTrainLibraryVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
- List<TTrainLibraryVO> list = this.baseMapper.pageList(query,pageInfo);
+ // 1. 查询所有符合条件的数据(不分页)
+ List<TTrainLibraryVO> allList = this.baseMapper.listAll(query);
- List<TTrainLibraryVO> resultList = new ArrayList<>();
-
- for (TTrainLibraryVO tTrainLibraryVO : list) {
- if (StringUtils.isNotEmpty(tTrainLibraryVO.getProjectId())) {
- TProjectTeam byId = projectTeamService.getById(tTrainLibraryVO.getProjectId());
- //未封存的数据
- if (byId != null && ("2".equals(roleType) || byId.getStatus() == 1)) { // 只处理status为1的数据
- tTrainLibraryVO.setProjectName(byId.getTeamName());
- resultList.add(tTrainLibraryVO);
+ // 2. 在内存中过滤 + 补充 projectName
+ List<TTrainLibraryVO> filteredList = new ArrayList<>();
+ for (TTrainLibraryVO vo : allList) {
+ if (StringUtils.isNotEmpty(vo.getProjectId())) {
+ TProjectTeam byId = projectTeamService.getById(vo.getProjectId());
+ // 未封存的数据:roleType=2 或 status=1
+ if (byId != null && ("2".equals(roleType) || byId.getStatus() == 1)) {
+ vo.setProjectName(byId.getTeamName());
+ filteredList.add(vo);
}
}
}
- pageInfo.setRecords(resultList);
- pageInfo.setTotal(resultList.size()); // 重新设置总记录数
+ // 3. 手动分页(在内存中截取)
+ int total = filteredList.size();
+ int pageNum = query.getPageNum();
+ int pageSize = query.getPageSize();
+ int start = (pageNum - 1) * pageSize;
+ int end = Math.min(start + pageSize, total);
+
+ // 处理边界情况
+ List<TTrainLibraryVO> pageList = new ArrayList<>();
+ if (start < total) {
+ pageList = filteredList.subList(start, end);
+ }
+
+ // 4. 构建 PageInfo 返回
+ PageInfo<TTrainLibraryVO> pageInfo = new PageInfo<>();
+ pageInfo.setRecords(pageList);
+ pageInfo.setTotal(total);
+ pageInfo.setPages((int) Math.ceil((double) total / pageSize));
+ pageInfo.setHasNextPage(pageNum < (int) Math.ceil((double) total / pageSize));
+
return pageInfo;
}
--
Gitblit v1.7.1