diff --git a/sky-server/src/main/java/com/sky/controller/user/OrderController.java b/sky-server/src/main/java/com/sky/controller/user/OrderController.java index 1bbfd69..97d5134 100644 --- a/sky-server/src/main/java/com/sky/controller/user/OrderController.java +++ b/sky-server/src/main/java/com/sky/controller/user/OrderController.java @@ -66,6 +66,14 @@ public class OrderController { return Result.success(); } + /** + * 历史订单查询 + * + * @param page 当前页 + * @param pageSize 每页显示条数 + * @param status 状态 + * @return PageResult + */ @ApiOperation("历史订单查询") @GetMapping("/historyOrders") public Result page(int page, int pageSize, Integer status) { diff --git a/sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java b/sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java index a69640c..080be72 100644 --- a/sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java @@ -4,6 +4,7 @@ import com.sky.entity.OrderDetail; import org.apache.ibatis.annotations.Mapper; import java.util.ArrayList; +import java.util.List; @Mapper public interface OrderDetailMapper { @@ -13,4 +14,12 @@ public interface OrderDetailMapper { * @param orderDetailArrayList ArrayList */ void insertBatch(ArrayList orderDetailArrayList); + + /** + * 查询订单明细 + * + * @param id Long + * @return List + */ + List getByOrderId(Long id); } diff --git a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java index 1543db2..e65f2d9 100644 --- a/sky-server/src/main/java/com/sky/mapper/OrderMapper.java +++ b/sky-server/src/main/java/com/sky/mapper/OrderMapper.java @@ -1,5 +1,7 @@ package com.sky.mapper; +import com.github.pagehelper.Page; +import com.sky.dto.OrdersPageQueryDTO; import com.sky.entity.Orders; import org.apache.ibatis.annotations.Mapper; @@ -45,4 +47,12 @@ public interface OrderMapper { * @return 订单 */ Orders getById(Long id); + + /** + * 用户端订单分页查询 + * + * @param ordersPageQueryDTO OrdersPageQueryDTO + * @return Page + */ + Page pageQuery(OrdersPageQueryDTO ordersPageQueryDTO); } diff --git a/sky-server/src/main/java/com/sky/service/OrderService.java b/sky-server/src/main/java/com/sky/service/OrderService.java index d0f2d82..2b3bf6c 100644 --- a/sky-server/src/main/java/com/sky/service/OrderService.java +++ b/sky-server/src/main/java/com/sky/service/OrderService.java @@ -40,10 +40,10 @@ public interface OrderService { /** * 用户端订单分页查询 * - * @param page - * @param pageSize - * @param status - * @return + * @param pageNum 当前页 + * @param pageSize 每页显示条数 + * @param status 状态 + * @return PageResult */ - PageResult pageQuery4User(int page, int pageSize, Integer status); + PageResult pageQuery4User(int pageNum, int pageSize, Integer status); } diff --git a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java index 7169e80..0b88ed4 100644 --- a/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java +++ b/sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java @@ -1,8 +1,11 @@ package com.sky.service.impl; import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; import com.sky.constant.MessageConstant; import com.sky.context.BaseContext; +import com.sky.dto.OrdersPageQueryDTO; import com.sky.dto.OrdersPaymentDTO; import com.sky.dto.OrdersSubmitDTO; import com.sky.entity.*; @@ -10,10 +13,12 @@ import com.sky.exception.AddressBookBusinessException; import com.sky.exception.OrderBusinessException; import com.sky.exception.ShoppingCartBusinessException; import com.sky.mapper.*; +import com.sky.result.PageResult; import com.sky.service.OrderService; import com.sky.utils.WeChatPayUtil; import com.sky.vo.OrderPaymentVO; import com.sky.vo.OrderSubmitVO; +import com.sky.vo.OrderVO; import com.sky.websocket.WebSocketServer; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -167,6 +172,41 @@ public class OrderServiceImpl implements OrderService { map.put("content", "订单号" + orderDB.getNumber()); webSocketServer.sendToAllClient(JSONObject.toJSONString(map)); } + + /** + * 用户端订单分页查询 + * + * @param pageNum 当前页 + * @param pageSize 每页显示条数 + * @param status 状态 + * @return PageResult + */ + @Override + public PageResult pageQuery4User(int pageNum, int pageSize, Integer status) { + // 设置分页大小和每页条数 + PageHelper.startPage(pageNum, pageSize); + // 封装查询条件 + OrdersPageQueryDTO ordersPageQueryDTO = new OrdersPageQueryDTO(); + ordersPageQueryDTO.setUserId(BaseContext.getCurrentId()); + ordersPageQueryDTO.setStatus(status); + // 分页条件查询 + Page page = orderMapper.pageQuery(ordersPageQueryDTO); + ArrayList list = new ArrayList<>(); + // 查询订单明细,并封装入orderMapper进行响应 + if (page != null && page.getTotal() > 0) { + for (Orders orders : page) { + Long id = orders.getId(); + // 查询订单明细 + List orderDetails = orderDetailMapper.getByOrderId(id); + OrderVO orderVO = new OrderVO(); + BeanUtils.copyProperties(orders, orderVO); + orderVO.setOrderDetailList(orderDetails); + list.add(orderVO); + } + } + assert page != null; + return new PageResult(page.getTotal(), list); + } } diff --git a/sky-server/src/main/resources/mapper/OrderDetailMapper.xml b/sky-server/src/main/resources/mapper/OrderDetailMapper.xml index a0ba0a9..5d0d61c 100644 --- a/sky-server/src/main/resources/mapper/OrderDetailMapper.xml +++ b/sky-server/src/main/resources/mapper/OrderDetailMapper.xml @@ -11,4 +11,11 @@ #{od.amount}) + + + diff --git a/sky-server/src/main/resources/mapper/OrderMapper.xml b/sky-server/src/main/resources/mapper/OrderMapper.xml index fcf39b5..ed6096e 100644 --- a/sky-server/src/main/resources/mapper/OrderMapper.xml +++ b/sky-server/src/main/resources/mapper/OrderMapper.xml @@ -68,4 +68,31 @@ from orders where id = #{id}; + + +