Commit b757e1fccb31add36ca4718c8f9f332e6cd0a822

Authored by YunaiV
1 parent e7e3b187

多模块重构 7:pay 模块的初始化

Showing 160 changed files with 1290 additions and 1701 deletions

Too many changes.

To preserve performance only 100 of 160 files are displayed.

... ... @@ -18,6 +18,7 @@
18 18 <module>yudao-module-system</module>
19 19 <module>yudao-module-infra</module>
20 20 <module>yudao-module-tool</module>
  21 + <module>yudao-module-pay</module>
21 22 </modules>
22 23  
23 24 <name>${artifactId}</name>
... ...
yudao-admin-server/pom.xml
... ... @@ -37,6 +37,11 @@
37 37 <artifactId>yudao-module-infra-impl</artifactId>
38 38 <version>${revision}</version>
39 39 </dependency>
  40 + <dependency>
  41 + <groupId>cn.iocoder.boot</groupId>
  42 + <artifactId>yudao-module-pay-impl</artifactId>
  43 + <version>${revision}</version>
  44 + </dependency>
40 45  
41 46 <!-- 业务组件 -->
42 47 <dependency>
... ... @@ -71,11 +76,7 @@
71 76 <!-- <groupId>cn.iocoder.boot</groupId>-->
72 77 <!-- <artifactId>yudao-module-bpm-core-service-impl</artifactId>-->
73 78 <!-- </dependency>-->
74   - <!-- Web 相关 -->
75   - <dependency>
76   - <groupId>cn.iocoder.boot</groupId>
77   - <artifactId>yudao-spring-boot-starter-web</artifactId>
78   - </dependency>
  79 +
79 80 <!-- spring boot 配置所需依赖 -->
80 81 <dependency>
81 82 <groupId>org.springframework.boot</groupId>
... ... @@ -83,34 +84,6 @@
83 84 <optional>true</optional>
84 85 </dependency>
85 86  
86   - <dependency>
87   - <groupId>cn.iocoder.boot</groupId>
88   - <artifactId>yudao-spring-boot-starter-security</artifactId>
89   - </dependency>
90   -
91   - <!-- DB 相关 -->
92   - <dependency>
93   - <groupId>cn.iocoder.boot</groupId>
94   - <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
95   - </dependency>
96   -
97   - <dependency>
98   - <groupId>cn.iocoder.boot</groupId>
99   - <artifactId>yudao-spring-boot-starter-redis</artifactId>
100   - </dependency>
101   -
102   - <!-- Job 定时任务相关 -->
103   - <dependency>
104   - <groupId>cn.iocoder.boot</groupId>
105   - <artifactId>yudao-spring-boot-starter-job</artifactId>
106   - </dependency>
107   -
108   - <!-- 消息队列相关 -->
109   - <dependency>
110   - <groupId>cn.iocoder.boot</groupId>
111   - <artifactId>yudao-spring-boot-starter-mq</artifactId>
112   - </dependency>
113   -
114 87 <!-- 服务保障相关 -->
115 88 <dependency>
116 89 <groupId>cn.iocoder.boot</groupId>
... ... @@ -128,24 +101,6 @@
128 101 <artifactId>spring-boot-admin-starter-server</artifactId> <!-- 实现 Spring Boot Admin Server 服务端 -->
129 102 </dependency>
130 103  
131   - <!-- Test 测试相关 -->
132   - <dependency>
133   - <groupId>cn.iocoder.boot</groupId>
134   - <artifactId>yudao-spring-boot-starter-test</artifactId>
135   - <scope>test</scope>
136   - </dependency>
137   -
138   - <!-- 工具类相关 -->
139   - <dependency>
140   - <groupId>cn.iocoder.boot</groupId>
141   - <artifactId>yudao-spring-boot-starter-excel</artifactId>
142   - </dependency>
143   -
144   - <dependency>
145   - <groupId>org.apache.velocity</groupId>
146   - <artifactId>velocity-engine-core</artifactId>
147   - </dependency>
148   -
149 104 <!-- 三方云服务相关 -->
150 105  
151 106 <dependency>
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/dal/mysql/order/PayOrderExtensionMapper.java deleted
1   -package cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.order;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
4   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5   -import org.apache.ibatis.annotations.Mapper;
6   -
7   -/**
8   - * 支付订单 Mapper
9   - *
10   - * @author aquan
11   - */
12   -@Mapper
13   -public interface PayOrderExtensionMapper extends BaseMapperX<PayOrderExtensionDO> {
14   -
15   -
16   -}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/enums/PayErrorCodeConstants.java deleted
1   -package cn.iocoder.yudao.adminserver.modules.pay.enums;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/job/package-info.java deleted
1   -package cn.iocoder.yudao.adminserver.modules.pay.job;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/package-info.java deleted
1   -/**
2   - * pay 包下,我们放支付业务,提供业务的支付能力。
3   - * 例如说:商户、应用、支付、退款等等
4   - *
5   - * 缩写:pay
6   - */
7   -package cn.iocoder.yudao.adminserver.modules.pay;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/service/order/impl/PayOrderServiceImpl.java deleted
1   -package cn.iocoder.yudao.adminserver.modules.pay.service.order.impl;
2   -
3   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderExportReqVO;
4   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderPageReqVO;
5   -import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.order.PayOrderMapper;
6   -import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayOrderService;
7   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
8   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
9   -import org.springframework.stereotype.Service;
10   -import org.springframework.validation.annotation.Validated;
11   -
12   -import javax.annotation.Resource;
13   -import java.util.Collection;
14   -import java.util.List;
15   -
16   -/**
17   - * 支付订单 Service 实现类
18   - *
19   - * @author aquan
20   - */
21   -@Service
22   -@Validated
23   -public class PayOrderServiceImpl implements PayOrderService {
24   -
25   - @Resource
26   - private PayOrderMapper orderMapper;
27   -
28   - @Override
29   - public PayOrderDO getOrder(Long id) {
30   - return orderMapper.selectById(id);
31   - }
32   -
33   - @Override
34   - public PageResult<PayOrderDO> getOrderPage(PayOrderPageReqVO pageReqVO) {
35   - return orderMapper.selectPage(pageReqVO);
36   - }
37   -
38   - @Override
39   - public List<PayOrderDO> getOrderList(PayOrderExportReqVO exportReqVO) {
40   - return orderMapper.selectList(exportReqVO);
41   - }
42   -
43   - /**
44   - * 根据 ID 集合获取只包含商品名称的订单集合
45   - *
46   - * @param idList 订单 ID 集合
47   - * @return 只包含商品名称的订单集合
48   - */
49   - @Override
50   - public List<PayOrderDO> getOrderSubjectList(Collection<Long> idList) {
51   - return orderMapper.findByIdListQueryOrderSubject(idList);
52   - }
53   -
54   -}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/service/order/impl/PayRefundServiceImpl.java deleted
1   -package cn.iocoder.yudao.adminserver.modules.pay.service.order.impl;
2   -
3   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.PayRefundExportReqVO;
4   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.PayRefundPageReqVO;
5   -import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.order.PayRefundMapper;
6   -import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayRefundService;
7   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
8   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
9   -import org.springframework.stereotype.Service;
10   -import org.springframework.validation.annotation.Validated;
11   -
12   -import javax.annotation.Resource;
13   -import java.util.List;
14   -
15   -/**
16   - * 退款订单 Service 实现类
17   - *
18   - * @author aquan
19   - */
20   -@Service
21   -@Validated
22   -public class PayRefundServiceImpl implements PayRefundService {
23   -
24   - @Resource
25   - private PayRefundMapper refundMapper;
26   -
27   - @Override
28   - public PayRefundDO getRefund(Long id) {
29   - return refundMapper.selectById(id);
30   - }
31   -
32   - @Override
33   - public PageResult<PayRefundDO> getRefundPage(PayRefundPageReqVO pageReqVO) {
34   - return refundMapper.selectPage(pageReqVO);
35   - }
36   -
37   - @Override
38   - public List<PayRefundDO> getRefundList(PayRefundExportReqVO exportReqVO) {
39   - return refundMapper.selectList(exportReqVO);
40   - }
41   -
42   -}
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/pay/service/channel/PayChannelConfig.java deleted
1   -package cn.iocoder.yudao.adminserver.modules.pay.service.channel;
2   -
3   -import org.springframework.context.annotation.Bean;
4   -import org.springframework.context.annotation.Configuration;
5   -
6   -import javax.validation.Validation;
7   -import javax.validation.Validator;
8   -
9   -/**
10   - * 用于初始化 validator Bean 对象
11   - * @author aquan
12   - */
13   -@Configuration
14   -public class PayChannelConfig {
15   -
16   - @Bean
17   - public Validator validator(){
18   - return Validation.buildDefaultValidatorFactory().getValidator();
19   - }
20   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/convert/order/PayOrderCoreConvert.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.convert.order;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
5   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderCreateReqDTO;
6   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitReqDTO;
7   -import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
8   -import org.mapstruct.Mapper;
9   -import org.mapstruct.factory.Mappers;
10   -
11   -@Mapper
12   -public interface PayOrderCoreConvert {
13   -
14   - PayOrderCoreConvert INSTANCE = Mappers.getMapper(PayOrderCoreConvert.class);
15   -
16   - PayOrderDO convert(PayOrderCreateReqDTO bean);
17   -
18   - PayOrderExtensionDO convert(PayOrderSubmitReqDTO bean);
19   -
20   - PayOrderUnifiedReqDTO convert2(PayOrderSubmitReqDTO bean);
21   -
22   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/convert/order/PayRefundCoreConvert.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.convert.order;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
5   -import org.mapstruct.Mapper;
6   -import org.mapstruct.Mapping;
7   -import org.mapstruct.Mappings;
8   -import org.mapstruct.factory.Mappers;
9   -
10   -@Mapper
11   -public interface PayRefundCoreConvert {
12   -
13   - PayRefundCoreConvert INSTANCE = Mappers.getMapper(PayRefundCoreConvert.class);
14   -
15   - //TODO 太多需要处理了, 暂时不用
16   - @Mappings(value = {
17   - @Mapping(source = "amount", target = "payAmount"),
18   - @Mapping(source = "id", target = "orderId"),
19   - @Mapping(target = "status",ignore = true)
20   - })
21   - PayRefundDO convert(PayOrderDO orderDO);
22   -
23   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/convert/package-info.java deleted
1   -/**
2   - * 提供 POJO 类的实体转换
3   - *
4   - * 目前使用 MapStruct 框架
5   - */
6   -package cn.iocoder.yudao.coreservice.modules.pay.convert;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md deleted
1   -<http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao>
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/mysql/merchant/PayAppCoreMapper.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
4   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5   -import org.apache.ibatis.annotations.Mapper;
6   -
7   -@Mapper
8   -public interface PayAppCoreMapper extends BaseMapperX<PayAppDO> {
9   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/mysql/merchant/PayChannelCoreMapper.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
4   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5   -import org.apache.ibatis.annotations.Mapper;
6   -import org.apache.ibatis.annotations.Select;
7   -
8   -import java.util.Date;
9   -
10   -@Mapper
11   -public interface PayChannelCoreMapper extends BaseMapperX<PayChannelDO> {
12   -
13   - default PayChannelDO selectByAppIdAndCode(Long appId, String code) {
14   - return selectOne(PayChannelDO::getAppId, appId, PayChannelDO::getCode, code);
15   - }
16   -
17   - @Select("SELECT id FROM pay_channel WHERE update_time > #{maxUpdateTime} LIMIT 1")
18   - Long selectExistsByUpdateTimeAfter(Date maxUpdateTime);
19   -
20   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/mysql/order/PayOrderCoreMapper.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
5   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
6   -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7   -import org.apache.ibatis.annotations.Mapper;
8   -
9   -@Mapper
10   -public interface PayOrderCoreMapper extends BaseMapperX<PayOrderDO> {
11   -
12   - default PayOrderDO selectByAppIdAndMerchantOrderId(Long appId, String merchantOrderId) {
13   - return selectOne(new QueryWrapper<PayOrderDO>().eq("app_id", appId)
14   - .eq("merchant_order_id", merchantOrderId));
15   - }
16   -
17   - default int updateByIdAndStatus(Long id, Integer status, PayOrderDO update) {
18   - return update(update, new QueryWrapper<PayOrderDO>()
19   - .eq("id", id).eq("status", status));
20   - }
21   -
22   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/mysql/order/PayRefundCoreMapper.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
4   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5   -import org.apache.ibatis.annotations.Mapper;
6   -
7   -
8   -/**
9   - * 退款订单 Mapper
10   - *
11   - */
12   -@Mapper
13   -public interface PayRefundCoreMapper extends BaseMapperX<PayRefundDO> {
14   -
15   - default PayRefundDO selectByReqNo(String reqNo) {
16   - return selectOne("req_no", reqNo);
17   - }
18   -
19   - default PayRefundDO selectByTradeNoAndMerchantRefundNo(String tradeNo, String merchantRefundNo){
20   - return selectOne("trade_no", tradeNo, "merchant_refund_no", merchantRefundNo);
21   - }
22   -
23   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/package-info.java deleted
1   -/**
2   - * pay 包下,我们放支付业务,提供业务的支付能力。
3   - * 例如说:商户、应用、支付、退款等等
4   - *
5   - * 缩写:pay
6   - */
7   -package cn.iocoder.yudao.coreservice.modules.pay;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/merchant/PayAppCoreService.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.service.merchant;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
4   -import cn.iocoder.yudao.framework.common.exception.ServiceException;
5   -
6   -/**
7   - * 支付应用 Core Service 接口
8   - *
9   - * @author 芋道源码
10   - */
11   -public interface PayAppCoreService {
12   -
13   - /**
14   - * 支付应用的合法性
15   - *
16   - * 如果不合法,抛出 {@link ServiceException} 业务异常
17   - *
18   - * @param id 应用编号
19   - * @return 应用信息
20   - */
21   - PayAppDO validPayApp(Long id);
22   -
23   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/merchant/PayChannelCoreService.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.service.merchant;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
4   -import cn.iocoder.yudao.framework.common.exception.ServiceException;
5   -
6   -/**
7   - * 支付渠道 Core Service 接口
8   - *
9   - * @author 芋道源码
10   - */
11   -public interface PayChannelCoreService {
12   -
13   - /**
14   - * 初始化支付客户端
15   - */
16   - void initPayClients();
17   -
18   - /**
19   - * 支付渠道的合法性
20   - *
21   - * 如果不合法,抛出 {@link ServiceException} 业务异常
22   - *
23   - * @param id 渠道编号
24   - * @return 渠道信息
25   - */
26   - PayChannelDO validPayChannel(Long id);
27   -
28   - /**
29   - * 支付渠道的合法性
30   - *
31   - * 如果不合法,抛出 {@link ServiceException} 业务异常
32   - *
33   - * @param appId 应用编号
34   - * @param code 支付渠道
35   - * @return 渠道信息
36   - */
37   - PayChannelDO validPayChannel(Long appId, String code);
38   -
39   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/merchant/impl/PayAppCoreServiceImpl.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.service.merchant.impl;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant.PayAppCoreMapper;
5   -import cn.iocoder.yudao.coreservice.modules.pay.service.merchant.PayAppCoreService;
6   -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
7   -import lombok.extern.slf4j.Slf4j;
8   -import org.springframework.stereotype.Service;
9   -
10   -import javax.annotation.Resource;
11   -import javax.validation.Valid;
12   -
13   -import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
14   -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
15   -
16   -/**
17   - * 支付应用 Core Service 实现类
18   - *
19   - * @author 芋道源码
20   - */
21   -@Service
22   -@Valid
23   -@Slf4j
24   -public class PayAppCoreServiceImpl implements PayAppCoreService {
25   -
26   - @Resource
27   - private PayAppCoreMapper payAppCoreMapper;
28   -
29   - @Override
30   - public PayAppDO validPayApp(Long id) {
31   - PayAppDO app = payAppCoreMapper.selectById(id);
32   - // 校验是否存在
33   - if (app == null) {
34   - throw exception(PAY_APP_NOT_FOUND);
35   - }
36   - // 校验是否禁用
37   - if (CommonStatusEnum.DISABLE.getStatus().equals(app.getStatus())) {
38   - throw exception(PAY_APP_IS_DISABLE);
39   - }
40   - return app;
41   - }
42   -
43   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/merchant/impl/PayChannelCoreServiceImpl.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.service.merchant.impl;
2   -
3   -import cn.hutool.core.collection.CollUtil;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
5   -import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant.PayChannelCoreMapper;
6   -import cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants;
7   -import cn.iocoder.yudao.coreservice.modules.pay.service.merchant.PayChannelCoreService;
8   -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
9   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
10   -import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
11   -import lombok.extern.slf4j.Slf4j;
12   -import org.springframework.scheduling.annotation.Scheduled;
13   -import org.springframework.stereotype.Service;
14   -
15   -import javax.annotation.PostConstruct;
16   -import javax.annotation.Resource;
17   -import javax.validation.Valid;
18   -
19   -import java.util.Comparator;
20   -import java.util.Date;
21   -import java.util.List;
22   -
23   -import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
24   -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
25   -
26   -/**
27   - * 支付渠道 Core Service 实现类
28   - *
29   - * @author 芋道源码
30   - */
31   -@Service
32   -@Valid
33   -@Slf4j
34   -public class PayChannelCoreServiceImpl implements PayChannelCoreService {
35   -
36   - /**
37   - * 定时执行 {@link #schedulePeriodicRefresh()} 的周期
38   - * 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高
39   - */
40   - private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L;
41   -
42   - /**
43   - * 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新
44   - */
45   - private volatile Date maxUpdateTime;
46   -
47   - @Resource
48   - private PayChannelCoreMapper payChannelCoreMapper;
49   -
50   - @Resource
51   - private PayClientFactory payClientFactory;
52   -
53   - @Override
54   - @PostConstruct
55   - public void initPayClients() {
56   - // 获取支付渠道,如果有更新
57   - List<PayChannelDO> payChannels = this.loadPayChannelIfUpdate(maxUpdateTime);
58   - if (CollUtil.isEmpty(payChannels)) {
59   - return;
60   - }
61   -
62   - // 创建或更新支付 Client
63   - payChannels.forEach(payChannel -> payClientFactory.createOrUpdatePayClient(payChannel.getId(),
64   - payChannel.getCode(), payChannel.getConfig()));
65   -
66   - // 写入缓存
67   - assert payChannels.size() > 0; // 断言,避免告警
68   - maxUpdateTime = payChannels.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime();
69   - log.info("[initPayClients][初始化 PayChannel 数量为 {}]", payChannels.size());
70   - }
71   -
72   - @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)
73   - public void schedulePeriodicRefresh() {
74   - initPayClients();
75   - }
76   -
77   - /**
78   - * 如果支付渠道发生变化,从数据库中获取最新的全量支付渠道。
79   - * 如果未发生变化,则返回空
80   - *
81   - * @param maxUpdateTime 当前支付渠道的最大更新时间
82   - * @return 支付渠道列表
83   - */
84   - private List<PayChannelDO> loadPayChannelIfUpdate(Date maxUpdateTime) {
85   - // 第一步,判断是否要更新。
86   - if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
87   - log.info("[loadPayChannelIfUpdate][首次加载全量支付渠道]");
88   - } else { // 判断数据库中是否有更新的支付渠道
89   - if (payChannelCoreMapper.selectExistsByUpdateTimeAfter(maxUpdateTime) == null) {
90   - return null;
91   - }
92   - log.info("[loadPayChannelIfUpdate][增量加载全量支付渠道]");
93   - }
94   - // 第二步,如果有更新,则从数据库加载所有支付渠道
95   - return payChannelCoreMapper.selectList();
96   - }
97   -
98   - @Override
99   - public PayChannelDO validPayChannel(Long id) {
100   - PayChannelDO channel = payChannelCoreMapper.selectById(id);
101   - this.validPayChannel(channel);
102   - return channel;
103   - }
104   -
105   - @Override
106   - public PayChannelDO validPayChannel(Long appId, String code) {
107   - PayChannelDO channel = payChannelCoreMapper.selectByAppIdAndCode(appId, code);
108   - this.validPayChannel(channel);
109   - return channel;
110   - }
111   -
112   - private void validPayChannel(PayChannelDO channel) {
113   - if (channel == null) {
114   - throw exception(PAY_CHANNEL_NOT_FOUND);
115   - }
116   - if (CommonStatusEnum.DISABLE.getStatus().equals(channel.getStatus())) {
117   - throw exception(PayErrorCodeCoreConstants.PAY_CHANNEL_IS_DISABLE);
118   - }
119   - }
120   -
121   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/PayOrderCoreService.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.service.order;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
4   -
5   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.*;
6   -import cn.iocoder.yudao.framework.pay.core.client.dto.PayNotifyDataDTO;
7   -
8   -import javax.validation.Valid;
9   -
10   -/**
11   - * 支付订单 Core Service
12   - *
13   - * @author 芋道源码
14   - */
15   -public interface PayOrderCoreService {
16   -
17   - /**
18   - * 获得支付单
19   - *
20   - * @param id 支付单编号
21   - * @return 支付单
22   - */
23   - PayOrderDO getPayOrder(Long id);
24   -
25   - /**
26   - * 创建支付单
27   - *
28   - * @param reqDTO 创建请求
29   - * @return 支付单编号
30   - */
31   - Long createPayOrder(@Valid PayOrderCreateReqDTO reqDTO);
32   -
33   - /**
34   - * 提交支付
35   - * 此时,会发起支付渠道的调用
36   - *
37   - * @param reqDTO 提交请求
38   - * @return 提交结果
39   - */
40   - PayOrderSubmitRespDTO submitPayOrder(@Valid PayOrderSubmitReqDTO reqDTO);
41   -
42   - /**
43   - * 通知支付单成功
44   - *
45   - * @param channelId 渠道编号
46   - * @param notifyData 通知数据
47   - */
48   - void notifyPayOrder(Long channelId, PayNotifyDataDTO notifyData) throws Exception;
49   -
50   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/PayRefundCoreService.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.service.order;
2   -
3   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayRefundReqDTO;
4   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayRefundRespDTO;
5   -import cn.iocoder.yudao.framework.pay.core.client.dto.PayNotifyDataDTO;
6   -
7   -/**
8   - * 退款单 Core Service
9   - *
10   - * @author jason
11   - */
12   -public interface PayRefundCoreService {
13   -
14   - /**
15   - * 提交退款申请
16   - *
17   - * @param reqDTO 退款申请信息
18   - * @return 退款申请返回信息
19   - */
20   - PayRefundRespDTO submitRefundOrder(PayRefundReqDTO reqDTO);
21   -
22   - /**
23   - * 渠道的退款通知
24   - *
25   - * @param channelId 渠道编号
26   - * @param notifyData 通知数据
27   - * @throws Exception 退款通知异常
28   - */
29   - void notifyPayRefund(Long channelId, PayNotifyDataDTO notifyData) throws Exception;
30   -
31   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/order/impl/PayRefundCoreServiceImpl.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.service.order.impl;
2   -
3   -import cn.hutool.core.util.StrUtil;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
5   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
6   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
7   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
8   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
9   -import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order.PayOrderCoreMapper;
10   -import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order.PayOrderExtensionCoreMapper;
11   -import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order.PayRefundCoreMapper;
12   -import cn.iocoder.yudao.coreservice.modules.pay.enums.notify.PayNotifyTypeEnum;
13   -import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayOrderNotifyStatusEnum;
14   -import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayOrderStatusEnum;
15   -import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayRefundStatusEnum;
16   -import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayRefundTypeEnum;
17   -import cn.iocoder.yudao.coreservice.modules.pay.service.merchant.PayAppCoreService;
18   -import cn.iocoder.yudao.coreservice.modules.pay.service.merchant.PayChannelCoreService;
19   -import cn.iocoder.yudao.coreservice.modules.pay.service.notify.PayNotifyCoreService;
20   -import cn.iocoder.yudao.coreservice.modules.pay.service.notify.dto.PayNotifyTaskCreateReqDTO;
21   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.PayRefundCoreService;
22   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayRefundReqDTO;
23   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayRefundRespDTO;
24   -import cn.iocoder.yudao.framework.pay.core.client.PayClient;
25   -import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
26   -import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
27   -import cn.iocoder.yudao.framework.pay.core.client.dto.PayNotifyDataDTO;
28   -import cn.iocoder.yudao.framework.pay.core.client.dto.PayRefundNotifyDTO;
29   -import cn.iocoder.yudao.framework.pay.core.client.dto.PayRefundUnifiedReqDTO;
30   -import cn.iocoder.yudao.framework.pay.core.client.dto.PayRefundUnifiedRespDTO;
31   -import cn.iocoder.yudao.framework.pay.core.enums.PayNotifyRefundStatusEnum;
32   -import lombok.extern.slf4j.Slf4j;
33   -import org.springframework.stereotype.Service;
34   -import org.springframework.transaction.annotation.Transactional;
35   -
36   -import javax.annotation.Resource;
37   -import java.util.Date;
38   -import java.util.Objects;
39   -
40   -import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
41   -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
42   -
43   -@Service
44   -@Slf4j
45   -public class PayRefundCoreServiceImpl implements PayRefundCoreService {
46   -
47   - @Resource
48   - private PayOrderCoreMapper payOrderCoreMapper;
49   - @Resource
50   - private PayRefundCoreMapper payRefundCoreMapper;
51   - @Resource
52   - private PayOrderExtensionCoreMapper payOrderExtensionCoreMapper;
53   -
54   - @Resource
55   - private PayAppCoreService payAppCoreService;
56   - @Resource
57   - private PayChannelCoreService payChannelCoreService;
58   - @Resource
59   - private PayNotifyCoreService payNotifyCoreService;
60   -
61   - @Resource
62   - private PayClientFactory payClientFactory;
63   -
64   - @Override
65   - @Transactional(rollbackFor = Exception.class)
66   - public PayRefundRespDTO submitRefundOrder(PayRefundReqDTO req) {
67   - // 获得 PayOrderDO
68   - PayOrderDO order = payOrderCoreMapper.selectById(req.getPayOrderId());
69   - // 校验订单是否存在
70   - if (Objects.isNull(order) ) {
71   - throw exception(PAY_ORDER_NOT_FOUND);
72   - }
73   - // 校验 App
74   - PayAppDO app = payAppCoreService.validPayApp(order.getAppId());
75   - // 校验支付渠道是否有效
76   - PayChannelDO channel = payChannelCoreService.validPayChannel(order.getChannelId());
77   - // 校验支付客户端是否正确初始化
78   - PayClient client = payClientFactory.getPayClient(channel.getId());
79   - if (client == null) {
80   - log.error("[refund][渠道编号({}) 找不到对应的支付客户端]", channel.getId());
81   - throw exception(PAY_CHANNEL_CLIENT_NOT_FOUND);
82   - }
83   -
84   - // 校验退款的条件
85   - validatePayRefund(req, order);
86   - // 退款类型
87   - PayRefundTypeEnum refundType = PayRefundTypeEnum.SOME;
88   - if (Objects.equals(req.getAmount(), order.getAmount())) {
89   - refundType = PayRefundTypeEnum.ALL;
90   - }
91   - PayOrderExtensionDO orderExtensionDO = payOrderExtensionCoreMapper.selectById(order.getSuccessExtensionId());
92   - PayRefundDO payRefundDO = payRefundCoreMapper.selectByTradeNoAndMerchantRefundNo(orderExtensionDO.getNo(), req.getMerchantRefundId());
93   - if(Objects.nonNull(payRefundDO)){
94   - // 退款订单已经提交过。
95   - //TODO 校验相同退款单的金额
96   - // TODO @jason:咱要不封装一个 ObjectUtils.equalsAny
97   - if (Objects.equals(PayRefundStatusEnum.SUCCESS.getStatus(), payRefundDO.getStatus())
98   - || Objects.equals(PayRefundStatusEnum.CLOSE.getStatus(), payRefundDO.getStatus())) {
99   - //已成功退款
100   - throw exception(PAY_REFUND_SUCCEED);
101   - }
102   - //可以重复提交,保证 退款请求号 一致,由渠道保证幂等
103   - }else {
104   - // 成功,插入退款单 状态为生成.没有和渠道交互
105   - // TODO @jason:搞到 convert 里。一些额外的自动,手动 set 下;
106   - payRefundDO = PayRefundDO.builder().channelOrderNo(order.getChannelOrderNo())
107   - .appId(order.getAppId())
108   - .channelOrderNo(order.getChannelOrderNo())
109   - .channelCode(order.getChannelCode())
110   - .channelId(order.getChannelId())
111   - .merchantId(order.getMerchantId())
112   - .orderId(order.getId())
113   - .merchantRefundNo(req.getMerchantRefundId())
114   - .notifyUrl(app.getRefundNotifyUrl())
115   - .payAmount(order.getAmount())
116   - .refundAmount(req.getAmount())
117   - .userIp(req.getUserIp())
118   - .merchantOrderId(order.getMerchantOrderId())
119   - .tradeNo(orderExtensionDO.getNo())
120   - .status(PayRefundStatusEnum.CREATE.getStatus())
121   - .reason(req.getReason())
122   - .notifyStatus(PayOrderNotifyStatusEnum.NO.getStatus())
123   - .type(refundType.getStatus())
124   - .build();
125   - payRefundCoreMapper.insert(payRefundDO);
126   - }
127   - // TODO @jason:搞到 convert 里。一些额外的自动,手动 set 下;
128   - PayRefundUnifiedReqDTO unifiedReqDTO = new PayRefundUnifiedReqDTO();
129   - unifiedReqDTO.setUserIp(req.getUserIp())
130   - .setAmount(req.getAmount())
131   - .setChannelOrderNo(order.getChannelOrderNo())
132   - .setPayTradeNo(orderExtensionDO.getNo())
133   - .setMerchantRefundId(req.getMerchantRefundId())
134   - .setReason(req.getReason());
135   - // 向渠道发起退款申请
136   - PayCommonResult<PayRefundUnifiedRespDTO> refundUnifiedResult = client.unifiedRefund(unifiedReqDTO);
137   - // 检查是否失败,失败抛出业务异常。
138   - // TODO 渠道的异常记录。
139   - // TODO @jason:可以先打个 warn log 哈;
140   - refundUnifiedResult.checkError();
141   - // 成功在 退款回调中处理
142   - return PayRefundRespDTO.builder().refundId(payRefundDO.getId()).build();
143   - }
144   -
145   -
146   - @Override
147   - @Transactional(rollbackFor = Exception.class)
148   - public void notifyPayRefund(Long channelId, PayNotifyDataDTO notifyData) {
149   - log.info("[notifyPayRefund][channelId({}) 回调数据({})]", channelId, notifyData.getBody());
150   - // 校验支付渠道是否有效
151   - PayChannelDO channel = payChannelCoreService.validPayChannel(channelId);
152   - // 校验支付客户端是否正确初始化
153   - PayClient client = payClientFactory.getPayClient(channel.getId());
154   - if (client == null) {
155   - log.error("[notifyPayOrder][渠道编号({}) 找不到对应的支付客户端]", channel.getId());
156   - throw exception(PAY_CHANNEL_CLIENT_NOT_FOUND);
157   - }
158   - // 解析渠道退款通知数据, 统一处理
159   - PayRefundNotifyDTO refundNotify = client.parseRefundNotify(notifyData);
160   - if (Objects.equals(PayNotifyRefundStatusEnum.SUCCESS,refundNotify.getStatus())){
161   - payRefundSuccess(refundNotify);
162   - } else {
163   - //TODO 支付异常, 支付宝似乎没有支付异常的通知。
164   - // TODO @jason:那这里可以考虑打个 error logger @芋艿 微信是否存在支付异常通知
165   - }
166   - }
167   -
168   - private void payRefundSuccess(PayRefundNotifyDTO refundNotify) {
169   - // 校验退款单存在
170   - PayRefundDO refundDO = payRefundCoreMapper.selectByTradeNoAndMerchantRefundNo(refundNotify.getTradeNo(), refundNotify.getReqNo());
171   - if (refundDO == null) {
172   - log.error("[payRefundSuccess][不存在 seqNo 为{} 的支付退款单]", refundNotify.getReqNo());
173   - throw exception(PAY_REFUND_NOT_FOUND);
174   - }
175   -
176   - // 得到已退金额
177   - PayOrderDO payOrderDO = payOrderCoreMapper.selectById(refundDO.getOrderId());
178   - Long refundedAmount = payOrderDO.getRefundAmount();
179   -
180   - PayOrderStatusEnum orderStatus = PayOrderStatusEnum.SUCCESS;
181   - if(Objects.equals(payOrderDO.getAmount(), refundedAmount+ refundDO.getRefundAmount())){
182   - //支付金额 = 已退金额 + 本次退款金额。
183   - orderStatus = PayOrderStatusEnum.CLOSED;
184   - }
185   - // 更新支付订单
186   - PayOrderDO updateOrderDO = new PayOrderDO();
187   - updateOrderDO.setId(refundDO.getOrderId())
188   - .setRefundAmount(refundedAmount + refundDO.getRefundAmount())
189   - .setStatus(orderStatus.getStatus())
190   - .setRefundTimes(payOrderDO.getRefundTimes() + 1)
191   - .setRefundStatus(refundDO.getType());
192   - payOrderCoreMapper.updateById(updateOrderDO);
193   -
194   - // 更新退款订单
195   - PayRefundDO updateRefundDO = new PayRefundDO();
196   - updateRefundDO.setId(refundDO.getId())
197   - .setSuccessTime(refundNotify.getRefundSuccessTime())
198   - .setChannelRefundNo(refundNotify.getChannelOrderNo())
199   - .setTradeNo(refundNotify.getTradeNo())
200   - .setNotifyTime(new Date())
201   - .setStatus(PayRefundStatusEnum.SUCCESS.getStatus());
202   - payRefundCoreMapper.updateById(updateRefundDO);
203   -
204   - // 插入退款通知记录
205   - // TODO 通知商户成功或者失败. 现在通知似乎没有实现, 只是回调
206   - payNotifyCoreService.createPayNotifyTask(PayNotifyTaskCreateReqDTO.builder()
207   - .type(PayNotifyTypeEnum.REFUND.getType()).dataId(refundDO.getId()).build());
208   - }
209   -
210   - /**
211   - * 校验是否进行退款
212   - * @param req 退款申请信息
213   - * @param order 原始支付订单信息
214   - */
215   - private void validatePayRefund(PayRefundReqDTO req, PayOrderDO order) {
216   - // 校验状态,必须是支付状态
217   - if (!PayOrderStatusEnum.SUCCESS.getStatus().equals(order.getStatus())) {
218   - throw exception(PAY_ORDER_STATUS_IS_NOT_SUCCESS);
219   - }
220   - // 是否已经全额退款
221   - if (PayRefundTypeEnum.ALL.getStatus().equals(order.getRefundStatus())) {
222   - throw exception(PAY_REFUND_ALL_REFUNDED);
223   - }
224   - // 校验金额 退款金额不能大于 原定的金额
225   - if (req.getAmount() + order.getRefundAmount() > order.getAmount()){
226   - throw exception(PAY_REFUND_AMOUNT_EXCEED);
227   - }
228   - // 校验渠道订单号
229   - if (StrUtil.isEmpty(order.getChannelOrderNo())) {
230   - throw exception(PAY_REFUND_CHN_ORDER_NO_IS_NULL);
231   - }
232   - //TODO 退款的期限 退款次数的控制
233   - }
234   -
235   -}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/service/package-info.java deleted
1   -package cn.iocoder.yudao.coreservice.modules.pay.service;
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/enums/PayChannelEnum.java
... ... @@ -17,10 +17,7 @@ import lombok.Getter;
17 17 @AllArgsConstructor
18 18 public enum PayChannelEnum {
19 19  
20   - /**
21   - * 公众号网页
22   - */
23   - WX_PUB("wx_pub", "微信 JSAPI 支付", WXPayClientConfig.class),
  20 + WX_PUB("wx_pub", "微信 JSAPI 支付", WXPayClientConfig.class), // 公众号网页
24 21 WX_LITE("wx_lite", "微信小程序支付", WXPayClientConfig.class),
25 22 WX_APP("wx_app", "微信 App 支付", WXPayClientConfig.class),
26 23  
... ... @@ -34,16 +31,16 @@ public enum PayChannelEnum {
34 31 * <p>
35 32 * 参考 https://www.pingxx.com/api/支付渠道属性值.html
36 33 */
37   - private String code;
  34 + private final String code;
38 35 /**
39 36 * 名字
40 37 */
41   - private String name;
  38 + private final String name;
42 39  
43 40 /**
44 41 * 配置类
45 42 */
46   - private Class<? extends PayClientConfig> configClass;
  43 + private final Class<? extends PayClientConfig> configClass;
47 44  
48 45 /**
49 46 * 微信支付
... ... @@ -58,6 +55,6 @@ public enum PayChannelEnum {
58 55 public static PayChannelEnum getByCode(String code) {
59 56 return ArrayUtil.firstMatch(o -> o.getCode().equals(code), values());
60 57 }
61   -
  58 +
62 59  
63 60 }
... ...
yudao-module-pay/pom.xml 0 → 100644
  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</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-pay</artifactId>
  12 + <packaging>pom</packaging>
  13 + <modules>
  14 + <module>yudao-module-pay-api</module>
  15 + <module>yudao-module-pay-impl</module>
  16 + </modules>
  17 +
  18 + <name>${artifactId}</name>
  19 + <description>
  20 + pay 模块,我们放支付业务,提供业务的支付能力。
  21 + 例如说:商户、应用、支付、退款等等
  22 + </description>
  23 +
  24 +
  25 +</project>
... ...
yudao-module-pay/yudao-module-pay-api/pom.xml 0 → 100644
  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>1.4.0-snapshot</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-pay-api</artifactId>
  12 + <packaging>jar</packaging>
  13 +
  14 + <name>${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 + </dependencies>
  25 +
  26 +</project>
... ...
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/DictTypeConstants.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.enums;
  2 +
  3 +/**
  4 + * Pay 字典类型的枚举类
  5 + *
  6 + * @author 芋道源码
  7 + */
  8 +public interface DictTypeConstants {
  9 +
  10 + /**
  11 + * 支付-订单-订单状态
  12 + */
  13 + String PAY_ORDER_STATUS = "pay_order_status";
  14 +
  15 + /**
  16 + * 支付-订单-订单回调商户状态
  17 + */
  18 + String PAY_ORDER_NOTIFY_STATUS = "pay_order_notify_status";
  19 +
  20 + /**
  21 + * 支付-订单-订单退款状态
  22 + */
  23 + String PAY_ORDER_REFUND_STATUS = "pay_order_refund_status";
  24 +
  25 + /**
  26 + * 支付-退款订单-退款状态
  27 + */
  28 + String PAY_REFUND_ORDER_STATUS = "pay_refund_order_status";
  29 +
  30 + /**
  31 + * 支付-退款订单-退款类别
  32 + */
  33 + String PAY_REFUND_ORDER_TYPE = "pay_refund_order_type";
  34 +
  35 +}
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/enums/PayErrorCodeCoreConstants.java renamed to yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/ErrorCodeConstants.java
1   -package cn.iocoder.yudao.coreservice.modules.pay.enums;
  1 +package cn.iocoder.yudao.module.pay.enums;
2 2  
3 3 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
4 4  
... ... @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
7 7 *
8 8 * pay 系统,使用 1-007-000-000 段
9 9 */
10   -public interface PayErrorCodeCoreConstants {
  10 +public interface ErrorCodeConstants {
11 11  
12 12 /**
13 13 * ========== APP 模块 1-007-000-000 ==========
... ...
yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay;
... ...
yudao-module-pay/yudao-module-pay-impl/pom.xml 0 → 100644
  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>1.4.0-snapshot</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-pay-impl</artifactId>
  12 + <packaging>jar</packaging>
  13 +
  14 + <name>${artifactId}</name>
  15 + <description>
  16 + pay 模块,我们放支付业务,提供业务的支付能力。
  17 + 例如说:商户、应用、支付、退款等等
  18 + </description>
  19 +
  20 + <dependencies>
  21 + <dependency>
  22 + <groupId>cn.iocoder.boot</groupId>
  23 + <artifactId>yudao-module-pay-api</artifactId>
  24 + <version>${revision}</version>
  25 + </dependency>
  26 +
  27 + <!-- 业务组件 -->
  28 + <dependency>
  29 + <groupId>cn.iocoder.boot</groupId>
  30 + <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
  31 + </dependency>
  32 + <dependency>
  33 + <groupId>cn.iocoder.boot</groupId>
  34 + <artifactId>yudao-spring-boot-starter-biz-pay</artifactId>
  35 + </dependency>
  36 +
  37 + <!-- Web 相关 -->
  38 + <dependency>
  39 + <groupId>cn.iocoder.boot</groupId>
  40 + <artifactId>yudao-spring-boot-starter-security</artifactId>
  41 + </dependency>
  42 +
  43 + <!-- DB 相关 -->
  44 + <dependency>
  45 + <groupId>cn.iocoder.boot</groupId>
  46 + <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
  47 + </dependency>
  48 +
  49 + <dependency>
  50 + <groupId>cn.iocoder.boot</groupId>
  51 + <artifactId>yudao-spring-boot-starter-redis</artifactId>
  52 + </dependency>
  53 +
  54 + <!-- Job 定时任务相关 -->
  55 + <dependency>
  56 + <groupId>cn.iocoder.boot</groupId>
  57 + <artifactId>yudao-spring-boot-starter-job</artifactId>
  58 + </dependency>
  59 +
  60 + <!-- 消息队列相关 -->
  61 + <dependency>
  62 + <groupId>cn.iocoder.boot</groupId>
  63 + <artifactId>yudao-spring-boot-starter-mq</artifactId>
  64 + </dependency>
  65 +
  66 + <!-- Test 测试相关 -->
  67 + <dependency>
  68 + <groupId>cn.iocoder.boot</groupId>
  69 + <artifactId>yudao-spring-boot-starter-test</artifactId>
  70 + <scope>test</scope>
  71 + </dependency>
  72 +
  73 + <!-- 工具类相关 -->
  74 + <dependency>
  75 + <groupId>cn.iocoder.boot</groupId>
  76 + <artifactId>yudao-spring-boot-starter-excel</artifactId>
  77 + </dependency>
  78 +
  79 + </dependencies>
  80 +
  81 + <build>
  82 + <!-- 设置构建的 jar 包名 -->
  83 + <finalName>${artifactId}</finalName>
  84 + <plugins>
  85 + <!-- 打包 -->
  86 + <plugin>
  87 + <groupId>org.springframework.boot</groupId>
  88 + <artifactId>spring-boot-maven-plugin</artifactId>
  89 + <configuration>
  90 + <fork>true</fork>
  91 + </configuration>
  92 + <executions>
  93 + <execution>
  94 + <goals>
  95 + <goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
  96 + </goals>
  97 + </execution>
  98 + </executions>
  99 + </plugin>
  100 + </plugins>
  101 + </build>
  102 +
  103 +</project>
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/PayAppController.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/PayAppController.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
4   -import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*;
5   -import cn.iocoder.yudao.adminserver.modules.pay.convert.app.PayAppConvert;
6   -import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
7   -import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
8   -import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
9   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
10   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
11   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
12 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
13 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
15 7 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
16 8 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
17 9 import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
  10 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app.*;
  11 +import cn.iocoder.yudao.module.pay.convert.app.PayAppConvert;
  12 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
  13 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
  14 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
  15 +import cn.iocoder.yudao.module.pay.service.merchant.PayAppService;
  16 +import cn.iocoder.yudao.module.pay.service.merchant.PayChannelService;
  17 +import cn.iocoder.yudao.module.pay.service.merchant.PayMerchantService;
18 18 import io.swagger.annotations.Api;
19 19 import io.swagger.annotations.ApiImplicitParam;
20 20 import io.swagger.annotations.ApiOperation;
... ... @@ -33,7 +33,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
33 33 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
34 34  
35 35 @Slf4j
36   -@Api(tags = "支付应用信息")
  36 +@Api(tags = "管理后台 - 支付应用信息")
37 37 @RestController
38 38 @RequestMapping("/pay/app")
39 39 @Validated
... ... @@ -106,7 +106,7 @@ public class PayAppController {
106 106 return success(new PageResult<>(pageResult.getTotal()));
107 107 }
108 108  
109   - // 得到所有的应用编号,查出所有的通道
  109 + // 得到所有的应用编号,查出所有的渠道
110 110 Collection<Long> payAppIds = CollectionUtils.convertList(pageResult.getList(), PayAppDO::getId);
111 111 List<PayChannelDO> channels = channelService.getChannelListByAppIds(payAppIds);
112 112 // TODO @aquan:可以基于 appId 简历一个 multiMap。这样下面,直接 get 到之后,CollUtil buildSet 即可
... ... @@ -116,7 +116,7 @@ public class PayAppController {
116 116 Collection<Long> merchantIds = CollectionUtils.convertList(pageResult.getList(), PayAppDO::getMerchantId);
117 117 Map<Long, PayMerchantDO> deptMap = merchantService.getMerchantMap(merchantIds);
118 118  
119   - // 利用反射将通道数据复制到返回的数据结构中去
  119 + // 利用反射将渠道数据复制到返回的数据结构中去
120 120 List<PayAppPageItemRespVO> appList = new ArrayList<>(pageResult.getList().size());
121 121 pageResult.getList().forEach(app -> {
122 122 // 写入应用信息的数据
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/PayChannelController.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/PayChannelController.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.channel;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
4   -import cn.iocoder.yudao.adminserver.modules.pay.convert.channel.PayChannelConvert;
5   -import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
6   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
  3 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.*;
  4 +import cn.iocoder.yudao.module.pay.convert.channel.PayChannelConvert;
  5 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
  6 +import cn.iocoder.yudao.module.pay.service.merchant.PayChannelService;
7 7 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
8 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 9 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
... ... @@ -26,11 +26,7 @@ import java.util.List;
26 26 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
27 27 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
28 28  
29   -/**
30   - * 支付渠道 controller 组件
31   - * @author aquan
32   - */
33   -@Api(tags = "支付渠道")
  29 +@Api(tags = "管理后台 - 支付渠道")
34 30 @RestController
35 31 @RequestMapping("/pay/channel")
36 32 @Validated
... ... @@ -39,7 +35,6 @@ public class PayChannelController {
39 35 @Resource
40 36 private PayChannelService channelService;
41 37  
42   -
43 38 @PostMapping("/create")
44 39 @ApiOperation("创建支付渠道 ")
45 40 @PreAuthorize("@ss.hasPermission('pay:channel:create')")
... ... @@ -116,7 +111,6 @@ public class PayChannelController {
116 111 @PreAuthorize("@ss.hasPermission('pay:channel:query')")
117 112 public CommonResult<PayChannelRespVO> getChannel(
118 113 @RequestParam Long merchantId, @RequestParam Long appId, @RequestParam String code) {
119   -
120 114 // 獲取渠道
121 115 PayChannelDO channel = channelService.getChannelByConditions(merchantId, appId, code);
122 116 if (channel == null) {
... ... @@ -126,4 +120,5 @@ public class PayChannelController {
126 120 PayChannelRespVO respVo = PayChannelConvert.INSTANCE.convert(channel);
127 121 return success(respVo);
128 122 }
  123 +
129 124 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/PayMerchantController.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/PayMerchantController.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.*;
4   -import cn.iocoder.yudao.adminserver.modules.pay.convert.merchant.PayMerchantConvert;
5   -import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
6   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
  3 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.*;
  4 +import cn.iocoder.yudao.module.pay.convert.merchant.PayMerchantConvert;
  5 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
  6 +import cn.iocoder.yudao.module.pay.service.merchant.PayMerchantService;
7 7 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
8 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 9 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppBaseVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppBaseVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
2 2  
3 3 import lombok.*;
4 4 import io.swagger.annotations.*;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppCreateReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppCreateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
2 2  
3 3 import lombok.*;
4   -import java.util.*;
5 4 import io.swagger.annotations.*;
6   -import javax.validation.constraints.*;
7 5  
8   -@ApiModel("支付应用信息创建 Request VO")
  6 +@ApiModel("管理后台 - 支付应用信息创建 Request VO")
9 7 @Data
10 8 @EqualsAndHashCode(callSuper = true)
11 9 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppExcelVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExcelVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
2   -
3   -import lombok.*;
4   -import java.util.*;
5   -import io.swagger.annotations.*;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
6 2  
7 3 import com.alibaba.excel.annotation.ExcelProperty;
  4 +import lombok.Data;
  5 +
  6 +import java.util.Date;
8 7  
9 8 /**
10 9 * 支付应用信息 Excel VO
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppExportReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppExportReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ... @@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
8 8  
9 9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
10 10  
11   -@ApiModel(value = "支付应用信息 Excel 导出 Request VO", description = "参数和 PayAppPageReqVO 是一致的")
  11 +@ApiModel(value = "管理后台 - 支付应用信息 Excel 导出 Request VO", description = "参数和 PayAppPageReqVO 是一致的")
12 12 @Data
13 13 public class PayAppExportReqVO {
14 14  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppPageItemRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageItemRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -9,12 +9,7 @@ import lombok.ToString;
9 9 import java.util.Date;
10 10 import java.util.Set;
11 11  
12   -/**
13   - * 支付应用信息分页查询 Response VO
14   - *
15   - * @author aquan
16   - */
17   -@ApiModel(value = "支付应用信息分页查询 Response VO", description = "相比于支付信息,还会多出应用渠道的开关信息")
  12 +@ApiModel(value = "管理后台 - 支付应用信息分页查询 Response VO", description = "相比于支付信息,还会多出应用渠道的开关信息")
18 13 @Data
19 14 @EqualsAndHashCode(callSuper = true)
20 15 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppPageReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppPageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ... @@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
8 8  
9 9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
10 10  
11   -@ApiModel("支付应用信息分页 Request VO")
  11 +@ApiModel("管理后台 - 支付应用信息分页 Request VO")
12 12 @Data
13 13 @EqualsAndHashCode(callSuper = true)
14 14 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
5 5 import io.swagger.annotations.*;
6 6  
7   -@ApiModel("支付应用信息 Response VO")
  7 +@ApiModel("管理后台 - 支付应用信息 Response VO")
8 8 @Data
9 9 @EqualsAndHashCode(callSuper = true)
10 10 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppUpdateReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
2 2  
3 3 import lombok.*;
4   -import java.util.*;
5 4 import io.swagger.annotations.*;
6 5 import javax.validation.constraints.*;
7 6  
8   -@ApiModel("支付应用信息更新 Request VO")
  7 +@ApiModel("管理后台 - 支付应用信息更新 Request VO")
9 8 @Data
10 9 @EqualsAndHashCode(callSuper = true)
11 10 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/app/vo/PayAppUpdateStatusReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/app/PayAppUpdateStatusReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -6,7 +6,7 @@ import lombok.Data;
6 6  
7 7 import javax.validation.constraints.NotNull;
8 8  
9   -@ApiModel("应用更新状态 Request VO")
  9 +@ApiModel("管理后台 - 应用更新状态 Request VO")
10 10 @Data
11 11 public class PayAppUpdateStatusReqVO {
12 12  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayChannelBaseVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelBaseVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
2 2  
3 3 import lombok.*;
4   -import java.util.*;
5 4 import io.swagger.annotations.*;
6 5 import javax.validation.constraints.*;
7 6  
8 7 /**
9   -* 支付渠道
10   - Base VO,提供给添加、修改、详细的子 VO 使用
  8 +* 支付渠道 Base VO,提供给添加、修改、详细的子 VO 使用
11 9 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
12 10 */
13 11 @Data
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayChannelCreateReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelCreateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -8,14 +8,14 @@ import lombok.ToString;
8 8  
9 9 import javax.validation.constraints.NotBlank;
10 10  
11   -@ApiModel("支付渠道 创建 Request VO")
  11 +@ApiModel("管理后台 - 支付渠道 创建 Request VO")
12 12 @Data
13 13 @EqualsAndHashCode(callSuper = true)
14 14 @ToString(callSuper = true)
15 15 public class PayChannelCreateReqVO extends PayChannelBaseVO {
16 16  
17   - @ApiModelProperty(value = "通道配置的 json 字符串")
18   - @NotBlank(message = "通道配置不能为空")
  17 + @ApiModelProperty(value = "渠道配置的 json 字符串")
  18 + @NotBlank(message = "渠道配置不能为空")
19 19 private String config;
20 20  
21 21 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayChannelExcelVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExcelVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ... @@ -7,8 +7,7 @@ import io.swagger.annotations.*;
7 7 import com.alibaba.excel.annotation.ExcelProperty;
8 8  
9 9 /**
10   - * 支付渠道
11   - Excel VO
  10 + * 支付渠道 Excel VO
12 11 *
13 12 * @author 芋艿
14 13 */
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayChannelExportReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelExportReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ... @@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
8 8  
9 9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
10 10  
11   -@ApiModel(value = "支付渠道 Excel 导出 Request VO", description = "参数和 PayChannelPageReqVO 是一致的")
  11 +@ApiModel(value = "管理后台 - 支付渠道 Excel 导出 Request VO", description = "参数和 PayChannelPageReqVO 是一致的")
12 12 @Data
13 13 public class PayChannelExportReqVO {
14 14  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayChannelPageReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelPageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ... @@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
8 8  
9 9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
10 10  
11   -@ApiModel("支付渠道 分页 Request VO")
  11 +@ApiModel("管理后台 - 支付渠道 分页 Request VO")
12 12 @Data
13 13 @EqualsAndHashCode(callSuper = true)
14 14 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayChannelRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
5 5 import io.swagger.annotations.*;
6 6  
7   -@ApiModel("支付渠道 Response VO")
  7 +@ApiModel("管理后台 - 支付渠道 Response VO")
8 8 @Data
9 9 @EqualsAndHashCode(callSuper = true)
10 10 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/channel/vo/PayChannelUpdateReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/channel/PayChannelUpdateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
2 2  
3 3 import lombok.*;
4   -import java.util.*;
5 4 import io.swagger.annotations.*;
6 5 import javax.validation.constraints.*;
7 6  
8   -@ApiModel("支付渠道 更新 Request VO")
  7 +@ApiModel("管理后台 - 支付渠道 更新 Request VO")
9 8 @Data
10 9 @EqualsAndHashCode(callSuper = true)
11 10 @ToString(callSuper = true)
... ... @@ -15,7 +14,7 @@ public class PayChannelUpdateReqVO extends PayChannelBaseVO {
15 14 @NotNull(message = "商户编号不能为空")
16 15 private Long id;
17 16  
18   - @ApiModelProperty(value = "通道配置的json字符串")
19   - @NotBlank(message = "通道配置不能为空")
  17 + @ApiModelProperty(value = "渠道配置的json字符串")
  18 + @NotBlank(message = "渠道配置不能为空")
20 19 private String config;
21 20 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/vo/PayMerchantBaseVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantBaseVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
2 2  
3 3 import io.swagger.annotations.ApiModelProperty;
4 4 import lombok.Data;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/vo/PayMerchantCreateReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantCreateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
2 2  
3 3 import lombok.*;
4   -import java.util.*;
5 4 import io.swagger.annotations.*;
6   -import javax.validation.constraints.*;
7 5  
8   -@ApiModel("支付商户信息创建 Request VO")
  6 +@ApiModel("管理后台 - 支付商户信息创建 Request VO")
9 7 @Data
10 8 @EqualsAndHashCode(callSuper = true)
11 9 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/vo/PayMerchantExcelVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExcelVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
2 2  
3 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/vo/PayMerchantExportReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantExportReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ... @@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
8 8  
9 9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
10 10  
11   -@ApiModel(value = "支付商户信息 Excel 导出 Request VO", description = "参数和 PayMerchantPageReqVO 是一致的")
  11 +@ApiModel(value = "管理后台 - 支付商户信息 Excel 导出 Request VO", description = "参数和 PayMerchantPageReqVO 是一致的")
12 12 @Data
13 13 public class PayMerchantExportReqVO {
14 14  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/vo/PayMerchantPageReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantPageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
2 2  
3 3 import lombok.*;
4 4 import java.util.*;
... ... @@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
8 8  
9 9 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
10 10  
11   -@ApiModel("支付商户信息分页 Request VO")
  11 +@ApiModel("管理后台 - 支付商户信息分页 Request VO")
12 12 @Data
13 13 @EqualsAndHashCode(callSuper = true)
14 14 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/vo/PayMerchantRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -8,7 +8,7 @@ import lombok.ToString;
8 8  
9 9 import java.util.Date;
10 10  
11   -@ApiModel("支付商户信息 Response VO")
  11 +@ApiModel("管理后台 - 支付商户信息 Response VO")
12 12 @Data
13 13 @EqualsAndHashCode(callSuper = true)
14 14 @ToString(callSuper = true)
... ... @@ -20,11 +20,7 @@ public class PayMerchantRespVO extends PayMerchantBaseVO {
20 20 @ApiModelProperty(value = "创建时间", required = true)
21 21 private Date createTime;
22 22  
23   - /**
24   - * 商户号
25   - * 例如说,M233666999
26   - * 只有新增时插入,不允许修改
27   - */
  23 + @ApiModelProperty(value = "商户号", required = true, example = "M233666999")
28 24 private String no;
29 25  
30 26 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/vo/PayMerchantUpdateReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
2 2  
3 3 import lombok.*;
4   -import java.util.*;
5 4 import io.swagger.annotations.*;
6 5 import javax.validation.constraints.*;
7 6  
8   -@ApiModel("支付商户信息更新 Request VO")
  7 +@ApiModel("管理后台 - 支付商户信息更新 Request VO")
9 8 @Data
10 9 @EqualsAndHashCode(callSuper = true)
11 10 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/merchant/vo/PayMerchantUpdateStatusReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/merchant/vo/merchant/PayMerchantUpdateStatusReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -6,7 +6,7 @@ import lombok.Data;
6 6  
7 7 import javax.validation.constraints.NotNull;
8 8  
9   -@ApiModel("商户更新状态 Request VO")
  9 +@ApiModel("管理后台 - 商户更新状态 Request VO")
10 10 @Data
11 11 public class PayMerchantUpdateStatusReqVO {
12 12  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/PayOrderController.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/PayOrderController.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.order;
2 2  
3 3 import cn.hutool.core.collection.CollectionUtil;
4 4 import cn.hutool.core.util.ObjectUtil;
5   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.*;
6   -import cn.iocoder.yudao.adminserver.modules.pay.convert.order.PayOrderConvert;
7   -import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
8   -import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
9   -import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayOrderExtensionService;
10   -import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayOrderService;
11   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
12   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
13   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
14   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.order.vo.*;
  6 +import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
  7 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
  8 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
  9 +import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
  10 +import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
  11 +import cn.iocoder.yudao.module.pay.service.merchant.PayAppService;
  12 +import cn.iocoder.yudao.module.pay.service.merchant.PayMerchantService;
  13 +import cn.iocoder.yudao.module.pay.service.order.PayOrderExtensionService;
  14 +import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
15 15 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
16 16 import cn.iocoder.yudao.framework.common.pojo.PageResult;
17 17 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
... ... @@ -39,38 +39,18 @@ import java.util.Map;
39 39 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
40 40 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
41 41  
42   -/**
43   - * 支付订单 controller 组件
44   - *
45   - * @author aquan
46   - */
47   -@Api(tags = "支付订单")
  42 +@Api(tags = "管理后台 - 支付订单")
48 43 @RestController
49 44 @RequestMapping("/pay/order")
50 45 @Validated
51 46 public class PayOrderController {
52 47  
53   - /**
54   - * 订单 service 组件
55   - */
56 48 @Resource
57 49 private PayOrderService orderService;
58   -
59   - /**
60   - * 订单扩展 service 组件
61   - */
62 50 @Resource
63 51 private PayOrderExtensionService orderExtensionService;
64   -
65   - /**
66   - * 商户 service 组件
67   - */
68 52 @Resource
69 53 private PayMerchantService merchantService;
70   -
71   - /**
72   - * 应用 service 组件
73   - */
74 54 @Resource
75 55 private PayAppService appService;
76 56  
... ... @@ -88,6 +68,7 @@ public class PayOrderController {
88 68 PayAppDO appDO = appService.getApp(order.getAppId());
89 69 PayChannelEnum channelEnum = PayChannelEnum.getByCode(order.getChannelCode());
90 70  
  71 + // TODO @aquan:文案,都是前端 format;
91 72 PayOrderDetailsRespVO respVO = PayOrderConvert.INSTANCE.orderDetailConvert(order);
92 73 respVO.setMerchantName(ObjectUtil.isNotNull(merchantDO) ? merchantDO.getName() : "未知商户");
93 74 respVO.setAppName(ObjectUtil.isNotNull(appDO) ? appDO.getName() : "未知应用");
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderBaseVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderBaseVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
2 2  
3 3 import io.swagger.annotations.ApiModelProperty;
4 4 import lombok.Data;
... ... @@ -10,8 +10,7 @@ import java.util.Date;
10 10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
11 11  
12 12 /**
13   - * 支付订单
14   - * Base VO,提供给添加、修改、详细的子 VO 使用
  13 + * 支付订单 Base VO,提供给添加、修改、详细的子 VO 使用
15 14 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
16 15 *
17 16 * @author aquan
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderDetailsRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderDetailsRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -8,12 +8,7 @@ import lombok.ToString;
8 8  
9 9 import java.util.Date;
10 10  
11   -/**
12   - * 支付订单详细信息,由支付订单和支付订单扩展信息组成
13   - *
14   - * @author aquan
15   - */
16   -@ApiModel("支付订单详细信息 Response VO")
  11 +@ApiModel("管理后台 - 支付订单详细信息 Response VO")
17 12 @Data
18 13 @EqualsAndHashCode(callSuper = true)
19 14 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderExcelVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExcelVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
2 2  
3   -import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
4 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
5 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
  5 +import cn.iocoder.yudao.module.pay.enums.DictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderExportReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderExportReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -9,11 +9,7 @@ import java.util.Date;
9 9  
10 10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
11 11  
12   -/**
13   - * 支付订单 Excel 导出 Request VO
14   - * @author aquan
15   - */
16   -@ApiModel(value = "支付订单 Excel 导出 Request VO", description = "参数和 PayOrderPageReqVO 是一致的")
  12 +@ApiModel(value = "管理后台 - 支付订单 Excel 导出 Request VO", description = "参数和 PayOrderPageReqVO 是一致的")
17 13 @Data
18 14 public class PayOrderExportReqVO {
19 15  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderPageItemRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageItemRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -8,12 +8,7 @@ import lombok.ToString;
8 8  
9 9 import java.util.Date;
10 10  
11   -/**
12   - * 支付订单分页 Request VO
13   - *
14   - * @author aquan
15   - */
16   -@ApiModel("支付订单分页 Request VO")
  11 +@ApiModel("管理后台 - 支付订单分页 Request VO")
17 12 @Data
18 13 @EqualsAndHashCode(callSuper = true)
19 14 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderPageReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderPageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 4 import io.swagger.annotations.ApiModel;
... ... @@ -12,12 +12,7 @@ import java.util.Date;
12 12  
13 13 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
14 14  
15   -/**
16   - * 支付订单分页 Request VO
17   - *
18   - * @author aquan
19   - */
20   -@ApiModel("支付订单分页 Request VO")
  15 +@ApiModel("管理后台 - 支付订单分页 Request VO")
21 16 @Data
22 17 @EqualsAndHashCode(callSuper = true)
23 18 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -8,12 +8,7 @@ import lombok.ToString;
8 8  
9 9 import java.util.Date;
10 10  
11   -/**
12   - * 支付订单 Response VO
13   - *
14   - * @author aquan
15   - */
16   -@ApiModel("支付订单 Response VO")
  11 +@ApiModel("管理后台 - 支付订单 Response VO")
17 12 @Data
18 13 @EqualsAndHashCode(callSuper = true)
19 14 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/PayRefundController.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/PayRefundController.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund;
2 2  
3 3 import cn.hutool.core.collection.CollectionUtil;
4 4 import cn.hutool.core.util.ObjectUtil;
5   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.*;
6   -import cn.iocoder.yudao.adminserver.modules.pay.convert.refund.PayRefundConvert;
7   -import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
8   -import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
9   -import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayOrderService;
10   -import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayRefundService;
11   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
12   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
13   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
14   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.*;
  6 +import cn.iocoder.yudao.module.pay.convert.refund.PayRefundConvert;
  7 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
  8 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
  9 +import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
  10 +import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
  11 +import cn.iocoder.yudao.module.pay.service.merchant.PayAppService;
  12 +import cn.iocoder.yudao.module.pay.service.merchant.PayMerchantService;
  13 +import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
  14 +import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
15 15 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
16 16 import cn.iocoder.yudao.framework.common.pojo.PageResult;
17 17 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
... ... @@ -39,12 +39,7 @@ import java.util.Map;
39 39 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
40 40 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
41 41  
42   -/**
43   - * 退款订单 Controller 组件
44   - *
45   - * @author aquan
46   - */
47   -@Api(tags = "退款订单")
  42 +@Api(tags = "管理后台 - 退款订单")
48 43 @RestController
49 44 @RequestMapping("/pay/refund")
50 45 @Validated
... ... @@ -52,26 +47,13 @@ public class PayRefundController {
52 47  
53 48 @Resource
54 49 private PayRefundService refundService;
55   -
56   - /**
57   - * 商户 service 组件
58   - */
59 50 @Resource
60 51 private PayMerchantService merchantService;
61   -
62   - /**
63   - * 应用 service 组件
64   - */
65 52 @Resource
66 53 private PayAppService appService;
67   -
68   - /**
69   - * 订单 service 组件
70   - */
71 54 @Resource
72 55 private PayOrderService orderService;
73 56  
74   -
75 57 @GetMapping("/get")
76 58 @ApiOperation("获得退款订单")
77 59 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundBaseVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundBaseVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3 3 import io.swagger.annotations.ApiModelProperty;
4 4 import lombok.Data;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundCreateReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundCreateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3 3 import lombok.*;
4 4 import io.swagger.annotations.*;
5 5  
6   -@ApiModel("退款订单创建 Request VO")
  6 +@ApiModel("管理后台 - 退款订单创建 Request VO")
7 7 @Data
8 8 @EqualsAndHashCode(callSuper = true)
9 9 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundDetailsRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundDetailsRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -9,12 +9,7 @@ import lombok.ToString;
9 9 import javax.validation.constraints.NotNull;
10 10 import java.util.Date;
11 11  
12   -/**
13   - * 退款订单详情 Response VO
14   - *
15   - * @author aquan
16   - */
17   -@ApiModel("退款订单详情 Response VO")
  12 +@ApiModel("管理后台 - 退款订单详情 Response VO")
18 13 @Data
19 14 @EqualsAndHashCode(callSuper = true)
20 15 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundExcelVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExcelVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3   -import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
4 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
5 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
  5 +import cn.iocoder.yudao.module.pay.enums.DictTypeConstants;
6 6 import com.alibaba.excel.annotation.ExcelProperty;
7 7 import lombok.Data;
8 8  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundExportReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundExportReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -9,7 +9,7 @@ import java.util.Date;
9 9  
10 10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
11 11  
12   -@ApiModel(value = "退款订单 Excel 导出 Request VO", description = "参数和 PayRefundPageReqVO 是一致的")
  12 +@ApiModel(value = "管理后台 - 退款订单 Excel 导出 Request VO", description = "参数和 PayRefundPageReqVO 是一致的")
13 13 @Data
14 14 public class PayRefundExportReqVO {
15 15  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundPageItemRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageItemRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -8,11 +8,7 @@ import lombok.ToString;
8 8  
9 9 import java.util.Date;
10 10  
11   -/**
12   - * 退款订单分页查询 Response VO
13   - * @author aquan
14   - */
15   -@ApiModel("退款订单分页查询 Response VO")
  11 +@ApiModel("管理后台 - 退款订单分页查询 Response VO")
16 12 @Data
17 13 @EqualsAndHashCode(callSuper = true)
18 14 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundPageReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundPageReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 4 import io.swagger.annotations.ApiModel;
... ... @@ -12,7 +12,7 @@ import java.util.Date;
12 12  
13 13 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
14 14  
15   -@ApiModel("退款订单分页 Request VO")
  15 +@ApiModel("管理后台 - 退款订单分页 Request VO")
16 16 @Data
17 17 @EqualsAndHashCode(callSuper = true)
18 18 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundRespVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -8,7 +8,7 @@ import lombok.ToString;
8 8  
9 9 import java.util.Date;
10 10  
11   -@ApiModel("退款订单 Response VO")
  11 +@ApiModel("管理后台 - 退款订单 Response VO")
12 12 @Data
13 13 @EqualsAndHashCode(callSuper = true)
14 14 @ToString(callSuper = true)
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundUpdateReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/refund/vo/PayRefundUpdateReqVO.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
2 2  
3 3 import lombok.*;
4 4 import io.swagger.annotations.*;
5 5 import javax.validation.constraints.*;
6 6  
7   -@ApiModel("退款订单更新 Request VO")
  7 +@ApiModel("管理后台 - 退款订单更新 Request VO")
8 8 @Data
9 9 @EqualsAndHashCode(callSuper = true)
10 10 @ToString(callSuper = true)
... ...
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/PayOrderController.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/AppPayOrderController.java
1   -package cn.iocoder.yudao.userserver.modules.pay.controller.order;
  1 +package cn.iocoder.yudao.module.pay.controller.app.order;
2 2  
3 3 import cn.hutool.core.bean.BeanUtil;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
5   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.PayOrderCoreService;
6   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.PayRefundCoreService;
7   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitReqDTO;
8   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitRespDTO;
9 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
10 5 import cn.iocoder.yudao.framework.pay.core.client.PayClient;
11 6 import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
12 7 import cn.iocoder.yudao.framework.pay.core.client.dto.PayNotifyDataDTO;
13   -import cn.iocoder.yudao.userserver.modules.pay.controller.order.vo.PayOrderSubmitReqVO;
14   -import cn.iocoder.yudao.userserver.modules.pay.controller.order.vo.PayOrderSubmitRespVO;
  8 +import cn.iocoder.yudao.module.pay.controller.app.order.vo.AppPayOrderSubmitReqVO;
  9 +import cn.iocoder.yudao.module.pay.controller.app.order.vo.AppPayOrderSubmitRespVO;
  10 +import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
  11 +import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
  12 +import cn.iocoder.yudao.module.pay.service.order.dto.PayOrderSubmitReqDTO;
  13 +import cn.iocoder.yudao.module.pay.service.order.dto.PayOrderSubmitRespDTO;
  14 +import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
15 15 import io.swagger.annotations.Api;
16 16 import io.swagger.annotations.ApiOperation;
17 17 import lombok.extern.slf4j.Slf4j;
... ... @@ -21,52 +21,52 @@ import org.springframework.web.bind.annotation.*;
21 21 import javax.annotation.Resource;
22 22 import java.util.Map;
23 23  
24   -import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.PAY_CHANNEL_CLIENT_NOT_FOUND;
25 24 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
26 25 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
27 26 import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
  27 +import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.*;
28 28  
29   -@Api(tags = "支付订单")
  29 +@Api(tags = "用户 APP - 支付订单")
30 30 @RestController
31 31 @RequestMapping("/pay/order")
32 32 @Validated
33 33 @Slf4j
34   -public class PayOrderController {
  34 +public class AppPayOrderController {
35 35  
36 36 @Resource
37   - private PayOrderCoreService payOrderCoreService;
  37 + private PayOrderService orderService;
38 38 @Resource
39   - private PayRefundCoreService payRefundCoreService;
  39 + private PayRefundService refundService;
40 40  
41 41 @Resource
42 42 private PayClientFactory payClientFactory;
43 43  
44   -
45 44 @PostMapping("/submit")
46 45 @ApiOperation("提交支付订单")
47 46 // @PreAuthenticated // TODO 暂时不加登陆验证,前端暂时没做好
48   - public CommonResult<PayOrderSubmitRespVO> submitPayOrder(@RequestBody PayOrderSubmitReqVO reqVO) {
  47 + public CommonResult<AppPayOrderSubmitRespVO> submitPayOrder(@RequestBody AppPayOrderSubmitReqVO reqVO) {
49 48 // 获得订单
50   - PayOrderDO payOrder = payOrderCoreService.getPayOrder(reqVO.getId());
  49 + PayOrderDO payOrder = orderService.getOrder(reqVO.getId());
51 50  
52 51 // 提交支付
53 52 PayOrderSubmitReqDTO reqDTO = new PayOrderSubmitReqDTO();
54 53 BeanUtil.copyProperties(reqVO, reqDTO, false);
55 54 reqDTO.setUserIp(getClientIP());
56 55 reqDTO.setAppId(payOrder.getAppId());
57   - PayOrderSubmitRespDTO respDTO = payOrderCoreService.submitPayOrder(reqDTO);
  56 + PayOrderSubmitRespDTO respDTO = orderService.submitPayOrder(reqDTO);
58 57  
59 58 // 拼接返回
60   - return success(PayOrderSubmitRespVO.builder().invokeResponse(respDTO.getInvokeResponse()).build());
  59 + return success(AppPayOrderSubmitRespVO.builder().invokeResponse(respDTO.getInvokeResponse()).build());
61 60 }
62 61  
63 62 // ========== 支付渠道的回调 ==========
  63 + // TODO @芋艿:是不是放到 notify 模块更合适
64 64 //TODO 芋道源码 换成了统一的地址了 /notify/{channelId},测试通过可以删除
65 65 @PostMapping("/notify/wx-pub/{channelId}")
66 66 @ApiOperation("通知微信公众号支付的结果")
67 67 public String notifyWxPayOrder(@PathVariable("channelId") Long channelId,
68 68 @RequestBody String xmlData) throws Exception {
69   - payOrderCoreService.notifyPayOrder(channelId, PayNotifyDataDTO.builder().body(xmlData).build());
  69 + orderService.notifyPayOrder(channelId, PayNotifyDataDTO.builder().body(xmlData).build());
70 70 return "success";
71 71 }
72 72  
... ... @@ -110,12 +110,12 @@ public class PayOrderController {
110 110  
111 111 // 如果是退款,则发起退款通知
112 112 if (payClient.isRefundNotify(notifyData)) {
113   - payRefundCoreService.notifyPayRefund(channelId, PayNotifyDataDTO.builder().params(params).body(originData).build());
  113 + refundService.notifyPayRefund(channelId, PayNotifyDataDTO.builder().params(params).body(originData).build());
114 114 return "success";
115 115 }
116 116  
117 117 // 如果非退款,则发起支付通知
118   - payOrderCoreService.notifyPayOrder(channelId, PayNotifyDataDTO.builder().params(params).body(originData).build());
  118 + orderService.notifyPayOrder(channelId, PayNotifyDataDTO.builder().params(params).body(originData).build());
119 119 return "success";
120 120 }
121 121  
... ...
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/vo/PayOrderSubmitReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/vo/AppPayOrderSubmitReqVO.java
1   -package cn.iocoder.yudao.userserver.modules.pay.controller.order.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.app.order.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -9,10 +9,10 @@ import javax.validation.constraints.NotEmpty;
9 9 import javax.validation.constraints.NotNull;
10 10 import java.util.Map;
11 11  
12   -@ApiModel("支付订单提交 Request VO")
  12 +@ApiModel("用户 APP - 支付订单提交 Request VO")
13 13 @Data
14 14 @Accessors(chain = true)
15   -public class PayOrderSubmitReqVO {
  15 +public class AppPayOrderSubmitReqVO {
16 16  
17 17 @ApiModelProperty(value = "支付单编号", required = true, example = "1024")
18 18 @NotNull(message = "支付单编号不能为空")
... ...
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/vo/PayOrderSubmitRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/app/order/vo/AppPayOrderSubmitRespVO.java
1   -package cn.iocoder.yudao.userserver.modules.pay.controller.order.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.app.order.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import lombok.AllArgsConstructor;
... ... @@ -7,13 +7,13 @@ import lombok.Data;
7 7 import lombok.NoArgsConstructor;
8 8 import lombok.experimental.Accessors;
9 9  
10   -@ApiModel("支付订单提交 Response VO")
  10 +@ApiModel("用户 APP - 支付订单提交 Response VO")
11 11 @Data
12 12 @Accessors(chain = true)
13 13 @Builder
14 14 @NoArgsConstructor
15 15 @AllArgsConstructor
16   -public class PayOrderSubmitRespVO {
  16 +public class AppPayOrderSubmitRespVO {
17 17  
18 18 /**
19 19 * 调用支付渠道的响应结果
... ...
yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/app/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.pay.controller.app;
... ...
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/PayRefundController.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/app/refund/AppPayRefundController.java
1   -package cn.iocoder.yudao.userserver.modules.pay.controller.order;
  1 +package cn.iocoder.yudao.module.pay.controller.app.refund;
2 2  
3 3 import cn.hutool.core.util.StrUtil;
4   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.PayRefundCoreService;
5   -import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayRefundReqDTO;
6   -import cn.iocoder.yudao.coreservice.modules.pay.util.PaySeqUtils;
7 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
8   -import cn.iocoder.yudao.userserver.modules.pay.controller.order.vo.PayRefundReqVO;
9   -import cn.iocoder.yudao.userserver.modules.pay.controller.order.vo.PayRefundRespVO;
10   -import cn.iocoder.yudao.userserver.modules.pay.convert.order.PayRefundConvert;
  5 +import cn.iocoder.yudao.module.pay.controller.app.refund.vo.AppPayRefundReqVO;
  6 +import cn.iocoder.yudao.module.pay.controller.app.refund.vo.AppPayRefundRespVO;
  7 +import cn.iocoder.yudao.module.pay.convert.refund.PayRefundConvert;
  8 +import cn.iocoder.yudao.module.pay.service.order.dto.PayRefundReqDTO;
  9 +import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
  10 +import cn.iocoder.yudao.module.pay.util.PaySeqUtils;
11 11 import io.swagger.annotations.Api;
12 12 import io.swagger.annotations.ApiOperation;
13 13 import lombok.extern.slf4j.Slf4j;
... ... @@ -19,28 +19,29 @@ import org.springframework.web.bind.annotation.RestController;
19 19  
20 20 import javax.annotation.Resource;
21 21  
  22 +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
22 23 import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
23 24  
24   -@Api(tags = "退款订单")
  25 +@Api(tags = "用户 APP - 退款订单")
25 26 @RestController
26   -@RequestMapping("/pay/order")
  27 +@RequestMapping("/pay/refund")
27 28 @Validated
28 29 @Slf4j
29   -public class PayRefundController {
  30 +public class AppPayRefundController {
30 31  
31 32 @Resource
32   - private PayRefundCoreService payRefundCoreService;
  33 + private PayRefundService refundService;
33 34  
34 35 @PostMapping("/refund")
35 36 @ApiOperation("提交退款订单")
36   - public CommonResult<PayRefundRespVO> submitRefundOrder(@RequestBody PayRefundReqVO reqVO){
  37 + public CommonResult<AppPayRefundRespVO> submitRefundOrder(@RequestBody AppPayRefundReqVO reqVO){
37 38 PayRefundReqDTO req = PayRefundConvert.INSTANCE.convert(reqVO);
38 39 req.setUserIp(getClientIP());
39   - //TODO 测试暂时模拟生成商户退款订单
  40 + // TODO 测试暂时模拟生成商户退款订单
40 41 if(StrUtil.isEmpty(reqVO.getMerchantRefundId())) {
41 42 req.setMerchantRefundId(PaySeqUtils.genMerchantRefundNo());
42 43 }
43   - return CommonResult.success( PayRefundConvert.INSTANCE.convert(payRefundCoreService.submitRefundOrder(req)));
  44 + return success(PayRefundConvert.INSTANCE.convert(refundService.submitRefundOrder(req)));
44 45 }
45 46  
46 47 }
... ...
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/vo/PayRefundReqVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/app/refund/vo/AppPayRefundReqVO.java
1   -package cn.iocoder.yudao.userserver.modules.pay.controller.order.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.app.refund.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ... @@ -8,11 +8,11 @@ import lombok.NoArgsConstructor;
8 8  
9 9 import javax.validation.constraints.NotEmpty;
10 10  
11   -@ApiModel("退款订单 Req VO")
  11 +@ApiModel("用户 APP - 退款订单 Req VO")
12 12 @Data
13 13 @NoArgsConstructor
14 14 @AllArgsConstructor
15   -public class PayRefundReqVO {
  15 +public class AppPayRefundReqVO {
16 16  
17 17 @ApiModelProperty(value = "支付订单编号自增", required = true, example = "10")
18 18 @NotEmpty(message = "支付订单编号自增")
... ...
yudao-user-server/src/main/java/cn/iocoder/yudao/userserver/modules/pay/controller/order/vo/PayRefundRespVO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/app/refund/vo/AppPayRefundRespVO.java
1   -package cn.iocoder.yudao.userserver.modules.pay.controller.order.vo;
  1 +package cn.iocoder.yudao.module.pay.controller.app.refund.vo;
2 2  
3 3 import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
4 5 import lombok.AllArgsConstructor;
5 6 import lombok.Builder;
6 7 import lombok.Data;
7 8 import lombok.NoArgsConstructor;
8 9 import lombok.experimental.Accessors;
9 10  
10   -@ApiModel("提交退款订单 Response VO")
  11 +@ApiModel("用户 APP - 提交退款订单 Response VO")
11 12 @Data
12 13 @Accessors(chain = true)
13 14 @Builder
14 15 @NoArgsConstructor
15 16 @AllArgsConstructor
16   -public class PayRefundRespVO {
  17 +public class AppPayRefundRespVO {
17 18  
18   - /**
19   - * 支付退款单编号, 自增
20   - */
  19 + @ApiModelProperty(value = "退款订单编号", required = true, example = "10")
21 20 private Long refundId;
  21 +
22 22 }
... ...
yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/controller/package-info.java 0 → 100644
  1 +/**
  2 + * 提供 RESTful API 给前端:
  3 + * 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目
  4 + * 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分
  5 + */
  6 +package cn.iocoder.yudao.module.pay.controller;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/convert/app/PayAppConvert.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/convert/app/PayAppConvert.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.convert.app;
  1 +package cn.iocoder.yudao.module.pay.convert.app;
2 2  
3 3 import java.util.*;
4 4  
5   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
6   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
7 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 6  
  7 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app.*;
  8 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
  9 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
9 10 import org.mapstruct.Mapper;
10 11 import org.mapstruct.factory.Mappers;
11   -import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*;
12 12  
13 13 /**
14 14 * 支付应用信息 Convert
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/convert/channel/PayChannelConvert.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/convert/channel/PayChannelConvert.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.convert.channel;
  1 +package cn.iocoder.yudao.module.pay.convert.channel;
2 2  
3 3 import java.util.*;
4 4  
5   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
6 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 6  
8   -import cn.iocoder.yudao.framework.pay.core.client.impl.wx.WXPayClientConfig;
  7 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelCreateReqVO;
  8 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelExcelVO;
  9 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelRespVO;
  10 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelUpdateReqVO;
  11 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
9 12 import org.mapstruct.Mapper;
10 13 import org.mapstruct.Mapping;
11 14 import org.mapstruct.factory.Mappers;
12   -import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
13   -
14   -/**
15   - * 支付渠道
16   - Convert
17   - *
18   - * @author 芋艿
19   - */
  15 +
20 16 @Mapper
21 17 public interface PayChannelConvert {
22 18  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/convert/merchant/PayMerchantConvert.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/convert/merchant/PayMerchantConvert.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.convert.merchant;
  1 +package cn.iocoder.yudao.module.pay.convert.merchant;
2 2  
3 3 import java.util.*;
4 4  
5   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
6 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 6  
  7 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantCreateReqVO;
  8 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantExcelVO;
  9 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantRespVO;
  10 +import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantUpdateReqVO;
  11 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
8 12 import org.mapstruct.Mapper;
9 13 import org.mapstruct.factory.Mappers;
10   -import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.*;
11 14  
12   -/**
13   - * 支付商户信息 Convert
14   - *
15   - * @author 芋艿
16   - */
17 15 @Mapper
18 16 public interface PayMerchantConvert {
19 17  
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/convert/order/PayOrderConvert.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/convert/order/PayOrderConvert.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.convert.order;
2   -
3   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderDetailsRespVO;
4   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderExcelVO;
5   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderPageItemRespVO;
6   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderRespVO;
7   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
8   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
  1 +package cn.iocoder.yudao.module.pay.convert.order;
  2 +
  3 +import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
  4 +import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderDetailsRespVO;
  5 +import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderExcelVO;
  6 +import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderPageItemRespVO;
  7 +import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderRespVO;
9 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  9 +import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
  10 +import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
  11 +import cn.iocoder.yudao.module.pay.service.order.dto.PayOrderCreateReqDTO;
  12 +import cn.iocoder.yudao.module.pay.service.order.dto.PayOrderSubmitReqDTO;
10 13 import org.mapstruct.Mapper;
11 14 import org.mapstruct.factory.Mappers;
12 15  
... ... @@ -24,24 +27,10 @@ public interface PayOrderConvert {
24 27  
25 28 PayOrderConvert INSTANCE = Mappers.getMapper(PayOrderConvert.class);
26 29  
27   -
28   -
29 30 PayOrderRespVO convert(PayOrderDO bean);
30 31  
31   - /**
32   - * 订单DO 转换为 详细订单 RespVO
33   - *
34   - * @param bean 订单DO
35   - * @return 详细订单 RespVO
36   - */
37 32 PayOrderDetailsRespVO orderDetailConvert(PayOrderDO bean);
38 33  
39   - /**
40   - * 订单扩展DO 转换为 详细订单扩展 RespVO
41   - *
42   - * @param bean 订单扩展DO
43   - * @return 详细订单扩展 RespVO
44   - */
45 34 PayOrderDetailsRespVO.PayOrderExtension orderDetailExtensionConvert(PayOrderExtensionDO bean);
46 35  
47 36 List<PayOrderRespVO> convertList(List<PayOrderDO> list);
... ... @@ -58,12 +47,6 @@ public interface PayOrderConvert {
58 47 */
59 48 PayOrderPageItemRespVO pageConvertItemPage(PayOrderDO bean);
60 49  
61   - /**
62   - * 订单DO 转 订单导出excel VO
63   - *
64   - * @param bean 订单 DO
65   - * @return 订单导出excel VO
66   - */
67 50 default PayOrderExcelVO excelConvert(PayOrderDO bean) {
68 51 if (bean == null) {
69 52 return null;
... ... @@ -101,4 +84,12 @@ public interface PayOrderConvert {
101 84  
102 85 return payOrderExcelVO;
103 86 }
  87 +
  88 +
  89 + PayOrderDO convert(PayOrderCreateReqDTO bean);
  90 +
  91 + PayOrderExtensionDO convert(PayOrderSubmitReqDTO bean);
  92 +
  93 + PayOrderUnifiedReqDTO convert2(PayOrderSubmitReqDTO bean);
  94 +
104 95 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/convert/package-info.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/convert/package-info.java
... ... @@ -3,4 +3,4 @@
3 3 *
4 4 * 目前使用 MapStruct 框架
5 5 */
6   -package cn.iocoder.yudao.adminserver.modules.pay.convert;
  6 +package cn.iocoder.yudao.module.pay.convert;
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/convert/refund/PayRefundConvert.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/convert/refund/PayRefundConvert.java
1   -package cn.iocoder.yudao.adminserver.modules.pay.convert.refund;
  1 +package cn.iocoder.yudao.module.pay.convert.refund;
2 2  
3   -import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.*;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
5 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.*;
  5 +import cn.iocoder.yudao.module.pay.controller.app.refund.vo.AppPayRefundReqVO;
  6 +import cn.iocoder.yudao.module.pay.controller.app.refund.vo.AppPayRefundRespVO;
  7 +import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
  8 +import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
  9 +import cn.iocoder.yudao.module.pay.service.order.dto.PayRefundReqDTO;
  10 +import cn.iocoder.yudao.module.pay.service.order.dto.PayRefundRespDTO;
6 11 import org.mapstruct.Mapper;
  12 +import org.mapstruct.Mapping;
  13 +import org.mapstruct.Mappings;
7 14 import org.mapstruct.factory.Mappers;
8 15  
9 16 import java.math.BigDecimal;
... ... @@ -87,4 +94,16 @@ public interface PayRefundConvert {
87 94 return payRefundExcelVO;
88 95 }
89 96  
  97 + //TODO 太多需要处理了, 暂时不用
  98 + @Mappings(value = {
  99 + @Mapping(source = "amount", target = "payAmount"),
  100 + @Mapping(source = "id", target = "orderId"),
  101 + @Mapping(target = "status",ignore = true)
  102 + })
  103 + PayRefundDO convert(PayOrderDO orderDO);
  104 +
  105 + PayRefundReqDTO convert(AppPayRefundReqVO bean);
  106 +
  107 + AppPayRefundRespVO convert(PayRefundRespDTO bean);
  108 +
90 109 }
... ...
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/merchant/PayAppDO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayAppDO.java
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant;
  1 +package cn.iocoder.yudao.module.pay.dal.dataobject.merchant;
2 2  
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/merchant/PayChannelDO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayChannelDO.java
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant;
  1 +package cn.iocoder.yudao.module.pay.dal.dataobject.merchant;
2 2  
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/merchant/PayMerchantDO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/merchant/PayMerchantDO.java
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant;
  1 +package cn.iocoder.yudao.module.pay.dal.dataobject.merchant;
2 2  
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/notify/PayNotifyLogDO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyLogDO.java
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.notify;
  1 +package cn.iocoder.yudao.module.pay.dal.dataobject.notify;
2 2  
3   -import cn.iocoder.yudao.coreservice.modules.pay.enums.notify.PayNotifyStatusEnum;
  3 +import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyStatusEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 5 import com.baomidou.mybatisplus.annotation.TableName;
6 6 import lombok.*;
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/notify/PayNotifyTaskDO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.notify;
  1 +package cn.iocoder.yudao.module.pay.dal.dataobject.notify;
2 2  
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
5   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
6   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
7   -import cn.iocoder.yudao.coreservice.modules.pay.enums.notify.PayNotifyStatusEnum;
8   -import cn.iocoder.yudao.coreservice.modules.pay.enums.notify.PayNotifyTypeEnum;
  3 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
  4 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
  5 +import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
  6 +import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
  7 +import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyStatusEnum;
  8 +import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyTypeEnum;
9 9 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
10 10 import com.baomidou.mybatisplus.annotation.TableName;
11 11 import lombok.Data;
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/order/PayOrderDO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order;
  1 +package cn.iocoder.yudao.module.pay.dal.dataobject.order;
2 2  
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
4   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
5   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
6   -import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayOrderNotifyStatusEnum;
7   -import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayRefundTypeEnum;
8   -import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayOrderStatusEnum;
  3 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
  4 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
  5 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
  6 +import cn.iocoder.yudao.module.pay.enums.order.PayOrderNotifyStatusEnum;
  7 +import cn.iocoder.yudao.module.pay.enums.refund.PayRefundTypeEnum;
  8 +import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
9 9 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
10 10 import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
11 11 import com.baomidou.mybatisplus.annotation.TableName;
... ...
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/pay/dal/dataobject/order/PayOrderExtensionDO.java renamed to yudao-module-pay/yudao-module-pay-impl/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java
1   -package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order;
  1 +package cn.iocoder.yudao.module.pay.dal.dataobject.order;
2 2  
3   -import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
4   -import cn.iocoder.yudao.coreservice.modules.pay.enums.order.PayOrderStatusEnum;
  3 +import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
  4 +import cn.iocoder.yudao.module.pay.enums.order.PayOrderStatusEnum;
5 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 6 import com.baomidou.mybatisplus.annotation.TableField;
7 7 import com.baomidou.mybatisplus.annotation.TableName;
... ...