diff --git a/README.md b/README.md index bdab8407f..e8e44d5f8 100644 --- a/README.md +++ b/README.md @@ -36,10 +36,10 @@ ## 📃 文档和源码地址 ### 文档地址 -在 [Bootx开源文档站](https://bootx.gitee.io/) 下的支付网关(DaxPay)模块下可以进行查阅相关文档,具体链接地址如下: -[快速指南](https://bootx.gitee.io/daxpay/guides/overview/项目介绍.html)、 -[支付对接](https://bootx.gitee.io/daxpay/gateway/overview/接口清单.html)、 -[操作手册](https://bootx.gitee.io/daxpay/admin/config/平台配置.html) +在 [Bootx开源文档站](https://doc.bootx.cn/) 下的支付网关(DaxPay)模块下可以进行查阅相关文档,具体链接地址如下: +[快速指南](https://doc.bootx.cn/daxpay/guides/overview/项目介绍.html)、 +[支付对接](https://doc.bootx.cn/daxpay/gateway/overview/接口清单.html)、 +[操作手册](https://doc.bootx.cn/daxpay/admin/config/平台配置.html) ### 项目地址 @@ -90,7 +90,7 @@ 不会对原业务系统的架构产生影响。如果是Java项目,可以使用SDK简化接入流程, 其他语言可以参照中的说明使用HTTP接口方式接入。 ### Java客户端SDK -> SDK版本号与支付网关的版本保持一致,如果需要使用,请在pom.xml中添加如下依赖。SDK使用方式参考[SDK使用说明](https://bootx.gitee.io/daxpay/gateway/overview/SDK使用说明.html)。 +> SDK版本号与支付网关的版本保持一致,如果需要使用,请在pom.xml中添加如下依赖。SDK使用方式参考[SDK使用说明](https://doc.bootx.cn/daxpay/gateway/overview/SDK使用说明.html)。 ```xml @@ -101,7 +101,7 @@ ``` ### SDK调用示例 -> 此处以简单支付接口为例,演示业务系统如何调用支付网关进行支付,其他接口的调用方式类似,具体请参考[支付对接](https://bootx.gitee.io/daxpay/gateway/overview/接口清单.html)。 +> 此处以简单支付接口为例,演示业务系统如何调用支付网关进行支付,其他接口的调用方式类似,具体请参考[支付对接](https://doc.bootx.cn/daxpay/gateway/overview/接口清单.html)。 ```java /** diff --git a/_doc/Task.md b/_doc/Task.md index 3979f89ea..71a9e0d16 100644 --- a/_doc/Task.md +++ b/_doc/Task.md @@ -12,17 +12,16 @@ - [x] 订单修复 - [x] 支付和退款回调 - [x] 去除现金支付和储值卡支付方式 -- [x] 三方支付外部订单号规则优化: 支付P、退款R、分账A,根据环境加前缀:DEV_、DEMO_、PRE_ +- [x] 三方支付通道订单号规则优化: 支付P、退款R、分账A,根据环境加前缀:DEV_、DEMO_、PRE_ - [x] 金额显示统一使用元 - [x] 使用切面统一处理API调用异常, 做统一包装返回 - [x] 支付接口优化 - [x] 前端查询条件适配 - [x] paymentId替换 -- [ ] 支付订单和退款订单页面添加实时金额汇总展示 -- [ ] 对账单改造 +- [x] 对账单改造 - [x] 去除对账单明细按钮 - [x] 增加对账结果计算和显示 - - [ ] 增加下载原始对账单功能(保证将明细文件进行储存) + - [x] 增加下载原始对账单功能(保证将明细文件进行储存) - [x] 保存原始的文件 - [x] 微信 - [x] 支付宝 @@ -30,6 +29,7 @@ - [x] 解析原有文件, 可以转换为指定格式进行下载 - [x] 增加下载系统对账单功能 - [x] 增加对单差异数据查看功能和查看功能 +- [x] 支付订单和退款订单页面添加实时金额汇总展示 - [ ] 自动分账改造 - [ ] SDK新增对账接收放添加接口 - [ ] 创建定时任务, 自动对待分账订单进行分账 diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayOrderController.java index 671ed4a1c..23674fcfc 100644 --- a/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayOrderController.java +++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/PayOrderController.java @@ -103,4 +103,10 @@ public class PayOrderController { allocationService.allocation(param); return Res.ok(); } + + @Operation(summary = "查询金额汇总") + @GetMapping("/getTotalAmount") + public ResResult getTotalAmount(PayOrderQuery param){ + return Res.ok(queryService.getTotalAmount(param)); + } } diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/RefundOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/RefundOrderController.java index e11d5fcb8..25d135c6d 100644 --- a/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/RefundOrderController.java +++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/bootx/platform/daxpay/admin/controller/order/RefundOrderController.java @@ -12,6 +12,7 @@ import cn.bootx.platform.daxpay.service.core.payment.sync.service.RefundSyncServ import cn.bootx.platform.daxpay.service.dto.order.refund.RefundOrderDetailDto; import cn.bootx.platform.daxpay.service.dto.order.refund.RefundOrderDto; import cn.bootx.platform.daxpay.service.dto.order.refund.RefundOrderExtraDto; +import cn.bootx.platform.daxpay.service.param.order.PayOrderQuery; import cn.bootx.platform.daxpay.service.param.order.PayOrderRefundParam; import cn.bootx.platform.daxpay.service.param.order.RefundOrderQuery; import io.swagger.v3.oas.annotations.Operation; @@ -30,36 +31,36 @@ import org.springframework.web.bind.annotation.*; @RequiredArgsConstructor public class RefundOrderController { private final RefundOrderService refundOrderService; - private final RefundOrderQueryService refundOrderQueryService; + private final RefundOrderQueryService queryService; private final RefundSyncService refundSyncService; @Operation(summary = "分页查询") @GetMapping("/page") public ResResult> page(PageParam pageParam, RefundOrderQuery query){ - return Res.ok(refundOrderQueryService.page(pageParam, query)); + return Res.ok(queryService.page(pageParam, query)); } @Operation(summary = "查询退款订单详情") @GetMapping("/findByOrderNo") public ResResult findByRefundNo(String refundNo){ - RefundOrderDto order = refundOrderQueryService.findByRefundNo(refundNo); + RefundOrderDto order = queryService.findByRefundNo(refundNo); RefundOrderDetailDto detailDto = new RefundOrderDetailDto(); detailDto.setRefundOrder(order); - detailDto.setRefundOrderExtra(refundOrderQueryService.findExtraById(order.getId())); + detailDto.setRefundOrderExtra(queryService.findExtraById(order.getId())); return Res.ok(detailDto); } @Operation(summary = "查询单条") @GetMapping("/findById") public ResResult findById(Long id){ - return Res.ok(refundOrderQueryService.findById(id)); + return Res.ok(queryService.findById(id)); } @Operation(summary = "查询扩展信息") @GetMapping("/findExtraById") public ResResult findExtraById(Long id){ - return Res.ok(refundOrderQueryService.findExtraById(id)); + return Res.ok(queryService.findExtraById(id)); } @Operation(summary = "手动发起退款") @@ -83,4 +84,10 @@ public class RefundOrderController { refundSyncParam.setRefundNo(refundNo); return Res.ok(refundSyncService.sync(refundSyncParam)); } + + @Operation(summary = "查询金额汇总") + @GetMapping("/getTotalAmount") + public ResResult getTotalAmount(PayOrderQuery param){ + return Res.ok(queryService.getTotalAmount(param)); + } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/AliPayCode.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/AliPayCode.java index cc19133c1..6d5edc0cb 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/AliPayCode.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/code/AliPayCode.java @@ -41,7 +41,7 @@ public interface AliPayCode { /** 对交易或商品的描述(在没有公用回传参数的时候, 这个作为公用回传参数) */ String BODY = "body"; - /** 外部支付订单号 - 商户订单号 */ + /** 通道支付订单号 - 商户订单号 */ String OUT_TRADE_NO = "out_trade_no"; /** 支付流水号 */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/allocation/entity/AllocationOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/allocation/entity/AllocationOrder.java index 4a90a9715..74b01840b 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/allocation/entity/AllocationOrder.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/allocation/entity/AllocationOrder.java @@ -44,9 +44,9 @@ public class AllocationOrder extends MpBaseEntity implements EntityBaseFunction< private String bizAllocationNo; /** - * 外部分账号 + * 通道分账号 */ - @DbColumn(comment = "外部分账号") + @DbColumn(comment = "通道分账号") private String outAllocationNo; /** 支付订单ID */ @@ -66,9 +66,9 @@ public class AllocationOrder extends MpBaseEntity implements EntityBaseFunction< private String bizOrderNo; /** - * 外部系统支付订单号 + * 通道系统支付订单号 */ - @DbColumn(comment = "外部支付订单号") + @DbColumn(comment = "通道支付订单号") private String outOrderNo; /** diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/dao/PayOrderManager.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/dao/PayOrderManager.java index aa78eaa21..f75bdb3f3 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/dao/PayOrderManager.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/dao/PayOrderManager.java @@ -68,4 +68,13 @@ public class PayOrderManager extends BaseManager { .list(); } + /** + * 查询汇总金额 + */ + public Integer getTalAmount(PayOrderQuery query){ + QueryWrapper generator = QueryGenerator.generator(query); + generator.eq(MpUtil.getColumnName(PayOrder::getStatus), PayStatusEnum.SUCCESS.getCode()); + return baseMapper.getTalAmount(generator); + } + } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/dao/PayOrderMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/dao/PayOrderMapper.java index f6bfc6897..5293e429d 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/dao/PayOrderMapper.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/dao/PayOrderMapper.java @@ -1,9 +1,12 @@ package cn.bootx.platform.daxpay.service.core.order.pay.dao; import cn.bootx.platform.daxpay.service.core.order.pay.entity.PayOrder; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import java.util.List; @@ -16,4 +19,7 @@ import java.util.List; public interface PayOrderMapper extends BaseMapper { int insertList(@Param("list")List list); + + @Select("select sum(amount) from pay_order ${ew.customSqlSegment}") + Integer getTalAmount(@Param(Constants.WRAPPER) QueryWrapper param); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/entity/PayOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/entity/PayOrder.java index d65bf225c..8b12bbc7c 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/entity/PayOrder.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/pay/entity/PayOrder.java @@ -41,9 +41,9 @@ public class PayOrder extends MpBaseEntity implements EntityBaseFunction new DataNotExistException("未查询到支付订单")); // 查询扩展数据 - PayOrderExtra payOrderExtra = payOrderExtraManager.findById(payOrder.getId()) + payOrderExtraManager.findById(payOrder.getId()) .orElseThrow(() -> new PayFailureException("支付订单不完整")); PayOrderResult payOrderResult = new PayOrderResult(); BeanUtil.copyProperties(payOrder, payOrderResult); return payOrderResult; } + + /** + * 查询支付总金额 + */ + public Integer getTotalAmount(PayOrderQuery param) { + return payOrderManager.getTalAmount(param); + } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDiff.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDiff.java index 93bfcfb71..8a54e89a7 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDiff.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/reconcile/entity/ReconcileDiff.java @@ -55,8 +55,8 @@ public class ReconcileDiff extends MpBaseEntity implements EntityBaseFunction generator = QueryGenerator.generator(query); + generator.eq(MpUtil.getColumnName(RefundOrder::getStatus), PayStatusEnum.SUCCESS.getCode()); + return baseMapper.getTalAmount(generator); + } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/refund/dao/RefundOrderMapper.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/refund/dao/RefundOrderMapper.java index 90ed49699..cdd356f36 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/refund/dao/RefundOrderMapper.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/refund/dao/RefundOrderMapper.java @@ -1,8 +1,12 @@ package cn.bootx.platform.daxpay.service.core.order.refund.dao; import cn.bootx.platform.daxpay.service.core.order.refund.entity.RefundOrder; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; /** * @author xxm @@ -11,4 +15,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface RefundOrderMapper extends BaseMapper { + @Select("select sum(amount) from pay_refund_order ${ew.customSqlSegment}") + Integer getTalAmount(@Param(Constants.WRAPPER) QueryWrapper generator); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/refund/entity/RefundOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/refund/entity/RefundOrder.java index 7878751df..e536ecff0 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/refund/entity/RefundOrder.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/order/refund/entity/RefundOrder.java @@ -39,7 +39,7 @@ public class RefundOrder extends MpBaseEntity implements EntityBaseFunction - - \ No newline at end of file +