diff --git a/src/main/java/icu/sunway/ai_spring_example/Controllers/OrderController.java b/src/main/java/icu/sunway/ai_spring_example/Controllers/OrderController.java index d178ecc..7dd860c 100644 --- a/src/main/java/icu/sunway/ai_spring_example/Controllers/OrderController.java +++ b/src/main/java/icu/sunway/ai_spring_example/Controllers/OrderController.java @@ -69,6 +69,30 @@ public class OrderController { return ResponseEntity.success(result); } + /** + * 分页查询所有订单(管理员用) + */ + @GetMapping("/admin/page") + public ResponseEntity> getAllOrderPage( + @RequestParam(defaultValue = "1") Integer page, + @RequestParam(defaultValue = "10") Integer size, + @RequestParam(required = false) Integer status, + @RequestParam(required = false) String orderNo + ) { + log.info("查询所有订单列表: page={}, size={}, status={}, orderNo={}", + page, size, status, orderNo); + + Page orderPage = orderService.getAllOrderPage(page, size, status, orderNo); + + Map result = new HashMap<>(); + result.put("list", orderPage.getRecords()); + result.put("total", orderPage.getTotal()); + result.put("page", page); + result.put("size", size); + + return ResponseEntity.success(result); + } + /** * 查询订单详情 */ diff --git a/src/main/java/icu/sunway/ai_spring_example/Service/Impl/OrderServiceImpl.java b/src/main/java/icu/sunway/ai_spring_example/Service/Impl/OrderServiceImpl.java index 3eb1fb7..f142b92 100644 --- a/src/main/java/icu/sunway/ai_spring_example/Service/Impl/OrderServiceImpl.java +++ b/src/main/java/icu/sunway/ai_spring_example/Service/Impl/OrderServiceImpl.java @@ -265,6 +265,56 @@ public class OrderServiceImpl extends ServiceImpl im return voPage; } + @Override + public Page getAllOrderPage(Integer page, Integer size, Integer status, String orderNo) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("is_deleted", 0); // 排除逻辑删除的记录 + + if (status != null) { + queryWrapper.eq("status", status); + } + if (orderNo != null && !orderNo.isEmpty()) { + queryWrapper.like("order_no", orderNo); + } + + queryWrapper.orderByDesc("create_time"); + + Page pageInfo = new Page<>(page, size); + Page orderPage = orderInfoMapper.selectPage(pageInfo, queryWrapper); + + // 转换为VO对象(复用已有的转换逻辑) + Page voPage = new Page<>(page, size, orderPage.getTotal()); + List voList = orderPage.getRecords().stream().map(orderInfo -> { + OrderListVO vo = new OrderListVO(); + BeanUtils.copyProperties(orderInfo, vo); + QueryWrapper itemQueryWrapper = new QueryWrapper<>(); + itemQueryWrapper.eq("order_id", orderInfo.getId()); + List itemList = orderItemMapper.selectList(itemQueryWrapper); + Integer count = 0; + for (OrderItem item : itemList) { + count += item.getQuantity(); + } + vo.setProductCount(count); + return vo; + }).collect(Collectors.toList()); + + voPage.setRecords(voList); + + // 转换状态码为文本 + voPage.getRecords().forEach(vo -> { + switch (vo.getStatus()) { + case 0: vo.setStatusText("待付款"); break; + case 1: vo.setStatusText("待发货"); break; + case 2: vo.setStatusText("待收货"); break; + case 3: vo.setStatusText("已完成"); break; + case 4: vo.setStatusText("已取消"); break; + default: vo.setStatusText("未知状态"); + } + }); + + return voPage; + } + @Override public OrderVO getOrderDetail(Long orderId, Long userId) { // 查询订单主信息 diff --git a/src/main/java/icu/sunway/ai_spring_example/Service/OrderService.java b/src/main/java/icu/sunway/ai_spring_example/Service/OrderService.java index 35ddea0..64980eb 100644 --- a/src/main/java/icu/sunway/ai_spring_example/Service/OrderService.java +++ b/src/main/java/icu/sunway/ai_spring_example/Service/OrderService.java @@ -43,4 +43,6 @@ public interface OrderService extends IService { void updateOrderStatus(OrderStatusDTO statusDTO); Long createOrderDirectly(OrderDTO orderDTO, Long productId , Long skuId); + + Page getAllOrderPage(Integer page, Integer size, Integer status, String orderNo); } \ No newline at end of file