diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderByOperatorVo.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderByOperatorVo.java index 361eea1..9503557 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderByOperatorVo.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/order/user/response/UserPageOrderByOperatorVo.java @@ -3,6 +3,7 @@ package com.qniao.dam.api.query.order.user.response; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.qniao.dam.domain.aggregate.paymentorder.valobj.PaymentOrderVoucherImage; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,6 +21,10 @@ public class UserPageOrderByOperatorVo { @ApiModelProperty("订单号") private String orderCode; + @ApiModelProperty("付款单标识") + @JsonSerialize(using = ToStringSerializer.class) + private Long paymentOrderId; + @ApiModelProperty("支付流水号") private String extOrderNo; @@ -48,4 +53,7 @@ public class UserPageOrderByOperatorVo { private BigDecimal settlementAmount; private List orderItemList; + + @ApiModelProperty("付款凭证列表") + private List voucherImageList; } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java index 6a9b50f..f32793d 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java @@ -1,5 +1,6 @@ package com.qniao.dam.query.order.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.qniao.dam.api.query.order.user.request.UserPageOrderByOperatorQueryParam; @@ -10,6 +11,8 @@ import com.qniao.dam.api.query.order.user.response.UserPageOrderItemByOperatorVo import com.qniao.dam.application.service.right.RightApplicationService; import com.qniao.dam.domain.aggregate.order.entity.Order; import com.qniao.dam.domain.aggregate.order.entity.OrderItem; +import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder; +import com.qniao.dam.domain.aggregate.paymentorder.valobj.PaymentOrderVoucherImage; import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec; import com.qniao.dam.domain.aggregate.productspec.repository.ProductSpecRepository; import com.qniao.dam.domain.aggregate.productspec.valueobj.ProductSpecTerm; @@ -24,6 +27,7 @@ import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum; import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao; import com.qniao.dam.infrastructure.persistent.dao.view.OrderViewDao; import com.qniao.dam.query.order.OrderQueryService; +import com.qniao.dam.query.paymentorder.PaymentOrderQueryService; import com.qniao.dam.query.product.ProductQueryService; import com.qniao.dam.query.right.RightQueryService; import com.qniao.domain.QnPage; @@ -48,9 +52,9 @@ public class OrderQueryServiceImpl implements OrderQueryService { @Resource private RightApplicationService rightApplicationService; @Resource - private ProductSpecRepository productSpecRepository; - @Resource private ProductQueryService productQueryService; + @Resource + private PaymentOrderQueryService paymentOrderQueryService; @Override public IPage pageOrderByOperator(PageUtil pageUtil, UserPageOrderByOperatorQueryParam queryParam) { @@ -59,7 +63,16 @@ public class OrderQueryServiceImpl implements OrderQueryService { List orderIdList = page.getRecords().stream().map(UserPageOrderByOperatorVo::getOrderId).collect(Collectors.toList()); List allOrderItemList = orderViewDao.listOrderItemByOperatorByOrderIds(orderIdList); Map> allOrderItemMap = allOrderItemList.stream().collect(Collectors.groupingBy(UserPageOrderItemByOperatorVo::getOrderId)); - page.getRecords().forEach(record -> record.setOrderItemList(allOrderItemMap.get(record.getOrderId()))); + //付款凭证 + List paymentOrderIdList = page.getRecords().stream().map(UserPageOrderByOperatorVo::getPaymentOrderId).collect(Collectors.toList()); + Map> allVoucherImageMap = paymentOrderQueryService.mapVoucherImage(paymentOrderIdList); + page.getRecords().forEach(record -> { + record.setOrderItemList(allOrderItemMap.get(record.getOrderId())); + List voucherImageList = allVoucherImageMap.get(record.getPaymentOrderId()); + if (CollUtil.isNotEmpty(voucherImageList)) { + record.setVoucherImageList(voucherImageList.stream().map(PaymentOrderVoucherImage::getUrl).collect(Collectors.toList())); + } + }); } return page; } @@ -97,8 +110,8 @@ public class OrderQueryServiceImpl implements OrderQueryService { @Override public List listHis(Long userId, OrderBelongingEnum orderBelonging, OrderStatusEnum status) { return orderDao.selectList(new LambdaQueryWrapper() - .eq(Order::getUserId,userId) - .eq(Order::getOrderBelonging,orderBelonging) - .eq(Order::getStatus,status)); + .eq(Order::getUserId, userId) + .eq(Order::getOrderBelonging, orderBelonging) + .eq(Order::getStatus, status)); } } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/paymentorder/PaymentOrderQueryService.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/paymentorder/PaymentOrderQueryService.java index 3e8b8f7..b44636b 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/paymentorder/PaymentOrderQueryService.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/paymentorder/PaymentOrderQueryService.java @@ -1,10 +1,14 @@ package com.qniao.dam.query.paymentorder; import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder; +import com.qniao.dam.domain.aggregate.paymentorder.valobj.PaymentOrderVoucherImage; import com.qniao.dam.domian.aggregate.paymentorder.constant.PaymentOrderStatusEnum; import java.util.List; +import java.util.Map; public interface PaymentOrderQueryService { List listByOrderId(List orderList, PaymentOrderStatusEnum paymentOrderStatusEnum); + + Map> mapVoucherImage(List paymentOrderIdList); } diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/paymentorder/impl/PaymentOrderQueryServiceImpl.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/paymentorder/impl/PaymentOrderQueryServiceImpl.java index 166b9ad..33987ca 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/query/paymentorder/impl/PaymentOrderQueryServiceImpl.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/query/paymentorder/impl/PaymentOrderQueryServiceImpl.java @@ -1,20 +1,29 @@ package com.qniao.dam.query.paymentorder.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder; +import com.qniao.dam.domain.aggregate.paymentorder.valobj.PaymentOrderVoucherImage; import com.qniao.dam.domian.aggregate.paymentorder.constant.PaymentOrderStatusEnum; import com.qniao.dam.infrastructure.persistent.dao.domain.PaymentOrderDao; +import com.qniao.dam.infrastructure.persistent.dao.domain.PaymentOrderVoucherImageDao; import com.qniao.dam.query.paymentorder.PaymentOrderQueryService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service public class PaymentOrderQueryServiceImpl implements PaymentOrderQueryService { @Resource private PaymentOrderDao paymentOrderDao; + @Resource + private PaymentOrderVoucherImageDao paymentOrderVoucherImageDao; @Override public List listByOrderId(List orderList, PaymentOrderStatusEnum status) { @@ -22,4 +31,14 @@ public class PaymentOrderQueryServiceImpl implements PaymentOrderQueryService { .in(PaymentOrder::getOrderId, orderList) .eq(PaymentOrder::getStatus, status)); } + + @Override + public Map> mapVoucherImage(List paymentOrderIdList) { + List voucherImageList = new ArrayList<>(); + if (CollUtil.isNotEmpty(paymentOrderIdList)) { + voucherImageList = paymentOrderVoucherImageDao.selectList(new LambdaQueryWrapper() + .in(PaymentOrderVoucherImage::getPaymentOrderId, paymentOrderIdList)); + } + return voucherImageList.stream().collect(Collectors.groupingBy(PaymentOrderVoucherImage::getPaymentOrderId)); + } } diff --git a/dating-agency-mall-server/src/main/resources/mapper/order/WalletAccountAssociateOrderRecordDao.xml b/dating-agency-mall-server/src/main/resources/mapper/order/WalletAccountAssociateOrderRecordDao.xml index 0f4e45e..096529e 100644 --- a/dating-agency-mall-server/src/main/resources/mapper/order/WalletAccountAssociateOrderRecordDao.xml +++ b/dating-agency-mall-server/src/main/resources/mapper/order/WalletAccountAssociateOrderRecordDao.xml @@ -8,6 +8,7 @@ select dao.id as orderId, dao.order_code, + dapo.id as paymentOrderId, dao.create_time as orderTime, dao.user_id, daa.tid as userPhone,