From b4181778ae51c3b41db3f561c0b0c944bbabf08c Mon Sep 17 00:00:00 2001 From: 86191 <2160251938@qq.com> Date: Sat, 3 Aug 2024 20:49:29 +0800 Subject: [PATCH] =?UTF-8?q?feat():=E5=A2=9E=E5=8A=A0=E4=BA=86=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B8=A0=E9=81=93=E6=9E=9A=E4=B8=BE=E5=92=8C=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=B8=A0=E9=81=93=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/cloud/pay/domain/OrderPayInfo.java | 62 +++++++++++++++++++ .../resp/CustomerOrderPaySimpleResp.java | 36 +++++++++++ .../cloud/pay/domain/resp/CustomerResp.java | 7 +++ .../cloud/pay/domain/resp/OrderPayResp.java | 16 +++++ .../muyu/cloud/pay/mapper/OrderPayMapper.java | 12 ++++ .../cloud/pay/service/OrderPayService.java | 10 +++ .../impl/OrderPayCustomerServiceImpl.java | 27 +++++++- .../pay/service/impl/OrderPayServiceImpl.java | 15 +++++ doc/sql/cloud-pay-init.sql | 51 +++++++++++++++ 9 files changed, 235 insertions(+), 1 deletion(-) 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/cloud-pay-init.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..1b94795 --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayInfo.java @@ -0,0 +1,62 @@ +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.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 +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = true) +@TableName(value = "order_pay_info", autoResultMap = true) +public class OrderPayInfo extends BaseEntity { + /** + * 主键 + */ + @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; +} 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..db2e47c --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/CustomerOrderPaySimpleResp.java @@ -0,0 +1,36 @@ +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 = "I99L77Y52",description = "客户传入的支付单信息") + private String cusOrderNumber; + /** + * 支付金额 + */ + @Schema(name = "支付金额",type = "BigDecimal",defaultValue = "9977.52",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 8d07cde..1f68eac 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,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.List; /** * 客户结合返回值 @@ -47,6 +48,12 @@ public class CustomerResp { private Date createTime; + /** + * 客户最近5条支付单 + */ + private List orderPaySimpleRespList; + + /** * 数据库对象构建为返回结果对象 * @param orderPayCustomer 数据库对象 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..e6af3f8 --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/resp/OrderPayResp.java @@ -0,0 +1,16 @@ +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..a4d9510 --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/mapper/OrderPayMapper.java @@ -0,0 +1,12 @@ +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..8c3de30 --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/OrderPayService.java @@ -0,0 +1,10 @@ +package com.muyu.cloud.pay.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.cloud.pay.domain.OrderPayInfo; + +/** + * 订单支付业务层 + */ +public interface OrderPayService extends IService { +} 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 9cfa0fe..5fce8d5 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,19 +3,28 @@ 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.CustomerOrderPaySimpleResp; 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 lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; @Slf4j @Service public class OrderPayCustomerServiceImpl extends ServiceImpl implements OrderPayCustomerService { + + @Resource(type = OrderPayServiceImpl.class) + private OrderPayService orderPayService; + @Override public List selectList(CustomerListReq customerListReq) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -32,8 +41,24 @@ public class OrderPayCustomerServiceImpl extends ServiceImpl orderPayCustomerList = this.list(queryWrapper); - return orderPayCustomerList.stream() + List customerRespList = orderPayCustomerList.stream() .map(CustomerResp::customerBuild) .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 new file mode 100644 index 0000000..3880546 --- /dev/null +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayServiceImpl.java @@ -0,0 +1,15 @@ +package com.muyu.cloud.pay.service.impl; + +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; + +/** + * 订单支付业务实现层 + */ +@Service +public class OrderPayServiceImpl extends ServiceImpl implements OrderPayService { + +} diff --git a/doc/sql/cloud-pay-init.sql b/doc/sql/cloud-pay-init.sql new file mode 100644 index 0000000..70159f0 --- /dev/null +++ b/doc/sql/cloud-pay-init.sql @@ -0,0 +1,51 @@ +CREATE TABLE order_pay_info( + `id` INT AUTO_INCREMENT COMMENT '主键' , + `app_name` VARCHAR(16) NOT NULL COMMENT '客户名称' , + `app_code` VARCHAR(16) COMMENT '客户单号' , + `cus_order_number` VARCHAR(32) COMMENT '客户单号' , + `pay_order_number` VARCHAR(32) COMMENT '支付单号' , + `price` DECIMAL(24,2) COMMENT '支付金额' , + `channel_type` VARCHAR(32) COMMENT '渠道商类型' , + `channel_order_number` VARCHAR(64) COMMENT '渠道商单号' , + `status` VARCHAR(32) COMMENT '支付单状态;0.新建1.待支付2.支付中3.支付成功4.支付失败5.支付超时' , + `create_by` bigint COMMENT '创建人' , + `create_time` DATETIME COMMENT '创建时间' , + `update_by` bigint COMMENT '更新人' , + `update_time` DATETIME COMMENT '更新时间' , + `remark` VARCHAR(64) COMMENT '备注' , + PRIMARY KEY (id) +) COMMENT = '订单支付信息'; + + +CREATE TABLE order_pay_customer( + `id` INT AUTO_INCREMENT COMMENT '主键' , + `app_name` VARCHAR(16) COMMENT '服务/客户名称' , + `app_code` VARCHAR(16) NOT NULL COMMENT '服务/客户编码' , + `app_desc` TEXT COMMENT '客户描述' , + `status` VARCHAR(32) COMMENT '是否开启' , + `create_by` bigint COMMENT '创建人' , + `create_time` DATETIME COMMENT '创建时间' , + `update_by` bigint COMMENT '更新人' , + `update_time` DATETIME COMMENT '更新时间' , + `remark` VARCHAR(64) COMMENT '备注' , + PRIMARY KEY (id) +) COMMENT = '支付单客户'; + + +CREATE TABLE order_pay_refund( + `id` INT AUTO_INCREMENT COMMENT '主键' , + `cus_order_number` VARCHAR(32) NOT NULL COMMENT '客户退单号' , + `pay_order_number` VARCHAR(32) NOT NULL COMMENT '支付退单号' , + `channer_order_number` VARCHAR(64) NOT NULL COMMENT '渠道商退单号' , + `price` DECIMAL(24,6) NOT NULL COMMENT '退款金额' , + `pay_info_number` VARCHAR(32) COMMENT '支付单号' , + `to_account_time` DATETIME COMMENT '到账时间' , + `status` VARCHAR(32) COMMENT '退单状态' , + `create_by` bigint COMMENT '创建人' , + `create_time` DATETIME COMMENT '创建时间' , + `update_by` bigint COMMENT '更新人' , + `update_time` DATETIME COMMENT '更新时间' , + `remark` VARCHAR(64) COMMENT '备注' , + PRIMARY KEY (id) +) COMMENT = '订单支付退款表'; +