1、首先创建查询条件,不要直接查。
LambdaQueryWrapper<Medical> medicalLambdaQueryWrapper=new LambdaQueryWrapper<Medical>()
.eq(StringUtil.isNotBlank(hisId), Medical::getHisId, hisId)
.eq(StringUtil.isNotBlank(medicalName), Medical::getMedicalName, medicalName);
2、使用mybatisplus原生的page方法构建page
Page<Medical> = medicalManager.page(new Page<>(pageNo, pageSize), medicalLambdaQueryWrapper);
3、通过beanUtil的copyPage,把原生实体类转化为vo
Page<SetSpecificMedicVo> setSpecificMedicVoPage = BeanCopyUtil.copyPage(page, SetSpecificMedicVo.class);
4、通过stream流来增加vo中还额外需要的字段
setSpecificMedicVoPage.getRecords().stream().forEach(medical->{
String medicalHisId = medical.getHisId();
String hisName = stringHisMap.get(medicalHisId).getShortName();
medical.setHisName(hisName);
});
最后直接返回这个vo的page
return setSpecificMedicVoPage;