From fa4c27713de55ea675c90afe14813f1c8bae3053 Mon Sep 17 00:00:00 2001 From: 86191 <2160251938@qq.com> Date: Sun, 4 Aug 2024 10:22:36 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E5=A2=9E=E5=8A=A0=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/cloud/pay/domain/OrderPayInfo.java | 11 ++++ .../cloud/pay/domain/resp/CustomerResp.java | 5 +- .../cloud/pay/service/OrderPayService.java | 9 +++ .../impl/OrderPayCustomerServiceImpl.java | 57 +++++++++++++------ .../pay/service/impl/OrderPayServiceImpl.java | 11 ++++ 5 files changed, 75 insertions(+), 18 deletions(-) diff --git a/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayInfo.java b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayInfo.java index 1b94795..4b6e7bc 100644 --- a/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayInfo.java +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayInfo.java @@ -3,6 +3,8 @@ package com.muyu.cloud.pay.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.cloud.pay.domain.resp.CustomerOrderPaySimpleResp; +import com.muyu.common.core.enums.SysPayType; import com.muyu.common.core.web.domain.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; @@ -59,4 +61,13 @@ public class OrderPayInfo extends BaseEntity { * 支付单状态 */ private String status; + + + public CustomerOrderPaySimpleResp buildCustomerOrderPaySimpleResp() { + return CustomerOrderPaySimpleResp.builder() + .cusOrderNumber(this.cusOrderNumber) + .price(this.price) + .channelTypeName(SysPayType.getInfoByCode(this.channelType)) + .build(); + } } diff --git a/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/CustomerResp.java b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/CustomerResp.java index 1f68eac..d0976b5 100644 --- a/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/CustomerResp.java +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/CustomerResp.java @@ -11,6 +11,8 @@ import lombok.NoArgsConstructor; import java.util.Date; import java.util.List; +import java.util.function.Function; +import java.util.function.Supplier; /** * 客户结合返回值 @@ -59,7 +61,7 @@ public class CustomerResp { * @param orderPayCustomer 数据库对象 * @return 视图对象 */ - public static CustomerResp customerBuild(OrderPayCustomer orderPayCustomer){ + public static CustomerResp customerBuild(OrderPayCustomer orderPayCustomer, Supplier> function){ return CustomerResp.builder() .id(orderPayCustomer.getId()) .appCode(orderPayCustomer.getAppCode()) @@ -67,6 +69,7 @@ public class CustomerResp { .createBy(orderPayCustomer.getCreateBy()) .createTime(orderPayCustomer.getCreateTime()) .status(orderPayCustomer.getStatus()) + .orderPaySimpleRespList(function.get()) .build(); } } diff --git a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/OrderPayService.java b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/OrderPayService.java index 8c3de30..0513e82 100644 --- a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/OrderPayService.java +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/OrderPayService.java @@ -3,8 +3,17 @@ package com.muyu.cloud.pay.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.cloud.pay.domain.OrderPayInfo; +import java.util.List; + /** * 订单支付业务层 */ public interface OrderPayService extends IService { + /** + * 根据客户code和分页限制,查询结果 + * @param appCode 客户code + * @param limit 分页限制 + * @return 支付订单记录 + */ + List selectOrderPayByAppCodeAndLimit(String appCode, int limit); } diff --git a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java index 5fce8d5..1f9bc99 100644 --- a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java @@ -10,6 +10,7 @@ import com.muyu.cloud.pay.domain.resp.CustomerResp; import com.muyu.cloud.pay.mapper.OrderPayCustomerMapper; import com.muyu.cloud.pay.service.OrderPayCustomerService; import com.muyu.cloud.pay.service.OrderPayService; +import com.muyu.common.core.enums.SysPayType; import com.muyu.common.core.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -17,6 +18,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.function.Function; @Slf4j @Service @@ -41,24 +43,45 @@ public class OrderPayCustomerServiceImpl extends ServiceImpl orderPayCustomerList = this.list(queryWrapper); - List customerRespList = orderPayCustomerList.stream() - .map(CustomerResp::customerBuild) + return orderPayCustomerList.stream() + .map(orderPayCustomer -> CustomerResp.customerBuild( + orderPayCustomer, + () -> orderPayService.selectOrderPayByAppCodeAndLimit(orderPayCustomer.getAppCode(), 5) + .stream() + .map(OrderPayInfo::buildCustomerOrderPaySimpleResp) + .toList() + ) + ) .toList(); +// for (CustomerResp customerResp : customerRespList) { + + //注释的这一部分在OrderPayServiceImpl中实现 +// orderPayService.selectOrderPayByAppCodeAndLimit(customerResp.getAppCode(), 5); +// +// LambdaQueryWrapper orderPayInfoQueryWrapper = new LambdaQueryWrapper<>(); +// orderPayInfoQueryWrapper.eq(OrderPayInfo::getAppCode, customerResp.getAppCode()); +// orderPayInfoQueryWrapper.orderBy(true, false, OrderPayInfo::getCreateTime); +// orderPayInfoQueryWrapper.last("limit 5"); + +// List orderPayInfoList = orderPayService.selectOrderPayByAppCodeAndLimit(customerResp.getAppCode(),5); + +// ArrayList customerOrderPaySimpleList = new ArrayList<>(); +// for (OrderPayInfo orderPayInfo : orderPayInfoList) { +// CustomerOrderPaySimpleResp customerOrderPaySimpleResp = new CustomerOrderPaySimpleResp(); +// customerOrderPaySimpleResp.setCusOrderNumber(orderPayInfo.getCusOrderNumber()); +// customerOrderPaySimpleResp.setPrice(orderPayInfo.getPrice()); +// customerOrderPaySimpleResp.setChannelTypeName(SysPayType.getInfoByCode(orderPayInfo.getChannelType())); +// customerOrderPaySimpleList.add(customerOrderPaySimpleResp); +// } +// customerResp.setOrderPaySimpleRespList(customerOrderPaySimpleList); + +// customerResp.setOrderPaySimpleRespList( +// orderPayService.selectOrderPayByAppCodeAndLimit(customerResp.getAppCode(),5) +// .stream() +// .map(OrderPayInfo::buildCustomerOrderPaySimpleResp) +// .toList() +// ); + - for (CustomerResp customerResp : customerRespList) { - LambdaQueryWrapper orderPayInfoQueryWrapper = new LambdaQueryWrapper<>(); - orderPayInfoQueryWrapper.eq(OrderPayInfo::getAppCode, customerResp.getAppCode()); - orderPayInfoQueryWrapper.orderBy(true, false, OrderPayInfo::getCreateTime); - orderPayInfoQueryWrapper.last("limit 5"); - List orderPayInfoList = orderPayService.list(orderPayInfoQueryWrapper); - ArrayList customerOrderPaySimpleList = new ArrayList<>(); - for (OrderPayInfo orderPayInfo : orderPayInfoList) { - CustomerOrderPaySimpleResp customerOrderPaySimpleResp = new CustomerOrderPaySimpleResp(); - customerOrderPaySimpleResp.setCusOrderNumber(orderPayInfo.getCusOrderNumber()); - customerOrderPaySimpleResp.setPrice(orderPayInfo.getPrice()); - customerOrderPaySimpleResp.setChannelTypeName(orderPayInfo.getChannelType()); - } - } - return customerRespList; } } diff --git a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayServiceImpl.java b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayServiceImpl.java index 3880546..b37da23 100644 --- a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayServiceImpl.java +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayServiceImpl.java @@ -1,15 +1,26 @@ package com.muyu.cloud.pay.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.cloud.pay.domain.OrderPayInfo; import com.muyu.cloud.pay.mapper.OrderPayMapper; import com.muyu.cloud.pay.service.OrderPayService; import org.springframework.stereotype.Service; +import java.util.List; + /** * 订单支付业务实现层 */ @Service public class OrderPayServiceImpl extends ServiceImpl implements OrderPayService { + @Override + public List selectOrderPayByAppCodeAndLimit(String appCode, int limit) { + LambdaQueryWrapper orderPayInfoQueryWrapper = new LambdaQueryWrapper<>(); + orderPayInfoQueryWrapper.eq(OrderPayInfo::getAppCode,appCode); + orderPayInfoQueryWrapper.orderBy(true, false, OrderPayInfo::getCreateTime); + orderPayInfoQueryWrapper.last("limit" + limit); + return this.list(orderPayInfoQueryWrapper); + } }