From 100464ccc6180a9bca816d6dc6579f8acc208006 Mon Sep 17 00:00:00 2001 From: jieyuu <645634619@qq.com> Date: Tue, 15 Oct 2024 18:53:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProductOrderController.java | 19 ++++ .../jieyuu/service/ProductOrderService.java | 9 ++ .../service/impl/ProductOrderServiceImpl.java | 63 +++++++++++-- .../java/net/jieyuu/vo/ProductOrderVO.java | 89 +++++++++++++++++++ 4 files changed, 172 insertions(+), 8 deletions(-) create mode 100644 xdclass-order-service/src/main/java/net/jieyuu/vo/ProductOrderVO.java diff --git a/xdclass-order-service/src/main/java/net/jieyuu/controller/ProductOrderController.java b/xdclass-order-service/src/main/java/net/jieyuu/controller/ProductOrderController.java index bc59057..dd8cedd 100644 --- a/xdclass-order-service/src/main/java/net/jieyuu/controller/ProductOrderController.java +++ b/xdclass-order-service/src/main/java/net/jieyuu/controller/ProductOrderController.java @@ -24,6 +24,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; +import java.util.Map; import java.util.UUID; /** @@ -46,6 +47,24 @@ public class ProductOrderController { @Autowired private PayUrlConfig payUrlConfig; + /** + * 分页查询商品列表 + * + * @param page + * @param size + * @return + */ + @ApiOperation(value = "分页查询我的订单列表") + @GetMapping("page") + public JsonData findOrderList(@ApiParam("当前页") + @RequestParam(value = "page", defaultValue = "1") int page, + @ApiParam("显示多少条") + @RequestParam(value = "size", defaultValue = "20") int size, + @ApiParam("订单状态") @RequestParam(value = "state",required = false) String state) { + Map pageResult = orderService.page(page, size,state); + return JsonData.buildSuccess(pageResult); + } + @ApiOperation("提交订单") @PostMapping("confirm") public void confirmOrder(@ApiParam("订单对象") @RequestBody ConfirmOrderRequest confirmOrderRequest, HttpServletResponse response) { diff --git a/xdclass-order-service/src/main/java/net/jieyuu/service/ProductOrderService.java b/xdclass-order-service/src/main/java/net/jieyuu/service/ProductOrderService.java index cde371e..f5276d1 100644 --- a/xdclass-order-service/src/main/java/net/jieyuu/service/ProductOrderService.java +++ b/xdclass-order-service/src/main/java/net/jieyuu/service/ProductOrderService.java @@ -51,4 +51,13 @@ public interface ProductOrderService extends IService { */ JsonData handlerOrderCallbackMsg(ProductOrderPayTypeEnum productOrderPayTypeEnum, Map paramsMap); + /** + * 分页查询订单列表 + * @param page + * @param size + * @param state + * @return + */ + Map page(int page, int size,String state); + } diff --git a/xdclass-order-service/src/main/java/net/jieyuu/service/impl/ProductOrderServiceImpl.java b/xdclass-order-service/src/main/java/net/jieyuu/service/impl/ProductOrderServiceImpl.java index ce6166f..11e430c 100644 --- a/xdclass-order-service/src/main/java/net/jieyuu/service/impl/ProductOrderServiceImpl.java +++ b/xdclass-order-service/src/main/java/net/jieyuu/service/impl/ProductOrderServiceImpl.java @@ -3,6 +3,8 @@ package net.jieyuu.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import net.jieyuu.component.PayFactory; import net.jieyuu.config.RabbitMQConfig; @@ -24,20 +26,15 @@ import net.jieyuu.service.ProductOrderService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import net.jieyuu.utils.CommonUtil; import net.jieyuu.utils.JsonData; -import net.jieyuu.vo.CouponRecordVO; -import net.jieyuu.vo.OrderItemVO; -import net.jieyuu.vo.PayInfoVO; -import net.jieyuu.vo.ProductOrderAddressVO; +import net.jieyuu.vo.*; import org.apache.commons.lang3.StringUtils; import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -454,4 +451,54 @@ public class ProductOrderServiceImpl extends ServiceImpl page(int page, int size, String state) { + LoginUser loginUser = LoginInterceptor.threadLocal.get(); + + Page pageInfo = new Page<>(page, size); + IPage orderDOPage = null; + if (StringUtils.isBlank(state)) { + orderDOPage = productOrderMapper.selectPage(pageInfo, new QueryWrapper().eq("user_id", loginUser.getId())); + } else { + orderDOPage = productOrderMapper.selectPage(pageInfo, new QueryWrapper().eq("user_id", loginUser.getId()).eq("state", state)); + } + // 获取订单列表 + List productOrderDOList = orderDOPage.getRecords(); + + List productOrderVOList = productOrderDOList.stream().map(orderDO -> { + + // 查询订单商品项 + List itemDOList = productOrderItemMapper.selectList(new QueryWrapper().eq("product_order_id", orderDO.getId())); + + // 将商品项DO转换为VO + List itemVOList = itemDOList.stream().map(item -> { + OrderItemVO itemVO = new OrderItemVO(); + BeanUtils.copyProperties(item, itemVO); + return itemVO; + }).collect(Collectors.toList()); + + ProductOrderVO productOrderVO = new ProductOrderVO(); + BeanUtils.copyProperties(orderDO, productOrderVO); + productOrderVO.setOrderItemList(itemVOList); + + return productOrderVO; + }).collect(Collectors.toList()); + HashMap pageMap = new HashMap<>(); + + pageMap.put("total_record", orderDOPage.getTotal()); + pageMap.put("total_page" , orderDOPage.getPages()); + pageMap.put("current_data", productOrderVOList); + + + return pageMap; + } } diff --git a/xdclass-order-service/src/main/java/net/jieyuu/vo/ProductOrderVO.java b/xdclass-order-service/src/main/java/net/jieyuu/vo/ProductOrderVO.java new file mode 100644 index 0000000..53d5869 --- /dev/null +++ b/xdclass-order-service/src/main/java/net/jieyuu/vo/ProductOrderVO.java @@ -0,0 +1,89 @@ +package net.jieyuu.vo; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@Data +public class ProductOrderVO { + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 订单唯一标识 + */ + private String outTradeNo; + + /** + * NEW 未支付订单,PAY已经支付订单,CANCEL超时取消订单 + */ + private String state; + + /** + * 订单生成时间 + */ + private Date createTime; + + /** + * 订单总金额 + */ + private BigDecimal totalAmount; + + /** + * 订单实际支付价格 + */ + private BigDecimal payAmount; + + /** + * 支付类型,微信-银行-支付宝 + */ + private String payType; + + /** + * 昵称 + */ + private String nickname; + + /** + * 头像 + */ + private String headImg; + + /** + * 用户id + */ + private Long userId; + + /** + * 0表示未删除,1表示已经删除 + */ + private Integer del; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 订单类型 DAILY普通单,PROMOTION促销订单 + */ + private String orderType; + + /** + * 收货地址 json存储 + */ + private String receiverAddress; + + + /** + * 订单项 + */ + private List orderItemList; + +}