diff --git a/_doc/Task.md b/_doc/Task.md index 9f6dcf04d..9ed4683db 100644 --- a/_doc/Task.md +++ b/_doc/Task.md @@ -11,13 +11,11 @@ - [ ] 微信 - [ ] 云闪付 - [ ] 增加账户余额查询功能 - - [ ] 支付宝 - - [ ] 云闪付 - [ ] 云闪付支持对账功能 - [x] 结算台DEMO增加云闪付示例 -- [ ] 增加支付限额 +- [x] 增加支付限额 - [x] 各通道(异步支付)支持单独的限额 - - [ ] 整个订单支持整体的限额 + - [x] 整个订单支持整体的限额 2.0.x 版本内容 - [ ] 微信新增V3版本接口 - [ ] 付款码支付自动路由到V2接口 @@ -28,7 +26,6 @@ - [ ] 数据库表进行规则, 字段设置长度, 增加索引 **任务池** -- [x] 增加手机用户收银台功能 - [ ] 订单超时支持数据表级别触发 - [ ] 支持转账操作, 通过支付通道专有参数进行实现, 转账时只能单个通道进行操作 - [ ] 支付成功回调后, 如果订单已超时, 则进入待退款订单中,提示进行退款,或者自动退款 diff --git a/daxpay-single-sdk/src/test/java/cn/bootx/platform/daxpay/sdk/payment/PayOrderTest.java b/daxpay-single-sdk/src/test/java/cn/bootx/platform/daxpay/sdk/payment/PayOrderTest.java index 45010967f..781f1a6c5 100644 --- a/daxpay-single-sdk/src/test/java/cn/bootx/platform/daxpay/sdk/payment/PayOrderTest.java +++ b/daxpay-single-sdk/src/test/java/cn/bootx/platform/daxpay/sdk/payment/PayOrderTest.java @@ -74,13 +74,13 @@ public class PayOrderTest { PayChannelParam cash = new PayChannelParam(); cash.setChannel(PayChannelEnum.CASH.getCode()); cash.setWay(PayWayEnum.NORMAL.getCode()); - cash.setAmount(10); + cash.setAmount(22); // 储值卡支付 PayChannelParam card = new PayChannelParam(); card.setChannel(PayChannelEnum.VOUCHER.getCode()); card.setWay(PayWayEnum.NORMAL.getCode()); - card.setAmount(10); + card.setAmount(20001); // 储值卡通道参数 VoucherPayParam voucherPayParam = new VoucherPayParam(); voucherPayParam.setCardNo("123456"); @@ -113,19 +113,19 @@ public class PayOrderTest { param.setClientIp("127.0.0.1"); param.setNotNotify(true); - param.setBusinessNo("P0009"); + param.setBusinessNo("P0015"); param.setTitle("测试组合支付(包含异步支付)"); // 现金支付 PayChannelParam cash = new PayChannelParam(); cash.setChannel(PayChannelEnum.CASH.getCode()); cash.setWay(PayWayEnum.NORMAL.getCode()); - cash.setAmount(10); + cash.setAmount(201); // 异步支付 PayChannelParam async = new PayChannelParam(); async.setChannel(PayChannelEnum.ALI.getCode()); async.setWay(PayWayEnum.WEB.getCode()); - async.setAmount(1); + async.setAmount(2207); // 组装组合支付的参数 List payChannels = Arrays.asList(cash, async); diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/util/PayUtil.java b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/util/PayUtil.java index 0e9b09d3b..497bda70e 100644 --- a/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/util/PayUtil.java +++ b/daxpay-single/daxpay-single-core/src/main/java/cn/bootx/platform/daxpay/util/PayUtil.java @@ -43,6 +43,7 @@ public class PayUtil { * 检查支付金额 */ public void validationAmount(List payModeList) { + // 验证支付金额 for (PayChannelParam payChannelParam : payModeList) { // 支付金额小于等于零 if (payChannelParam.getAmount() < 0) { diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/PlatformLocal.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/PlatformLocal.java index a66cf9c31..36dec826e 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/PlatformLocal.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/common/context/PlatformLocal.java @@ -35,5 +35,5 @@ public class PlatformLocal { private Integer orderTimeout; /** 支付限额 */ - private Integer singleLimit; + private Integer limitAmount; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/common/service/PaymentAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/common/service/PaymentAssistService.java index b870ac9cc..f31a90fd3 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/common/service/PaymentAssistService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/common/service/PaymentAssistService.java @@ -41,7 +41,7 @@ public class PaymentAssistService { platform.setSignSecret(config.getSignSecret()); platform.setNotifyUrl(config.getNotifyUrl()); platform.setOrderTimeout(config.getOrderTimeout()); - platform.setSingleLimit(config.getSingleLimit()); + platform.setLimitAmount(config.getLimitAmount()); platform.setWebsiteUrl(config.getWebsiteUrl()); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/service/PayAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/service/PayAssistService.java index 5d46363a8..e8b05b46d 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/service/PayAssistService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/service/PayAssistService.java @@ -219,4 +219,19 @@ public class PayAssistService { } return null; } + + /** + * 检验订单是否超过限额 + */ + public void validationLimitAmount(PayParam payParam) { + // 总额校验 + PlatformLocal platformInfo = PaymentContextLocal.get().getPlatformInfo(); + Integer amount = payParam.getPayChannels() + .stream() + .map(PayChannelParam::getAmount) + .reduce(0, Integer::sum); + if (amount > platformInfo.getLimitAmount()) { + throw new PayFailureException("支付金额超过限额"); + } + } } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/service/PayService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/service/PayService.java index 9c2ea3e5a..db2071f27 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/service/PayService.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/service/PayService.java @@ -101,6 +101,8 @@ public class PayService { PayUtil.validationAsyncPay(payParam); // 检查支付金额 PayUtil.validationAmount(payParam.getPayChannels()); + // 校验支付限额 + payAssistService.validationLimitAmount(payParam); String businessNo = payParam.getBusinessNo(); // 加锁 @@ -161,8 +163,6 @@ public class PayService { */ @Transactional(rollbackFor = Exception.class) public PayResult firstSyncPay(PayParam payParam){ - // 创建支付订单和扩展记录并返回支付订单对象 - PayOrder payOrder = payAssistService.createPayOrder(payParam); PayLocal payInfo = PaymentContextLocal.get().getPayInfo(); // 获取支付方式,通过工厂生成对应的策略组 @@ -172,12 +172,15 @@ public class PayService { } // 初始化支付参数 - for (AbsPayStrategy strategy : strategies) { - strategy.initPayParam(payOrder, payParam); - } + strategies.forEach(strategy -> strategy.setPayParam(payParam)); - // 执行支付前处理动作 + // 执行支付前处理动作, 进行校验 strategies.forEach(AbsPayStrategy::doBeforePayHandler); + + // 创建支付订单和扩展记录并返回支付订单对象 + PayOrder payOrder = payAssistService.createPayOrder(payParam); + strategies.forEach(strategy -> strategy.setOrder(payOrder)); + // 生成支付通道订单 strategies.forEach(AbsPayStrategy::generateChannelOrder); // 支付操作 @@ -201,8 +204,6 @@ public class PayService { */ private PayResult firstAsyncPay(PayParam payParam){ PayLocal payInfo = PaymentContextLocal.get().getPayInfo(); - // 开启新事务执行订单预保存操作 - PayOrder payOrder = payAssistService.createPayOrder(payParam); // 获取支付方式,通过工厂生成对应的策略组 List strategies = PayStrategyFactory.createAsyncLast(payParam.getPayChannels()); @@ -214,10 +215,13 @@ public class PayService { .orElseThrow(() -> new PayFailureException("数据和代码异常, 请排查代码")); // 初始化支付的参数 - asyncPayStrategy.initPayParam(payOrder, payParam); + asyncPayStrategy.setPayParam(payParam); - // 执行支付前处理动作 + // 执行支付前处理动作, 进行各种校验 asyncPayStrategy.doBeforePayHandler(); + // 创建支付订单和扩展记录并返回支付订单对象 + PayOrder payOrder = payAssistService.createPayOrder(payParam); + asyncPayStrategy.setOrder(payOrder); // 支付操作 try { @@ -262,20 +266,9 @@ public class PayService { */ private PayResult firstCombinationPay(PayParam payParam){ PayLocal payInfo = PaymentContextLocal.get().getPayInfo(); - // ------------------------- 进行同步支付 ------------------------------- - PayOrder payOrder = SpringUtil.getBean(this.getClass()).firstCombinationSyncPay(payParam); + // ------------------------- 进行同步支付, 成功后返回异步通道策略类 ------------------------------- + AbsPayStrategy asyncPayStrategy = SpringUtil.getBean(this.getClass()).firstCombinationSyncPay(payParam); // ------------------------- 进行异步支付 ------------------------------- - // 创建异步通道策略类 - //获取异步支付通道参数并构建支付策略 - PayChannelParam payChannelParam = payAssistService.getAsyncPayParam(payParam, payOrder); - AbsPayStrategy asyncPayStrategy = PayStrategyFactory.create(payChannelParam); - // 初始化支付的参数 - asyncPayStrategy.initPayParam(payOrder, payParam); - - // 支付前准备 - asyncPayStrategy.doBeforePayHandler(); - // 设置异步支付通道订单信息 - asyncPayStrategy.generateChannelOrder(); try { // 异步支付操作 asyncPayStrategy.doPayHandler(); @@ -291,13 +284,11 @@ public class PayService { } /** - * 首次组合支付, 先进行同步支付, 如果成功返回支付订单 - * 注意: 同时也执行异步支付通道订单的保存, 保证订单操作的原子性 + * 首次组合支付, 先进行同步支付, 如果成功返回异步支付策略 + * 注意: 同时也对异步支付通道进行校验和订单的保存, 保证整个订单操作的原子性 */ @Transactional(rollbackFor = Exception.class) - public PayOrder firstCombinationSyncPay(PayParam payParam){ - // 创建支付订单和扩展记录并返回支付订单对象 - PayOrder payOrder = payAssistService.createPayOrder(payParam); + public AbsPayStrategy firstCombinationSyncPay(PayParam payParam){ // 获取支付方式,通过工厂生成对应的策略组 List strategies = PayStrategyFactory.createAsyncLast(payParam.getPayChannels()); @@ -306,30 +297,38 @@ public class PayService { } // 初始化支付的参数 for (AbsPayStrategy strategy : strategies) { - strategy.initPayParam(payOrder, payParam); + strategy.setPayParam(payParam); } - // 取出同步通道 然后进行同步通道的支付, 使用单独事务 + // 初始化支付参数 + strategies.forEach(strategy -> strategy.setPayParam(payParam)); + + // 执行支付前处理动作, 对各通道进行检验 + strategies.forEach(AbsPayStrategy::doBeforePayHandler); + // 创建支付订单和扩展记录并返回支付订单对象 + PayOrder payOrder = payAssistService.createPayOrder(payParam); + strategies.forEach(strategy -> strategy.setOrder(payOrder)); + + // 生成支付通道订单, 同时也执行异步支付通道订单的保存, 保证订单操作的原子性 + strategies.forEach(AbsPayStrategy::generateChannelOrder); + + // 取出同步通道 然后进行同步通道的支付操作 List syncStrategies = strategies.stream() .filter(strategy -> !ASYNC_TYPE.contains(strategy.getChannel())) .collect(Collectors.toList()); + syncStrategies.forEach(strategy -> strategy.setPayParam(payParam)); - // 初始化支付参数 - for (AbsPayStrategy strategy : syncStrategies) { - strategy.initPayParam(payOrder, payParam); - } - - // 执行支付前处理动作 - syncStrategies.forEach(AbsPayStrategy::doBeforePayHandler); - // 生成支付通道订单, 同时也执行异步支付通道订单的保存, 保证订单操作的原子性 - strategies.forEach(AbsPayStrategy::generateChannelOrder); // 支付操作 syncStrategies.forEach(AbsPayStrategy::doPayHandler); // 支付调起成功操作, 进行扣款、创建记录类类似的操作 syncStrategies.forEach(AbsPayStrategy::doSuccessHandler); // 保存通道支付订单 payAssistService.savePayChannelOrder(strategies); - return payOrder; + + return strategies.stream() + .filter(o-> ASYNC_TYPE.contains(o.getChannel())) + .findFirst() + .orElseThrow(()->new PayFailureException("支付代码异常,请检查")); } /** diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/strategy/AliPayStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/strategy/AliPayStrategy.java index ab27de58b..961e69b97 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/strategy/AliPayStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/strategy/AliPayStrategy.java @@ -78,6 +78,7 @@ public class AliPayStrategy extends AbsPayStrategy { } // 检查并获取支付宝支付配置 this.initAlipayConfig(); + // 校验 aliPayService.validation(this.getPayChannelParam(), alipayConfig); } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/strategy/WeChatPayStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/strategy/WeChatPayStrategy.java index b61de5044..38621ac51 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/strategy/WeChatPayStrategy.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/payment/pay/strategy/WeChatPayStrategy.java @@ -78,7 +78,6 @@ public class WeChatPayStrategy extends AbsPayStrategy { weChatPayService.validation(this.getPayChannelParam(), weChatPayConfig); } - /** * 不使用默认的生成通道支付单方法, 异步支付通道的支付订单自己管理 */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/system/config/entity/PlatformConfig.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/system/config/entity/PlatformConfig.java index ffc0f819a..10a5eb631 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/system/config/entity/PlatformConfig.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/core/system/config/entity/PlatformConfig.java @@ -43,12 +43,11 @@ public class PlatformConfig extends MpBaseEntity implements EntityBaseFunction

payWays; /** 单次支持支持多少钱 */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/voucher/VoucherConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/voucher/VoucherConfigDto.java index fc9177662..c3337a1a5 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/voucher/VoucherConfigDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/voucher/VoucherConfigDto.java @@ -1,7 +1,6 @@ package cn.bootx.platform.daxpay.service.dto.channel.voucher; import cn.bootx.platform.common.core.rest.dto.BaseDto; -import cn.bootx.table.modify.annotation.DbColumn; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -25,7 +24,7 @@ public class VoucherConfigDto extends BaseDto { private Boolean enable; /** 可用支付方式 */ - @DbColumn(comment = "可用支付方式") + @Schema(description = "可用支付方式") private List payWays; /** 单次支持支持多少钱 */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/wallet/WalletConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/wallet/WalletConfigDto.java index 3d9822ab4..38e0cdff5 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/wallet/WalletConfigDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/wallet/WalletConfigDto.java @@ -25,7 +25,7 @@ public class WalletConfigDto extends BaseDto { private Boolean enable; /** 可用支付方式 */ - @DbColumn(comment = "可用支付方式") + @Schema(description = "可用支付方式") private List payWays; /** 单次支持支持多少钱 */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/wechat/WeChatPayConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/wechat/WeChatPayConfigDto.java index 7ff9d3475..7d5f148a5 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/wechat/WeChatPayConfigDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/channel/wechat/WeChatPayConfigDto.java @@ -2,7 +2,6 @@ package cn.bootx.platform.daxpay.service.dto.channel.wechat; import cn.bootx.platform.common.core.rest.dto.BaseDto; import cn.bootx.platform.starter.data.perm.sensitive.SensitiveInfo; -import cn.bootx.table.modify.annotation.DbColumn; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -29,7 +28,7 @@ public class WeChatPayConfigDto extends BaseDto implements Serializable { @SensitiveInfo private String wxAppId; - @DbColumn(comment = "是否启用") + @Schema(description = "是否启用") private Boolean enable; @Schema(description = "支付限额") diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/RefundChannelOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/RefundChannelOrderDto.java index 91328b7c9..97acf396f 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/RefundChannelOrderDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/order/refund/RefundChannelOrderDto.java @@ -2,7 +2,6 @@ package cn.bootx.platform.daxpay.service.dto.order.refund; import cn.bootx.platform.common.core.rest.dto.BaseDto; import cn.bootx.platform.daxpay.code.RefundStatusEnum; -import cn.bootx.table.modify.annotation.DbColumn; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -19,7 +18,6 @@ import lombok.experimental.Accessors; @Schema(title = "支付退款通道订单") public class RefundChannelOrderDto extends BaseDto { - @DbColumn(comment = "关联退款id") @Schema(description = "关联退款id") private Long refundId; diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/record/close/PayCloseRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/record/close/PayCloseRecordDto.java index e6c057e2d..13fa861df 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/record/close/PayCloseRecordDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/record/close/PayCloseRecordDto.java @@ -2,7 +2,6 @@ package cn.bootx.platform.daxpay.service.dto.record.close; import cn.bootx.platform.common.core.rest.dto.BaseDto; import cn.bootx.platform.daxpay.code.PayChannelEnum; -import cn.bootx.table.modify.annotation.DbColumn; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -45,10 +44,10 @@ public class PayCloseRecordDto extends BaseDto { private String errorMsg; /** 客户端IP */ - @DbColumn(comment = "客户端IP") + @Schema(description = "客户端IP") private String clientIp; /** 请求链路ID */ - @DbColumn(comment = "请求链路ID") + @Schema(description = "请求链路ID") private String reqId; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/record/repair/PayRepairRecordDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/record/repair/PayRepairRecordDto.java index 44c0fae88..35ead2d08 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/record/repair/PayRepairRecordDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/record/repair/PayRepairRecordDto.java @@ -5,7 +5,6 @@ import cn.bootx.platform.daxpay.code.PayStatusEnum; import cn.bootx.platform.daxpay.service.code.PayRepairSourceEnum; import cn.bootx.platform.daxpay.service.code.PayRepairWayEnum; import cn.bootx.platform.daxpay.service.code.RefundRepairWayEnum; -import cn.bootx.table.modify.annotation.DbColumn; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; @@ -58,7 +57,7 @@ public class PayRepairRecordDto extends BaseDto { private String repairWay; /** 修复的异步通道 */ - @DbColumn(comment = "修复的异步通道") + @Schema(description = "修复的异步通道") private String asyncChannel; /** diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/system/config/PayChannelConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/system/config/PayChannelConfigDto.java index fe6ed30e4..23c438873 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/system/config/PayChannelConfigDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/system/config/PayChannelConfigDto.java @@ -27,7 +27,7 @@ public class PayChannelConfigDto extends BaseDto { private String name; /** 是否启用 */ - @DbColumn(comment = "是否启用") + @Schema(description = "是否启用") private Boolean enable; /** logo图片 */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/system/config/PlatformConfigDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/system/config/PlatformConfigDto.java index e4ce2b4cb..6b4d8953d 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/system/config/PlatformConfigDto.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/dto/system/config/PlatformConfigDto.java @@ -15,24 +15,27 @@ import lombok.experimental.Accessors; @Schema(title = "平台配置") public class PlatformConfigDto { - @Schema(description ="网站地址") + @Schema(description = "网站地址") private String websiteUrl; /** * @see PaySignTypeEnum */ - @Schema(description ="签名方式") + @Schema(description = "签名方式") private String signType; - @Schema(description ="签名秘钥") + @Schema(description = "签名秘钥") private String signSecret; - @Schema(description ="异步支付通知地址") + @Schema(description = "异步支付通知地址") private String notifyUrl; - @Schema(description ="同步支付跳转地址") + @Schema(description = "同步支付跳转地址") private String returnUrl; - @Schema(description ="订单默认超时时间(分钟)") + @Schema(description = "订单默认超时时间(分钟)") private Integer orderTimeout; + + @Schema(description = "订单默认超时时间(分钟)") + private Integer limitAmount; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/channel/wechat/WeChatPayConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/channel/wechat/WeChatPayConfigParam.java index f7c0d738b..714d282c9 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/channel/wechat/WeChatPayConfigParam.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/channel/wechat/WeChatPayConfigParam.java @@ -35,7 +35,7 @@ public class WeChatPayConfigParam { @Schema(description = "异步通知地址") private String notifyUrl; - @Schema(description ="同步通知地址") + @Schema(description = "同步通知地址") private String returnUrl; /** 接口版本, 使用v2还是v3接口 */ diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/ClientNoticeRecordQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/ClientNoticeRecordQuery.java index 118fac531..003c4adef 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/ClientNoticeRecordQuery.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/ClientNoticeRecordQuery.java @@ -20,18 +20,18 @@ import lombok.experimental.Accessors; public class ClientNoticeRecordQuery extends QueryOrder { /** 任务ID */ - @Schema(description ="任务ID") + @Schema(description = "任务ID") private Long taskId; /** 请求次数 */ - @Schema(description ="请求次数") + @Schema(description = "请求次数") private Integer reqCount; /** 发送是否成功 */ - @Schema(description ="发送是否成功") + @Schema(description = "发送是否成功") private Boolean success; /** 错误信息 */ - @Schema(description ="错误信息") + @Schema(description = "错误信息") private String errorMsg; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/ClientNoticeTaskQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/ClientNoticeTaskQuery.java index 122015759..6ad7cacd2 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/ClientNoticeTaskQuery.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/ClientNoticeTaskQuery.java @@ -21,29 +21,29 @@ import lombok.experimental.Accessors; public class ClientNoticeTaskQuery extends QueryOrder { /** 本地订单ID */ - @Schema(description ="本地订单ID") + @Schema(description = "本地订单ID") private Long orderId; /** * 通知类型 * @see ClientNoticeTypeEnum */ - @Schema(description ="通知类型") + @Schema(description = "通知类型") private String type; /** 消息内容 */ - @Schema(description ="消息内容") + @Schema(description = "消息内容") private String content; /** 是否发送成功 */ - @Schema(description ="是否发送成功") + @Schema(description = "是否发送成功") private Boolean success; /** 发送次数 */ - @Schema(description ="发送次数") + @Schema(description = "发送次数") private Integer sendCount; /** 发送地址 */ - @Schema(description ="发送地址") + @Schema(description = "发送地址") private String url; } diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/PayCloseRecordQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/PayCloseRecordQuery.java index 529422e96..07042791f 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/PayCloseRecordQuery.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/record/PayCloseRecordQuery.java @@ -18,17 +18,17 @@ import lombok.experimental.Accessors; @Schema(title = "支付关闭记录") public class PayCloseRecordQuery extends QueryOrder { - @Schema(description ="支付记录id") + @Schema(description = "支付记录id") private Long paymentId; - @Schema(description ="业务号") + @Schema(description = "业务号") private String businessNo; /** * 关闭的异步支付通道, 可以为空 * @see PayChannelEnum#getCode() */ - @Schema(description ="关闭的异步支付通道") + @Schema(description = "关闭的异步支付通道") private String asyncChannel; @Schema(description = "请求链路ID") diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/system/config/PlatformConfigParam.java b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/system/config/PlatformConfigParam.java index 4a50341dd..dd077977f 100644 --- a/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/system/config/PlatformConfigParam.java +++ b/daxpay-single/daxpay-single-service/src/main/java/cn/bootx/platform/daxpay/service/param/system/config/PlatformConfigParam.java @@ -1,7 +1,6 @@ package cn.bootx.platform.daxpay.service.param.system.config; import cn.bootx.platform.daxpay.code.PaySignTypeEnum; -import cn.bootx.table.modify.annotation.DbColumn; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.experimental.Accessors; @@ -16,24 +15,27 @@ import lombok.experimental.Accessors; @Schema(title = "平台配置") public class PlatformConfigParam { - @DbColumn(comment = "网站地址") + @Schema(description = "网站地址") private String websiteUrl; /** * @see PaySignTypeEnum */ - @DbColumn(comment = "签名方式") + @Schema(description = "签名方式") private String signType; - @DbColumn(comment = "签名秘钥") + @Schema(description = "签名秘钥") private String signSecret; - @DbColumn(comment = "支付通知地址") + @Schema(description = "支付通知地址") private String notifyUrl; - @Schema(description ="同步支付跳转地址") + @Schema(description = "同步支付跳转地址") private String returnUrl; - @DbColumn(comment = "订单默认超时时间") + @Schema(description = "订单默认超时时间(分钟)") private Integer orderTimeout; + + @Schema(description = "订单支付限额(分)") + private Integer limitAmount; }