分页联合查询实现方法(Java)

controller层

  @GetMapping("/page")
    @Operation(summary = "获得标注属性管理分页")
    public CommonResult<PageResult<MarkerPropertyViewVO>> getMarkerPropertyPage(@Valid MarkerPropertyPageReqVO pageVO) {
        PageResult<MarkerPropertyDO> pageResult = markerPropertyService.getMarkerPropertyPage(pageVO);
        PageResult<MarkerPropertyViewVO> result = new PageResult<>();
        // 创建一个新的List来存储转换后ViewVO对象
        List<MarkerPropertyViewVO> viewVOList = new ArrayList<>();
        pageResult.getList().forEach(markerPropertyDO -> {
            MarkerPropertyViewVO markerPropertyViewVO = MarkerPropertyConvert.INSTANCE.convertView(markerPropertyDO);
      
//根据自身需求自行实现(可修改)      markerPropertyViewVO.setPropertyViewName(String.valueOf(markerPropertyService.getViewNameFromLabel(markerPropertyDO.getPropertyLabel())));
            viewVOList.add(markerPropertyViewVO);
        });

        // 设置转换后的列表到PageResult中
        result.setList(viewVOList);
        result.setTotal(pageResult.getTotal());

        return success(result);
    }

MarkerPropertyBaseVO实体

@Data
public class MarkerPropertyBaseVO {
    @Schema(description = "标注物id")
    private Long id;

    @Schema(description = "标注物名称", required = true)
    @NotNull(message = "标注物名称不能为空")
    private String markerObjectName;

    @Schema(description = "属性名标签", required = true)
    @NotNull(message = "属性名标签不能为空")
    private String label;

    @Schema(description = "属性名key", required = true)
    @NotNull(message = "属性名key不能为空")
    private String labelKey;

    @Schema(description = "属性名结构", required = true)
    @NotNull(message = "属性名结构不能为空")
    private String propertyLabel;

    @Schema(description = "属性key结构", required = true)
    @NotNull(message = "属性key结构不能为空")
    private String propertyKey;

}

MarkerPropertyViewVO实体

@Data
public class MarkerPropertyViewVO extends MarkerPropertyBaseVO{

    @Schema(description = "属性名结构View")
    private String propertyViewName;

    @Schema(description = "属性key结构View")
    private String propertyViewKey;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;


}

getMarkerPropertyPage(pageVO)方法

//Service层

    PageResult<MarkerPropertyDO> getMarkerPropertyPage(MarkerPropertyPageReqVO pageReqVO);


//Impl实现层
    @Override
    public PageResult<MarkerPropertyDO> getMarkerPropertyPage(MarkerPropertyPageReqVO pageReqVO) {
        return markerPropertyMapper.selectPage(pageReqVO);
    }


//Mapper层
@Mapper
public interface MarkerPropertyMapper extends BaseMapperX<MarkerPropertyDO> {

    default PageResult<MarkerPropertyDO> selectPage(MarkerPropertyPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<MarkerPropertyDO>()
                .likeIfPresent(MarkerPropertyDO::getMarkerObjectName, reqVO.getMarkerObjectName())
                .orderByDesc(MarkerPropertyDO::getId));
    }
}

MarkerPropertyConvert.INSTANCE.convertView(markerPropertyDO)方法

@Mapper
public interface MarkerPropertyConvert {

    MarkerPropertyConvert INSTANCE = Mappers.getMapper(MarkerPropertyConvert.class);

    MarkerPropertyViewVO convertView(MarkerPropertyDO bean);

}

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

待续301

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值