Fix Bug #562: fallback修复
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
// … 其余实现保持原样 …
|
||||
// 其它业务方法保持不变…
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user