diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/reconcile/AlipayReconcileBillDetail.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/AlipayReconcileBillDetail.java similarity index 97% rename from daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/reconcile/AlipayReconcileBillDetail.java rename to daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/AlipayReconcileBillDetail.java index 6b87a5f72..53214b917 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/reconcile/AlipayReconcileBillDetail.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/AlipayReconcileBillDetail.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.channel.alipay.bo.reconcile; +package org.dromara.daxpay.channel.alipay.bo; import cn.bootx.platform.common.mybatisplus.base.MpIdEntity; import cn.hutool.core.annotation.Alias; diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/reconcile/AlipayReconcileBillTotal.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/AlipayReconcileBillTotal.java similarity index 96% rename from daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/reconcile/AlipayReconcileBillTotal.java rename to daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/AlipayReconcileBillTotal.java index 4bd376918..68a2b55e6 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/reconcile/AlipayReconcileBillTotal.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/bo/AlipayReconcileBillTotal.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.channel.alipay.bo.reconcile; +package org.dromara.daxpay.channel.alipay.bo; import cn.bootx.platform.common.mybatisplus.base.MpIdEntity; import cn.hutool.core.annotation.Alias; diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/convert/config/AlipayConfigConvert.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/convert/AlipayConfigConvert.java similarity index 91% rename from daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/convert/config/AlipayConfigConvert.java rename to daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/convert/AlipayConfigConvert.java index 9d9187de2..5a8929b50 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/convert/config/AlipayConfigConvert.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/convert/AlipayConfigConvert.java @@ -1,4 +1,4 @@ -package org.dromara.daxpay.channel.alipay.convert.config; +package org.dromara.daxpay.channel.alipay.convert; import org.dromara.daxpay.channel.alipay.entity.AliPayConfig; import org.dromara.daxpay.channel.alipay.param.config.AlipayConfigParam; diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/entity/AliPayConfig.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/entity/AliPayConfig.java index a491e19b8..1c368968e 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/entity/AliPayConfig.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/entity/AliPayConfig.java @@ -2,7 +2,7 @@ package org.dromara.daxpay.channel.alipay.entity; import cn.bootx.platform.common.mybatisplus.function.ToResult; import cn.bootx.platform.core.util.JsonUtil; -import org.dromara.daxpay.channel.alipay.convert.config.AlipayConfigConvert; +import org.dromara.daxpay.channel.alipay.convert.AlipayConfigConvert; import org.dromara.daxpay.channel.alipay.result.config.AlipayConfigResult; import org.dromara.daxpay.core.enums.ChannelEnum; import org.dromara.daxpay.service.entity.config.ChannelConfig; diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AliPayAllocReceiverService.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AlipayAllocReceiverService.java similarity index 99% rename from daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AliPayAllocReceiverService.java rename to daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AlipayAllocReceiverService.java index 4765ec23d..8671d7a05 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AliPayAllocReceiverService.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AlipayAllocReceiverService.java @@ -36,7 +36,7 @@ import static org.dromara.daxpay.core.enums.AllocReceiverTypeEnum.*; @Slf4j @Service @RequiredArgsConstructor -public class AliPayAllocReceiverService { +public class AlipayAllocReceiverService { private final AlipayConfigService aliPayConfigService; /** diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AliPayAllocationService.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AlipayAllocationService.java similarity index 99% rename from daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AliPayAllocationService.java rename to daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AlipayAllocationService.java index ed2888445..239f08d3a 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AliPayAllocationService.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/allocation/AlipayAllocationService.java @@ -43,7 +43,7 @@ import java.util.stream.Collectors; @Slf4j @Service @RequiredArgsConstructor -public class AliPayAllocationService { +public class AlipayAllocationService { private final AlipayConfigService aliPayConfigService; /** diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/config/AlipayConfigService.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/config/AlipayConfigService.java index 376af1fc2..10ba77b61 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/config/AlipayConfigService.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/config/AlipayConfigService.java @@ -12,7 +12,7 @@ import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.dromara.daxpay.channel.alipay.code.AlipayCode; -import org.dromara.daxpay.channel.alipay.convert.config.AlipayConfigConvert; +import org.dromara.daxpay.channel.alipay.convert.AlipayConfigConvert; import org.dromara.daxpay.channel.alipay.entity.AliPayConfig; import org.dromara.daxpay.channel.alipay.param.config.AlipayConfigParam; import org.dromara.daxpay.channel.alipay.result.config.AlipayConfigResult; diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/reconcile/AlipayReconcileService.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/reconcile/AlipayReconcileService.java index c7e4470ad..5b830f5b1 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/reconcile/AlipayReconcileService.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/service/reconcile/AlipayReconcileService.java @@ -16,8 +16,8 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; -import org.dromara.daxpay.channel.alipay.bo.reconcile.AlipayReconcileBillDetail; -import org.dromara.daxpay.channel.alipay.bo.reconcile.AlipayReconcileBillTotal; +import org.dromara.daxpay.channel.alipay.bo.AlipayReconcileBillDetail; +import org.dromara.daxpay.channel.alipay.bo.AlipayReconcileBillTotal; import org.dromara.daxpay.channel.alipay.entity.AliPayConfig; import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService; import org.dromara.daxpay.core.enums.TradeStatusEnum; diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvAllocReceiverStrategy.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvAllocReceiverStrategy.java new file mode 100644 index 000000000..515c8463a --- /dev/null +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvAllocReceiverStrategy.java @@ -0,0 +1,78 @@ +package org.dromara.daxpay.channel.alipay.strategy.isv; + +import cn.bootx.platform.core.exception.ValidationFailedException; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.daxpay.channel.alipay.entity.AliPayConfig; +import org.dromara.daxpay.channel.alipay.service.allocation.AlipayAllocReceiverService; +import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService; +import org.dromara.daxpay.core.enums.AllocReceiverTypeEnum; +import org.dromara.daxpay.core.enums.ChannelEnum; +import org.dromara.daxpay.service.strategy.AbsAllocReceiverStrategy; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Service; + +import java.util.List; + +import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE; + +/** + * 支付宝分账接收者策略 + * @author xxm + * @since 2024/4/1 + */ +@Slf4j +@Service +@Scope(SCOPE_PROTOTYPE) +@RequiredArgsConstructor +public class AlipayIsvAllocReceiverStrategy extends AbsAllocReceiverStrategy { + + private final AlipayAllocReceiverService receiverService; + + private final AlipayConfigService aliPayConfigService; + + /** + * 策略标识 + */ + @Override + public String getChannel() { + return ChannelEnum.ALIPAY_ISV.getCode(); + } + + @Override + public List getSupportReceiverTypes() { + return List.of(AllocReceiverTypeEnum.LOGIN_NAME, AllocReceiverTypeEnum.USER_ID, AllocReceiverTypeEnum.OPEN_ID); + } + + /** + * 校验方法 + */ + @Override + public boolean validation(){ + return receiverService.validation(this.getAllocReceiver()); + } + + /** + * 添加到支付系统中 + */ + @Override + public void bind() { + AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true); + if (!receiverService.validation(this.getAllocReceiver())){ + throw new ValidationFailedException("分账接收者参数未通过校验"); + } + receiverService.bind(this.getAllocReceiver(),aliPayConfig); + } + + /** + * 从三方支付系统中删除 + */ + @Override + public void unbind() { + AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true); + if (!receiverService.validation(this.getAllocReceiver())){ + throw new ValidationFailedException("分账参数未通过校验"); + } + receiverService.unbind(this.getAllocReceiver(),aliPayConfig); + } +} diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvAllocationStrategy.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvAllocationStrategy.java new file mode 100644 index 000000000..859f2aba3 --- /dev/null +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvAllocationStrategy.java @@ -0,0 +1,62 @@ +package org.dromara.daxpay.channel.alipay.strategy.isv; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.daxpay.channel.alipay.entity.AliPayConfig; +import org.dromara.daxpay.channel.alipay.service.allocation.AlipayAllocationService; +import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService; +import org.dromara.daxpay.core.enums.ChannelEnum; +import org.dromara.daxpay.service.bo.allocation.AllocStartResultBo; +import org.dromara.daxpay.service.bo.allocation.AllocSyncResultBo; +import org.dromara.daxpay.service.strategy.AbsAllocationStrategy; +import org.springframework.stereotype.Component; + +/** + * 支付宝分账 + * @author xxm + * @since 2024/12/9 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AlipayIsvAllocationStrategy extends AbsAllocationStrategy { + + private final AlipayAllocationService aliPayAllocationService; + + private final AlipayConfigService aliPayConfigService; + + /** + * 分账通道 + */ + @Override + public String getChannel() { + return ChannelEnum.ALIPAY_ISV.getCode(); + } + + /** + * 开始分账 + */ + @Override + public AllocStartResultBo start() { + AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true); + return aliPayAllocationService.start(getOrder(), getDetails(), aliPayConfig); + } + + /** + * 分账完结 + */ + @Override + public void finish() { + AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true); + aliPayAllocationService.finish(getOrder(), getDetails(), aliPayConfig); + } + + /** + * 同步状态 + */ + @Override + public AllocSyncResultBo doSync() { + AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true); + return aliPayAllocationService.sync(getOrder(), getDetails(), aliPayConfig); + } +} diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvCashierCodeStrategy.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvCashierCodeStrategy.java new file mode 100644 index 000000000..4b5302c60 --- /dev/null +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/isv/AlipayIsvCashierCodeStrategy.java @@ -0,0 +1,27 @@ +package org.dromara.daxpay.channel.alipay.strategy.isv; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.daxpay.core.enums.ChannelEnum; +import org.dromara.daxpay.service.strategy.AbsCashierCodeStrategy; +import org.springframework.stereotype.Component; + +/** + * 支付宝收银码牌支付 + * @author xxm + * @since 2024/9/29 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AlipayIsvCashierCodeStrategy extends AbsCashierCodeStrategy { + + /** + * 策略标识, 可以自行进行扩展 + */ + @Override + public String getChannel() { + return ChannelEnum.ALIPAY_ISV.getCode(); + } +} diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AliPayCashierCodeStrategy.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AliPayCashierCodeStrategy.java new file mode 100644 index 000000000..3425a447b --- /dev/null +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AliPayCashierCodeStrategy.java @@ -0,0 +1,27 @@ +package org.dromara.daxpay.channel.alipay.strategy.merchant; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.daxpay.core.enums.ChannelEnum; +import org.dromara.daxpay.service.strategy.AbsCashierCodeStrategy; +import org.springframework.stereotype.Component; + +/** + * 支付宝收银码牌支付 + * @author xxm + * @since 2024/9/29 + */ +@Slf4j +@Component +@RequiredArgsConstructor +public class AliPayCashierCodeStrategy extends AbsCashierCodeStrategy { + + /** + * 策略标识, 可以自行进行扩展 + */ + @Override + public String getChannel() { + return ChannelEnum.ALIPAY.getCode(); + } +} diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AlipayAllocReceiverStrategy.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AlipayAllocReceiverStrategy.java index 881770779..c310c7aef 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AlipayAllocReceiverStrategy.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AlipayAllocReceiverStrategy.java @@ -4,7 +4,7 @@ import cn.bootx.platform.core.exception.ValidationFailedException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.daxpay.channel.alipay.entity.AliPayConfig; -import org.dromara.daxpay.channel.alipay.service.allocation.AliPayAllocReceiverService; +import org.dromara.daxpay.channel.alipay.service.allocation.AlipayAllocReceiverService; import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService; import org.dromara.daxpay.core.enums.AllocReceiverTypeEnum; import org.dromara.daxpay.core.enums.ChannelEnum; @@ -27,7 +27,7 @@ import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROT @RequiredArgsConstructor public class AlipayAllocReceiverStrategy extends AbsAllocReceiverStrategy { - private final AliPayAllocReceiverService receiverService; + private final AlipayAllocReceiverService receiverService; private final AlipayConfigService aliPayConfigService; diff --git a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AlipayAllocationStrategy.java b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AlipayAllocationStrategy.java index a87f93f00..8b0dbf6d2 100644 --- a/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AlipayAllocationStrategy.java +++ b/daxpay-single-channel/daxpay-single-alipay/src/main/java/org/dromara/daxpay/channel/alipay/strategy/merchant/AlipayAllocationStrategy.java @@ -1,7 +1,7 @@ package org.dromara.daxpay.channel.alipay.strategy.merchant; import org.dromara.daxpay.channel.alipay.entity.AliPayConfig; -import org.dromara.daxpay.channel.alipay.service.allocation.AliPayAllocationService; +import org.dromara.daxpay.channel.alipay.service.allocation.AlipayAllocationService; import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService; import org.dromara.daxpay.core.enums.ChannelEnum; import org.dromara.daxpay.service.bo.allocation.AllocStartResultBo; @@ -21,7 +21,7 @@ import org.springframework.stereotype.Component; @RequiredArgsConstructor public class AlipayAllocationStrategy extends AbsAllocationStrategy { - private final AliPayAllocationService aliPayAllocationService; + private final AlipayAllocationService aliPayAllocationService; private final AlipayConfigService aliPayConfigService;