document
API test

获取用户的订单及其订单项

POST

Description or Example

# 核心代码 ```java @RequestMapping("/get/order/orderItems") public R getUserOrderAndOrderItems(@RequestParam(required = false, defaultValue = "1") String curPage) { Map<String, Object> params = new HashMap<>(); params.put("page", curPage); // 当前页面 params.put("limit", "10"); // 每页固定10条 PageUtils page = orderService.getUserOrderAndOrderItems(params); return R.ok().put("page", page); } ``` ```java @Override public PageUtils getUserOrderAndOrderItems(Map<String, Object> params) { // 0. 获取用户信息 Long memberId = UserLoginInterceptor.USER_STATE.get().getId(); // 1. 获取所有用户的订单 LambdaQueryWrapper<OrderEntity> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(OrderEntity::getMemberId, memberId).orderByDesc(OrderEntity::getCreateTime); // 降序 IPage<OrderEntity> iPage = this.page( new Query<OrderEntity>().getPage(params), queryWrapper ); // 订单的分页 // 通过订单的分页, 获取订单详情, 并封装vo的分页 List<UserOrderVO> userOrderVOS = iPage.getRecords().stream().map(orderEntity -> { String orderSn = orderEntity.getOrderSn(); // 订单的ID LambdaQueryWrapper<OrderItemEntity> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(OrderItemEntity::getOrderSn, orderSn); List<OrderItemEntity> orderItemEntities = orderItemService.list(wrapper); // 每一个订单的订单详情 UserOrderVO userOrderVO = new UserOrderVO(); return userOrderVO.setOrderVO(orderEntity).setOrderItemVOS(orderItemEntities); }).collect(Collectors.toList()); IPage<UserOrderVO> finalPage = new Page<>(); finalPage.setPages(iPage.getPages()) .setCurrent(iPage.getCurrent()) .setSize(iPage.getSize()) .setTotal(iPage.getTotal()) .setRecords(userOrderVOS); // 自行封装page对象 return new PageUtils(finalPage); } ```