From 0192c67fbe937f5177b6284ced654eca674cdc52 Mon Sep 17 00:00:00 2001 From: Cui YongXing <2835316714@qq.com> Date: Sun, 4 Aug 2024 09:34:00 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E5=A2=9E=E5=8A=A0=E4=BA=86=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/pay/common/domain/OrderPayInfo.java | 28 +++++++++- .../common/domain/req/CustomerListReq.java | 1 + .../resp/CustomerOrderPaySimpleResp.java | 51 ++++++++++++++++++ .../pay/common/domain/resp/CustomerResp.java | 15 +++++- .../pay/common/domain/resp/OrderPayResp.java | 54 +++++++++++++++++++ .../server/service/OrderPayInfoService.java | 3 ++ .../impl/OrderPayCustomerServiceImpl.java | 22 +++++++- .../service/impl/OrderPayInfoServiceImpl.java | 11 ++++ 8 files changed, 181 insertions(+), 4 deletions(-) create mode 100644 cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/CustomerOrderPaySimpleResp.java create mode 100644 cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/OrderPayResp.java diff --git a/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/OrderPayInfo.java b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/OrderPayInfo.java index f1049a4..7fc9c19 100644 --- a/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/OrderPayInfo.java +++ b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/OrderPayInfo.java @@ -3,14 +3,21 @@ package com.muyu.pay.common.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.common.core.enums.SysPayType; import com.muyu.common.core.web.domain.BaseEntity; -import lombok.*; +import com.muyu.pay.common.domain.resp.CustomerOrderPaySimpleResp; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.math.BigDecimal; + @EqualsAndHashCode(callSuper = true) @Data -@AllArgsConstructor @NoArgsConstructor +@AllArgsConstructor @SuperBuilder @TableName(value = "order_pay_info" ,autoResultMap = true) public class OrderPayInfo extends BaseEntity { @@ -46,6 +53,12 @@ public class OrderPayInfo extends BaseEntity { */ private String channelType; + + /** + * 支付金额 + */ + private BigDecimal price; + /** * 渠道商单号 */ @@ -57,5 +70,16 @@ public class OrderPayInfo extends BaseEntity { private String status; + public CustomerOrderPaySimpleResp buildCustomerOrderPaySimpleResp(){ + return CustomerOrderPaySimpleResp.builder() + .cusOrderNumber(this.cusOrderNumber) + .channelTypeName(SysPayType.getInfoByCode(this.channelType)) + .price(this.price) + .build(); + } + + + } + diff --git a/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/req/CustomerListReq.java b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/req/CustomerListReq.java index 218a8b8..dacc020 100644 --- a/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/req/CustomerListReq.java +++ b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/req/CustomerListReq.java @@ -3,6 +3,7 @@ package com.muyu.pay.common.domain.req; import com.muyu.common.core.validation.custom.IsSystemYesNo; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/CustomerOrderPaySimpleResp.java b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/CustomerOrderPaySimpleResp.java new file mode 100644 index 0000000..74b1525 --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/CustomerOrderPaySimpleResp.java @@ -0,0 +1,51 @@ +package com.muyu.pay.common.domain.resp; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "客户支付单",description = "客户支付单信息") +public class CustomerOrderPaySimpleResp { + + + /** + * 客户单号 + */ + @Schema(name = "客户单号",description = "客户单号",type = "String",defaultValue = "aliyunzfb1239912331") + private String cusOrderNumber; + + /** + * 支付单号 + */ + @Schema(name = "支付金额",description = "支付金额",type = "String",defaultValue = "llffasd31231223") + private String payOrderNumber; + + /** + * 支付金额 + */ + @Schema(name = "支付金额",description = "支付金额",type = "BigDecimal",defaultValue = "25.3") + private BigDecimal price; + + + /** + * 渠道商类型 + */ + @Schema(name = "渠道商类型",description = "用户支付的时候选择渠道商",type = "BigDecimal",defaultValue = "支付宝") + private String channelTypeName; + + + + + +} diff --git a/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/CustomerResp.java b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/CustomerResp.java index fe0092e..6b2f363 100644 --- a/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/CustomerResp.java +++ b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/CustomerResp.java @@ -10,8 +10,12 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; import java.util.Date; +import java.util.List; +import java.util.function.Function; +import java.util.function.Supplier; @Data @AllArgsConstructor @@ -55,7 +59,15 @@ public class CustomerResp { @Schema(description = "创建时间",defaultValue = "2024-7-31 21:16:45",type = "Date") private Date createTime; - public static CustomerResp customerBuild(OrderPayCustomer orderPayCustomer){ + /** + * 客户最近5条支付单 + */ + @Schema(description = "客户最近5条支付单") + private List orderPaySimpleRespsList; + + + public static CustomerResp customerBuild(OrderPayCustomer orderPayCustomer, Supplier> function){ + return CustomerResp.builder() .id(orderPayCustomer.getId()) .appName(orderPayCustomer.getAppCode()) @@ -64,6 +76,7 @@ public class CustomerResp { .status(orderPayCustomer.getStatus()) .createBy(orderPayCustomer.getCreateBy()) .createTime(orderPayCustomer.getCreateTime()) + .orderPaySimpleRespsList(function.get()) .build(); } diff --git a/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/OrderPayResp.java b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/OrderPayResp.java new file mode 100644 index 0000000..504f05b --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/pay/common/domain/resp/OrderPayResp.java @@ -0,0 +1,54 @@ +package com.muyu.pay.common.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class OrderPayResp { + /** + * 主键 + */ + private Long id; + + /** + * 客户名称 + */ + private String appName; + + /** + * 客户编号 + */ + private String appCode; + + /** + * 客户单号 + */ + private String cusOrderNumber; + + /** + * 支付单号 + */ + private String payOrderNumber; + + /** + * 渠道商类型 + */ + private String channelType; + + /** + * 渠道商单号 + */ + private String channelOrderNumber; + + /** + * 支付单状态 + */ + private String status; + + +} diff --git a/cloud-pay-server/src/main/java/com/muyu/pay/server/service/OrderPayInfoService.java b/cloud-pay-server/src/main/java/com/muyu/pay/server/service/OrderPayInfoService.java index 296e5e1..186eb68 100644 --- a/cloud-pay-server/src/main/java/com/muyu/pay/server/service/OrderPayInfoService.java +++ b/cloud-pay-server/src/main/java/com/muyu/pay/server/service/OrderPayInfoService.java @@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.pay.common.domain.OrderPayInfo; import com.muyu.pay.server.mapper.OrderPayInfoMapper; +import java.util.List; + public interface OrderPayInfoService extends IService { + List selectOrderPayByAppCodeAndLimit(String appCode, int status); } diff --git a/cloud-pay-server/src/main/java/com/muyu/pay/server/service/impl/OrderPayCustomerServiceImpl.java b/cloud-pay-server/src/main/java/com/muyu/pay/server/service/impl/OrderPayCustomerServiceImpl.java index bd92411..01dc27a 100644 --- a/cloud-pay-server/src/main/java/com/muyu/pay/server/service/impl/OrderPayCustomerServiceImpl.java +++ b/cloud-pay-server/src/main/java/com/muyu/pay/server/service/impl/OrderPayCustomerServiceImpl.java @@ -2,16 +2,23 @@ package com.muyu.pay.server.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.core.enums.SysPayType; import com.muyu.common.core.utils.StringUtils; import com.muyu.pay.common.domain.OrderPayCustomer; +import com.muyu.pay.common.domain.OrderPayInfo; import com.muyu.pay.common.domain.req.CustomerListReq; +import com.muyu.pay.common.domain.resp.CustomerOrderPaySimpleResp; import com.muyu.pay.common.domain.resp.CustomerResp; import com.muyu.pay.server.mapper.OrderPayCustomerMapper; import com.muyu.pay.server.service.OrderPayCustomerService; +import com.muyu.pay.server.service.OrderPayInfoService; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.function.Function; @Log4j2 @Service @@ -19,6 +26,11 @@ public class OrderPayCustomerServiceImpl extends ServiceImpl implements OrderPayCustomerService { + + @Resource + private OrderPayInfoService orderPayInfoService; + + @Override public List selectList(CustomerListReq req) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -38,7 +50,15 @@ public class OrderPayCustomerServiceImpl req.getStatus() ); - return this.list(queryWrapper).stream().map(CustomerResp::customerBuild).toList(); + List orderPayCustomerList = this.list(queryWrapper); + return orderPayCustomerList.stream() + .map(orderPayCustomer -> CustomerResp.customerBuild(orderPayCustomer, () -> + orderPayInfoService.selectOrderPayByAppCodeAndLimit(orderPayCustomer.getAppCode(), 5) + .stream() + .map(OrderPayInfo::buildCustomerOrderPaySimpleResp) + .toList() + )) + .toList(); } } diff --git a/cloud-pay-server/src/main/java/com/muyu/pay/server/service/impl/OrderPayInfoServiceImpl.java b/cloud-pay-server/src/main/java/com/muyu/pay/server/service/impl/OrderPayInfoServiceImpl.java index 242010e..e087d2d 100644 --- a/cloud-pay-server/src/main/java/com/muyu/pay/server/service/impl/OrderPayInfoServiceImpl.java +++ b/cloud-pay-server/src/main/java/com/muyu/pay/server/service/impl/OrderPayInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.muyu.pay.server.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.muyu.pay.common.domain.OrderPayInfo; import com.muyu.pay.server.mapper.OrderPayInfoMapper; @@ -7,7 +8,17 @@ import com.muyu.pay.server.service.OrderPayInfoService; import lombok.extern.log4j.Log4j2; import org.springframework.stereotype.Service; +import java.util.List; + @Log4j2 @Service public class OrderPayInfoServiceImpl extends ServiceImpl implements OrderPayInfoService { + @Override + public List selectOrderPayByAppCodeAndLimit(String appCode, int status) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(OrderPayInfo::getAppCode,appCode); + wrapper.orderBy(true,false,OrderPayInfo::getCreateBy); + wrapper.last("limit "+status); + return this.list(wrapper); + } }