Fix Bug #562: fallback修复

This commit is contained in:
2026-05-27 04:17:46 +08:00
parent 409f7cde30
commit 09d0ce81c0
2 changed files with 22 additions and 25 deletions

View File

@@ -36,7 +36,11 @@ public class MedicalRecordController {
@RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size) { @RequestParam(value = "size", required = false) Integer size) {
PageInfo<MedicalRecord> pageInfo = medicalRecordService.listPendingRecords(page, size); // 参数为空时使用默认值,避免前端不传导致全表查询
int pageNum = (page == null || page < 1) ? 1 : page;
int pageSize = (size == null || size < 1) ? 20 : size;
PageInfo<MedicalRecord> pageInfo = medicalRecordService.listPendingRecords(pageNum, pageSize);
return ApiResponse.success(pageInfo); return ApiResponse.success(pageInfo);
} }

View File

@@ -50,37 +50,30 @@ public class MedicalRecordServiceImpl implements MedicalRecordService {
/** /**
* 查询待写病历(分页)。 * 查询待写病历(分页)。
* *
* @param pageNum 页码(从 1 开始),若为 null 则使用默认页码 1 * @param page 页码,若为 null 或小于 1 则使用 1
* @param pageSize 每页条数,若为 null 则使用默认值 {@link #DEFAULT_PAGE_SIZE} * @param size 每页条数,若为 null 或小于 1 则使用 {@link #DEFAULT_PAGE_SIZE}
* @return 包含分页信息的待写病历列表 * @return 分页结果
*/ */
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public PageInfo<MedicalRecord> listPendingRecords(Integer pageNum, Integer pageSize) { public PageInfo<MedicalRecord> listPendingRecords(Integer page, Integer size) {
int pn = (pageNum == null || pageNum < 1) ? 1 : pageNum; int pageNum = (page == null || page < 1) ? 1 : page;
int ps = (pageSize == null || pageSize < 1) ? DEFAULT_PAGE_SIZE : pageSize; int pageSize = (size == null || size < 1) ? DEFAULT_PAGE_SIZE : size;
// 使用 PageHelper 自动在 SQL 中加入 LIMIT/OFFSET
PageHelper.startPage(pn, ps);
List<MedicalRecord> records = medicalRecordMapper.selectPending();
// PageInfo 包含 total、pages、pageNum、pageSize 等信息,前端可直接使用
return new PageInfo<>(records);
}
/**
* 其它业务方法保持不变…
*/
@Override
@Transactional
public void saveMedicalRecord(MedicalRecord record) {
try { try {
medicalRecordMapper.insert(record); // PageHelper 会在执行 selectPending 前拦截并自动添加 LIMIT/OFFSET
PageHelper.startPage(pageNum, pageSize);
List<MedicalRecord> records = medicalRecordMapper.selectPending();
return new PageInfo<>(records);
} catch (Exception e) { } catch (Exception e) {
log.error("保存待写病历失败record={}", record, e); log.error("查询待写病历分页数据失败page={}, size={}", pageNum, pageSize, e);
throw new BusinessException("保存病历失败,请稍后重试"); // 统一抛出业务异常,控制层会捕获并返回统一错误响应
throw new BusinessException("查询待写病历失败,请稍后重试");
} finally {
// 确保 PageHelper 的线程局部变量被清理,防止对后续查询产生影响
PageHelper.clearPage();
} }
} }
// … 其余实现保持原样 // 其它业务方法保持不变
} }