Commit 86f88ea590888b507f6883e2e1a7a268ec9d12c5

Authored by YunaiV
1 parent 494711a6

reactor:移除 pay 的 api 包

Showing 265 changed files with 1221 additions and 1295 deletions
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 <maven.compiler.source>${java.version}</maven.compiler.source> 38 <maven.compiler.source>${java.version}</maven.compiler.source>
39 <maven.compiler.target>${java.version}</maven.compiler.target> 39 <maven.compiler.target>${java.version}</maven.compiler.target>
40 <maven-surefire-plugin.version>3.2.2</maven-surefire-plugin.version> 40 <maven-surefire-plugin.version>3.2.2</maven-surefire-plugin.version>
41 - <maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version> 41 + <maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
42 <flatten-maven-plugin.version>1.6.0</flatten-maven-plugin.version> 42 <flatten-maven-plugin.version>1.6.0</flatten-maven-plugin.version>
43 <!-- 看看咋放到 bom 里 --> 43 <!-- 看看咋放到 bom 里 -->
44 <lombok.version>1.18.36</lombok.version> 44 <lombok.version>1.18.36</lombok.version>
yudao-module-pay/pom.xml
@@ -9,11 +9,7 @@ @@ -9,11 +9,7 @@
9 </parent> 9 </parent>
10 <modelVersion>4.0.0</modelVersion> 10 <modelVersion>4.0.0</modelVersion>
11 <artifactId>yudao-module-pay</artifactId> 11 <artifactId>yudao-module-pay</artifactId>
12 - <packaging>pom</packaging>  
13 - <modules>  
14 - <module>yudao-module-pay-api</module>  
15 - <module>yudao-module-pay-biz</module>  
16 - </modules> 12 + <packaging>jar</packaging>
17 13
18 <name>${project.artifactId}</name> 14 <name>${project.artifactId}</name>
19 <description> 15 <description>
@@ -21,4 +17,73 @@ @@ -21,4 +17,73 @@
21 例如说:商户、应用、支付、退款等等 17 例如说:商户、应用、支付、退款等等
22 </description> 18 </description>
23 19
  20 +
  21 + <dependencies>
  22 + <dependency>
  23 + <groupId>cn.iocoder.boot</groupId>
  24 + <artifactId>yudao-module-system</artifactId>
  25 + <version>${revision}</version>
  26 + </dependency>
  27 +
  28 + <!-- 业务组件 -->
  29 + <dependency>
  30 + <groupId>cn.iocoder.boot</groupId>
  31 + <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>
  32 + </dependency>
  33 +
  34 + <!-- Web 相关 -->
  35 + <dependency>
  36 + <groupId>cn.iocoder.boot</groupId>
  37 + <artifactId>yudao-spring-boot-starter-security</artifactId>
  38 + </dependency>
  39 +
  40 + <!-- DB 相关 -->
  41 + <dependency>
  42 + <groupId>cn.iocoder.boot</groupId>
  43 + <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
  44 + </dependency>
  45 +
  46 + <dependency>
  47 + <groupId>cn.iocoder.boot</groupId>
  48 + <artifactId>yudao-spring-boot-starter-redis</artifactId>
  49 + </dependency>
  50 +
  51 + <!-- Job 定时任务相关 -->
  52 + <dependency>
  53 + <groupId>cn.iocoder.boot</groupId>
  54 + <artifactId>yudao-spring-boot-starter-job</artifactId>
  55 + </dependency>
  56 +
  57 + <!-- Test 测试相关 -->
  58 + <dependency>
  59 + <groupId>cn.iocoder.boot</groupId>
  60 + <artifactId>yudao-spring-boot-starter-test</artifactId>
  61 + <scope>test</scope>
  62 + </dependency>
  63 +
  64 + <!-- 工具类相关 -->
  65 + <dependency>
  66 + <groupId>cn.iocoder.boot</groupId>
  67 + <artifactId>yudao-spring-boot-starter-excel</artifactId>
  68 + </dependency>
  69 +
  70 + <!-- 三方云服务相关 -->
  71 + <dependency>
  72 + <groupId>com.alipay.sdk</groupId>
  73 + <artifactId>alipay-sdk-java</artifactId>
  74 + <version>4.35.79.ALL</version>
  75 + <exclusions>
  76 + <exclusion>
  77 + <groupId>org.bouncycastle</groupId>
  78 + <artifactId>bcprov-jdk15on</artifactId>
  79 + </exclusion>
  80 + </exclusions>
  81 + </dependency>
  82 + <dependency>
  83 + <groupId>com.github.binarywang</groupId>
  84 + <artifactId>weixin-java-pay</artifactId>
  85 + </dependency>
  86 +
  87 + </dependencies>
  88 +
24 </project> 89 </project>
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/notify/dto/PayOrderNotifyReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/notify/dto/PayOrderNotifyReqDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/notify/dto/PayRefundNotifyReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/notify/dto/PayRefundNotifyReqDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/notify/dto/PayTransferNotifyReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/notify/dto/PayTransferNotifyReqDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/notify/package-info.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/notify/package-info.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApi.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApi.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApiImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/order/PayOrderApiImpl.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/dto/PayOrderCreateReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/order/dto/PayOrderCreateReqDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/order/dto/PayOrderRespDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/order/dto/PayOrderRespDTO.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/package-info.java 0 → 100644
  1 +/**
  2 + * pay API 包,定义并实现提供给其它模块的 API
  3 + */
  4 +package cn.iocoder.yudao.module.pay.api;
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApi.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApi.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApiImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/refund/PayRefundApiImpl.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundCreateReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundCreateReqDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundRespDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/refund/dto/PayRefundRespDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApi.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApi.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferCreateReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferCreateReqDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferCreateRespDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferCreateRespDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferRespDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferRespDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/PayWalletApi.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/PayWalletApi.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/PayWalletApiImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/PayWalletApiImpl.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletAddBalanceReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletAddBalanceReqDTO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletRespDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletRespDTO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/PayAppController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/PayAppController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppBaseVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppBaseVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppCreateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppCreateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppPageItemRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppPageItemRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppPageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppPageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppUpdateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppUpdateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppUpdateStatusReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppUpdateStatusReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/PayChannelController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/PayChannelController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/vo/PayChannelBaseVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/vo/PayChannelBaseVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/vo/PayChannelCreateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/vo/PayChannelCreateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/vo/PayChannelRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/vo/PayChannelRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/vo/PayChannelUpdateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/channel/vo/PayChannelUpdateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/PayDemoOrderController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/PayDemoOrderController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/PayDemoWithdrawController.http renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/PayDemoWithdrawController.http
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/PayDemoWithdrawController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/PayDemoWithdrawController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/order/PayDemoOrderCreateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/order/PayDemoOrderCreateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/order/PayDemoOrderRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/order/PayDemoOrderRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/withdraw/PayDemoWithdrawCreateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/withdraw/PayDemoWithdrawCreateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/withdraw/PayDemoWithdrawRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/demo/vo/withdraw/PayDemoWithdrawRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/vo/PayNotifyTaskDetailRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/vo/PayNotifyTaskDetailRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/vo/PayNotifyTaskPageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/vo/PayNotifyTaskPageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/vo/PayNotifyTaskRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/vo/PayNotifyTaskRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/PayOrderController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/PayOrderController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExcelVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExcelVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/PayRefundController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/PayRefundController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/PayTransferController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/PayTransferController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferCreateRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferCreateRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferPageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferPageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/transfer/vo/PayTransferRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletRechargeController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletRechargeController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletRechargePackageController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletRechargePackageController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletTransactionController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/PayWalletTransactionController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackageBaseVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackageBaseVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackageCreateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackageCreateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackagePageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackagePageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackageRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackageRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackageUpdateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/rechargepackage/WalletRechargePackageUpdateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/transaction/PayWalletTransactionPageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/transaction/PayWalletTransactionPageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/transaction/PayWalletTransactionRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/transaction/PayWalletTransactionRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletBaseVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletBaseVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletPageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletPageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletUpdateBalanceReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletUpdateBalanceReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletUserReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/wallet/vo/wallet/PayWalletUserReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/channel/AppPayChannelController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/channel/AppPayChannelController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/AppPayOrderController.http renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/AppPayOrderController.http
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/AppPayOrderController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/AppPayOrderController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/vo/AppPayOrderSubmitReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/vo/AppPayOrderSubmitReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/vo/AppPayOrderSubmitRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/vo/AppPayOrderSubmitRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/transfer/AppPayTransferController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/transfer/AppPayTransferController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/AppPayWalletController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/AppPayWalletController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/AppPayWalletRechargeController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/AppPayWalletRechargeController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/AppPayWalletRechargePackageController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/AppPayWalletRechargePackageController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/AppPayWalletTransactionController.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/AppPayWalletTransactionController.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/recharge/AppPayWalletPackageRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/recharge/AppPayWalletPackageRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/recharge/AppPayWalletRechargeCreateReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/recharge/AppPayWalletRechargeCreateReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/recharge/AppPayWalletRechargeCreateRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/recharge/AppPayWalletRechargeCreateRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/recharge/AppPayWalletRechargeRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/recharge/AppPayWalletRechargeRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/transaction/AppPayWalletTransactionPageReqVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/transaction/AppPayWalletTransactionPageReqVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/transaction/AppPayWalletTransactionRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/transaction/AppPayWalletTransactionRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/transaction/AppPayWalletTransactionSummaryRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/transaction/AppPayWalletTransactionSummaryRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/wallet/AppPayWalletRespVO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/app/wallet/vo/wallet/AppPayWalletRespVO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/package-info.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/controller/package-info.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/app/PayAppConvert.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/app/PayAppConvert.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/channel/PayChannelConvert.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/channel/PayChannelConvert.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/order/PayOrderConvert.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/order/PayOrderConvert.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/package-info.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/package-info.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/refund/PayRefundConvert.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/refund/PayRefundConvert.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletConvert.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletConvert.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletRechargeConvert.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletRechargeConvert.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletRechargePackageConvert.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletRechargePackageConvert.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletTransactionConvert.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletTransactionConvert.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/app/PayAppDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/app/PayAppDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/channel/PayChannelDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/channel/PayChannelDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoOrderDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoOrderDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoWithdrawDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoWithdrawDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyLogDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyLogDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletRechargeDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletRechargeDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletRechargePackageDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletRechargePackageDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletTransactionDO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletTransactionDO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/app/PayAppMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/channel/PayChannelMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoOrderMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoWithdrawMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/demo/PayDemoWithdrawMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyLogMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/notify/PayNotifyTaskMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderExtensionMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderExtensionMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/order/PayOrderMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/refund/PayRefundMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/transfer/PayTransferMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargeMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargeMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletRechargePackageMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletTransactionMapper.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/mysql/wallet/PayWalletTransactionMapper.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/redis/RedisKeyConstants.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/redis/RedisKeyConstants.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/redis/no/PayNoRedisDAO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/redis/no/PayNoRedisDAO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/redis/notify/PayNotifyLockRedisDAO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/redis/notify/PayNotifyLockRedisDAO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/redis/wallet/PayWalletLockRedisDAO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/redis/wallet/PayWalletLockRedisDAO.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/DictTypeConstants.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/DictTypeConstants.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/ErrorCodeConstants.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/ErrorCodeConstants.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/MessageTemplateConstants.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/MessageTemplateConstants.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/PayChannelEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/PayChannelEnum.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/demo/PayDemoWithdrawStatusEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/demo/PayDemoWithdrawStatusEnum.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/demo/PayDemoWithdrawTypeEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/demo/PayDemoWithdrawTypeEnum.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/notify/PayNotifyStatusEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/notify/PayNotifyStatusEnum.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/notify/PayNotifyTypeEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/notify/PayNotifyTypeEnum.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/order/PayOrderStatusEnum.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/refund/PayRefundStatusEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/refund/PayRefundStatusEnum.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/transfer/PayTransferStatusEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/transfer/PayTransferStatusEnum.java
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/wallet/PayWalletBizTypeEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/enums/wallet/PayWalletBizTypeEnum.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/job/config/PayJobConfiguration.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/job/config/PayJobConfiguration.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/job/core/package-info.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/job/core/package-info.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/package-info.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/package-info.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/config/PayConfiguration.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/config/PayConfiguration.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/config/PayProperties.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/config/PayProperties.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientConfig.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientConfig.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientFactory.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/PayClientFactory.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderRespDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderRespDTO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundRespDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundRespDTO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferUnifiedReqDTO.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/dto/transfer/PayTransferUnifiedReqDTO.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/exception/PayClientException.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/exception/PayClientException.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/AbstractPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/AbstractPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/NonePayClientConfig.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/NonePayClientConfig.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/PayClientFactoryImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/PayClientFactoryImpl.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AbstractAlipayPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AbstractAlipayPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayAppPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayAppPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayBarPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayBarPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayPayClientConfig.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayPayClientConfig.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayPcPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayPcPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayQrPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayQrPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayWapPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayWapPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/mock/MockPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/mock/MockPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/wallet/WalletPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/wallet/WalletPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxAppPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxAppPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxBarPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxBarPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxLitePayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxLitePayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxNativePayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxNativePayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxPayClientConfig.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxPayClientConfig.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxPubPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxPubPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxWapPayClient.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxWapPayClient.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/enums/PayOrderDisplayModeEnum.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/core/enums/PayOrderDisplayModeEnum.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/package-info.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/pay/package-info.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/web/config/PayWebConfiguration.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/web/config/PayWebConfiguration.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/framework/web/package-info.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/framework/web/package-info.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/notify/PayNotifyJob.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/job/notify/PayNotifyJob.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/order/PayOrderExpireJob.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/job/order/PayOrderExpireJob.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/order/PayOrderSyncJob.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/job/order/PayOrderSyncJob.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/refund/PayRefundSyncJob.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/job/refund/PayRefundSyncJob.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/job/transfer/PayTransferSyncJob.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/job/transfer/PayTransferSyncJob.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/package-info.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/package-info.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/app/PayAppService.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/app/PayAppService.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/app/PayAppServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/app/PayAppServiceImpl.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelService.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelService.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelServiceImpl.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoOrderService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.demo;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.order.PayDemoOrderCreateReqVO;
  6 +import cn.iocoder.yudao.module.pay.dal.dataobject.demo.PayDemoOrderDO;
  7 +
  8 +import jakarta.validation.Valid;
  9 +
  10 +/**
  11 + * 示例订单 Service 接口
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +public interface PayDemoOrderService {
  16 +
  17 + /**
  18 + * 创建示例订单
  19 + *
  20 + * @param userId 用户编号
  21 + * @param createReqVO 创建信息
  22 + * @return 编号
  23 + */
  24 + Long createDemoOrder(Long userId, @Valid PayDemoOrderCreateReqVO createReqVO);
  25 +
  26 + /**
  27 + * 获得示例订单
  28 + *
  29 + * @param id 编号
  30 + * @return 示例订单
  31 + */
  32 + PayDemoOrderDO getDemoOrder(Long id);
  33 +
  34 + /**
  35 + * 获得示例订单分页
  36 + *
  37 + * @param pageReqVO 分页查询
  38 + * @return 示例订单分页
  39 + */
  40 + PageResult<PayDemoOrderDO> getDemoOrderPage(PageParam pageReqVO);
  41 +
  42 + /**
  43 + * 更新示例订单为已支付
  44 + *
  45 + * @param id 编号
  46 + * @param payOrderId 支付订单号
  47 + */
  48 + void updateDemoOrderPaid(Long id, Long payOrderId);
  49 +
  50 + /**
  51 + * 发起示例订单的退款
  52 + *
  53 + * @param id 编号
  54 + * @param userIp 用户编号
  55 + */
  56 + void refundDemoOrder(Long id, String userIp);
  57 +
  58 + /**
  59 + * 更新示例订单为已退款
  60 + *
  61 + * @param id 编号
  62 + * @param refundId 退款编号
  63 + * @param payRefundId 退款订单号
  64 + */
  65 + void updateDemoOrderRefunded(Long id, String refundId, Long payRefundId);
  66 +
  67 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoOrderServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoOrderServiceImpl.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoWithdrawService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.demo;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.withdraw.PayDemoWithdrawCreateReqVO;
  6 +import cn.iocoder.yudao.module.pay.dal.dataobject.demo.PayDemoWithdrawDO;
  7 +
  8 +import jakarta.validation.Valid;
  9 +
  10 +/**
  11 + * 示例提现单 Service 接口
  12 + *
  13 + * @author jason
  14 + */
  15 +public interface PayDemoWithdrawService {
  16 +
  17 + /**
  18 + * 创建示例提现单
  19 + *
  20 + * @param createReqVO 创建信息
  21 + * @return 编号
  22 + */
  23 + Long createDemoWithdraw(@Valid PayDemoWithdrawCreateReqVO createReqVO);
  24 +
  25 + /**
  26 + * 提现单转账
  27 + *
  28 + * @param id 提现单编号
  29 + * @return 转账编号
  30 + */
  31 + Long transferDemoWithdraw(Long id);
  32 +
  33 + /**
  34 + * 获得示例提现单分页
  35 + *
  36 + * @param pageVO 分页查询参数
  37 + */
  38 + PageResult<PayDemoWithdrawDO> getDemoWithdrawPage(PageParam pageVO);
  39 +
  40 + /**
  41 + * 更新示例提现单的状态
  42 + *
  43 + * @param id 编号
  44 + * @param payTransferId 转账单编号
  45 + */
  46 + void updateDemoWithdrawTransferred(Long id, Long payTransferId);
  47 +
  48 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoWithdrawServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoWithdrawServiceImpl.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.notify;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskPageReqVO;
  5 +import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyLogDO;
  6 +import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyTaskDO;
  7 +
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * 回调通知 Service 接口
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +public interface PayNotifyService {
  16 +
  17 + /**
  18 + * 创建回调通知任务
  19 + *
  20 + * @param type 类型
  21 + * @param dataId 数据编号
  22 + */
  23 + void createPayNotifyTask(Integer type, Long dataId);
  24 +
  25 + /**
  26 + * 执行回调通知
  27 + *
  28 + * 注意,该方法提供给定时任务调用。目前是 yudao-server 进行调用
  29 + * @return 通知数量
  30 + */
  31 + int executeNotify() throws InterruptedException;
  32 +
  33 + /**
  34 + * 获得回调通知
  35 + *
  36 + * @param id 编号
  37 + * @return 回调通知
  38 + */
  39 + PayNotifyTaskDO getNotifyTask(Long id);
  40 +
  41 + /**
  42 + * 获得回调通知分页
  43 + *
  44 + * @param pageReqVO 分页查询
  45 + * @return 回调通知分页
  46 + */
  47 + PageResult<PayNotifyTaskDO> getNotifyTaskPage(PayNotifyTaskPageReqVO pageReqVO);
  48 +
  49 + /**
  50 + * 获得回调日志列表
  51 + *
  52 + * @param taskId 任务编号
  53 + * @return 日志列表
  54 + */
  55 + List<PayNotifyLogDO> getNotifyLogList(Long taskId);
  56 +
  57 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceImpl.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderService.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderService.java
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundService.java 0 → 100755
  1 +package cn.iocoder.yudao.module.pay.service.refund;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundRespDTO;
  5 +import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO;
  6 +import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundExportReqVO;
  7 +import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundPageReqVO;
  8 +import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
  9 +
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * 退款订单 Service 接口
  14 + *
  15 + * @author aquan
  16 + */
  17 +public interface PayRefundService {
  18 +
  19 + /**
  20 + * 获得退款订单
  21 + *
  22 + * @param id 编号
  23 + * @return 退款订单
  24 + */
  25 + PayRefundDO getRefund(Long id);
  26 +
  27 + /**
  28 + * 获得退款订单
  29 + *
  30 + * @param no 外部退款单号
  31 + * @return 退款订单
  32 + */
  33 + PayRefundDO getRefundByNo(String no);
  34 +
  35 + /**
  36 + * 获得指定应用的退款数量
  37 + *
  38 + * @param appId 应用编号
  39 + * @return 退款数量
  40 + */
  41 + Long getRefundCountByAppId(Long appId);
  42 +
  43 + /**
  44 + * 获得退款订单分页
  45 + *
  46 + * @param pageReqVO 分页查询
  47 + * @return 退款订单分页
  48 + */
  49 + PageResult<PayRefundDO> getRefundPage(PayRefundPageReqVO pageReqVO);
  50 +
  51 + /**
  52 + * 获得退款订单列表, 用于 Excel 导出
  53 + *
  54 + * @param exportReqVO 查询条件
  55 + * @return 退款订单列表
  56 + */
  57 + List<PayRefundDO> getRefundList(PayRefundExportReqVO exportReqVO);
  58 +
  59 + /**
  60 + * 创建退款申请
  61 + *
  62 + * @param reqDTO 退款申请信息
  63 + * @return 退款单号
  64 + */
  65 + Long createRefund(PayRefundCreateReqDTO reqDTO);
  66 +
  67 + /**
  68 + * 渠道的退款通知
  69 + *
  70 + * @param channelId 渠道编号
  71 + * @param notify 通知
  72 + */
  73 + void notifyRefund(Long channelId, PayRefundRespDTO notify);
  74 +
  75 + /**
  76 + * 同步渠道退款的退款状态
  77 + *
  78 + * @return 同步到状态的退款数量,包括退款成功、退款失败
  79 + */
  80 + int syncRefund();
  81 +
  82 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceImpl.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.transfer;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
  5 +import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
  6 +import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
  7 +import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
  8 +import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
  9 +import jakarta.validation.Valid;
  10 +
  11 +/**
  12 + * 转账 Service 接口
  13 + *
  14 + * @author jason
  15 + */
  16 +public interface PayTransferService {
  17 +
  18 + /**
  19 + * 创建转账单,并发起转账
  20 + *
  21 + * @param reqDTO 创建请求
  22 + * @return 转账单编号
  23 + */
  24 + PayTransferCreateRespDTO createTransfer(@Valid PayTransferCreateReqDTO reqDTO);
  25 +
  26 + /**
  27 + * 获取转账单
  28 + * @param id 转账单编号
  29 + */
  30 + PayTransferDO getTransfer(Long id);
  31 +
  32 + /**
  33 + * 根据转账单号获取转账单
  34 + *
  35 + * @param no 转账单号
  36 + * @return 转账单
  37 + */
  38 + PayTransferDO getTransferByNo(String no);
  39 +
  40 + /**
  41 + * 获得转账单分页
  42 + *
  43 + * @param pageReqVO 分页查询
  44 + * @return 转账单分页
  45 + */
  46 + PageResult<PayTransferDO> getTransferPage(PayTransferPageReqVO pageReqVO);
  47 +
  48 + /**
  49 + * 同步渠道转账单状态
  50 + *
  51 + * @return 同步到状态的转账数量,包括转账成功、转账失败、转账中的
  52 + */
  53 + int syncTransfer();
  54 +
  55 + /**
  56 + * 【单个】同步渠道转账单状态
  57 + *
  58 + * @param id 转账单编号
  59 + */
  60 + void syncTransfer(Long id);
  61 +
  62 + /**
  63 + * 渠道的转账通知
  64 + *
  65 + * @param channelId 渠道编号
  66 + * @param notify 通知
  67 + */
  68 + void notifyTransfer(Long channelId, PayTransferRespDTO notify);
  69 +
  70 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferServiceImpl.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargePackageService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.wallet;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackageCreateReqVO;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackagePageReqVO;
  6 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackageUpdateReqVO;
  7 +import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletRechargePackageDO;
  8 +
  9 +import jakarta.validation.Valid;
  10 +import java.util.Collection;
  11 +import java.util.List;
  12 +
  13 +/**
  14 + * 钱包充值套餐 Service 接口
  15 + *
  16 + * @author jason
  17 + */
  18 +public interface PayWalletRechargePackageService {
  19 +
  20 + /**
  21 + * 获取钱包充值套餐
  22 + * @param packageId 充值套餐编号
  23 + */
  24 + PayWalletRechargePackageDO getWalletRechargePackage(Long packageId);
  25 +
  26 + /**
  27 + * 校验钱包充值套餐的有效性, 无效的话抛出 ServiceException 异常
  28 + *
  29 + * @param packageId 充值套餐编号
  30 + */
  31 + PayWalletRechargePackageDO validWalletRechargePackage(Long packageId);
  32 +
  33 + /**
  34 + * 创建充值套餐
  35 + *
  36 + * @param createReqVO 创建信息
  37 + * @return 编号
  38 + */
  39 + Long createWalletRechargePackage(@Valid WalletRechargePackageCreateReqVO createReqVO);
  40 +
  41 + /**
  42 + * 更新充值套餐
  43 + *
  44 + * @param updateReqVO 更新信息
  45 + */
  46 + void updateWalletRechargePackage(@Valid WalletRechargePackageUpdateReqVO updateReqVO);
  47 +
  48 + /**
  49 + * 删除充值套餐
  50 + *
  51 + * @param id 编号
  52 + */
  53 + void deleteWalletRechargePackage(Long id);
  54 +
  55 + /**
  56 + * 获得充值套餐分页
  57 + *
  58 + * @param pageReqVO 分页查询
  59 + * @return 充值套餐分页
  60 + */
  61 + PageResult<PayWalletRechargePackageDO> getWalletRechargePackagePage(WalletRechargePackagePageReqVO pageReqVO);
  62 +
  63 + /**
  64 + * 获得充值套餐列表
  65 + *
  66 + * @param status 状态
  67 + * @return 充值套餐列表
  68 + */
  69 + List<PayWalletRechargePackageDO> getWalletRechargePackageList(Integer status);
  70 +
  71 +}
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargePackageServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.wallet;
  2 +
  3 +import cn.hutool.core.util.StrUtil;
  4 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackageCreateReqVO;
  7 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackagePageReqVO;
  8 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackageUpdateReqVO;
  9 +import cn.iocoder.yudao.module.pay.convert.wallet.PayWalletRechargePackageConvert;
  10 +import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletRechargePackageDO;
  11 +import cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletRechargePackageMapper;
  12 +import org.springframework.stereotype.Service;
  13 +
  14 +import jakarta.annotation.Resource;
  15 +
  16 +import java.util.List;
  17 +
  18 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  19 +import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.*;
  20 +
  21 +/**
  22 + * 钱包充值套餐 Service 实现类
  23 + *
  24 + * @author jason
  25 + */
  26 +@Service
  27 +public class PayWalletRechargePackageServiceImpl implements PayWalletRechargePackageService {
  28 +
  29 + @Resource
  30 + private PayWalletRechargePackageMapper walletRechargePackageMapper;
  31 +
  32 + @Override
  33 + public PayWalletRechargePackageDO getWalletRechargePackage(Long packageId) {
  34 + return walletRechargePackageMapper.selectById(packageId);
  35 + }
  36 +
  37 + @Override
  38 + public PayWalletRechargePackageDO validWalletRechargePackage(Long packageId) {
  39 + PayWalletRechargePackageDO rechargePackageDO = walletRechargePackageMapper.selectById(packageId);
  40 + if (rechargePackageDO == null) {
  41 + throw exception(WALLET_RECHARGE_PACKAGE_NOT_FOUND);
  42 + }
  43 + if (CommonStatusEnum.DISABLE.getStatus().equals(rechargePackageDO.getStatus())) {
  44 + throw exception(WALLET_RECHARGE_PACKAGE_IS_DISABLE);
  45 + }
  46 + return rechargePackageDO;
  47 + }
  48 +
  49 + @Override
  50 + public Long createWalletRechargePackage(WalletRechargePackageCreateReqVO createReqVO) {
  51 + // 校验套餐名是否唯一
  52 + validateRechargePackageNameUnique(null, createReqVO.getName());
  53 +
  54 + // 插入
  55 + PayWalletRechargePackageDO walletRechargePackage = PayWalletRechargePackageConvert.INSTANCE.convert(createReqVO);
  56 + walletRechargePackageMapper.insert(walletRechargePackage);
  57 + // 返回
  58 + return walletRechargePackage.getId();
  59 + }
  60 +
  61 + @Override
  62 + public void updateWalletRechargePackage(WalletRechargePackageUpdateReqVO updateReqVO) {
  63 + // 校验存在
  64 + validateWalletRechargePackageExists(updateReqVO.getId());
  65 + // 校验套餐名是否唯一
  66 + validateRechargePackageNameUnique(updateReqVO.getId(), updateReqVO.getName());
  67 +
  68 + // 更新
  69 + PayWalletRechargePackageDO updateObj = PayWalletRechargePackageConvert.INSTANCE.convert(updateReqVO);
  70 + walletRechargePackageMapper.updateById(updateObj);
  71 + }
  72 +
  73 + private void validateRechargePackageNameUnique(Long id, String name) {
  74 + if (StrUtil.isBlank(name)) {
  75 + return;
  76 + }
  77 + PayWalletRechargePackageDO rechargePackage = walletRechargePackageMapper.selectByName(name);
  78 + if (rechargePackage == null) {
  79 + return ;
  80 + }
  81 + if (id == null) {
  82 + throw exception(WALLET_RECHARGE_PACKAGE_NAME_EXISTS);
  83 + }
  84 + if (!id.equals(rechargePackage.getId())) {
  85 + throw exception(WALLET_RECHARGE_PACKAGE_NAME_EXISTS);
  86 + }
  87 + }
  88 +
  89 + @Override
  90 + public void deleteWalletRechargePackage(Long id) {
  91 + // 校验存在
  92 + validateWalletRechargePackageExists(id);
  93 + // 删除
  94 + walletRechargePackageMapper.deleteById(id);
  95 + }
  96 +
  97 + private void validateWalletRechargePackageExists(Long id) {
  98 + if (walletRechargePackageMapper.selectById(id) == null) {
  99 + throw exception(WALLET_RECHARGE_PACKAGE_NOT_FOUND);
  100 + }
  101 + }
  102 +
  103 + @Override
  104 + public PageResult<PayWalletRechargePackageDO> getWalletRechargePackagePage(WalletRechargePackagePageReqVO pageReqVO) {
  105 + return walletRechargePackageMapper.selectPage(pageReqVO);
  106 + }
  107 +
  108 + @Override
  109 + public List<PayWalletRechargePackageDO> getWalletRechargePackageList(Integer status) {
  110 + return walletRechargePackageMapper.selectListByStatus(status);
  111 + }
  112 +
  113 +}
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.wallet;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.recharge.AppPayWalletRechargeCreateReqVO;
  6 +import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletRechargeDO;
  7 +
  8 +/**
  9 + * 钱包充值 Service 接口
  10 + *
  11 + * @author jason
  12 + */
  13 +public interface PayWalletRechargeService {
  14 +
  15 + /**
  16 + * 创建钱包充值记录(发起充值)
  17 + *
  18 + * @param userId 用户编号
  19 + * @param userType 用户类型
  20 + * @param createReqVO 钱包充值请求 VO
  21 + * @param userIp 用户Ip
  22 + * @return 钱包充值记录
  23 + */
  24 + PayWalletRechargeDO createWalletRecharge(Long userId, Integer userType, String userIp,
  25 + AppPayWalletRechargeCreateReqVO createReqVO);
  26 +
  27 + /**
  28 + * 获得钱包充值记录分页
  29 + *
  30 + * @param userId 用户编号
  31 + * @param userType 用户类型
  32 + * @param pageReqVO 分页请求
  33 + * @param payStatus 是否支付
  34 + * @return 钱包充值记录分页
  35 + */
  36 + PageResult<PayWalletRechargeDO> getWalletRechargePackagePage(Long userId, Integer userType,
  37 + PageParam pageReqVO, Boolean payStatus);
  38 +
  39 + /**
  40 + * 更新钱包充值成功
  41 + *
  42 + * @param id 钱包充值记录编号
  43 + * @param payOrderId 支付订单编号
  44 + */
  45 + void updateWalletRechargerPaid(Long id, Long payOrderId);
  46 +
  47 + /**
  48 + * 发起钱包充值退款
  49 + *
  50 + * @param id 钱包充值编号
  51 + * @param userIp 用户 ip 地址
  52 + */
  53 + void refundWalletRecharge(Long id, String userIp);
  54 +
  55 + /**
  56 + * 更新钱包充值记录为已退款
  57 + *
  58 + * @param id 钱包充值记录编号
  59 + * @param refundId 钱包充值退款编号(实际和 id 相同)
  60 + * @param payRefundId 退款单id
  61 + */
  62 + void updateWalletRechargeRefunded(Long id, Long refundId, Long payRefundId);
  63 +
  64 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeServiceImpl.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.wallet;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.wallet.PayWalletPageReqVO;
  5 +import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
  6 +import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO;
  7 +import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
  8 +
  9 +/**
  10 + * 钱包 Service 接口
  11 + *
  12 + * @author jason
  13 + */
  14 +public interface PayWalletService {
  15 +
  16 + /**
  17 + * 获取钱包信息
  18 + * <p>
  19 + * 如果不存在,则创建钱包。由于用户注册时候不会创建钱包
  20 + *
  21 + * @param userId 用户编号
  22 + * @param userType 用户类型
  23 + */
  24 + PayWalletDO getOrCreateWallet(Long userId, Integer userType);
  25 +
  26 + /**
  27 + * 获取钱包信息
  28 + *
  29 + * @param walletId 钱包 id
  30 + */
  31 + PayWalletDO getWallet(Long walletId);
  32 +
  33 + /**
  34 + * 获得会员钱包分页
  35 + *
  36 + * @param pageReqVO 分页查询
  37 + * @return 会员钱包分页
  38 + */
  39 + PageResult<PayWalletDO> getWalletPage(PayWalletPageReqVO pageReqVO);
  40 +
  41 + /**
  42 + * 钱包订单支付
  43 + *
  44 + * @param walletId 钱包编号
  45 + * @param outTradeNo 外部订单号
  46 + * @param price 金额
  47 + */
  48 + PayWalletTransactionDO orderPay(Long walletId, String outTradeNo, Integer price);
  49 +
  50 + /**
  51 + * 钱包订单支付退款
  52 + *
  53 + * @param outRefundNo 外部退款号
  54 + * @param refundPrice 退款金额
  55 + * @param reason 退款原因
  56 + */
  57 + PayWalletTransactionDO orderRefund(String outRefundNo, Integer refundPrice, String reason);
  58 +
  59 + /**
  60 + * 扣减钱包余额
  61 + *
  62 + * @param walletId 钱包编号
  63 + * @param bizId 业务关联编号
  64 + * @param bizType 业务关联分类
  65 + * @param price 扣减金额
  66 + * @return 钱包流水
  67 + */
  68 + PayWalletTransactionDO reduceWalletBalance(Long walletId, Long bizId,
  69 + PayWalletBizTypeEnum bizType, Integer price);
  70 +
  71 + /**
  72 + * 增加钱包余额
  73 + *
  74 + * @param walletId 钱包编号
  75 + * @param bizId 业务关联编号
  76 + * @param bizType 业务关联分类
  77 + * @param price 增加金额
  78 + * @return 钱包流水
  79 + */
  80 + PayWalletTransactionDO addWalletBalance(Long walletId, String bizId,
  81 + PayWalletBizTypeEnum bizType, Integer price);
  82 +
  83 + /**
  84 + * 冻结钱包部分余额
  85 + *
  86 + * @param id 钱包编号
  87 + * @param price 冻结金额
  88 + */
  89 + void freezePrice(Long id, Integer price);
  90 +
  91 + /**
  92 + * 解冻钱包余额
  93 + *
  94 + * @param id 钱包编号
  95 + * @param price 解冻金额
  96 + */
  97 + void unfreezePrice(Long id, Integer price);
  98 +
  99 +}
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java renamed to yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletTransactionService.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.wallet;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.transaction.PayWalletTransactionPageReqVO;
  5 +import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO;
  6 +import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionSummaryRespVO;
  7 +import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO;
  8 +import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
  9 +import cn.iocoder.yudao.module.pay.service.wallet.bo.WalletTransactionCreateReqBO;
  10 +
  11 +import jakarta.validation.Valid;
  12 +
  13 +import java.time.LocalDateTime;
  14 +
  15 +/**
  16 + * 钱包余额流水 Service 接口
  17 + *
  18 + * @author jason
  19 + */
  20 +public interface PayWalletTransactionService {
  21 +
  22 + /**
  23 + * 查询钱包余额流水分页
  24 + *
  25 + * @param userId 用户编号
  26 + * @param userType 用户类型
  27 + * @param pageVO 分页查询参数
  28 + */
  29 + PageResult<PayWalletTransactionDO> getWalletTransactionPage(Long userId, Integer userType,
  30 + AppPayWalletTransactionPageReqVO pageVO);
  31 +
  32 + /**
  33 + * 查询钱包余额流水分页
  34 + *
  35 + * @param pageVO 分页查询参数
  36 + */
  37 + PageResult<PayWalletTransactionDO> getWalletTransactionPage(PayWalletTransactionPageReqVO pageVO);
  38 +
  39 + /**
  40 + * 新增钱包余额流水
  41 + *
  42 + * @param bo 创建钱包流水 bo
  43 + * @return 新建的钱包 do
  44 + */
  45 + PayWalletTransactionDO createWalletTransaction(@Valid WalletTransactionCreateReqBO bo);
  46 +
  47 + /**
  48 + * 根据 no,获取钱包余流水
  49 + *
  50 + * @param no 流水号
  51 + */
  52 + PayWalletTransactionDO getWalletTransactionByNo(String no);
  53 +
  54 + /**
  55 + * 获取钱包流水
  56 + *
  57 + * @param bizId 业务编号
  58 + * @param type 业务类型
  59 + * @return 钱包流水
  60 + */
  61 + PayWalletTransactionDO getWalletTransaction(String bizId, PayWalletBizTypeEnum type);
  62 +
  63 + /**
  64 + * 获得钱包流水统计
  65 + *
  66 + * @param userId 用户编号
  67 + * @param userType 用户类型
  68 + * @param createTime 时间段
  69 + * @return 钱包流水统计
  70 + */
  71 + AppPayWalletTransactionSummaryRespVO getWalletTransactionSummary(Long userId, Integer userType,
  72 + LocalDateTime[] createTime);
  73 +
  74 +}
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletTransactionServiceImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.wallet;
  2 +
  3 +import cn.hutool.core.util.ObjectUtil;
  4 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.transaction.PayWalletTransactionPageReqVO;
  6 +import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO;
  7 +import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionSummaryRespVO;
  8 +import cn.iocoder.yudao.module.pay.convert.wallet.PayWalletTransactionConvert;
  9 +import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
  10 +import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO;
  11 +import cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletTransactionMapper;
  12 +import cn.iocoder.yudao.module.pay.dal.redis.no.PayNoRedisDAO;
  13 +import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
  14 +import cn.iocoder.yudao.module.pay.service.wallet.bo.WalletTransactionCreateReqBO;
  15 +import jakarta.annotation.Resource;
  16 +import lombok.extern.slf4j.Slf4j;
  17 +import org.springframework.stereotype.Service;
  18 +import org.springframework.validation.annotation.Validated;
  19 +
  20 +import java.time.LocalDateTime;
  21 +
  22 +import static cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO.TYPE_EXPENSE;
  23 +import static cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO.TYPE_INCOME;
  24 +
  25 +/**
  26 + * 钱包流水 Service 实现类
  27 + *
  28 + * @author jason
  29 + */
  30 +@Service
  31 +@Slf4j
  32 +@Validated
  33 +public class PayWalletTransactionServiceImpl implements PayWalletTransactionService {
  34 +
  35 + /**
  36 + * 钱包流水的 no 前缀
  37 + */
  38 + private static final String WALLET_NO_PREFIX = "W";
  39 +
  40 + @Resource
  41 + private PayWalletService payWalletService;
  42 + @Resource
  43 + private PayWalletTransactionMapper payWalletTransactionMapper;
  44 + @Resource
  45 + private PayNoRedisDAO noRedisDAO;
  46 +
  47 + @Override
  48 + public PageResult<PayWalletTransactionDO> getWalletTransactionPage(Long userId, Integer userType,
  49 + AppPayWalletTransactionPageReqVO pageVO) {
  50 + PayWalletDO wallet = payWalletService.getOrCreateWallet(userId, userType);
  51 + return payWalletTransactionMapper.selectPage(wallet.getId(), pageVO.getType(), pageVO, pageVO.getCreateTime());
  52 + }
  53 +
  54 + @Override
  55 + public PageResult<PayWalletTransactionDO> getWalletTransactionPage(PayWalletTransactionPageReqVO pageVO) {
  56 + // 基于 userId + userType 查询钱包
  57 + if (pageVO.getWalletId() == null
  58 + && ObjectUtil.isAllNotEmpty(pageVO.getUserId(), pageVO.getUserType())) {
  59 + PayWalletDO wallet = payWalletService.getOrCreateWallet(pageVO.getUserId(), pageVO.getUserType());
  60 + if (wallet != null) {
  61 + pageVO.setWalletId(wallet.getId());
  62 + }
  63 + }
  64 +
  65 + // 查询分页
  66 + return payWalletTransactionMapper.selectPage(pageVO.getWalletId(), null, pageVO, null);
  67 + }
  68 +
  69 + @Override
  70 + public PayWalletTransactionDO createWalletTransaction(WalletTransactionCreateReqBO bo) {
  71 + PayWalletTransactionDO transaction = PayWalletTransactionConvert.INSTANCE.convert(bo)
  72 + .setNo(noRedisDAO.generate(WALLET_NO_PREFIX));
  73 + payWalletTransactionMapper.insert(transaction);
  74 + return transaction;
  75 + }
  76 +
  77 + @Override
  78 + public PayWalletTransactionDO getWalletTransactionByNo(String no) {
  79 + return payWalletTransactionMapper.selectByNo(no);
  80 + }
  81 +
  82 + @Override
  83 + public PayWalletTransactionDO getWalletTransaction(String bizId, PayWalletBizTypeEnum type) {
  84 + return payWalletTransactionMapper.selectByBiz(bizId, type.getType());
  85 + }
  86 +
  87 + @Override
  88 + public AppPayWalletTransactionSummaryRespVO getWalletTransactionSummary(Long userId, Integer userType, LocalDateTime[] createTime) {
  89 + PayWalletDO wallet = payWalletService.getOrCreateWallet(userId, userType);
  90 + return new AppPayWalletTransactionSummaryRespVO()
  91 + .setTotalExpense(payWalletTransactionMapper.selectPriceSum(wallet.getId(), TYPE_EXPENSE, createTime))
  92 + .setTotalIncome(payWalletTransactionMapper.selectPriceSum(wallet.getId(), TYPE_INCOME, createTime));
  93 + }
  94 +
  95 +}
yudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/bo/WalletTransactionCreateReqBO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.service.wallet.bo;
  2 +
  3 +import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
  5 +import lombok.Data;
  6 +
  7 +import jakarta.validation.constraints.NotEmpty;
  8 +import jakarta.validation.constraints.NotNull;
  9 +
  10 +/**
  11 + * 创建钱包流水 BO
  12 + *
  13 + * @author jason
  14 + */
  15 +@Data
  16 +public class WalletTransactionCreateReqBO {
  17 +
  18 + /**
  19 + * 钱包编号
  20 + *
  21 + */
  22 + @NotNull(message = "钱包编号不能为空")
  23 + private Long walletId;
  24 +
  25 + /**
  26 + * 交易金额,单位分
  27 + *
  28 + * 正值表示余额增加,负值表示余额减少
  29 + */
  30 + @NotNull(message = "交易金额不能为空")
  31 + private Integer price;
  32 +
  33 + /**
  34 + * 交易后余额,单位分
  35 + */
  36 + @NotNull(message = "交易后余额不能为空")
  37 + private Integer balance;
  38 +
  39 + /**
  40 + * 关联业务分类
  41 + *
  42 + * 枚举 {@link PayWalletBizTypeEnum#getType()}
  43 + */
  44 + @NotNull(message = "关联业务分类不能为空")
  45 + @InEnum(PayWalletBizTypeEnum.class)
  46 + private Integer bizType;
  47 +
  48 + /**
  49 + * 关联业务编号
  50 + */
  51 + @NotEmpty(message = "关联业务编号不能为空")
  52 + private String bizId;
  53 +
  54 + /**
  55 + * 流水说明
  56 + */
  57 + @NotEmpty(message = "流水说明不能为空")
  58 + private String title;
  59 +}
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/PayClientFactoryImplIntegrationTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/PayClientFactoryImplIntegrationTest.java
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AbstractAlipayClientTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AbstractAlipayClientTest.java
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayBarPayClientTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayBarPayClientTest.java
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayPcPayClientTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayPcPayClientTest.java
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayQrPayClientTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayQrPayClientTest.java
yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayWapPayClientTest.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.alipay;
  2 +
  3 +import cn.hutool.http.Method;
  4 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO;
  5 +import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
  6 +import cn.iocoder.yudao.module.pay.framework.pay.core.enums.PayOrderDisplayModeEnum;
  7 +import com.alipay.api.AlipayApiException;
  8 +import com.alipay.api.domain.AlipayTradeWapPayModel;
  9 +import com.alipay.api.request.AlipayTradeWapPayRequest;
  10 +import com.alipay.api.response.AlipayTradeWapPayResponse;
  11 +import org.junit.jupiter.api.BeforeEach;
  12 +import org.junit.jupiter.api.DisplayName;
  13 +import org.junit.jupiter.api.Test;
  14 +import org.mockito.ArgumentMatcher;
  15 +import org.mockito.InjectMocks;
  16 +
  17 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
  18 +import static cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum.CLOSED;
  19 +import static cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum.WAITING;
  20 +import static org.junit.jupiter.api.Assertions.*;
  21 +import static org.junit.jupiter.api.Assertions.assertEquals;
  22 +import static org.mockito.ArgumentMatchers.argThat;
  23 +import static org.mockito.ArgumentMatchers.eq;
  24 +import static org.mockito.Mockito.when;
  25 +
  26 +/**
  27 + * {@link AlipayWapPayClient} 单元测试
  28 + *
  29 + * @author jason
  30 + */
  31 +public class AlipayWapPayClientTest extends AbstractAlipayClientTest {
  32 +
  33 + /**
  34 + * 支付宝 H5 支付 Client
  35 + */
  36 + @InjectMocks
  37 + private AlipayWapPayClient client = new AlipayWapPayClient(randomLongId(), config);
  38 +
  39 + @BeforeEach
  40 + public void setUp() {
  41 + setClient(client);
  42 + }
  43 +
  44 + @Test
  45 + @DisplayName("支付宝 H5 支付:下单成功")
  46 + public void testUnifiedOrder_success() throws AlipayApiException {
  47 + // mock 方法
  48 + String h5Body = randomString();
  49 + Integer price = randomInteger();
  50 + AlipayTradeWapPayResponse response = randomPojo(AlipayTradeWapPayResponse.class, o -> {
  51 + o.setSubCode("");
  52 + o.setBody(h5Body);
  53 + });
  54 + String notifyUrl = randomURL();
  55 + when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradeWapPayRequest>) request -> {
  56 + assertInstanceOf(AlipayTradeWapPayModel.class, request.getBizModel());
  57 + AlipayTradeWapPayModel bizModel = (AlipayTradeWapPayModel) request.getBizModel();
  58 + assertEquals(String.valueOf(price / 100.0), bizModel.getTotalAmount());
  59 + assertEquals(notifyUrl, request.getNotifyUrl());
  60 + return true;
  61 + }), eq(Method.GET.name()))).thenReturn(response);
  62 + // 准备请求参数
  63 + String outTradeNo = randomString();
  64 + PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(notifyUrl, outTradeNo, price);
  65 +
  66 + // 调用
  67 + PayOrderRespDTO resp = client.unifiedOrder(reqDTO);
  68 + // 断言
  69 + assertEquals(WAITING.getStatus(), resp.getStatus());
  70 + assertEquals(outTradeNo, resp.getOutTradeNo());
  71 + assertNull(resp.getChannelOrderNo());
  72 + assertNull(resp.getChannelUserId());
  73 + assertNull(resp.getSuccessTime());
  74 + assertEquals(PayOrderDisplayModeEnum.URL.getMode(), resp.getDisplayMode());
  75 + assertEquals(response.getBody(), resp.getDisplayContent());
  76 + assertSame(response, resp.getRawData());
  77 + assertNull(resp.getChannelErrorCode());
  78 + assertNull(resp.getChannelErrorMsg());
  79 + }
  80 +
  81 + @Test
  82 + @DisplayName("支付宝 H5 支付:渠道返回失败")
  83 + public void test_unified_order_channel_failed() throws AlipayApiException {
  84 + // mock 方法
  85 + String subCode = randomString();
  86 + String subMsg = randomString();
  87 + AlipayTradeWapPayResponse response = randomPojo(AlipayTradeWapPayResponse.class, o -> {
  88 + o.setSubCode(subCode);
  89 + o.setSubMsg(subMsg);
  90 + });
  91 + when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradeWapPayRequest>) request -> true),
  92 + eq(Method.GET.name()))).thenReturn(response);
  93 + String outTradeNo = randomString();
  94 + PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), outTradeNo, randomInteger());
  95 +
  96 + // 调用
  97 + PayOrderRespDTO resp = client.unifiedOrder(reqDTO);
  98 + // 断言
  99 + assertEquals(CLOSED.getStatus(), resp.getStatus());
  100 + assertEquals(outTradeNo, resp.getOutTradeNo());
  101 + assertNull(resp.getChannelOrderNo());
  102 + assertNull(resp.getChannelUserId());
  103 + assertNull(resp.getSuccessTime());
  104 + assertNull(resp.getDisplayMode());
  105 + assertNull(resp.getDisplayContent());
  106 + assertSame(response, resp.getRawData());
  107 + assertEquals(subCode, resp.getChannelErrorCode());
  108 + assertEquals(subMsg, resp.getChannelErrorMsg());
  109 + }
  110 +
  111 +}
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxBarPayClientIntegrationTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxBarPayClientIntegrationTest.java
yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxNativePayClientIntegrationTest.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.weixin;
  2 +
  3 +import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;
  4 +import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
  5 +import com.github.binarywang.wxpay.bean.request.WxPayRefundV3Request;
  6 +import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request;
  7 +import com.github.binarywang.wxpay.bean.result.WxPayRefundV3Result;
  8 +import com.github.binarywang.wxpay.bean.result.enums.TradeTypeEnum;
  9 +import com.github.binarywang.wxpay.config.WxPayConfig;
  10 +import com.github.binarywang.wxpay.exception.WxPayException;
  11 +import com.github.binarywang.wxpay.service.WxPayService;
  12 +import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
  13 +import org.junit.jupiter.api.Disabled;
  14 +import org.junit.jupiter.api.Test;
  15 +
  16 +import java.time.Duration;
  17 +
  18 +import static cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.weixin.AbstractWxPayClient.formatDateV3;
  19 +
  20 +
  21 +/**
  22 + * {@link WxNativePayClient} 的集成测试,用于快速调试微信扫码支付
  23 + *
  24 + * @author 芋道源码
  25 + */
  26 +@Disabled
  27 +public class WxNativePayClientIntegrationTest {
  28 +
  29 + @Test
  30 + public void testPayV3() throws WxPayException {
  31 + // 创建 config 配置
  32 + WxPayConfig config = buildWxPayConfigV3();
  33 + // 创建 WxPayService 客户端
  34 + WxPayService client = new WxPayServiceImpl();
  35 + client.setConfig(config);
  36 +
  37 + // 执行发起支付
  38 + WxPayUnifiedOrderV3Request request = new WxPayUnifiedOrderV3Request()
  39 + .setOutTradeNo(String.valueOf(System.currentTimeMillis()))
  40 + .setDescription("测试支付-body")
  41 + .setAmount(new WxPayUnifiedOrderV3Request.Amount().setTotal(1)) // 单位分
  42 + .setTimeExpire(formatDateV3(LocalDateTimeUtils.addTime(Duration.ofMinutes(2))))
  43 + .setSceneInfo(new WxPayUnifiedOrderV3Request.SceneInfo().setPayerClientIp("127.0.0.1"))
  44 + .setNotifyUrl("http://127.0.0.1:48080");
  45 + System.out.println("========= request ==========");
  46 + System.out.println(JsonUtils.toJsonPrettyString(request));
  47 + String response = client.createOrderV3(TradeTypeEnum.NATIVE, request);
  48 + System.out.println("========= response ==========");
  49 + System.out.println(JsonUtils.toJsonPrettyString(response));
  50 + }
  51 +
  52 + @Test
  53 + public void testRefundV3() throws WxPayException {
  54 + // 创建 config 配置
  55 + WxPayConfig config = buildWxPayConfigV3();
  56 + // 创建 WxPayService 客户端
  57 + WxPayService client = new WxPayServiceImpl();
  58 + client.setConfig(config);
  59 +
  60 + // 执行发起退款
  61 + WxPayRefundV3Request request = new WxPayRefundV3Request()
  62 + .setOutTradeNo("1689545729695")
  63 + .setOutRefundNo(String.valueOf(System.currentTimeMillis()))
  64 + .setAmount(new WxPayRefundV3Request.Amount().setTotal(1).setRefund(1).setCurrency("CNY"))
  65 + .setReason("就是想退了");
  66 + System.out.println("========= request ==========");
  67 + System.out.println(JsonUtils.toJsonPrettyString(request));
  68 + WxPayRefundV3Result response = client.refundV3(request);
  69 + System.out.println("========= response ==========");
  70 + System.out.println(JsonUtils.toJsonPrettyString(response));
  71 + }
  72 +
  73 + private WxPayConfig buildWxPayConfigV3() {
  74 + WxPayConfig config = new WxPayConfig();
  75 + config.setAppId("wx62056c0d5e8db250");
  76 + config.setMchId("1545083881");
  77 + config.setApiV3Key("459arNsYHl1mgkiO6H9ZH5KkhFXSxaA4");
  78 +// config.setCertSerialNo(serialNo);
  79 + config.setPrivateCertPath("/Users/yunai/Downloads/wx_pay/apiclient_cert.pem");
  80 + config.setPrivateKeyPath("/Users/yunai/Downloads/wx_pay/apiclient_key.pem");
  81 + return config;
  82 + }
  83 +
  84 +}
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/app/PayAppServiceTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/service/app/PayAppServiceTest.java
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelServiceTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/service/channel/PayChannelServiceTest.java
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyServiceTest.java
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceTest.java
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java renamed to yudao-module-pay/src/test/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundServiceTest.java
yudao-module-pay/src/test/resources/application-unit-test.yaml 0 → 100644
  1 +spring:
  2 + main:
  3 + lazy-initialization: true # 开启懒加载,加快速度
  4 + banner-mode: off # 单元测试,禁用 Banner
  5 +
  6 +--- #################### 数据库相关配置 ####################
  7 +
  8 +spring:
  9 + # 数据源配置项
  10 + datasource:
  11 + name: ruoyi-vue-pro
  12 + url: jdbc:h2:mem:testdb;MODE=MYSQL;DATABASE_TO_UPPER=false;NON_KEYWORDS=value; # MODE 使用 MySQL 模式;DATABASE_TO_UPPER 配置表和字段使用小写
  13 + driver-class-name: org.h2.Driver
  14 + username: sa
  15 + password:
  16 + druid:
  17 + async-init: true # 单元测试,异步初始化 Druid 连接池,提升启动速度
  18 + initial-size: 1 # 单元测试,配置为 1,提升启动速度
  19 + sql:
  20 + init:
  21 + schema-locations: classpath:/sql/create_tables.sql
  22 +
  23 + # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
  24 + data:
  25 + redis:
  26 + host: 127.0.0.1 # 地址
  27 + port: 16379 # 端口(单元测试,使用 16379 端口)
  28 + database: 0 # 数据库索引
  29 +
  30 +mybatis:
  31 + lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试
  32 +
  33 +--- #################### 定时任务相关配置 ####################
  34 +
  35 +--- #################### 配置中心相关配置 ####################
  36 +
  37 +--- #################### 服务保障相关配置 ####################
  38 +
  39 +# Lock4j 配置项(单元测试,禁用 Lock4j)
  40 +
  41 +--- #################### 监控相关配置 ####################
  42 +
  43 +--- #################### 芋道相关配置 ####################
  44 +
  45 +# 芋道配置项,设置当前项目所有自定义的配置
  46 +yudao:
  47 + info:
  48 + base-package: cn.iocoder.yudao.module
yudao-module-pay/yudao-module-pay-biz/src/test/resources/logback.xml renamed to yudao-module-pay/src/test/resources/logback.xml
yudao-module-pay/yudao-module-pay-biz/src/test/resources/sql/clean.sql renamed to yudao-module-pay/src/test/resources/sql/clean.sql
yudao-module-pay/yudao-module-pay-biz/src/test/resources/sql/create_tables.sql renamed to yudao-module-pay/src/test/resources/sql/create_tables.sql
yudao-module-pay/yudao-module-pay-api/pom.xml deleted
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project xmlns="http://maven.apache.org/POM/4.0.0"  
3 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
4 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
5 - <parent>  
6 - <artifactId>yudao-module-pay</artifactId>  
7 - <groupId>cn.iocoder.boot</groupId>  
8 - <version>${revision}</version>  
9 - </parent>  
10 - <modelVersion>4.0.0</modelVersion>  
11 - <artifactId>yudao-module-pay-api</artifactId>  
12 - <packaging>jar</packaging>  
13 -  
14 - <name>${project.artifactId}</name>  
15 - <description>  
16 - pay 模块 API,暴露给其它模块调用  
17 - </description>  
18 -  
19 - <dependencies>  
20 - <dependency>  
21 - <groupId>cn.iocoder.boot</groupId>  
22 - <artifactId>yudao-common</artifactId>  
23 - </dependency>  
24 -  
25 - <!-- 参数校验 -->  
26 - <dependency>  
27 - <groupId>org.springframework.boot</groupId>  
28 - <artifactId>spring-boot-starter-validation</artifactId>  
29 - <optional>true</optional>  
30 - </dependency>  
31 - </dependencies>  
32 -  
33 -</project>  
yudao-module-pay/yudao-module-pay-biz/pom.xml deleted
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project xmlns="http://maven.apache.org/POM/4.0.0"  
3 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
4 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
5 - <parent>  
6 - <groupId>cn.iocoder.boot</groupId>  
7 - <artifactId>yudao-module-pay</artifactId>  
8 - <version>${revision}</version>  
9 - </parent>  
10 - <modelVersion>4.0.0</modelVersion>  
11 - <artifactId>yudao-module-pay-biz</artifactId>  
12 - <packaging>jar</packaging>  
13 -  
14 - <name>${project.artifactId}</name>  
15 - <description>  
16 - pay 模块,我们放支付业务,提供业务的支付能力。  
17 - 例如说:商户、应用、支付、退款等等  
18 - </description>  
19 -  
20 - <dependencies>  
21 - <dependency>  
22 - <groupId>cn.iocoder.boot</groupId>  
23 - <artifactId>yudao-module-system-api</artifactId>  
24 - <version>${revision}</version>  
25 - </dependency>  
26 - <dependency>  
27 - <groupId>cn.iocoder.boot</groupId>  
28 - <artifactId>yudao-module-pay-api</artifactId>  
29 - <version>${revision}</version>  
30 - </dependency>  
31 -  
32 - <!-- 业务组件 -->  
33 - <dependency>  
34 - <groupId>cn.iocoder.boot</groupId>  
35 - <artifactId>yudao-spring-boot-starter-biz-tenant</artifactId>  
36 - </dependency>  
37 -  
38 - <!-- Web 相关 -->  
39 - <dependency>  
40 - <groupId>cn.iocoder.boot</groupId>  
41 - <artifactId>yudao-spring-boot-starter-security</artifactId>  
42 - </dependency>  
43 -  
44 - <!-- DB 相关 -->  
45 - <dependency>  
46 - <groupId>cn.iocoder.boot</groupId>  
47 - <artifactId>yudao-spring-boot-starter-mybatis</artifactId>  
48 - </dependency>  
49 -  
50 - <dependency>  
51 - <groupId>cn.iocoder.boot</groupId>  
52 - <artifactId>yudao-spring-boot-starter-redis</artifactId>  
53 - </dependency>  
54 -  
55 - <!-- Job 定时任务相关 -->  
56 - <dependency>  
57 - <groupId>cn.iocoder.boot</groupId>  
58 - <artifactId>yudao-spring-boot-starter-job</artifactId>  
59 - </dependency>  
60 -  
61 - <!-- Test 测试相关 -->  
62 - <dependency>  
63 - <groupId>cn.iocoder.boot</groupId>  
64 - <artifactId>yudao-spring-boot-starter-test</artifactId>  
65 - <scope>test</scope>  
66 - </dependency>  
67 -  
68 - <!-- 工具类相关 -->  
69 - <dependency>  
70 - <groupId>cn.iocoder.boot</groupId>  
71 - <artifactId>yudao-spring-boot-starter-excel</artifactId>  
72 - </dependency>  
73 -  
74 - <!-- 三方云服务相关 -->  
75 - <dependency>  
76 - <groupId>com.alipay.sdk</groupId>  
77 - <artifactId>alipay-sdk-java</artifactId>  
78 - <version>4.35.79.ALL</version>  
79 - <exclusions>  
80 - <exclusion>  
81 - <groupId>org.bouncycastle</groupId>  
82 - <artifactId>bcprov-jdk15on</artifactId>  
83 - </exclusion>  
84 - </exclusions>  
85 - </dependency>  
86 - <dependency>  
87 - <groupId>com.github.binarywang</groupId>  
88 - <artifactId>weixin-java-pay</artifactId>  
89 - </dependency>  
90 -  
91 - </dependencies>  
92 -  
93 -</project>  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoOrderService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.demo;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.order.PayDemoOrderCreateReqVO;  
6 -import cn.iocoder.yudao.module.pay.dal.dataobject.demo.PayDemoOrderDO;  
7 -  
8 -import jakarta.validation.Valid;  
9 -  
10 -/**  
11 - * 示例订单 Service 接口  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -public interface PayDemoOrderService {  
16 -  
17 - /**  
18 - * 创建示例订单  
19 - *  
20 - * @param userId 用户编号  
21 - * @param createReqVO 创建信息  
22 - * @return 编号  
23 - */  
24 - Long createDemoOrder(Long userId, @Valid PayDemoOrderCreateReqVO createReqVO);  
25 -  
26 - /**  
27 - * 获得示例订单  
28 - *  
29 - * @param id 编号  
30 - * @return 示例订单  
31 - */  
32 - PayDemoOrderDO getDemoOrder(Long id);  
33 -  
34 - /**  
35 - * 获得示例订单分页  
36 - *  
37 - * @param pageReqVO 分页查询  
38 - * @return 示例订单分页  
39 - */  
40 - PageResult<PayDemoOrderDO> getDemoOrderPage(PageParam pageReqVO);  
41 -  
42 - /**  
43 - * 更新示例订单为已支付  
44 - *  
45 - * @param id 编号  
46 - * @param payOrderId 支付订单号  
47 - */  
48 - void updateDemoOrderPaid(Long id, Long payOrderId);  
49 -  
50 - /**  
51 - * 发起示例订单的退款  
52 - *  
53 - * @param id 编号  
54 - * @param userIp 用户编号  
55 - */  
56 - void refundDemoOrder(Long id, String userIp);  
57 -  
58 - /**  
59 - * 更新示例订单为已退款  
60 - *  
61 - * @param id 编号  
62 - * @param refundId 退款编号  
63 - * @param payRefundId 退款订单号  
64 - */  
65 - void updateDemoOrderRefunded(Long id, String refundId, Long payRefundId);  
66 -  
67 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoWithdrawService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.demo;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.withdraw.PayDemoWithdrawCreateReqVO;  
6 -import cn.iocoder.yudao.module.pay.dal.dataobject.demo.PayDemoWithdrawDO;  
7 -  
8 -import jakarta.validation.Valid;  
9 -  
10 -/**  
11 - * 示例提现单 Service 接口  
12 - *  
13 - * @author jason  
14 - */  
15 -public interface PayDemoWithdrawService {  
16 -  
17 - /**  
18 - * 创建示例提现单  
19 - *  
20 - * @param createReqVO 创建信息  
21 - * @return 编号  
22 - */  
23 - Long createDemoWithdraw(@Valid PayDemoWithdrawCreateReqVO createReqVO);  
24 -  
25 - /**  
26 - * 提现单转账  
27 - *  
28 - * @param id 提现单编号  
29 - * @return 转账编号  
30 - */  
31 - Long transferDemoWithdraw(Long id);  
32 -  
33 - /**  
34 - * 获得示例提现单分页  
35 - *  
36 - * @param pageVO 分页查询参数  
37 - */  
38 - PageResult<PayDemoWithdrawDO> getDemoWithdrawPage(PageParam pageVO);  
39 -  
40 - /**  
41 - * 更新示例提现单的状态  
42 - *  
43 - * @param id 编号  
44 - * @param payTransferId 转账单编号  
45 - */  
46 - void updateDemoWithdrawTransferred(Long id, Long payTransferId);  
47 -  
48 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/notify/PayNotifyService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.notify;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskPageReqVO;  
5 -import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyLogDO;  
6 -import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyTaskDO;  
7 -  
8 -import java.util.List;  
9 -  
10 -/**  
11 - * 回调通知 Service 接口  
12 - *  
13 - * @author 芋道源码  
14 - */  
15 -public interface PayNotifyService {  
16 -  
17 - /**  
18 - * 创建回调通知任务  
19 - *  
20 - * @param type 类型  
21 - * @param dataId 数据编号  
22 - */  
23 - void createPayNotifyTask(Integer type, Long dataId);  
24 -  
25 - /**  
26 - * 执行回调通知  
27 - *  
28 - * 注意,该方法提供给定时任务调用。目前是 yudao-server 进行调用  
29 - * @return 通知数量  
30 - */  
31 - int executeNotify() throws InterruptedException;  
32 -  
33 - /**  
34 - * 获得回调通知  
35 - *  
36 - * @param id 编号  
37 - * @return 回调通知  
38 - */  
39 - PayNotifyTaskDO getNotifyTask(Long id);  
40 -  
41 - /**  
42 - * 获得回调通知分页  
43 - *  
44 - * @param pageReqVO 分页查询  
45 - * @return 回调通知分页  
46 - */  
47 - PageResult<PayNotifyTaskDO> getNotifyTaskPage(PayNotifyTaskPageReqVO pageReqVO);  
48 -  
49 - /**  
50 - * 获得回调日志列表  
51 - *  
52 - * @param taskId 任务编号  
53 - * @return 日志列表  
54 - */  
55 - List<PayNotifyLogDO> getNotifyLogList(Long taskId);  
56 -  
57 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/refund/PayRefundService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.refund;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.refund.PayRefundRespDTO;  
5 -import cn.iocoder.yudao.module.pay.api.refund.dto.PayRefundCreateReqDTO;  
6 -import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundExportReqVO;  
7 -import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.PayRefundPageReqVO;  
8 -import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;  
9 -  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * 退款订单 Service 接口  
14 - *  
15 - * @author aquan  
16 - */  
17 -public interface PayRefundService {  
18 -  
19 - /**  
20 - * 获得退款订单  
21 - *  
22 - * @param id 编号  
23 - * @return 退款订单  
24 - */  
25 - PayRefundDO getRefund(Long id);  
26 -  
27 - /**  
28 - * 获得退款订单  
29 - *  
30 - * @param no 外部退款单号  
31 - * @return 退款订单  
32 - */  
33 - PayRefundDO getRefundByNo(String no);  
34 -  
35 - /**  
36 - * 获得指定应用的退款数量  
37 - *  
38 - * @param appId 应用编号  
39 - * @return 退款数量  
40 - */  
41 - Long getRefundCountByAppId(Long appId);  
42 -  
43 - /**  
44 - * 获得退款订单分页  
45 - *  
46 - * @param pageReqVO 分页查询  
47 - * @return 退款订单分页  
48 - */  
49 - PageResult<PayRefundDO> getRefundPage(PayRefundPageReqVO pageReqVO);  
50 -  
51 - /**  
52 - * 获得退款订单列表, 用于 Excel 导出  
53 - *  
54 - * @param exportReqVO 查询条件  
55 - * @return 退款订单列表  
56 - */  
57 - List<PayRefundDO> getRefundList(PayRefundExportReqVO exportReqVO);  
58 -  
59 - /**  
60 - * 创建退款申请  
61 - *  
62 - * @param reqDTO 退款申请信息  
63 - * @return 退款单号  
64 - */  
65 - Long createRefund(PayRefundCreateReqDTO reqDTO);  
66 -  
67 - /**  
68 - * 渠道的退款通知  
69 - *  
70 - * @param channelId 渠道编号  
71 - * @param notify 通知  
72 - */  
73 - void notifyRefund(Long channelId, PayRefundRespDTO notify);  
74 -  
75 - /**  
76 - * 同步渠道退款的退款状态  
77 - *  
78 - * @return 同步到状态的退款数量,包括退款成功、退款失败  
79 - */  
80 - int syncRefund();  
81 -  
82 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.transfer;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.transfer.PayTransferRespDTO;  
5 -import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;  
6 -import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;  
7 -import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;  
8 -import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;  
9 -import jakarta.validation.Valid;  
10 -  
11 -/**  
12 - * 转账 Service 接口  
13 - *  
14 - * @author jason  
15 - */  
16 -public interface PayTransferService {  
17 -  
18 - /**  
19 - * 创建转账单,并发起转账  
20 - *  
21 - * @param reqDTO 创建请求  
22 - * @return 转账单编号  
23 - */  
24 - PayTransferCreateRespDTO createTransfer(@Valid PayTransferCreateReqDTO reqDTO);  
25 -  
26 - /**  
27 - * 获取转账单  
28 - * @param id 转账单编号  
29 - */  
30 - PayTransferDO getTransfer(Long id);  
31 -  
32 - /**  
33 - * 根据转账单号获取转账单  
34 - *  
35 - * @param no 转账单号  
36 - * @return 转账单  
37 - */  
38 - PayTransferDO getTransferByNo(String no);  
39 -  
40 - /**  
41 - * 获得转账单分页  
42 - *  
43 - * @param pageReqVO 分页查询  
44 - * @return 转账单分页  
45 - */  
46 - PageResult<PayTransferDO> getTransferPage(PayTransferPageReqVO pageReqVO);  
47 -  
48 - /**  
49 - * 同步渠道转账单状态  
50 - *  
51 - * @return 同步到状态的转账数量,包括转账成功、转账失败、转账中的  
52 - */  
53 - int syncTransfer();  
54 -  
55 - /**  
56 - * 【单个】同步渠道转账单状态  
57 - *  
58 - * @param id 转账单编号  
59 - */  
60 - void syncTransfer(Long id);  
61 -  
62 - /**  
63 - * 渠道的转账通知  
64 - *  
65 - * @param channelId 渠道编号  
66 - * @param notify 通知  
67 - */  
68 - void notifyTransfer(Long channelId, PayTransferRespDTO notify);  
69 -  
70 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargePackageService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.wallet;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackageCreateReqVO;  
5 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackagePageReqVO;  
6 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackageUpdateReqVO;  
7 -import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletRechargePackageDO;  
8 -  
9 -import jakarta.validation.Valid;  
10 -import java.util.Collection;  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * 钱包充值套餐 Service 接口  
15 - *  
16 - * @author jason  
17 - */  
18 -public interface PayWalletRechargePackageService {  
19 -  
20 - /**  
21 - * 获取钱包充值套餐  
22 - * @param packageId 充值套餐编号  
23 - */  
24 - PayWalletRechargePackageDO getWalletRechargePackage(Long packageId);  
25 -  
26 - /**  
27 - * 校验钱包充值套餐的有效性, 无效的话抛出 ServiceException 异常  
28 - *  
29 - * @param packageId 充值套餐编号  
30 - */  
31 - PayWalletRechargePackageDO validWalletRechargePackage(Long packageId);  
32 -  
33 - /**  
34 - * 创建充值套餐  
35 - *  
36 - * @param createReqVO 创建信息  
37 - * @return 编号  
38 - */  
39 - Long createWalletRechargePackage(@Valid WalletRechargePackageCreateReqVO createReqVO);  
40 -  
41 - /**  
42 - * 更新充值套餐  
43 - *  
44 - * @param updateReqVO 更新信息  
45 - */  
46 - void updateWalletRechargePackage(@Valid WalletRechargePackageUpdateReqVO updateReqVO);  
47 -  
48 - /**  
49 - * 删除充值套餐  
50 - *  
51 - * @param id 编号  
52 - */  
53 - void deleteWalletRechargePackage(Long id);  
54 -  
55 - /**  
56 - * 获得充值套餐分页  
57 - *  
58 - * @param pageReqVO 分页查询  
59 - * @return 充值套餐分页  
60 - */  
61 - PageResult<PayWalletRechargePackageDO> getWalletRechargePackagePage(WalletRechargePackagePageReqVO pageReqVO);  
62 -  
63 - /**  
64 - * 获得充值套餐列表  
65 - *  
66 - * @param status 状态  
67 - * @return 充值套餐列表  
68 - */  
69 - List<PayWalletRechargePackageDO> getWalletRechargePackageList(Integer status);  
70 -  
71 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargePackageServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.pay.service.wallet;  
2 -  
3 -import cn.hutool.core.util.StrUtil;  
4 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackageCreateReqVO;  
7 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackagePageReqVO;  
8 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.rechargepackage.WalletRechargePackageUpdateReqVO;  
9 -import cn.iocoder.yudao.module.pay.convert.wallet.PayWalletRechargePackageConvert;  
10 -import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletRechargePackageDO;  
11 -import cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletRechargePackageMapper;  
12 -import org.springframework.stereotype.Service;  
13 -  
14 -import jakarta.annotation.Resource;  
15 -  
16 -import java.util.List;  
17 -  
18 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
19 -import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.*;  
20 -  
21 -/**  
22 - * 钱包充值套餐 Service 实现类  
23 - *  
24 - * @author jason  
25 - */  
26 -@Service  
27 -public class PayWalletRechargePackageServiceImpl implements PayWalletRechargePackageService {  
28 -  
29 - @Resource  
30 - private PayWalletRechargePackageMapper walletRechargePackageMapper;  
31 -  
32 - @Override  
33 - public PayWalletRechargePackageDO getWalletRechargePackage(Long packageId) {  
34 - return walletRechargePackageMapper.selectById(packageId);  
35 - }  
36 -  
37 - @Override  
38 - public PayWalletRechargePackageDO validWalletRechargePackage(Long packageId) {  
39 - PayWalletRechargePackageDO rechargePackageDO = walletRechargePackageMapper.selectById(packageId);  
40 - if (rechargePackageDO == null) {  
41 - throw exception(WALLET_RECHARGE_PACKAGE_NOT_FOUND);  
42 - }  
43 - if (CommonStatusEnum.DISABLE.getStatus().equals(rechargePackageDO.getStatus())) {  
44 - throw exception(WALLET_RECHARGE_PACKAGE_IS_DISABLE);  
45 - }  
46 - return rechargePackageDO;  
47 - }  
48 -  
49 - @Override  
50 - public Long createWalletRechargePackage(WalletRechargePackageCreateReqVO createReqVO) {  
51 - // 校验套餐名是否唯一  
52 - validateRechargePackageNameUnique(null, createReqVO.getName());  
53 -  
54 - // 插入  
55 - PayWalletRechargePackageDO walletRechargePackage = PayWalletRechargePackageConvert.INSTANCE.convert(createReqVO);  
56 - walletRechargePackageMapper.insert(walletRechargePackage);  
57 - // 返回  
58 - return walletRechargePackage.getId();  
59 - }  
60 -  
61 - @Override  
62 - public void updateWalletRechargePackage(WalletRechargePackageUpdateReqVO updateReqVO) {  
63 - // 校验存在  
64 - validateWalletRechargePackageExists(updateReqVO.getId());  
65 - // 校验套餐名是否唯一  
66 - validateRechargePackageNameUnique(updateReqVO.getId(), updateReqVO.getName());  
67 -  
68 - // 更新  
69 - PayWalletRechargePackageDO updateObj = PayWalletRechargePackageConvert.INSTANCE.convert(updateReqVO);  
70 - walletRechargePackageMapper.updateById(updateObj);  
71 - }  
72 -  
73 - private void validateRechargePackageNameUnique(Long id, String name) {  
74 - if (StrUtil.isBlank(name)) {  
75 - return;  
76 - }  
77 - PayWalletRechargePackageDO rechargePackage = walletRechargePackageMapper.selectByName(name);  
78 - if (rechargePackage == null) {  
79 - return ;  
80 - }  
81 - if (id == null) {  
82 - throw exception(WALLET_RECHARGE_PACKAGE_NAME_EXISTS);  
83 - }  
84 - if (!id.equals(rechargePackage.getId())) {  
85 - throw exception(WALLET_RECHARGE_PACKAGE_NAME_EXISTS);  
86 - }  
87 - }  
88 -  
89 - @Override  
90 - public void deleteWalletRechargePackage(Long id) {  
91 - // 校验存在  
92 - validateWalletRechargePackageExists(id);  
93 - // 删除  
94 - walletRechargePackageMapper.deleteById(id);  
95 - }  
96 -  
97 - private void validateWalletRechargePackageExists(Long id) {  
98 - if (walletRechargePackageMapper.selectById(id) == null) {  
99 - throw exception(WALLET_RECHARGE_PACKAGE_NOT_FOUND);  
100 - }  
101 - }  
102 -  
103 - @Override  
104 - public PageResult<PayWalletRechargePackageDO> getWalletRechargePackagePage(WalletRechargePackagePageReqVO pageReqVO) {  
105 - return walletRechargePackageMapper.selectPage(pageReqVO);  
106 - }  
107 -  
108 - @Override  
109 - public List<PayWalletRechargePackageDO> getWalletRechargePackageList(Integer status) {  
110 - return walletRechargePackageMapper.selectListByStatus(status);  
111 - }  
112 -  
113 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletRechargeService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.wallet;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageParam;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.recharge.AppPayWalletRechargeCreateReqVO;  
6 -import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletRechargeDO;  
7 -  
8 -/**  
9 - * 钱包充值 Service 接口  
10 - *  
11 - * @author jason  
12 - */  
13 -public interface PayWalletRechargeService {  
14 -  
15 - /**  
16 - * 创建钱包充值记录(发起充值)  
17 - *  
18 - * @param userId 用户编号  
19 - * @param userType 用户类型  
20 - * @param createReqVO 钱包充值请求 VO  
21 - * @param userIp 用户Ip  
22 - * @return 钱包充值记录  
23 - */  
24 - PayWalletRechargeDO createWalletRecharge(Long userId, Integer userType, String userIp,  
25 - AppPayWalletRechargeCreateReqVO createReqVO);  
26 -  
27 - /**  
28 - * 获得钱包充值记录分页  
29 - *  
30 - * @param userId 用户编号  
31 - * @param userType 用户类型  
32 - * @param pageReqVO 分页请求  
33 - * @param payStatus 是否支付  
34 - * @return 钱包充值记录分页  
35 - */  
36 - PageResult<PayWalletRechargeDO> getWalletRechargePackagePage(Long userId, Integer userType,  
37 - PageParam pageReqVO, Boolean payStatus);  
38 -  
39 - /**  
40 - * 更新钱包充值成功  
41 - *  
42 - * @param id 钱包充值记录编号  
43 - * @param payOrderId 支付订单编号  
44 - */  
45 - void updateWalletRechargerPaid(Long id, Long payOrderId);  
46 -  
47 - /**  
48 - * 发起钱包充值退款  
49 - *  
50 - * @param id 钱包充值编号  
51 - * @param userIp 用户 ip 地址  
52 - */  
53 - void refundWalletRecharge(Long id, String userIp);  
54 -  
55 - /**  
56 - * 更新钱包充值记录为已退款  
57 - *  
58 - * @param id 钱包充值记录编号  
59 - * @param refundId 钱包充值退款编号(实际和 id 相同)  
60 - * @param payRefundId 退款单id  
61 - */  
62 - void updateWalletRechargeRefunded(Long id, Long refundId, Long payRefundId);  
63 -  
64 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.wallet;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.wallet.PayWalletPageReqVO;  
5 -import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;  
6 -import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO;  
7 -import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;  
8 -  
9 -/**  
10 - * 钱包 Service 接口  
11 - *  
12 - * @author jason  
13 - */  
14 -public interface PayWalletService {  
15 -  
16 - /**  
17 - * 获取钱包信息  
18 - * <p>  
19 - * 如果不存在,则创建钱包。由于用户注册时候不会创建钱包  
20 - *  
21 - * @param userId 用户编号  
22 - * @param userType 用户类型  
23 - */  
24 - PayWalletDO getOrCreateWallet(Long userId, Integer userType);  
25 -  
26 - /**  
27 - * 获取钱包信息  
28 - *  
29 - * @param walletId 钱包 id  
30 - */  
31 - PayWalletDO getWallet(Long walletId);  
32 -  
33 - /**  
34 - * 获得会员钱包分页  
35 - *  
36 - * @param pageReqVO 分页查询  
37 - * @return 会员钱包分页  
38 - */  
39 - PageResult<PayWalletDO> getWalletPage(PayWalletPageReqVO pageReqVO);  
40 -  
41 - /**  
42 - * 钱包订单支付  
43 - *  
44 - * @param walletId 钱包编号  
45 - * @param outTradeNo 外部订单号  
46 - * @param price 金额  
47 - */  
48 - PayWalletTransactionDO orderPay(Long walletId, String outTradeNo, Integer price);  
49 -  
50 - /**  
51 - * 钱包订单支付退款  
52 - *  
53 - * @param outRefundNo 外部退款号  
54 - * @param refundPrice 退款金额  
55 - * @param reason 退款原因  
56 - */  
57 - PayWalletTransactionDO orderRefund(String outRefundNo, Integer refundPrice, String reason);  
58 -  
59 - /**  
60 - * 扣减钱包余额  
61 - *  
62 - * @param walletId 钱包编号  
63 - * @param bizId 业务关联编号  
64 - * @param bizType 业务关联分类  
65 - * @param price 扣减金额  
66 - * @return 钱包流水  
67 - */  
68 - PayWalletTransactionDO reduceWalletBalance(Long walletId, Long bizId,  
69 - PayWalletBizTypeEnum bizType, Integer price);  
70 -  
71 - /**  
72 - * 增加钱包余额  
73 - *  
74 - * @param walletId 钱包编号  
75 - * @param bizId 业务关联编号  
76 - * @param bizType 业务关联分类  
77 - * @param price 增加金额  
78 - * @return 钱包流水  
79 - */  
80 - PayWalletTransactionDO addWalletBalance(Long walletId, String bizId,  
81 - PayWalletBizTypeEnum bizType, Integer price);  
82 -  
83 - /**  
84 - * 冻结钱包部分余额  
85 - *  
86 - * @param id 钱包编号  
87 - * @param price 冻结金额  
88 - */  
89 - void freezePrice(Long id, Integer price);  
90 -  
91 - /**  
92 - * 解冻钱包余额  
93 - *  
94 - * @param id 钱包编号  
95 - * @param price 解冻金额  
96 - */  
97 - void unfreezePrice(Long id, Integer price);  
98 -  
99 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletTransactionService.java deleted
1 -package cn.iocoder.yudao.module.pay.service.wallet;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.transaction.PayWalletTransactionPageReqVO;  
5 -import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO;  
6 -import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionSummaryRespVO;  
7 -import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO;  
8 -import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;  
9 -import cn.iocoder.yudao.module.pay.service.wallet.bo.WalletTransactionCreateReqBO;  
10 -  
11 -import jakarta.validation.Valid;  
12 -  
13 -import java.time.LocalDateTime;  
14 -  
15 -/**  
16 - * 钱包余额流水 Service 接口  
17 - *  
18 - * @author jason  
19 - */  
20 -public interface PayWalletTransactionService {  
21 -  
22 - /**  
23 - * 查询钱包余额流水分页  
24 - *  
25 - * @param userId 用户编号  
26 - * @param userType 用户类型  
27 - * @param pageVO 分页查询参数  
28 - */  
29 - PageResult<PayWalletTransactionDO> getWalletTransactionPage(Long userId, Integer userType,  
30 - AppPayWalletTransactionPageReqVO pageVO);  
31 -  
32 - /**  
33 - * 查询钱包余额流水分页  
34 - *  
35 - * @param pageVO 分页查询参数  
36 - */  
37 - PageResult<PayWalletTransactionDO> getWalletTransactionPage(PayWalletTransactionPageReqVO pageVO);  
38 -  
39 - /**  
40 - * 新增钱包余额流水  
41 - *  
42 - * @param bo 创建钱包流水 bo  
43 - * @return 新建的钱包 do  
44 - */  
45 - PayWalletTransactionDO createWalletTransaction(@Valid WalletTransactionCreateReqBO bo);  
46 -  
47 - /**  
48 - * 根据 no,获取钱包余流水  
49 - *  
50 - * @param no 流水号  
51 - */  
52 - PayWalletTransactionDO getWalletTransactionByNo(String no);  
53 -  
54 - /**  
55 - * 获取钱包流水  
56 - *  
57 - * @param bizId 业务编号  
58 - * @param type 业务类型  
59 - * @return 钱包流水  
60 - */  
61 - PayWalletTransactionDO getWalletTransaction(String bizId, PayWalletBizTypeEnum type);  
62 -  
63 - /**  
64 - * 获得钱包流水统计  
65 - *  
66 - * @param userId 用户编号  
67 - * @param userType 用户类型  
68 - * @param createTime 时间段  
69 - * @return 钱包流水统计  
70 - */  
71 - AppPayWalletTransactionSummaryRespVO getWalletTransactionSummary(Long userId, Integer userType,  
72 - LocalDateTime[] createTime);  
73 -  
74 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletTransactionServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.pay.service.wallet;  
2 -  
3 -import cn.hutool.core.util.ObjectUtil;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.transaction.PayWalletTransactionPageReqVO;  
6 -import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO;  
7 -import cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionSummaryRespVO;  
8 -import cn.iocoder.yudao.module.pay.convert.wallet.PayWalletTransactionConvert;  
9 -import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;  
10 -import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO;  
11 -import cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletTransactionMapper;  
12 -import cn.iocoder.yudao.module.pay.dal.redis.no.PayNoRedisDAO;  
13 -import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;  
14 -import cn.iocoder.yudao.module.pay.service.wallet.bo.WalletTransactionCreateReqBO;  
15 -import jakarta.annotation.Resource;  
16 -import lombok.extern.slf4j.Slf4j;  
17 -import org.springframework.stereotype.Service;  
18 -import org.springframework.validation.annotation.Validated;  
19 -  
20 -import java.time.LocalDateTime;  
21 -  
22 -import static cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO.TYPE_EXPENSE;  
23 -import static cn.iocoder.yudao.module.pay.controller.app.wallet.vo.transaction.AppPayWalletTransactionPageReqVO.TYPE_INCOME;  
24 -  
25 -/**  
26 - * 钱包流水 Service 实现类  
27 - *  
28 - * @author jason  
29 - */  
30 -@Service  
31 -@Slf4j  
32 -@Validated  
33 -public class PayWalletTransactionServiceImpl implements PayWalletTransactionService {  
34 -  
35 - /**  
36 - * 钱包流水的 no 前缀  
37 - */  
38 - private static final String WALLET_NO_PREFIX = "W";  
39 -  
40 - @Resource  
41 - private PayWalletService payWalletService;  
42 - @Resource  
43 - private PayWalletTransactionMapper payWalletTransactionMapper;  
44 - @Resource  
45 - private PayNoRedisDAO noRedisDAO;  
46 -  
47 - @Override  
48 - public PageResult<PayWalletTransactionDO> getWalletTransactionPage(Long userId, Integer userType,  
49 - AppPayWalletTransactionPageReqVO pageVO) {  
50 - PayWalletDO wallet = payWalletService.getOrCreateWallet(userId, userType);  
51 - return payWalletTransactionMapper.selectPage(wallet.getId(), pageVO.getType(), pageVO, pageVO.getCreateTime());  
52 - }  
53 -  
54 - @Override  
55 - public PageResult<PayWalletTransactionDO> getWalletTransactionPage(PayWalletTransactionPageReqVO pageVO) {  
56 - // 基于 userId + userType 查询钱包  
57 - if (pageVO.getWalletId() == null  
58 - && ObjectUtil.isAllNotEmpty(pageVO.getUserId(), pageVO.getUserType())) {  
59 - PayWalletDO wallet = payWalletService.getOrCreateWallet(pageVO.getUserId(), pageVO.getUserType());  
60 - if (wallet != null) {  
61 - pageVO.setWalletId(wallet.getId());  
62 - }  
63 - }  
64 -  
65 - // 查询分页  
66 - return payWalletTransactionMapper.selectPage(pageVO.getWalletId(), null, pageVO, null);  
67 - }  
68 -  
69 - @Override  
70 - public PayWalletTransactionDO createWalletTransaction(WalletTransactionCreateReqBO bo) {  
71 - PayWalletTransactionDO transaction = PayWalletTransactionConvert.INSTANCE.convert(bo)  
72 - .setNo(noRedisDAO.generate(WALLET_NO_PREFIX));  
73 - payWalletTransactionMapper.insert(transaction);  
74 - return transaction;  
75 - }  
76 -  
77 - @Override  
78 - public PayWalletTransactionDO getWalletTransactionByNo(String no) {  
79 - return payWalletTransactionMapper.selectByNo(no);  
80 - }  
81 -  
82 - @Override  
83 - public PayWalletTransactionDO getWalletTransaction(String bizId, PayWalletBizTypeEnum type) {  
84 - return payWalletTransactionMapper.selectByBiz(bizId, type.getType());  
85 - }  
86 -  
87 - @Override  
88 - public AppPayWalletTransactionSummaryRespVO getWalletTransactionSummary(Long userId, Integer userType, LocalDateTime[] createTime) {  
89 - PayWalletDO wallet = payWalletService.getOrCreateWallet(userId, userType);  
90 - return new AppPayWalletTransactionSummaryRespVO()  
91 - .setTotalExpense(payWalletTransactionMapper.selectPriceSum(wallet.getId(), TYPE_EXPENSE, createTime))  
92 - .setTotalIncome(payWalletTransactionMapper.selectPriceSum(wallet.getId(), TYPE_INCOME, createTime));  
93 - }  
94 -  
95 -}  
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/bo/WalletTransactionCreateReqBO.java deleted
1 -package cn.iocoder.yudao.module.pay.service.wallet.bo;  
2 -  
3 -import cn.iocoder.yudao.framework.common.validation.InEnum;  
4 -import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;  
5 -import lombok.Data;  
6 -  
7 -import jakarta.validation.constraints.NotEmpty;  
8 -import jakarta.validation.constraints.NotNull;  
9 -  
10 -/**  
11 - * 创建钱包流水 BO  
12 - *  
13 - * @author jason  
14 - */  
15 -@Data  
16 -public class WalletTransactionCreateReqBO {  
17 -  
18 - /**  
19 - * 钱包编号  
20 - *  
21 - */  
22 - @NotNull(message = "钱包编号不能为空")  
23 - private Long walletId;  
24 -  
25 - /**  
26 - * 交易金额,单位分  
27 - *  
28 - * 正值表示余额增加,负值表示余额减少  
29 - */  
30 - @NotNull(message = "交易金额不能为空")  
31 - private Integer price;  
32 -  
33 - /**  
34 - * 交易后余额,单位分  
35 - */  
36 - @NotNull(message = "交易后余额不能为空")  
37 - private Integer balance;  
38 -  
39 - /**  
40 - * 关联业务分类  
41 - *  
42 - * 枚举 {@link PayWalletBizTypeEnum#getType()}  
43 - */  
44 - @NotNull(message = "关联业务分类不能为空")  
45 - @InEnum(PayWalletBizTypeEnum.class)  
46 - private Integer bizType;  
47 -  
48 - /**  
49 - * 关联业务编号  
50 - */  
51 - @NotEmpty(message = "关联业务编号不能为空")  
52 - private String bizId;  
53 -  
54 - /**  
55 - * 流水说明  
56 - */  
57 - @NotEmpty(message = "流水说明不能为空")  
58 - private String title;  
59 -}  
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/alipay/AlipayWapPayClientTest.java deleted
1 -package cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.alipay;  
2 -  
3 -import cn.hutool.http.Method;  
4 -import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderRespDTO;  
5 -import cn.iocoder.yudao.module.pay.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;  
6 -import cn.iocoder.yudao.module.pay.framework.pay.core.enums.PayOrderDisplayModeEnum;  
7 -import com.alipay.api.AlipayApiException;  
8 -import com.alipay.api.domain.AlipayTradeWapPayModel;  
9 -import com.alipay.api.request.AlipayTradeWapPayRequest;  
10 -import com.alipay.api.response.AlipayTradeWapPayResponse;  
11 -import org.junit.jupiter.api.BeforeEach;  
12 -import org.junit.jupiter.api.DisplayName;  
13 -import org.junit.jupiter.api.Test;  
14 -import org.mockito.ArgumentMatcher;  
15 -import org.mockito.InjectMocks;  
16 -  
17 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;  
18 -import static cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum.CLOSED;  
19 -import static cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum.WAITING;  
20 -import static org.junit.jupiter.api.Assertions.*;  
21 -import static org.junit.jupiter.api.Assertions.assertEquals;  
22 -import static org.mockito.ArgumentMatchers.argThat;  
23 -import static org.mockito.ArgumentMatchers.eq;  
24 -import static org.mockito.Mockito.when;  
25 -  
26 -/**  
27 - * {@link AlipayWapPayClient} 单元测试  
28 - *  
29 - * @author jason  
30 - */  
31 -public class AlipayWapPayClientTest extends AbstractAlipayClientTest {  
32 -  
33 - /**  
34 - * 支付宝 H5 支付 Client  
35 - */  
36 - @InjectMocks  
37 - private AlipayWapPayClient client = new AlipayWapPayClient(randomLongId(), config);  
38 -  
39 - @BeforeEach  
40 - public void setUp() {  
41 - setClient(client);  
42 - }  
43 -  
44 - @Test  
45 - @DisplayName("支付宝 H5 支付:下单成功")  
46 - public void testUnifiedOrder_success() throws AlipayApiException {  
47 - // mock 方法  
48 - String h5Body = randomString();  
49 - Integer price = randomInteger();  
50 - AlipayTradeWapPayResponse response = randomPojo(AlipayTradeWapPayResponse.class, o -> {  
51 - o.setSubCode("");  
52 - o.setBody(h5Body);  
53 - });  
54 - String notifyUrl = randomURL();  
55 - when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradeWapPayRequest>) request -> {  
56 - assertInstanceOf(AlipayTradeWapPayModel.class, request.getBizModel());  
57 - AlipayTradeWapPayModel bizModel = (AlipayTradeWapPayModel) request.getBizModel();  
58 - assertEquals(String.valueOf(price / 100.0), bizModel.getTotalAmount());  
59 - assertEquals(notifyUrl, request.getNotifyUrl());  
60 - return true;  
61 - }), eq(Method.GET.name()))).thenReturn(response);  
62 - // 准备请求参数  
63 - String outTradeNo = randomString();  
64 - PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(notifyUrl, outTradeNo, price);  
65 -  
66 - // 调用  
67 - PayOrderRespDTO resp = client.unifiedOrder(reqDTO);  
68 - // 断言  
69 - assertEquals(WAITING.getStatus(), resp.getStatus());  
70 - assertEquals(outTradeNo, resp.getOutTradeNo());  
71 - assertNull(resp.getChannelOrderNo());  
72 - assertNull(resp.getChannelUserId());  
73 - assertNull(resp.getSuccessTime());  
74 - assertEquals(PayOrderDisplayModeEnum.URL.getMode(), resp.getDisplayMode());  
75 - assertEquals(response.getBody(), resp.getDisplayContent());  
76 - assertSame(response, resp.getRawData());  
77 - assertNull(resp.getChannelErrorCode());  
78 - assertNull(resp.getChannelErrorMsg());  
79 - }  
80 -  
81 - @Test  
82 - @DisplayName("支付宝 H5 支付:渠道返回失败")  
83 - public void test_unified_order_channel_failed() throws AlipayApiException {  
84 - // mock 方法  
85 - String subCode = randomString();  
86 - String subMsg = randomString();  
87 - AlipayTradeWapPayResponse response = randomPojo(AlipayTradeWapPayResponse.class, o -> {  
88 - o.setSubCode(subCode);  
89 - o.setSubMsg(subMsg);  
90 - });  
91 - when(defaultAlipayClient.pageExecute(argThat((ArgumentMatcher<AlipayTradeWapPayRequest>) request -> true),  
92 - eq(Method.GET.name()))).thenReturn(response);  
93 - String outTradeNo = randomString();  
94 - PayOrderUnifiedReqDTO reqDTO = buildOrderUnifiedReqDTO(randomURL(), outTradeNo, randomInteger());  
95 -  
96 - // 调用  
97 - PayOrderRespDTO resp = client.unifiedOrder(reqDTO);  
98 - // 断言  
99 - assertEquals(CLOSED.getStatus(), resp.getStatus());  
100 - assertEquals(outTradeNo, resp.getOutTradeNo());  
101 - assertNull(resp.getChannelOrderNo());  
102 - assertNull(resp.getChannelUserId());  
103 - assertNull(resp.getSuccessTime());  
104 - assertNull(resp.getDisplayMode());  
105 - assertNull(resp.getDisplayContent());  
106 - assertSame(response, resp.getRawData());  
107 - assertEquals(subCode, resp.getChannelErrorCode());  
108 - assertEquals(subMsg, resp.getChannelErrorMsg());  
109 - }  
110 -  
111 -}  
yudao-module-pay/yudao-module-pay-biz/src/test/java/cn/iocoder/yudao/module/pay/framework/pay/core/client/impl/weixin/WxNativePayClientIntegrationTest.java deleted
1 -package cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.weixin;  
2 -  
3 -import cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils;  
4 -import cn.iocoder.yudao.framework.common.util.json.JsonUtils;  
5 -import com.github.binarywang.wxpay.bean.request.WxPayRefundV3Request;  
6 -import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request;  
7 -import com.github.binarywang.wxpay.bean.result.WxPayRefundV3Result;  
8 -import com.github.binarywang.wxpay.bean.result.enums.TradeTypeEnum;  
9 -import com.github.binarywang.wxpay.config.WxPayConfig;  
10 -import com.github.binarywang.wxpay.exception.WxPayException;  
11 -import com.github.binarywang.wxpay.service.WxPayService;  
12 -import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;  
13 -import org.junit.jupiter.api.Disabled;  
14 -import org.junit.jupiter.api.Test;  
15 -  
16 -import java.time.Duration;  
17 -  
18 -import static cn.iocoder.yudao.module.pay.framework.pay.core.client.impl.weixin.AbstractWxPayClient.formatDateV3;  
19 -  
20 -  
21 -/**  
22 - * {@link WxNativePayClient} 的集成测试,用于快速调试微信扫码支付  
23 - *  
24 - * @author 芋道源码  
25 - */  
26 -@Disabled  
27 -public class WxNativePayClientIntegrationTest {  
28 -  
29 - @Test  
30 - public void testPayV3() throws WxPayException {  
31 - // 创建 config 配置  
32 - WxPayConfig config = buildWxPayConfigV3();  
33 - // 创建 WxPayService 客户端  
34 - WxPayService client = new WxPayServiceImpl();  
35 - client.setConfig(config);  
36 -  
37 - // 执行发起支付  
38 - WxPayUnifiedOrderV3Request request = new WxPayUnifiedOrderV3Request()  
39 - .setOutTradeNo(String.valueOf(System.currentTimeMillis()))  
40 - .setDescription("测试支付-body")  
41 - .setAmount(new WxPayUnifiedOrderV3Request.Amount().setTotal(1)) // 单位分  
42 - .setTimeExpire(formatDateV3(LocalDateTimeUtils.addTime(Duration.ofMinutes(2))))  
43 - .setSceneInfo(new WxPayUnifiedOrderV3Request.SceneInfo().setPayerClientIp("127.0.0.1"))  
44 - .setNotifyUrl("http://127.0.0.1:48080");  
45 - System.out.println("========= request ==========");  
46 - System.out.println(JsonUtils.toJsonPrettyString(request));  
47 - String response = client.createOrderV3(TradeTypeEnum.NATIVE, request);  
48 - System.out.println("========= response ==========");  
49 - System.out.println(JsonUtils.toJsonPrettyString(response));  
50 - }  
51 -  
52 - @Test  
53 - public void testRefundV3() throws WxPayException {  
54 - // 创建 config 配置  
55 - WxPayConfig config = buildWxPayConfigV3();  
56 - // 创建 WxPayService 客户端  
57 - WxPayService client = new WxPayServiceImpl();  
58 - client.setConfig(config);  
59 -  
60 - // 执行发起退款  
61 - WxPayRefundV3Request request = new WxPayRefundV3Request()  
62 - .setOutTradeNo("1689545729695")  
63 - .setOutRefundNo(String.valueOf(System.currentTimeMillis()))  
64 - .setAmount(new WxPayRefundV3Request.Amount().setTotal(1).setRefund(1).setCurrency("CNY"))  
65 - .setReason("就是想退了");  
66 - System.out.println("========= request ==========");  
67 - System.out.println(JsonUtils.toJsonPrettyString(request));  
68 - WxPayRefundV3Result response = client.refundV3(request);  
69 - System.out.println("========= response ==========");  
70 - System.out.println(JsonUtils.toJsonPrettyString(response));  
71 - }  
72 -  
73 - private WxPayConfig buildWxPayConfigV3() {  
74 - WxPayConfig config = new WxPayConfig();  
75 - config.setAppId("wx62056c0d5e8db250");  
76 - config.setMchId("1545083881");  
77 - config.setApiV3Key("459arNsYHl1mgkiO6H9ZH5KkhFXSxaA4");  
78 -// config.setCertSerialNo(serialNo);  
79 - config.setPrivateCertPath("/Users/yunai/Downloads/wx_pay/apiclient_cert.pem");  
80 - config.setPrivateKeyPath("/Users/yunai/Downloads/wx_pay/apiclient_key.pem");  
81 - return config;  
82 - }  
83 -  
84 -}  
yudao-module-pay/yudao-module-pay-biz/src/test/resources/application-unit-test.yaml deleted
1 -spring:  
2 - main:  
3 - lazy-initialization: true # 开启懒加载,加快速度  
4 - banner-mode: off # 单元测试,禁用 Banner  
5 -  
6 ---- #################### 数据库相关配置 ####################  
7 -  
8 -spring:  
9 - # 数据源配置项  
10 - datasource:  
11 - name: ruoyi-vue-pro  
12 - url: jdbc:h2:mem:testdb;MODE=MYSQL;DATABASE_TO_UPPER=false;NON_KEYWORDS=value; # MODE 使用 MySQL 模式;DATABASE_TO_UPPER 配置表和字段使用小写  
13 - driver-class-name: org.h2.Driver  
14 - username: sa  
15 - password:  
16 - druid:  
17 - async-init: true # 单元测试,异步初始化 Druid 连接池,提升启动速度  
18 - initial-size: 1 # 单元测试,配置为 1,提升启动速度  
19 - sql:  
20 - init:  
21 - schema-locations: classpath:/sql/create_tables.sql  
22 -  
23 - # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优  
24 - data:  
25 - redis:  
26 - host: 127.0.0.1 # 地址  
27 - port: 16379 # 端口(单元测试,使用 16379 端口)  
28 - database: 0 # 数据库索引  
29 -  
30 -mybatis:  
31 - lazy-initialization: true # 单元测试,设置 MyBatis Mapper 延迟加载,加速每个单元测试  
32 -  
33 ---- #################### 定时任务相关配置 ####################  
34 -  
35 ---- #################### 配置中心相关配置 ####################  
36 -  
37 ---- #################### 服务保障相关配置 ####################  
38 -  
39 -# Lock4j 配置项(单元测试,禁用 Lock4j)  
40 -  
41 ---- #################### 监控相关配置 ####################  
42 -  
43 ---- #################### 芋道相关配置 ####################  
44 -  
45 -# 芋道配置项,设置当前项目所有自定义的配置  
46 -yudao:  
47 - info:  
48 - base-package: cn.iocoder.yudao.module  
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/socail/SocialUserController.java
@@ -4,11 +4,11 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; @@ -4,11 +4,11 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 6 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  7 +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
7 import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserBindReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserBindReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserPageReqVO;
9 import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserRespVO; 10 import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserRespVO;
10 import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserUnbindReqVO; 11 import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserUnbindReqVO;
11 -import cn.iocoder.yudao.module.system.convert.social.SocialUserConvert;  
12 import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO; 12 import cn.iocoder.yudao.module.system.dal.dataobject.social.SocialUserDO;
13 import cn.iocoder.yudao.module.system.service.social.SocialUserService; 13 import cn.iocoder.yudao.module.system.service.social.SocialUserService;
14 import io.swagger.v3.oas.annotations.Operation; 14 import io.swagger.v3.oas.annotations.Operation;
@@ -38,8 +38,8 @@ public class SocialUserController { @@ -38,8 +38,8 @@ public class SocialUserController {
38 @PostMapping("/bind") 38 @PostMapping("/bind")
39 @Operation(summary = "社交绑定,使用 code 授权码") 39 @Operation(summary = "社交绑定,使用 code 授权码")
40 public CommonResult<Boolean> socialBind(@RequestBody @Valid SocialUserBindReqVO reqVO) { 40 public CommonResult<Boolean> socialBind(@RequestBody @Valid SocialUserBindReqVO reqVO) {
41 - socialUserService.bindSocialUser(SocialUserConvert.INSTANCE.convert(  
42 - getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO)); 41 + socialUserService.bindSocialUser(BeanUtils.toBean(reqVO, SocialUserBindReqDTO.class)
  42 + .setUserId(getLoginUserId()).setUserType(UserTypeEnum.ADMIN.getValue()));
43 return CommonResult.success(true); 43 return CommonResult.success(true);
44 } 44 }
45 45
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/convert/social/SocialUserConvert.java deleted
1 -package cn.iocoder.yudao.module.system.convert.social;  
2 -  
3 -import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;  
4 -import cn.iocoder.yudao.module.system.controller.admin.socail.vo.user.SocialUserBindReqVO;  
5 -import org.mapstruct.Mapper;  
6 -import org.mapstruct.Mapping;  
7 -import org.mapstruct.factory.Mappers;  
8 -  
9 -@Mapper  
10 -public interface SocialUserConvert {  
11 -  
12 - SocialUserConvert INSTANCE = Mappers.getMapper(SocialUserConvert.class);  
13 -  
14 - @Mapping(source = "reqVO.type", target = "socialType")  
15 - SocialUserBindReqDTO convert(Long userId, Integer userType, SocialUserBindReqVO reqVO);  
16 -  
17 -}  
yudao-server/pom.xml
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 <!-- 支付服务。默认注释,保证编译速度 --> 54 <!-- 支付服务。默认注释,保证编译速度 -->
55 <!-- <dependency>--> 55 <!-- <dependency>-->
56 <!-- <groupId>cn.iocoder.boot</groupId>--> 56 <!-- <groupId>cn.iocoder.boot</groupId>-->
57 -<!-- <artifactId>yudao-module-pay-biz</artifactId>--> 57 +<!-- <artifactId>yudao-module-pay</artifactId>-->
58 <!-- <version>${revision}</version>--> 58 <!-- <version>${revision}</version>-->
59 <!-- </dependency>--> 59 <!-- </dependency>-->
60 60