ModelMapper的使用
今天遇到一个需求是,让我传入一个实体类,但是要求我返回的是另一个实体类,此时就考虑使用ModelMapper(get,set也可以但是很麻烦)
·
今天遇到一个需求是,让我传入一个实体类,但是要求我返回的是另一个实体类,此时就考虑使用ModelMapper(get,set也可以但是很麻烦)
将实体类对象转换
@GetMapping("/{id}" )
public R getById(@PathVariable("id" ) Integer id) {
return R.ok(bigOthNppReportService.getById(id));
}
@GetMapping("/{id}/list" )
public R getById_list(@PathVariable("id" ) Integer id) {
BigOthNppReport byId = bigOthNppReportService.getById(id);
ModelMapper modelMapper = new ModelMapper();
BigOthNppReportSimple bigOthNppReportSimple = modelMapper.map(byId, BigOthNppReportSimple.class);
return R.ok(bigOthNppReportSimple);
}
列表转换
@ResponseExcel
@GetMapping("/export/detail")
public List<BigOthNppReport> export(BigOthNppReport bigOthNppReport) {
return bigOthNppReportService.list(Wrappers.query(bigOthNppReport));
}
@ResponseExcel
@GetMapping("/export/list")
public List<BigOthNppReportSimple> exportList(BigOthNppReport bigOthNppReport) {
QueryWrapper<BigOthNppReport> wrapper = Wrappers.query(bigOthNppReport);
List<BigOthNppReport> list = bigOthNppReportService.list(wrapper);
ModelMapper modelMapper = new ModelMapper();
List<BigOthNppReportSimple> map = modelMapper.map(list, new TypeToken<List<BigOthNppReportSimple>>() {
}.getType());
return map;
}
使用流的对象重构
@Override
public IPage<BigOthNppReportSimple> getBigOthNppReportPageSimple(Page page, BigOthNppReport bigOthNppReport) {
Page<BigOthNppReport> page1 = new Page<>(page.getCurrent(), page.getSize());
LambdaQueryWrapper<BigOthNppReport> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Objects.nonNull(bigOthNppReport.getRptNd()),BigOthNppReport::getRptNd,bigOthNppReport.getRptNd())
.like(StrUtil.isNotBlank(bigOthNppReport.getPublishOrg()),BigOthNppReport::getPublishOrg,bigOthNppReport.getPublishOrg())
.like(StrUtil.isNotBlank(bigOthNppReport.getNppOrg()),BigOthNppReport::getNppOrg,bigOthNppReport.getNppOrg())
.orderByDesc(BigOthNppReport::getId);
Page<BigOthNppReport> pageList = page(page1, wrapper);
return pageList.convert(item -> BigOthNppReportSimple.builder()
.id(item.getId())
.rptNd(item.getRptNd())
.no(item.getNo())
.theme(item.getTheme())
.publishOrg(item.getPublishOrg())
.nppOrg(item.getNppOrg())
.crewNo(item.getCrewNo())
.reportDate(item.getReportDate())
.writeName(item.getWriteName())
.writeTime(item.getWriteTime())
.flag(item.getFlag())
.build());
}
更多推荐
已为社区贡献3条内容
所有评论(0)