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 = "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);
}

View File

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