From 6ee248dc613c3c0895635e41f35c2af40f5ee86b Mon Sep 17 00:00:00 2001 From: lwj <3529558005@qq.com> Date: Tue, 6 Aug 2024 21:05:32 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E6=96=B0=E5=A2=9E=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 | 82 +++++++++++++++++++ .../resp/CustomerOrderPaySimpleResp.java | 34 ++++++++ .../cloud/pay/domain/resp/CustomerResp.java | 14 +++- .../cloud/pay/domain/resp/OrderPayResp.java | 13 +++ .../muyu/cloud/pay/mapper/OrderPayMapper.java | 13 +++ .../cloud/pay/service/OrderPayService.java | 16 ++++ .../impl/OrderPayCustomerServiceImpl.java | 65 ++++----------- .../pay/service/impl/OrderPayServiceImpl.java | 24 ++++++ doc/sql/updata-sql-202408041501.sql | 6 ++ doc/sql/update-sql-202408041557.sql | 3 + 10 files changed, 221 insertions(+), 49 deletions(-) create mode 100644 cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayInfo.java create mode 100644 cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/CustomerOrderPaySimpleResp.java create mode 100644 cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/OrderPayResp.java create mode 100644 cloud-pay-server/src/main/java/com/muyu/cloud/pay/mapper/OrderPayMapper.java create mode 100644 cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/OrderPayService.java create mode 100644 cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayServiceImpl.java create mode 100644 doc/sql/updata-sql-202408041501.sql create mode 100644 doc/sql/update-sql-202408041557.sql 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 new file mode 100644 index 0000000..0bd28a7 --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayInfo.java @@ -0,0 +1,82 @@ +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; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.math.BigDecimal; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@SuperBuilder +@EqualsAndHashCode(callSuper = true) +@TableName(value = "order_pay_info",autoResultMap = true) +public class OrderPayInfo extends BaseEntity { + +// `appName` COMMENT '客户名称' , +// `appCode` COMMENT '客户编号' , +// `cusOrderNumber` COMMENT '客户单号' , +// `payOrderNumber` COMMENT '支付单号' , +// `channelType` COMMENT '渠道商类型' , +// `channelOrderNumber` COMMENT '渠道商单号' , +// `status` VARCHAR(255) COMMENT '支付单状态;', + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + + /** + * 客户名称 + */ + private String appName; + /** + * 客户编号 + */ + private String appCode; + /** + * 客户单号 + */ + private String cusOrderNumber; + /** + * 支付单号 + */ + private String payOrderNumber; + /** + * 支付金额 + */ + private BigDecimal price; + /** + * 渠道商类型 + */ + private String channelType; + /** + * 渠道商单号 + */ + private String channelOrderNumber; + /** + * 支付单状态 + */ + 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/cloud/pay/domain/resp/CustomerOrderPaySimpleResp.java b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/CustomerOrderPaySimpleResp.java new file mode 100644 index 0000000..a7ab62f --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/CustomerOrderPaySimpleResp.java @@ -0,0 +1,34 @@ +package com.muyu.cloud.pay.domain.resp; + +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 +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "客户支付单",description = "客户支付单简略信息") +public class CustomerOrderPaySimpleResp { + + /** + * 客户单号 + */ + @Schema(name = "客户单号",type = "String",defaultValue = "OISEDSFd558588DF",description = "客户传入的支付单信息") + private String cusOrderNumber; + /** + * 支付金额 + */ + @Schema(name = "支付金额",type = "BigDecimal",defaultValue = "36.56",description = "客户传入的支付金额") + private BigDecimal price; + /** + * 渠道商类型 + */ + @Schema(name = "支付渠道商",type = "String",defaultValue = "支付宝",description = "用户支付的时候选择渠道商") + private String channelTypeName; +} 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 707a5a3..30893c4 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 @@ -10,6 +10,8 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.List; +import java.util.function.Supplier; @Data @Builder @@ -51,12 +53,21 @@ public class CustomerResp { @Schema(description = "创建时间",defaultValue = "2024-8-1 12:00:00",type = "Date") private Date createTime; + + /** + * 客户最近5条支付单 + */ + + + private List orderPaySimpleRespList; + + /** * 数据库对象构建为返回结果对象 * @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()) @@ -64,6 +75,7 @@ public class CustomerResp { .createTime(orderPayCustomer.getCreateTime()) .status(orderPayCustomer.getStatus()) .createBy(orderPayCustomer.getCreateBy()) + .orderPaySimpleRespList(function.get()) .build(); } diff --git a/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/OrderPayResp.java b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/OrderPayResp.java new file mode 100644 index 0000000..53776bd --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/OrderPayResp.java @@ -0,0 +1,13 @@ +package com.muyu.cloud.pay.domain.resp; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OrderPayResp { +} diff --git a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/mapper/OrderPayMapper.java b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/mapper/OrderPayMapper.java new file mode 100644 index 0000000..b36555f --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/mapper/OrderPayMapper.java @@ -0,0 +1,13 @@ +package com.muyu.cloud.pay.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.cloud.pay.domain.OrderPayInfo; +import org.apache.ibatis.annotations.Mapper; + +/** + * 支付持久层 + */ +@Mapper +public interface OrderPayMapper extends BaseMapper { + +} 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 new file mode 100644 index 0000000..0ed598c --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/OrderPayService.java @@ -0,0 +1,16 @@ +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 aac7b47..89ee1c6 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 @@ -3,14 +3,16 @@ 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.OrderPayCustomer; +import com.muyu.cloud.pay.domain.OrderPayInfo; import com.muyu.cloud.pay.domain.req.CustomerListReq; 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.utils.StringUtils; import org.springframework.stereotype.Service; -import java.util.ArrayList; +import javax.annotation.Resource; import java.util.List; @Service @@ -18,69 +20,36 @@ public class OrderPayCustomerServiceImpl extends ServiceImpl implements OrderPayCustomerService { + @Resource(type = OrderPayServiceImpl.class) + private OrderPayService orderPayService; + @Override public List selectList(CustomerListReq customerListReq) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.like( StringUtils.isNotEmpty(customerListReq.getAppName()), - OrderPayCustomer::getAppName,customerListReq.getAppName() + OrderPayCustomer::getAppName, customerListReq.getAppName() ); queryWrapper.like( StringUtils.isNotEmpty(customerListReq.getAppCode()), - OrderPayCustomer::getAppCode,customerListReq.getAppCode() - ); + OrderPayCustomer::getAppCode, customerListReq.getAppCode() + ); queryWrapper.eq( StringUtils.isNotEmpty(customerListReq.getStatus()), - OrderPayCustomer::getStatus,customerListReq.getStatus()); + OrderPayCustomer::getStatus, customerListReq.getStatus()); List orderPayCustomerList = this.list(queryWrapper); - List customerRespList=new ArrayList<>(); - -// for (OrderPayCustomer orderPayCustomer : orderPayCustomerList) { -// CustomerResp customerResp = new CustomerResp(); -// customerResp.setId(orderPayCustomer.getId()); -// customerResp.setAppName(orderPayCustomer.getAppName()); -// customerResp.setStatus(orderPayCustomer.getStatus()); -// customerResp.setCreateBy(orderPayCustomer.getCreateBy()); -// customerResp.setCreateTime(orderPayCustomer.getCreateTime()); -// customerResp.setAppCode(orderPayCustomer.getAppCode()); -// customerRespList.add(customerResp); -// } - - //第四种方法 -// customerRespList =orderPayCustomerList -// .stream().map(CustomerResp::customerBuild -// ).toList(); - - - //第三种方法 -// customerRespList = orderPayCustomerList.stream() -// .map(orderPayCustomer -> -// CustomerResp.builder() -// .id(orderPayCustomer.getId()) -// .appCode(orderPayCustomer.getAppCode()) -// .appName(orderPayCustomer.getAppName()) -// .createTime(orderPayCustomer.getCreateTime()) -// .status(orderPayCustomer.getStatus()) -// .createBy(orderPayCustomer.getCreateBy()) -// .build()).toList(); - - - -//第二种方法 -// customerResp.setAppName(orderPayCustomer.getAppName()); -// customerResp.setStatus(orderPayCustomer.getStatus()); -// customerResp.setCreateBy(orderPayCustomer.getCreateBy()); -// customerResp.setCreateTime(orderPayCustomer.getCreateTime()); -// customerResp.setAppCode(orderPayCustomer.getAppCode()); -// return customerResp; - return orderPayCustomerList - .stream().map(CustomerResp::customerBuild - ).toList(); + .stream().map(orderPayCustomer -> CustomerResp.customerBuild(orderPayCustomer, + () -> + orderPayService.selectOrderPayByAppCodeAndLimit(orderPayCustomer.getAppCode(), 5) + .stream() + .map(OrderPayInfo::buildCustomerOrderPaySimpleResp) + .toList())).toList(); + } } 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 new file mode 100644 index 0000000..55e7af9 --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayServiceImpl.java @@ -0,0 +1,24 @@ +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 orderPayInfoLambdaQueryWrapper = new LambdaQueryWrapper<>(); + orderPayInfoLambdaQueryWrapper.eq(OrderPayInfo::getAppCode,appCode); + orderPayInfoLambdaQueryWrapper.orderBy(true,false,OrderPayInfo::getCreateTime); + orderPayInfoLambdaQueryWrapper.last("limit"+limit); +// List orderPayInfoList = this.list(orderPayInfoLambdaQueryWrapper); + return this.list(orderPayInfoLambdaQueryWrapper); + } +} diff --git a/doc/sql/updata-sql-202408041501.sql b/doc/sql/updata-sql-202408041501.sql new file mode 100644 index 0000000..a9f2150 --- /dev/null +++ b/doc/sql/updata-sql-202408041501.sql @@ -0,0 +1,6 @@ +-- order_pay_customer 支付单客户 增加备注字段 +ALTER TABLE `order_pay_customer` ADD COLUMN `remark` varchar(64) NULL COMMENT '备注'; +-- order_pay_info 订单支付信息 增加备注字段 +ALTER TABLE `order_pay_info` ADD COLUMN `remark` varchar(64) NULL COMMENT '备注'; +-- order_pay_refund 订单支付退款表 +ALTER TABLE `order_pay_refund` ADD COLUMN `remark` varchar(64) NULL COMMENT '备注'; diff --git a/doc/sql/update-sql-202408041557.sql b/doc/sql/update-sql-202408041557.sql new file mode 100644 index 0000000..4ea63fb --- /dev/null +++ b/doc/sql/update-sql-202408041557.sql @@ -0,0 +1,3 @@ +-- 给order_pay_info 支付记录订单表 添加支付金额字段 + +ALTER TABLE `order_pay_info` ADD COLUMN `price` decimal(24, 6) NULL COMMENT '支付金额';