项目中myBaitsPlus封装page方法里面的指定字段排序

项目中需求:把查询到的收货地址按照创建的时间排序展示,且默认地址放在第一位

方法一:使用sql查询进行排序

SELECT * from user_address 
WHERE user_id = '1234102578637127681'
ORDER BY is_default DESC ,create_time DESC

但是项目中的page分页方法是封装好的无法更改sql,在不改变原生方法的前提下 实用方法二;

方法二:使用myBitsPlus自动生成的page方法进行指定字段排序

/**
    * 分页查询
    * @param page 分页对象
    * @param userAddress 用户收货地址
    * @return
    */
	@ApiOperation(value = "分页查询")
    @GetMapping("/page")
	@ApiLogin
    public R getUserAddressPage(Page page, UserAddress userAddress) {
		userAddress.setUserId(ThirdSessionHolder.getUserId());

		//排序 是否默认
		OrderItem orderItemIsDefault = new OrderItem();
		orderItemIsDefault.setColumn("is_default");
		orderItemIsDefault.setAsc(false);

		//排序 创建时间
		OrderItem orderItemCreateTime = new OrderItem();
		orderItemCreateTime.setColumn("create_time");
		orderItemCreateTime.setAsc(false);

		List<OrderItem> orderItems = new ArrayList<>();
		orderItems.add(orderItemIsDefault);
		orderItems.add(orderItemCreateTime);
		page.setOrders(orderItems);

		//分页对象
		Page newPage = userAddressService.page(page, Wrappers.query(userAddress));

		return R.ok(newPage);
    }

这样就能满足需求了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值