diff --git a/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/orderPayInfo.java b/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/orderPayInfo.java deleted file mode 100644 index f22d61b..0000000 --- a/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/orderPayInfo.java +++ /dev/null @@ -1,45 +0,0 @@ -//package com.bwie.cloud.pay.domain; -// -//import lombok.AllArgsConstructor; -//import lombok.Builder; -//import lombok.Data; -//import lombok.NoArgsConstructor; -// -///** -// * @Author:zhangzhihao -// * @name:orderPayInfo -// * @Date:2024/7/31 9:54 -// * 不准抄代码,添加注释,清楚每一行代码意思 -// */ -//@Data -//@Builder -//@NoArgsConstructor -//@AllArgsConstructor -//public class orderPayInfo { -// /** -// * 主键 -// */ -// private Long id; -// -// /** -// * 客户名称 -// */ -// private String appName; -// -// /** -// * 客户编号 -// */ -// private String appCode; -// -// /** -// * 客户单号 -// */ -// private String cusOrderNumber; -// -// /** -// * 支付单号 -// */ -// private String -// -// -//} diff --git a/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/CustomerOrderPaySimpleResp.java b/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/CustomerOrderPaySimpleResp.java new file mode 100644 index 0000000..ae4511f --- /dev/null +++ b/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/CustomerOrderPaySimpleResp.java @@ -0,0 +1,50 @@ +package com.bwie.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; + +/** + * @Author:zhangzhihao + * @name:CustomerOrderPaySimpleResp + * @Date:2024/8/1 11:46 + * 客户支付单简略返回 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "客户支付单" ,description = "客户支付单简略信息") +public class CustomerOrderPaySimpleResp { + /** + * 客户单号 + */ + @Schema(name = "客户单号" ,type = "String",defaultValue = "OIEJS1234567DIL",description = "客户传入的支付单信息") + private String cusOrderNumber; + + /** + * 支付单号 + */ + @Schema(name = "支付单号" ,type = "String",defaultValue = "ZF1234567889",description = "支付单号") + private String payOrderNumber; + + /** + * 支付金额 + */ + @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/bwie/cloud/pay/domain/resp/CustomerResp.java b/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/CustomerResp.java index edc8883..cbbe040 100644 --- a/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/CustomerResp.java +++ b/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/CustomerResp.java @@ -12,6 +12,9 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.List; +import java.util.function.Function; +import java.util.function.Supplier; /** * @Author:zhangzhihao @@ -20,9 +23,9 @@ import java.util.Date; * 不准抄代码,添加注释,清楚每一行代码意思 */ @Data +@Builder @NoArgsConstructor @AllArgsConstructor -@Builder @Tag(name = "客户信息相应对象",description = "负责客户信息查询的结果") public class CustomerResp { @@ -65,12 +68,17 @@ public class CustomerResp { @Schema(description = "创建时间",defaultValue = "2024-8-1 10:04:23",type = "Date") private Date createTime; + + 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()) .appName(orderPayCustomer.getAppName()) @@ -78,6 +86,7 @@ public class CustomerResp { .status(orderPayCustomer.getStatus()) .createBy(orderPayCustomer.getCreateBy()) .createTime(orderPayCustomer.getCreateTime()) + .orderPaySimpleRespList(function.get()) .build(); } } diff --git a/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/OrderPayResp.java b/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/OrderPayResp.java new file mode 100644 index 0000000..9d4ba98 --- /dev/null +++ b/cloud-pay-common/src/main/java/com/bwie/cloud/pay/domain/resp/OrderPayResp.java @@ -0,0 +1,19 @@ +//package com.bwie.cloud.pay.domain.resp; +// +//import lombok.AllArgsConstructor; +//import lombok.Builder; +//import lombok.Data; +//import lombok.NoArgsConstructor; +// +///** +// * @Author:zhangzhihao +// * @name:orderPayResp +// * @Date:2024/8/1 11:44 +// * 不准抄代码,添加注释,清楚每一行代码意思 +// */ +//@Data +//@Builder +//@NoArgsConstructor +//@AllArgsConstructor +//public class OrderPayResp { +//} diff --git a/cloud-pay-server/src/main/java/com/bwie/cloud/pay/mapper/OrderPayMapper.java b/cloud-pay-server/src/main/java/com/bwie/cloud/pay/mapper/OrderPayMapper.java new file mode 100644 index 0000000..6b2ff2e --- /dev/null +++ b/cloud-pay-server/src/main/java/com/bwie/cloud/pay/mapper/OrderPayMapper.java @@ -0,0 +1,13 @@ +package com.bwie.cloud.pay.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.bwie.cloud.pay.domain.OrderPayInfo; + +/** + * @Author:zhangzhihao + * @name:OrderPayInfoMapper + * @Date:2024/8/1 11:51 + * 不准抄代码,添加注释,清楚每一行代码意思 + */ +public interface OrderPayMapper extends BaseMapper { +} diff --git a/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/OrderPayService.java b/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/OrderPayService.java new file mode 100644 index 0000000..a3aa38d --- /dev/null +++ b/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/OrderPayService.java @@ -0,0 +1,22 @@ +package com.bwie.cloud.pay.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bwie.cloud.pay.domain.OrderPayInfo; + +import java.util.List; + +/** + * @Author:zhangzhihao + * @name:OrderPayService + * @Date:2024/8/1 11:52 + * 不准抄代码,添加注释,清楚每一行代码意思 + */ +public interface OrderPayService extends IService { + /** + * 根据客户code和分页限制,查询结果 + * @param appCode + * @param limit + * @return + */ + List selectOrderPayByAppCodeAndLimit(String appCode, int limit); +} diff --git a/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java b/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java index 3421de0..02fe86e 100644 --- a/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java +++ b/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java @@ -3,17 +3,22 @@ package com.bwie.cloud.pay.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bwie.cloud.pay.domain.OrderPayCustomer; +import com.bwie.cloud.pay.domain.OrderPayInfo; import com.bwie.cloud.pay.domain.req.CustomerListReq; +import com.bwie.cloud.pay.domain.resp.CustomerOrderPaySimpleResp; import com.bwie.cloud.pay.domain.resp.CustomerResp; import com.bwie.cloud.pay.mapper.OrderPayCustomerMapper; import com.bwie.cloud.pay.service.OrderPayCustomerService; +import com.bwie.cloud.pay.service.OrderPayService; import com.muyu.common.core.domain.Result; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; +import java.util.function.Function; /** * @Author:zhangzhihao @@ -26,6 +31,11 @@ import java.util.List; public class OrderPayCustomerServiceImpl extends ServiceImpl implements OrderPayCustomerService { + + + @Resource(type = OrderPayServiceImpl.class) + private OrderPayService orderPayService; + @Override public List selectList(CustomerListReq customerListReq) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -45,9 +55,14 @@ public class OrderPayCustomerServiceImpl List orderPayCustomerList = this.list(queryWrapper); - - return orderPayCustomerList.stream() - .map(CustomerResp::customerBuild) + return orderPayCustomerList.stream() + .map(orderPayCustomer -> CustomerResp.customerBuild( + orderPayCustomer, + () -> orderPayService.selectOrderPayByAppCodeAndLimit(orderPayCustomer.getAppCode(),5) + .stream() + .map(OrderPayInfo::buidCustomerOrderPaySimpleResp) + .toList()) + ) .toList(); } diff --git a/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/impl/OrderPayServiceImpl.java b/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/impl/OrderPayServiceImpl.java new file mode 100644 index 0000000..856b167 --- /dev/null +++ b/cloud-pay-server/src/main/java/com/bwie/cloud/pay/service/impl/OrderPayServiceImpl.java @@ -0,0 +1,28 @@ +package com.bwie.cloud.pay.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bwie.cloud.pay.domain.OrderPayInfo; +import com.bwie.cloud.pay.mapper.OrderPayMapper; +import com.bwie.cloud.pay.service.OrderPayService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author:zhangzhihao + * @name:OrderPayServiceImpl + * @Date:2024/8/1 11:53 + * 不准抄代码,添加注释,清楚每一行代码意思 + */ +@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,true,OrderPayInfo :: getCreateTime); + orderPayInfoQueryWrapper.last("limit "+limit); + return this.list(orderPayInfoQueryWrapper); + } +} diff --git a/doc/sql/cloud-pay-init.sql b/doc/sql/cloud-pay-init.sql new file mode 100644 index 0000000..3537d22 --- /dev/null +++ b/doc/sql/cloud-pay-init.sql @@ -0,0 +1,52 @@ + +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 '支付单号' , + `channel_type` VARCHAR(32) COMMENT '渠道商类型' , + `channel_order_number` VARCHAR(64) COMMENT '渠道商单号' , + `status` VARCHAR(32) COMMENT '支付单状态;0新建 1待支付 2支付中 3支付成功 4支付失败 5支付超时' , + `price` DECIMAL(24,6) 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_customer( + `id` INT AUTO_INCREMENT COMMENT '主键' , + `app_name` VARCHAR(16) COMMENT '服务/客户名称' , + `app_code` VARCHAR(16) 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 '支付退单号' , + `channel_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 = '订单支付退款表'; +