mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2025-01-31 17:40:05 +08:00
多模块重构 7:pay 模块的初始化
This commit is contained in:
parent
e7e3b18704
commit
b757e1fccb
1
pom.xml
1
pom.xml
@ -18,6 +18,7 @@
|
|||||||
<module>yudao-module-system</module>
|
<module>yudao-module-system</module>
|
||||||
<module>yudao-module-infra</module>
|
<module>yudao-module-infra</module>
|
||||||
<module>yudao-module-tool</module>
|
<module>yudao-module-tool</module>
|
||||||
|
<module>yudao-module-pay</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<name>${artifactId}</name>
|
<name>${artifactId}</name>
|
||||||
|
@ -37,6 +37,11 @@
|
|||||||
<artifactId>yudao-module-infra-impl</artifactId>
|
<artifactId>yudao-module-infra-impl</artifactId>
|
||||||
<version>${revision}</version>
|
<version>${revision}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-module-pay-impl</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- 业务组件 -->
|
<!-- 业务组件 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
@ -71,11 +76,7 @@
|
|||||||
<!-- <groupId>cn.iocoder.boot</groupId>-->
|
<!-- <groupId>cn.iocoder.boot</groupId>-->
|
||||||
<!-- <artifactId>yudao-module-bpm-core-service-impl</artifactId>-->
|
<!-- <artifactId>yudao-module-bpm-core-service-impl</artifactId>-->
|
||||||
<!-- </dependency>-->
|
<!-- </dependency>-->
|
||||||
<!-- Web 相关 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-web</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<!-- spring boot 配置所需依赖 -->
|
<!-- spring boot 配置所需依赖 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
@ -83,34 +84,6 @@
|
|||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-security</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- DB 相关 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-mybatis</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-redis</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Job 定时任务相关 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-job</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- 消息队列相关 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-mq</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- 服务保障相关 -->
|
<!-- 服务保障相关 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
@ -128,24 +101,6 @@
|
|||||||
<artifactId>spring-boot-admin-starter-server</artifactId> <!-- 实现 Spring Boot Admin Server 服务端 -->
|
<artifactId>spring-boot-admin-starter-server</artifactId> <!-- 实现 Spring Boot Admin Server 服务端 -->
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- Test 测试相关 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-test</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- 工具类相关 -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>cn.iocoder.boot</groupId>
|
|
||||||
<artifactId>yudao-spring-boot-starter-excel</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.velocity</groupId>
|
|
||||||
<artifactId>velocity-engine-core</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- 三方云服务相关 -->
|
<!-- 三方云服务相关 -->
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
/**
|
|
||||||
* 提供 POJO 类的实体转换
|
|
||||||
*
|
|
||||||
* 目前使用 MapStruct 框架
|
|
||||||
*/
|
|
||||||
package cn.iocoder.yudao.adminserver.modules.pay.convert;
|
|
@ -1,16 +0,0 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.order;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付订单 Mapper
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface PayOrderExtensionMapper extends BaseMapperX<PayOrderExtensionDO> {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.enums;
|
|
@ -1 +0,0 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.job;
|
|
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* pay 包下,我们放支付业务,提供业务的支付能力。
|
|
||||||
* 例如说:商户、应用、支付、退款等等
|
|
||||||
*
|
|
||||||
* 缩写:pay
|
|
||||||
*/
|
|
||||||
package cn.iocoder.yudao.adminserver.modules.pay;
|
|
@ -1,161 +0,0 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.service.channel.impl;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import cn.hutool.json.JSONUtil;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelCreateReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelExportReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelPageReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.PayChannelUpdateReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.convert.channel.PayChannelConvert;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.channel.PayChannelMapper;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig;
|
|
||||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.validation.Validator;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.CHANNEL_EXIST_SAME_CHANNEL_ERROR;
|
|
||||||
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.CHANNEL_NOT_EXISTS;
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付渠道 Service 实现类
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Slf4j
|
|
||||||
@Validated
|
|
||||||
public class PayChannelServiceImpl implements PayChannelService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PayChannelMapper channelMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private Validator validator;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long createChannel(PayChannelCreateReqVO reqVO) {
|
|
||||||
// 断言是否有重复的
|
|
||||||
PayChannelDO channelDO = this.getChannelByConditions(reqVO.getMerchantId(), reqVO.getAppId(), reqVO.getCode());
|
|
||||||
if (ObjectUtil.isNotNull(channelDO)) {
|
|
||||||
throw exception(CHANNEL_EXIST_SAME_CHANNEL_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 新增渠道
|
|
||||||
PayChannelDO channel = PayChannelConvert.INSTANCE.convert(reqVO);
|
|
||||||
settingConfigAndCheckParam(channel, reqVO.getConfig());
|
|
||||||
channelMapper.insert(channel);
|
|
||||||
return channel.getId();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateChannel(PayChannelUpdateReqVO updateReqVO) {
|
|
||||||
// 校验存在
|
|
||||||
this.validateChannelExists(updateReqVO.getId());
|
|
||||||
// 更新
|
|
||||||
PayChannelDO channel = PayChannelConvert.INSTANCE.convert(updateReqVO);
|
|
||||||
settingConfigAndCheckParam(channel, updateReqVO.getConfig());
|
|
||||||
channelMapper.updateById(channel);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteChannel(Long id) {
|
|
||||||
// 校验存在
|
|
||||||
this.validateChannelExists(id);
|
|
||||||
// 删除
|
|
||||||
channelMapper.deleteById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validateChannelExists(Long id) {
|
|
||||||
if (channelMapper.selectById(id) == null) {
|
|
||||||
throw exception(CHANNEL_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PayChannelDO getChannel(Long id) {
|
|
||||||
return channelMapper.selectById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<PayChannelDO> getChannelList(Collection<Long> ids) {
|
|
||||||
return channelMapper.selectBatchIds(ids);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PageResult<PayChannelDO> getChannelPage(PayChannelPageReqVO pageReqVO) {
|
|
||||||
return channelMapper.selectPage(pageReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<PayChannelDO> getChannelList(PayChannelExportReqVO exportReqVO) {
|
|
||||||
return channelMapper.selectList(exportReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据支付应用ID集合获得支付渠道列表
|
|
||||||
*
|
|
||||||
* @param appIds 应用编号集合
|
|
||||||
* @return 支付渠道列表
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<PayChannelDO> getChannelListByAppIds(Collection<Long> appIds) {
|
|
||||||
return channelMapper.getChannelListByAppIds(appIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据条件获取通道数量
|
|
||||||
*
|
|
||||||
* @param merchantId 商户编号
|
|
||||||
* @param appid 应用编号
|
|
||||||
* @param code 通道编码
|
|
||||||
* @return 数量
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Integer getChannelCountByConditions(Long merchantId, Long appid, String code) {
|
|
||||||
return this.channelMapper.selectCount(merchantId, appid, code);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据条件获取通道
|
|
||||||
*
|
|
||||||
* @param merchantId 商户编号
|
|
||||||
* @param appid 应用编号
|
|
||||||
* @param code 通道编码
|
|
||||||
* @return 数量
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public PayChannelDO getChannelByConditions(Long merchantId, Long appid, String code) {
|
|
||||||
return this.channelMapper.selectOne(merchantId, appid, code);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置渠道配置以及参数校验
|
|
||||||
*
|
|
||||||
* @param channel 渠道
|
|
||||||
* @param configStr 配置
|
|
||||||
*/
|
|
||||||
private void settingConfigAndCheckParam(PayChannelDO channel, String configStr) {
|
|
||||||
// 得到这个渠道是微信的还是支付宝的
|
|
||||||
Class<? extends PayClientConfig> payClass = PayChannelEnum.getByCode(channel.getCode()).getConfigClass();
|
|
||||||
if (ObjectUtil.isNull(payClass)) {
|
|
||||||
throw exception(CHANNEL_NOT_EXISTS);
|
|
||||||
}
|
|
||||||
PayClientConfig config = JSONUtil.toBean(configStr, payClass);
|
|
||||||
|
|
||||||
// 验证参数
|
|
||||||
config.validate(validator);
|
|
||||||
channel.setConfig(config);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,41 +0,0 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.service.order;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.PayRefundExportReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.PayRefundPageReqVO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退款订单 Service 接口
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
public interface PayRefundService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得退款订单
|
|
||||||
*
|
|
||||||
* @param id 编号
|
|
||||||
* @return 退款订单
|
|
||||||
*/
|
|
||||||
PayRefundDO getRefund(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得退款订单分页
|
|
||||||
*
|
|
||||||
* @param pageReqVO 分页查询
|
|
||||||
* @return 退款订单分页
|
|
||||||
*/
|
|
||||||
PageResult<PayRefundDO> getRefundPage(PayRefundPageReqVO pageReqVO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得退款订单列表, 用于 Excel 导出
|
|
||||||
*
|
|
||||||
* @param exportReqVO 查询条件
|
|
||||||
* @return 退款订单列表
|
|
||||||
*/
|
|
||||||
List<PayRefundDO> getRefundList(PayRefundExportReqVO exportReqVO);
|
|
||||||
|
|
||||||
}
|
|
@ -1,54 +0,0 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.service.order.impl;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderExportReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderPageReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.order.PayOrderMapper;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayOrderService;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付订单 Service 实现类
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Validated
|
|
||||||
public class PayOrderServiceImpl implements PayOrderService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PayOrderMapper orderMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PayOrderDO getOrder(Long id) {
|
|
||||||
return orderMapper.selectById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PageResult<PayOrderDO> getOrderPage(PayOrderPageReqVO pageReqVO) {
|
|
||||||
return orderMapper.selectPage(pageReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<PayOrderDO> getOrderList(PayOrderExportReqVO exportReqVO) {
|
|
||||||
return orderMapper.selectList(exportReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据 ID 集合获取只包含商品名称的订单集合
|
|
||||||
*
|
|
||||||
* @param idList 订单 ID 集合
|
|
||||||
* @return 只包含商品名称的订单集合
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<PayOrderDO> getOrderSubjectList(Collection<Long> idList) {
|
|
||||||
return orderMapper.findByIdListQueryOrderSubject(idList);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,42 +0,0 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.service.order.impl;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.PayRefundExportReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.PayRefundPageReqVO;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.dal.mysql.order.PayRefundMapper;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayRefundService;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退款订单 Service 实现类
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Validated
|
|
||||||
public class PayRefundServiceImpl implements PayRefundService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PayRefundMapper refundMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PayRefundDO getRefund(Long id) {
|
|
||||||
return refundMapper.selectById(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PageResult<PayRefundDO> getRefundPage(PayRefundPageReqVO pageReqVO) {
|
|
||||||
return refundMapper.selectPage(pageReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<PayRefundDO> getRefundList(PayRefundExportReqVO exportReqVO) {
|
|
||||||
return refundMapper.selectList(exportReqVO);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.service.channel;
|
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
|
|
||||||
import javax.validation.Validation;
|
|
||||||
import javax.validation.Validator;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用于初始化 validator Bean 对象
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class PayChannelConfig {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public Validator validator(){
|
|
||||||
return Validation.buildDefaultValidatorFactory().getValidator();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.convert.order;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderCreateReqDTO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitReqDTO;
|
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.factory.Mappers;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface PayOrderCoreConvert {
|
|
||||||
|
|
||||||
PayOrderCoreConvert INSTANCE = Mappers.getMapper(PayOrderCoreConvert.class);
|
|
||||||
|
|
||||||
PayOrderDO convert(PayOrderCreateReqDTO bean);
|
|
||||||
|
|
||||||
PayOrderExtensionDO convert(PayOrderSubmitReqDTO bean);
|
|
||||||
|
|
||||||
PayOrderUnifiedReqDTO convert2(PayOrderSubmitReqDTO bean);
|
|
||||||
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.convert.order;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
|
|
||||||
import org.mapstruct.Mapper;
|
|
||||||
import org.mapstruct.Mapping;
|
|
||||||
import org.mapstruct.Mappings;
|
|
||||||
import org.mapstruct.factory.Mappers;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface PayRefundCoreConvert {
|
|
||||||
|
|
||||||
PayRefundCoreConvert INSTANCE = Mappers.getMapper(PayRefundCoreConvert.class);
|
|
||||||
|
|
||||||
//TODO 太多需要处理了, 暂时不用
|
|
||||||
@Mappings(value = {
|
|
||||||
@Mapping(source = "amount", target = "payAmount"),
|
|
||||||
@Mapping(source = "id", target = "orderId"),
|
|
||||||
@Mapping(target = "status",ignore = true)
|
|
||||||
})
|
|
||||||
PayRefundDO convert(PayOrderDO orderDO);
|
|
||||||
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
/**
|
|
||||||
* 提供 POJO 类的实体转换
|
|
||||||
*
|
|
||||||
* 目前使用 MapStruct 框架
|
|
||||||
*/
|
|
||||||
package cn.iocoder.yudao.coreservice.modules.pay.convert;
|
|
@ -1 +0,0 @@
|
|||||||
<http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao>
|
|
@ -1,9 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface PayAppCoreMapper extends BaseMapperX<PayAppDO> {
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
import org.apache.ibatis.annotations.Select;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface PayChannelCoreMapper extends BaseMapperX<PayChannelDO> {
|
|
||||||
|
|
||||||
default PayChannelDO selectByAppIdAndCode(Long appId, String code) {
|
|
||||||
return selectOne(PayChannelDO::getAppId, appId, PayChannelDO::getCode, code);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Select("SELECT id FROM pay_channel WHERE update_time > #{maxUpdateTime} LIMIT 1")
|
|
||||||
Long selectExistsByUpdateTimeAfter(Date maxUpdateTime);
|
|
||||||
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface PayOrderCoreMapper extends BaseMapperX<PayOrderDO> {
|
|
||||||
|
|
||||||
default PayOrderDO selectByAppIdAndMerchantOrderId(Long appId, String merchantOrderId) {
|
|
||||||
return selectOne(new QueryWrapper<PayOrderDO>().eq("app_id", appId)
|
|
||||||
.eq("merchant_order_id", merchantOrderId));
|
|
||||||
}
|
|
||||||
|
|
||||||
default int updateByIdAndStatus(Long id, Integer status, PayOrderDO update) {
|
|
||||||
return update(update, new QueryWrapper<PayOrderDO>()
|
|
||||||
.eq("id", id).eq("status", status));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.order;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退款订单 Mapper
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface PayRefundCoreMapper extends BaseMapperX<PayRefundDO> {
|
|
||||||
|
|
||||||
default PayRefundDO selectByReqNo(String reqNo) {
|
|
||||||
return selectOne("req_no", reqNo);
|
|
||||||
}
|
|
||||||
|
|
||||||
default PayRefundDO selectByTradeNoAndMerchantRefundNo(String tradeNo, String merchantRefundNo){
|
|
||||||
return selectOne("trade_no", tradeNo, "merchant_refund_no", merchantRefundNo);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* pay 包下,我们放支付业务,提供业务的支付能力。
|
|
||||||
* 例如说:商户、应用、支付、退款等等
|
|
||||||
*
|
|
||||||
* 缩写:pay
|
|
||||||
*/
|
|
||||||
package cn.iocoder.yudao.coreservice.modules.pay;
|
|
@ -1,23 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.service.merchant;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付应用 Core Service 接口
|
|
||||||
*
|
|
||||||
* @author 芋道源码
|
|
||||||
*/
|
|
||||||
public interface PayAppCoreService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付应用的合法性
|
|
||||||
*
|
|
||||||
* 如果不合法,抛出 {@link ServiceException} 业务异常
|
|
||||||
*
|
|
||||||
* @param id 应用编号
|
|
||||||
* @return 应用信息
|
|
||||||
*/
|
|
||||||
PayAppDO validPayApp(Long id);
|
|
||||||
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.service.merchant;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付渠道 Core Service 接口
|
|
||||||
*
|
|
||||||
* @author 芋道源码
|
|
||||||
*/
|
|
||||||
public interface PayChannelCoreService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 初始化支付客户端
|
|
||||||
*/
|
|
||||||
void initPayClients();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付渠道的合法性
|
|
||||||
*
|
|
||||||
* 如果不合法,抛出 {@link ServiceException} 业务异常
|
|
||||||
*
|
|
||||||
* @param id 渠道编号
|
|
||||||
* @return 渠道信息
|
|
||||||
*/
|
|
||||||
PayChannelDO validPayChannel(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付渠道的合法性
|
|
||||||
*
|
|
||||||
* 如果不合法,抛出 {@link ServiceException} 业务异常
|
|
||||||
*
|
|
||||||
* @param appId 应用编号
|
|
||||||
* @param code 支付渠道
|
|
||||||
* @return 渠道信息
|
|
||||||
*/
|
|
||||||
PayChannelDO validPayChannel(Long appId, String code);
|
|
||||||
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.service.merchant.impl;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant.PayAppCoreMapper;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.merchant.PayAppCoreService;
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.validation.Valid;
|
|
||||||
|
|
||||||
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付应用 Core Service 实现类
|
|
||||||
*
|
|
||||||
* @author 芋道源码
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Valid
|
|
||||||
@Slf4j
|
|
||||||
public class PayAppCoreServiceImpl implements PayAppCoreService {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PayAppCoreMapper payAppCoreMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PayAppDO validPayApp(Long id) {
|
|
||||||
PayAppDO app = payAppCoreMapper.selectById(id);
|
|
||||||
// 校验是否存在
|
|
||||||
if (app == null) {
|
|
||||||
throw exception(PAY_APP_NOT_FOUND);
|
|
||||||
}
|
|
||||||
// 校验是否禁用
|
|
||||||
if (CommonStatusEnum.DISABLE.getStatus().equals(app.getStatus())) {
|
|
||||||
throw exception(PAY_APP_IS_DISABLE);
|
|
||||||
}
|
|
||||||
return app;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,121 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.service.merchant.impl;
|
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.mysql.merchant.PayChannelCoreMapper;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.merchant.PayChannelCoreService;
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
import javax.validation.Valid;
|
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.*;
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付渠道 Core Service 实现类
|
|
||||||
*
|
|
||||||
* @author 芋道源码
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Valid
|
|
||||||
@Slf4j
|
|
||||||
public class PayChannelCoreServiceImpl implements PayChannelCoreService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 定时执行 {@link #schedulePeriodicRefresh()} 的周期
|
|
||||||
* 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高
|
|
||||||
*/
|
|
||||||
private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 缓存菜单的最大更新时间,用于后续的增量轮询,判断是否有更新
|
|
||||||
*/
|
|
||||||
private volatile Date maxUpdateTime;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PayChannelCoreMapper payChannelCoreMapper;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private PayClientFactory payClientFactory;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@PostConstruct
|
|
||||||
public void initPayClients() {
|
|
||||||
// 获取支付渠道,如果有更新
|
|
||||||
List<PayChannelDO> payChannels = this.loadPayChannelIfUpdate(maxUpdateTime);
|
|
||||||
if (CollUtil.isEmpty(payChannels)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 创建或更新支付 Client
|
|
||||||
payChannels.forEach(payChannel -> payClientFactory.createOrUpdatePayClient(payChannel.getId(),
|
|
||||||
payChannel.getCode(), payChannel.getConfig()));
|
|
||||||
|
|
||||||
// 写入缓存
|
|
||||||
assert payChannels.size() > 0; // 断言,避免告警
|
|
||||||
maxUpdateTime = payChannels.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime();
|
|
||||||
log.info("[initPayClients][初始化 PayChannel 数量为 {}]", payChannels.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)
|
|
||||||
public void schedulePeriodicRefresh() {
|
|
||||||
initPayClients();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 如果支付渠道发生变化,从数据库中获取最新的全量支付渠道。
|
|
||||||
* 如果未发生变化,则返回空
|
|
||||||
*
|
|
||||||
* @param maxUpdateTime 当前支付渠道的最大更新时间
|
|
||||||
* @return 支付渠道列表
|
|
||||||
*/
|
|
||||||
private List<PayChannelDO> loadPayChannelIfUpdate(Date maxUpdateTime) {
|
|
||||||
// 第一步,判断是否要更新。
|
|
||||||
if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
|
|
||||||
log.info("[loadPayChannelIfUpdate][首次加载全量支付渠道]");
|
|
||||||
} else { // 判断数据库中是否有更新的支付渠道
|
|
||||||
if (payChannelCoreMapper.selectExistsByUpdateTimeAfter(maxUpdateTime) == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
log.info("[loadPayChannelIfUpdate][增量加载全量支付渠道]");
|
|
||||||
}
|
|
||||||
// 第二步,如果有更新,则从数据库加载所有支付渠道
|
|
||||||
return payChannelCoreMapper.selectList();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PayChannelDO validPayChannel(Long id) {
|
|
||||||
PayChannelDO channel = payChannelCoreMapper.selectById(id);
|
|
||||||
this.validPayChannel(channel);
|
|
||||||
return channel;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public PayChannelDO validPayChannel(Long appId, String code) {
|
|
||||||
PayChannelDO channel = payChannelCoreMapper.selectByAppIdAndCode(appId, code);
|
|
||||||
this.validPayChannel(channel);
|
|
||||||
return channel;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void validPayChannel(PayChannelDO channel) {
|
|
||||||
if (channel == null) {
|
|
||||||
throw exception(PAY_CHANNEL_NOT_FOUND);
|
|
||||||
}
|
|
||||||
if (CommonStatusEnum.DISABLE.getStatus().equals(channel.getStatus())) {
|
|
||||||
throw exception(PayErrorCodeCoreConstants.PAY_CHANNEL_IS_DISABLE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
/**
|
|
||||||
* 这里的 VO 包有点特殊,是提供给接入支付模块的业务,提供回调接口时,可以直接使用 VO
|
|
||||||
*
|
|
||||||
* 例如说,支付单的回调,使用
|
|
||||||
*/
|
|
||||||
package cn.iocoder.yudao.coreservice.modules.pay.service.notify.vo;
|
|
@ -1,50 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.service.order;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.*;
|
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayNotifyDataDTO;
|
|
||||||
|
|
||||||
import javax.validation.Valid;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付订单 Core Service
|
|
||||||
*
|
|
||||||
* @author 芋道源码
|
|
||||||
*/
|
|
||||||
public interface PayOrderCoreService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获得支付单
|
|
||||||
*
|
|
||||||
* @param id 支付单编号
|
|
||||||
* @return 支付单
|
|
||||||
*/
|
|
||||||
PayOrderDO getPayOrder(Long id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建支付单
|
|
||||||
*
|
|
||||||
* @param reqDTO 创建请求
|
|
||||||
* @return 支付单编号
|
|
||||||
*/
|
|
||||||
Long createPayOrder(@Valid PayOrderCreateReqDTO reqDTO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 提交支付
|
|
||||||
* 此时,会发起支付渠道的调用
|
|
||||||
*
|
|
||||||
* @param reqDTO 提交请求
|
|
||||||
* @return 提交结果
|
|
||||||
*/
|
|
||||||
PayOrderSubmitRespDTO submitPayOrder(@Valid PayOrderSubmitReqDTO reqDTO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通知支付单成功
|
|
||||||
*
|
|
||||||
* @param channelId 渠道编号
|
|
||||||
* @param notifyData 通知数据
|
|
||||||
*/
|
|
||||||
void notifyPayOrder(Long channelId, PayNotifyDataDTO notifyData) throws Exception;
|
|
||||||
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.service.order;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayRefundReqDTO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayRefundRespDTO;
|
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayNotifyDataDTO;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 退款单 Core Service
|
|
||||||
*
|
|
||||||
* @author jason
|
|
||||||
*/
|
|
||||||
public interface PayRefundCoreService {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 提交退款申请
|
|
||||||
*
|
|
||||||
* @param reqDTO 退款申请信息
|
|
||||||
* @return 退款申请返回信息
|
|
||||||
*/
|
|
||||||
PayRefundRespDTO submitRefundOrder(PayRefundReqDTO reqDTO);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 渠道的退款通知
|
|
||||||
*
|
|
||||||
* @param channelId 渠道编号
|
|
||||||
* @param notifyData 通知数据
|
|
||||||
* @throws Exception 退款通知异常
|
|
||||||
*/
|
|
||||||
void notifyPayRefund(Long channelId, PayNotifyDataDTO notifyData) throws Exception;
|
|
||||||
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.service;
|
|
@ -17,10 +17,7 @@ import lombok.Getter;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum PayChannelEnum {
|
public enum PayChannelEnum {
|
||||||
|
|
||||||
/**
|
WX_PUB("wx_pub", "微信 JSAPI 支付", WXPayClientConfig.class), // 公众号网页
|
||||||
* 公众号网页
|
|
||||||
*/
|
|
||||||
WX_PUB("wx_pub", "微信 JSAPI 支付", WXPayClientConfig.class),
|
|
||||||
WX_LITE("wx_lite", "微信小程序支付", WXPayClientConfig.class),
|
WX_LITE("wx_lite", "微信小程序支付", WXPayClientConfig.class),
|
||||||
WX_APP("wx_app", "微信 App 支付", WXPayClientConfig.class),
|
WX_APP("wx_app", "微信 App 支付", WXPayClientConfig.class),
|
||||||
|
|
||||||
@ -34,16 +31,16 @@ public enum PayChannelEnum {
|
|||||||
* <p>
|
* <p>
|
||||||
* 参考 https://www.pingxx.com/api/支付渠道属性值.html
|
* 参考 https://www.pingxx.com/api/支付渠道属性值.html
|
||||||
*/
|
*/
|
||||||
private String code;
|
private final String code;
|
||||||
/**
|
/**
|
||||||
* 名字
|
* 名字
|
||||||
*/
|
*/
|
||||||
private String name;
|
private final String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 配置类
|
* 配置类
|
||||||
*/
|
*/
|
||||||
private Class<? extends PayClientConfig> configClass;
|
private final Class<? extends PayClientConfig> configClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 微信支付
|
* 微信支付
|
||||||
|
25
yudao-module-pay/pom.xml
Normal file
25
yudao-module-pay/pom.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>yudao-module-pay</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<modules>
|
||||||
|
<module>yudao-module-pay-api</module>
|
||||||
|
<module>yudao-module-pay-impl</module>
|
||||||
|
</modules>
|
||||||
|
|
||||||
|
<name>${artifactId}</name>
|
||||||
|
<description>
|
||||||
|
pay 模块,我们放支付业务,提供业务的支付能力。
|
||||||
|
例如说:商户、应用、支付、退款等等
|
||||||
|
</description>
|
||||||
|
|
||||||
|
|
||||||
|
</project>
|
26
yudao-module-pay/yudao-module-pay-api/pom.xml
Normal file
26
yudao-module-pay/yudao-module-pay-api/pom.xml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>yudao-module-pay</artifactId>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<version>1.4.0-snapshot</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>yudao-module-pay-api</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>${artifactId}</name>
|
||||||
|
<description>
|
||||||
|
pay 模块 API,暴露给其它模块调用
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-common</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,35 @@
|
|||||||
|
package cn.iocoder.yudao.module.pay.enums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pay 字典类型的枚举类
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
public interface DictTypeConstants {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付-订单-订单状态
|
||||||
|
*/
|
||||||
|
String PAY_ORDER_STATUS = "pay_order_status";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付-订单-订单回调商户状态
|
||||||
|
*/
|
||||||
|
String PAY_ORDER_NOTIFY_STATUS = "pay_order_notify_status";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付-订单-订单退款状态
|
||||||
|
*/
|
||||||
|
String PAY_ORDER_REFUND_STATUS = "pay_order_refund_status";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付-退款订单-退款状态
|
||||||
|
*/
|
||||||
|
String PAY_REFUND_ORDER_STATUS = "pay_refund_order_status";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付-退款订单-退款类别
|
||||||
|
*/
|
||||||
|
String PAY_REFUND_ORDER_TYPE = "pay_refund_order_type";
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.enums;
|
package cn.iocoder.yudao.module.pay.enums;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
||||||
|
|
||||||
@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
|||||||
*
|
*
|
||||||
* pay 系统,使用 1-007-000-000 段
|
* pay 系统,使用 1-007-000-000 段
|
||||||
*/
|
*/
|
||||||
public interface PayErrorCodeCoreConstants {
|
public interface ErrorCodeConstants {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ========== APP 模块 1-007-000-000 ==========
|
* ========== APP 模块 1-007-000-000 ==========
|
@ -0,0 +1 @@
|
|||||||
|
package cn.iocoder.yudao.module.pay;
|
103
yudao-module-pay/yudao-module-pay-impl/pom.xml
Normal file
103
yudao-module-pay/yudao-module-pay-impl/pom.xml
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>yudao-module-pay</artifactId>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<version>1.4.0-snapshot</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>yudao-module-pay-impl</artifactId>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
|
<name>${artifactId}</name>
|
||||||
|
<description>
|
||||||
|
pay 模块,我们放支付业务,提供业务的支付能力。
|
||||||
|
例如说:商户、应用、支付、退款等等
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-module-pay-api</artifactId>
|
||||||
|
<version>${revision}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 业务组件 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-biz-pay</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Web 相关 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-security</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- DB 相关 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-mybatis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-redis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Job 定时任务相关 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-job</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 消息队列相关 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-mq</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Test 测试相关 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- 工具类相关 -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-excel</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<!-- 设置构建的 jar 包名 -->
|
||||||
|
<finalName>${artifactId}</finalName>
|
||||||
|
<plugins>
|
||||||
|
<!-- 打包 -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<fork>true</fork>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
@ -1,20 +1,20 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.convert.app.PayAppConvert;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
|
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app.*;
|
||||||
|
import cn.iocoder.yudao.module.pay.convert.app.PayAppConvert;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.merchant.PayAppService;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.merchant.PayChannelService;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.merchant.PayMerchantService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
@ -33,7 +33,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Api(tags = "支付应用信息")
|
@Api(tags = "管理后台 - 支付应用信息")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/pay/app")
|
@RequestMapping("/pay/app")
|
||||||
@Validated
|
@Validated
|
||||||
@ -106,7 +106,7 @@ public class PayAppController {
|
|||||||
return success(new PageResult<>(pageResult.getTotal()));
|
return success(new PageResult<>(pageResult.getTotal()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 得到所有的应用编号,查出所有的通道
|
// 得到所有的应用编号,查出所有的渠道
|
||||||
Collection<Long> payAppIds = CollectionUtils.convertList(pageResult.getList(), PayAppDO::getId);
|
Collection<Long> payAppIds = CollectionUtils.convertList(pageResult.getList(), PayAppDO::getId);
|
||||||
List<PayChannelDO> channels = channelService.getChannelListByAppIds(payAppIds);
|
List<PayChannelDO> channels = channelService.getChannelListByAppIds(payAppIds);
|
||||||
// TODO @aquan:可以基于 appId 简历一个 multiMap。这样下面,直接 get 到之后,CollUtil buildSet 即可
|
// TODO @aquan:可以基于 appId 简历一个 multiMap。这样下面,直接 get 到之后,CollUtil buildSet 即可
|
||||||
@ -116,7 +116,7 @@ public class PayAppController {
|
|||||||
Collection<Long> merchantIds = CollectionUtils.convertList(pageResult.getList(), PayAppDO::getMerchantId);
|
Collection<Long> merchantIds = CollectionUtils.convertList(pageResult.getList(), PayAppDO::getMerchantId);
|
||||||
Map<Long, PayMerchantDO> deptMap = merchantService.getMerchantMap(merchantIds);
|
Map<Long, PayMerchantDO> deptMap = merchantService.getMerchantMap(merchantIds);
|
||||||
|
|
||||||
// 利用反射将通道数据复制到返回的数据结构中去
|
// 利用反射将渠道数据复制到返回的数据结构中去
|
||||||
List<PayAppPageItemRespVO> appList = new ArrayList<>(pageResult.getList().size());
|
List<PayAppPageItemRespVO> appList = new ArrayList<>(pageResult.getList().size());
|
||||||
pageResult.getList().forEach(app -> {
|
pageResult.getList().forEach(app -> {
|
||||||
// 写入应用信息的数据
|
// 写入应用信息的数据
|
@ -1,9 +1,9 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.channel;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant;
|
||||||
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.*;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.convert.channel.PayChannelConvert;
|
import cn.iocoder.yudao.module.pay.convert.channel.PayChannelConvert;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.channel.PayChannelService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
|
import cn.iocoder.yudao.module.pay.service.merchant.PayChannelService;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
@ -26,11 +26,7 @@ import java.util.List;
|
|||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
|
||||||
/**
|
@Api(tags = "管理后台 - 支付渠道")
|
||||||
* 支付渠道 controller 组件
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@Api(tags = "支付渠道")
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/pay/channel")
|
@RequestMapping("/pay/channel")
|
||||||
@Validated
|
@Validated
|
||||||
@ -39,7 +35,6 @@ public class PayChannelController {
|
|||||||
@Resource
|
@Resource
|
||||||
private PayChannelService channelService;
|
private PayChannelService channelService;
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@ApiOperation("创建支付渠道 ")
|
@ApiOperation("创建支付渠道 ")
|
||||||
@PreAuthorize("@ss.hasPermission('pay:channel:create')")
|
@PreAuthorize("@ss.hasPermission('pay:channel:create')")
|
||||||
@ -116,7 +111,6 @@ public class PayChannelController {
|
|||||||
@PreAuthorize("@ss.hasPermission('pay:channel:query')")
|
@PreAuthorize("@ss.hasPermission('pay:channel:query')")
|
||||||
public CommonResult<PayChannelRespVO> getChannel(
|
public CommonResult<PayChannelRespVO> getChannel(
|
||||||
@RequestParam Long merchantId, @RequestParam Long appId, @RequestParam String code) {
|
@RequestParam Long merchantId, @RequestParam Long appId, @RequestParam String code) {
|
||||||
|
|
||||||
// 獲取渠道
|
// 獲取渠道
|
||||||
PayChannelDO channel = channelService.getChannelByConditions(merchantId, appId, code);
|
PayChannelDO channel = channelService.getChannelByConditions(merchantId, appId, code);
|
||||||
if (channel == null) {
|
if (channel == null) {
|
||||||
@ -126,4 +120,5 @@ public class PayChannelController {
|
|||||||
PayChannelRespVO respVo = PayChannelConvert.INSTANCE.convert(channel);
|
PayChannelRespVO respVo = PayChannelConvert.INSTANCE.convert(channel);
|
||||||
return success(respVo);
|
return success(respVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,9 +1,9 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant;
|
||||||
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.*;
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.*;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.convert.merchant.PayMerchantConvert;
|
import cn.iocoder.yudao.module.pay.convert.merchant.PayMerchantConvert;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
|
import cn.iocoder.yudao.module.pay.service.merchant.PayMerchantService;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
@ -1,11 +1,9 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import javax.validation.constraints.*;
|
|
||||||
|
|
||||||
@ApiModel("支付应用信息创建 Request VO")
|
@ApiModel("管理后台 - 支付应用信息创建 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,10 +1,9 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import lombok.*;
|
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付应用信息 Excel VO
|
* 支付应用信息 Excel VO
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel(value = "支付应用信息 Excel 导出 Request VO", description = "参数和 PayAppPageReqVO 是一致的")
|
@ApiModel(value = "管理后台 - 支付应用信息 Excel 导出 Request VO", description = "参数和 PayAppPageReqVO 是一致的")
|
||||||
@Data
|
@Data
|
||||||
public class PayAppExportReqVO {
|
public class PayAppExportReqVO {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -9,12 +9,7 @@ import lombok.ToString;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
@ApiModel(value = "管理后台 - 支付应用信息分页查询 Response VO", description = "相比于支付信息,还会多出应用渠道的开关信息")
|
||||||
* 支付应用信息分页查询 Response VO
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@ApiModel(value = "支付应用信息分页查询 Response VO", description = "相比于支付信息,还会多出应用渠道的开关信息")
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel("支付应用信息分页 Request VO")
|
@ApiModel("管理后台 - 支付应用信息分页 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,10 +1,10 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
@ApiModel("支付应用信息 Response VO")
|
@ApiModel("管理后台 - 支付应用信息 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,11 +1,10 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
@ApiModel("支付应用信息更新 Request VO")
|
@ApiModel("管理后台 - 支付应用信息更新 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -6,7 +6,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@ApiModel("应用更新状态 Request VO")
|
@ApiModel("管理后台 - 应用更新状态 Request VO")
|
||||||
@Data
|
@Data
|
||||||
public class PayAppUpdateStatusReqVO {
|
public class PayAppUpdateStatusReqVO {
|
||||||
|
|
@ -1,13 +1,11 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付渠道
|
* 支付渠道 Base VO,提供给添加、修改、详细的子 VO 使用
|
||||||
Base VO,提供给添加、修改、详细的子 VO 使用
|
|
||||||
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -8,14 +8,14 @@ import lombok.ToString;
|
|||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
import javax.validation.constraints.NotBlank;
|
||||||
|
|
||||||
@ApiModel("支付渠道 创建 Request VO")
|
@ApiModel("管理后台 - 支付渠道 创建 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
public class PayChannelCreateReqVO extends PayChannelBaseVO {
|
public class PayChannelCreateReqVO extends PayChannelBaseVO {
|
||||||
|
|
||||||
@ApiModelProperty(value = "通道配置的 json 字符串")
|
@ApiModelProperty(value = "渠道配置的 json 字符串")
|
||||||
@NotBlank(message = "通道配置不能为空")
|
@NotBlank(message = "渠道配置不能为空")
|
||||||
private String config;
|
private String config;
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -7,8 +7,7 @@ import io.swagger.annotations.*;
|
|||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付渠道
|
* 支付渠道 Excel VO
|
||||||
Excel VO
|
|
||||||
*
|
*
|
||||||
* @author 芋艿
|
* @author 芋艿
|
||||||
*/
|
*/
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel(value = "支付渠道 Excel 导出 Request VO", description = "参数和 PayChannelPageReqVO 是一致的")
|
@ApiModel(value = "管理后台 - 支付渠道 Excel 导出 Request VO", description = "参数和 PayChannelPageReqVO 是一致的")
|
||||||
@Data
|
@Data
|
||||||
public class PayChannelExportReqVO {
|
public class PayChannelExportReqVO {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel("支付渠道 分页 Request VO")
|
@ApiModel("管理后台 - 支付渠道 分页 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,10 +1,10 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
@ApiModel("支付渠道 Response VO")
|
@ApiModel("管理后台 - 支付渠道 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,11 +1,10 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
@ApiModel("支付渠道 更新 Request VO")
|
@ApiModel("管理后台 - 支付渠道 更新 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
@ -15,7 +14,7 @@ public class PayChannelUpdateReqVO extends PayChannelBaseVO {
|
|||||||
@NotNull(message = "商户编号不能为空")
|
@NotNull(message = "商户编号不能为空")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@ApiModelProperty(value = "通道配置的json字符串")
|
@ApiModelProperty(value = "渠道配置的json字符串")
|
||||||
@NotBlank(message = "通道配置不能为空")
|
@NotBlank(message = "渠道配置不能为空")
|
||||||
private String config;
|
private String config;
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
@ -1,11 +1,9 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import javax.validation.constraints.*;
|
|
||||||
|
|
||||||
@ApiModel("支付商户信息创建 Request VO")
|
@ApiModel("管理后台 - 支付商户信息创建 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel(value = "支付商户信息 Excel 导出 Request VO", description = "参数和 PayMerchantPageReqVO 是一致的")
|
@ApiModel(value = "管理后台 - 支付商户信息 Excel 导出 Request VO", description = "参数和 PayMerchantPageReqVO 是一致的")
|
||||||
@Data
|
@Data
|
||||||
public class PayMerchantExportReqVO {
|
public class PayMerchantExportReqVO {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -8,7 +8,7 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel("支付商户信息分页 Request VO")
|
@ApiModel("管理后台 - 支付商户信息分页 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -8,7 +8,7 @@ import lombok.ToString;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@ApiModel("支付商户信息 Response VO")
|
@ApiModel("管理后台 - 支付商户信息 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
@ -20,11 +20,7 @@ public class PayMerchantRespVO extends PayMerchantBaseVO {
|
|||||||
@ApiModelProperty(value = "创建时间", required = true)
|
@ApiModelProperty(value = "创建时间", required = true)
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
/**
|
@ApiModelProperty(value = "商户号", required = true, example = "M233666999")
|
||||||
* 商户号
|
|
||||||
* 例如说,M233666999
|
|
||||||
* 只有新增时插入,不允许修改
|
|
||||||
*/
|
|
||||||
private String no;
|
private String no;
|
||||||
|
|
||||||
}
|
}
|
@ -1,11 +1,10 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import java.util.*;
|
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
@ApiModel("支付商户信息更新 Request VO")
|
@ApiModel("管理后台 - 支付商户信息更新 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -6,7 +6,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@ApiModel("商户更新状态 Request VO")
|
@ApiModel("管理后台 - 商户更新状态 Request VO")
|
||||||
@Data
|
@Data
|
||||||
public class PayMerchantUpdateStatusReqVO {
|
public class PayMerchantUpdateStatusReqVO {
|
||||||
|
|
@ -1,17 +1,17 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.order;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.*;
|
import cn.iocoder.yudao.module.pay.controller.admin.order.vo.*;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.convert.order.PayOrderConvert;
|
import cn.iocoder.yudao.module.pay.convert.order.PayOrderConvert;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayOrderExtensionService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayOrderService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
|
import cn.iocoder.yudao.module.pay.service.merchant.PayAppService;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
|
import cn.iocoder.yudao.module.pay.service.merchant.PayMerchantService;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
import cn.iocoder.yudao.module.pay.service.order.PayOrderExtensionService;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
|
import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||||
@ -39,38 +39,18 @@ import java.util.Map;
|
|||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
|
||||||
/**
|
@Api(tags = "管理后台 - 支付订单")
|
||||||
* 支付订单 controller 组件
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@Api(tags = "支付订单")
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/pay/order")
|
@RequestMapping("/pay/order")
|
||||||
@Validated
|
@Validated
|
||||||
public class PayOrderController {
|
public class PayOrderController {
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单 service 组件
|
|
||||||
*/
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayOrderService orderService;
|
private PayOrderService orderService;
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单扩展 service 组件
|
|
||||||
*/
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayOrderExtensionService orderExtensionService;
|
private PayOrderExtensionService orderExtensionService;
|
||||||
|
|
||||||
/**
|
|
||||||
* 商户 service 组件
|
|
||||||
*/
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayMerchantService merchantService;
|
private PayMerchantService merchantService;
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用 service 组件
|
|
||||||
*/
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayAppService appService;
|
private PayAppService appService;
|
||||||
|
|
||||||
@ -88,6 +68,7 @@ public class PayOrderController {
|
|||||||
PayAppDO appDO = appService.getApp(order.getAppId());
|
PayAppDO appDO = appService.getApp(order.getAppId());
|
||||||
PayChannelEnum channelEnum = PayChannelEnum.getByCode(order.getChannelCode());
|
PayChannelEnum channelEnum = PayChannelEnum.getByCode(order.getChannelCode());
|
||||||
|
|
||||||
|
// TODO @aquan:文案,都是前端 format;
|
||||||
PayOrderDetailsRespVO respVO = PayOrderConvert.INSTANCE.orderDetailConvert(order);
|
PayOrderDetailsRespVO respVO = PayOrderConvert.INSTANCE.orderDetailConvert(order);
|
||||||
respVO.setMerchantName(ObjectUtil.isNotNull(merchantDO) ? merchantDO.getName() : "未知商户");
|
respVO.setMerchantName(ObjectUtil.isNotNull(merchantDO) ? merchantDO.getName() : "未知商户");
|
||||||
respVO.setAppName(ObjectUtil.isNotNull(appDO) ? appDO.getName() : "未知应用");
|
respVO.setAppName(ObjectUtil.isNotNull(appDO) ? appDO.getName() : "未知应用");
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -10,8 +10,7 @@ import java.util.Date;
|
|||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付订单
|
* 支付订单 Base VO,提供给添加、修改、详细的子 VO 使用
|
||||||
* Base VO,提供给添加、修改、详细的子 VO 使用
|
|
||||||
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
|
||||||
*
|
*
|
||||||
* @author aquan
|
* @author aquan
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -8,12 +8,7 @@ import lombok.ToString;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
@ApiModel("管理后台 - 支付订单详细信息 Response VO")
|
||||||
* 支付订单详细信息,由支付订单和支付订单扩展信息组成
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@ApiModel("支付订单详细信息 Response VO")
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,8 +1,8 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
|
|
||||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||||
|
import cn.iocoder.yudao.module.pay.enums.DictTypeConstants;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -9,11 +9,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
/**
|
@ApiModel(value = "管理后台 - 支付订单 Excel 导出 Request VO", description = "参数和 PayOrderPageReqVO 是一致的")
|
||||||
* 支付订单 Excel 导出 Request VO
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@ApiModel(value = "支付订单 Excel 导出 Request VO", description = "参数和 PayOrderPageReqVO 是一致的")
|
|
||||||
@Data
|
@Data
|
||||||
public class PayOrderExportReqVO {
|
public class PayOrderExportReqVO {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -8,12 +8,7 @@ import lombok.ToString;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
@ApiModel("管理后台 - 支付订单分页 Request VO")
|
||||||
* 支付订单分页 Request VO
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@ApiModel("支付订单分页 Request VO")
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
@ -12,12 +12,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
/**
|
@ApiModel("管理后台 - 支付订单分页 Request VO")
|
||||||
* 支付订单分页 Request VO
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@ApiModel("支付订单分页 Request VO")
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.order.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -8,12 +8,7 @@ import lombok.ToString;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
@ApiModel("管理后台 - 支付订单 Response VO")
|
||||||
* 支付订单 Response VO
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@ApiModel("支付订单 Response VO")
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,17 +1,17 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.*;
|
import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.*;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.convert.refund.PayRefundConvert;
|
import cn.iocoder.yudao.module.pay.convert.refund.PayRefundConvert;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.app.PayAppService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.merchant.PayMerchantService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayOrderService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.service.order.PayRefundService;
|
import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
|
import cn.iocoder.yudao.module.pay.service.merchant.PayAppService;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
|
import cn.iocoder.yudao.module.pay.service.merchant.PayMerchantService;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
|
import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||||
@ -39,12 +39,7 @@ import java.util.Map;
|
|||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
|
||||||
/**
|
@Api(tags = "管理后台 - 退款订单")
|
||||||
* 退款订单 Controller 组件
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@Api(tags = "退款订单")
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/pay/refund")
|
@RequestMapping("/pay/refund")
|
||||||
@Validated
|
@Validated
|
||||||
@ -52,26 +47,13 @@ public class PayRefundController {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayRefundService refundService;
|
private PayRefundService refundService;
|
||||||
|
|
||||||
/**
|
|
||||||
* 商户 service 组件
|
|
||||||
*/
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayMerchantService merchantService;
|
private PayMerchantService merchantService;
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用 service 组件
|
|
||||||
*/
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayAppService appService;
|
private PayAppService appService;
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单 service 组件
|
|
||||||
*/
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayOrderService orderService;
|
private PayOrderService orderService;
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@ApiOperation("获得退款订单")
|
@ApiOperation("获得退款订单")
|
||||||
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
|
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
@ -1,9 +1,9 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
|
|
||||||
@ApiModel("退款订单创建 Request VO")
|
@ApiModel("管理后台 - 退款订单创建 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -9,12 +9,7 @@ import lombok.ToString;
|
|||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
@ApiModel("管理后台 - 退款订单详情 Response VO")
|
||||||
* 退款订单详情 Response VO
|
|
||||||
*
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@ApiModel("退款订单详情 Response VO")
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,8 +1,8 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
|
|
||||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||||
|
import cn.iocoder.yudao.module.pay.enums.DictTypeConstants;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -9,7 +9,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel(value = "退款订单 Excel 导出 Request VO", description = "参数和 PayRefundPageReqVO 是一致的")
|
@ApiModel(value = "管理后台 - 退款订单 Excel 导出 Request VO", description = "参数和 PayRefundPageReqVO 是一致的")
|
||||||
@Data
|
@Data
|
||||||
public class PayRefundExportReqVO {
|
public class PayRefundExportReqVO {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -8,11 +8,7 @@ import lombok.ToString;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
@ApiModel("管理后台 - 退款订单分页查询 Response VO")
|
||||||
* 退款订单分页查询 Response VO
|
|
||||||
* @author aquan
|
|
||||||
*/
|
|
||||||
@ApiModel("退款订单分页查询 Response VO")
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
@ -12,7 +12,7 @@ import java.util.Date;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
@ApiModel("退款订单分页 Request VO")
|
@ApiModel("管理后台 - 退款订单分页 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -8,7 +8,7 @@ import lombok.ToString;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@ApiModel("退款订单 Response VO")
|
@ApiModel("管理后台 - 退款订单 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,10 +1,10 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
|
package cn.iocoder.yudao.module.pay.controller.admin.refund.vo;
|
||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import io.swagger.annotations.*;
|
import io.swagger.annotations.*;
|
||||||
import javax.validation.constraints.*;
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
@ApiModel("退款订单更新 Request VO")
|
@ApiModel("管理后台 - 退款订单更新 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
@ -1,17 +1,17 @@
|
|||||||
package cn.iocoder.yudao.userserver.modules.pay.controller.order;
|
package cn.iocoder.yudao.module.pay.controller.app.order;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.PayOrderCoreService;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.PayRefundCoreService;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitReqDTO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayOrderSubmitRespDTO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.PayClient;
|
import cn.iocoder.yudao.framework.pay.core.client.PayClient;
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
|
import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayNotifyDataDTO;
|
import cn.iocoder.yudao.framework.pay.core.client.dto.PayNotifyDataDTO;
|
||||||
import cn.iocoder.yudao.userserver.modules.pay.controller.order.vo.PayOrderSubmitReqVO;
|
import cn.iocoder.yudao.module.pay.controller.app.order.vo.AppPayOrderSubmitReqVO;
|
||||||
import cn.iocoder.yudao.userserver.modules.pay.controller.order.vo.PayOrderSubmitRespVO;
|
import cn.iocoder.yudao.module.pay.controller.app.order.vo.AppPayOrderSubmitRespVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.order.dto.PayOrderSubmitReqDTO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.order.dto.PayOrderSubmitRespDTO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -21,52 +21,52 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.coreservice.modules.pay.enums.PayErrorCodeCoreConstants.PAY_CHANNEL_CLIENT_NOT_FOUND;
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
|
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
|
||||||
|
import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
@Api(tags = "支付订单")
|
@Api(tags = "用户 APP - 支付订单")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/pay/order")
|
@RequestMapping("/pay/order")
|
||||||
@Validated
|
@Validated
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class PayOrderController {
|
public class AppPayOrderController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayOrderCoreService payOrderCoreService;
|
private PayOrderService orderService;
|
||||||
@Resource
|
@Resource
|
||||||
private PayRefundCoreService payRefundCoreService;
|
private PayRefundService refundService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayClientFactory payClientFactory;
|
private PayClientFactory payClientFactory;
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/submit")
|
@PostMapping("/submit")
|
||||||
@ApiOperation("提交支付订单")
|
@ApiOperation("提交支付订单")
|
||||||
// @PreAuthenticated // TODO 暂时不加登陆验证,前端暂时没做好
|
// @PreAuthenticated // TODO 暂时不加登陆验证,前端暂时没做好
|
||||||
public CommonResult<PayOrderSubmitRespVO> submitPayOrder(@RequestBody PayOrderSubmitReqVO reqVO) {
|
public CommonResult<AppPayOrderSubmitRespVO> submitPayOrder(@RequestBody AppPayOrderSubmitReqVO reqVO) {
|
||||||
// 获得订单
|
// 获得订单
|
||||||
PayOrderDO payOrder = payOrderCoreService.getPayOrder(reqVO.getId());
|
PayOrderDO payOrder = orderService.getOrder(reqVO.getId());
|
||||||
|
|
||||||
// 提交支付
|
// 提交支付
|
||||||
PayOrderSubmitReqDTO reqDTO = new PayOrderSubmitReqDTO();
|
PayOrderSubmitReqDTO reqDTO = new PayOrderSubmitReqDTO();
|
||||||
BeanUtil.copyProperties(reqVO, reqDTO, false);
|
BeanUtil.copyProperties(reqVO, reqDTO, false);
|
||||||
reqDTO.setUserIp(getClientIP());
|
reqDTO.setUserIp(getClientIP());
|
||||||
reqDTO.setAppId(payOrder.getAppId());
|
reqDTO.setAppId(payOrder.getAppId());
|
||||||
PayOrderSubmitRespDTO respDTO = payOrderCoreService.submitPayOrder(reqDTO);
|
PayOrderSubmitRespDTO respDTO = orderService.submitPayOrder(reqDTO);
|
||||||
|
|
||||||
// 拼接返回
|
// 拼接返回
|
||||||
return success(PayOrderSubmitRespVO.builder().invokeResponse(respDTO.getInvokeResponse()).build());
|
return success(AppPayOrderSubmitRespVO.builder().invokeResponse(respDTO.getInvokeResponse()).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
// ========== 支付渠道的回调 ==========
|
// ========== 支付渠道的回调 ==========
|
||||||
|
// TODO @芋艿:是不是放到 notify 模块更合适
|
||||||
//TODO 芋道源码 换成了统一的地址了 /notify/{channelId},测试通过可以删除
|
//TODO 芋道源码 换成了统一的地址了 /notify/{channelId},测试通过可以删除
|
||||||
@PostMapping("/notify/wx-pub/{channelId}")
|
@PostMapping("/notify/wx-pub/{channelId}")
|
||||||
@ApiOperation("通知微信公众号支付的结果")
|
@ApiOperation("通知微信公众号支付的结果")
|
||||||
public String notifyWxPayOrder(@PathVariable("channelId") Long channelId,
|
public String notifyWxPayOrder(@PathVariable("channelId") Long channelId,
|
||||||
@RequestBody String xmlData) throws Exception {
|
@RequestBody String xmlData) throws Exception {
|
||||||
payOrderCoreService.notifyPayOrder(channelId, PayNotifyDataDTO.builder().body(xmlData).build());
|
orderService.notifyPayOrder(channelId, PayNotifyDataDTO.builder().body(xmlData).build());
|
||||||
return "success";
|
return "success";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,12 +110,12 @@ public class PayOrderController {
|
|||||||
|
|
||||||
// 如果是退款,则发起退款通知
|
// 如果是退款,则发起退款通知
|
||||||
if (payClient.isRefundNotify(notifyData)) {
|
if (payClient.isRefundNotify(notifyData)) {
|
||||||
payRefundCoreService.notifyPayRefund(channelId, PayNotifyDataDTO.builder().params(params).body(originData).build());
|
refundService.notifyPayRefund(channelId, PayNotifyDataDTO.builder().params(params).body(originData).build());
|
||||||
return "success";
|
return "success";
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果非退款,则发起支付通知
|
// 如果非退款,则发起支付通知
|
||||||
payOrderCoreService.notifyPayOrder(channelId, PayNotifyDataDTO.builder().params(params).body(originData).build());
|
orderService.notifyPayOrder(channelId, PayNotifyDataDTO.builder().params(params).body(originData).build());
|
||||||
return "success";
|
return "success";
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.userserver.modules.pay.controller.order.vo;
|
package cn.iocoder.yudao.module.pay.controller.app.order.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -9,10 +9,10 @@ import javax.validation.constraints.NotEmpty;
|
|||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ApiModel("支付订单提交 Request VO")
|
@ApiModel("用户 APP - 支付订单提交 Request VO")
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class PayOrderSubmitReqVO {
|
public class AppPayOrderSubmitReqVO {
|
||||||
|
|
||||||
@ApiModelProperty(value = "支付单编号", required = true, example = "1024")
|
@ApiModelProperty(value = "支付单编号", required = true, example = "1024")
|
||||||
@NotNull(message = "支付单编号不能为空")
|
@NotNull(message = "支付单编号不能为空")
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.userserver.modules.pay.controller.order.vo;
|
package cn.iocoder.yudao.module.pay.controller.app.order.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -7,13 +7,13 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
@ApiModel("支付订单提交 Response VO")
|
@ApiModel("用户 APP - 支付订单提交 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class PayOrderSubmitRespVO {
|
public class AppPayOrderSubmitRespVO {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 调用支付渠道的响应结果
|
* 调用支付渠道的响应结果
|
@ -0,0 +1 @@
|
|||||||
|
package cn.iocoder.yudao.module.pay.controller.app;
|
@ -1,13 +1,13 @@
|
|||||||
package cn.iocoder.yudao.userserver.modules.pay.controller.order;
|
package cn.iocoder.yudao.module.pay.controller.app.refund;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.PayRefundCoreService;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.service.order.dto.PayRefundReqDTO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.util.PaySeqUtils;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.userserver.modules.pay.controller.order.vo.PayRefundReqVO;
|
import cn.iocoder.yudao.module.pay.controller.app.refund.vo.AppPayRefundReqVO;
|
||||||
import cn.iocoder.yudao.userserver.modules.pay.controller.order.vo.PayRefundRespVO;
|
import cn.iocoder.yudao.module.pay.controller.app.refund.vo.AppPayRefundRespVO;
|
||||||
import cn.iocoder.yudao.userserver.modules.pay.convert.order.PayRefundConvert;
|
import cn.iocoder.yudao.module.pay.convert.refund.PayRefundConvert;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.order.dto.PayRefundReqDTO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
|
||||||
|
import cn.iocoder.yudao.module.pay.util.PaySeqUtils;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -19,28 +19,29 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
|
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
|
||||||
|
|
||||||
@Api(tags = "退款订单")
|
@Api(tags = "用户 APP - 退款订单")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/pay/order")
|
@RequestMapping("/pay/refund")
|
||||||
@Validated
|
@Validated
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class PayRefundController {
|
public class AppPayRefundController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private PayRefundCoreService payRefundCoreService;
|
private PayRefundService refundService;
|
||||||
|
|
||||||
@PostMapping("/refund")
|
@PostMapping("/refund")
|
||||||
@ApiOperation("提交退款订单")
|
@ApiOperation("提交退款订单")
|
||||||
public CommonResult<PayRefundRespVO> submitRefundOrder(@RequestBody PayRefundReqVO reqVO){
|
public CommonResult<AppPayRefundRespVO> submitRefundOrder(@RequestBody AppPayRefundReqVO reqVO){
|
||||||
PayRefundReqDTO req = PayRefundConvert.INSTANCE.convert(reqVO);
|
PayRefundReqDTO req = PayRefundConvert.INSTANCE.convert(reqVO);
|
||||||
req.setUserIp(getClientIP());
|
req.setUserIp(getClientIP());
|
||||||
// TODO 测试暂时模拟生成商户退款订单
|
// TODO 测试暂时模拟生成商户退款订单
|
||||||
if(StrUtil.isEmpty(reqVO.getMerchantRefundId())) {
|
if(StrUtil.isEmpty(reqVO.getMerchantRefundId())) {
|
||||||
req.setMerchantRefundId(PaySeqUtils.genMerchantRefundNo());
|
req.setMerchantRefundId(PaySeqUtils.genMerchantRefundNo());
|
||||||
}
|
}
|
||||||
return CommonResult.success( PayRefundConvert.INSTANCE.convert(payRefundCoreService.submitRefundOrder(req)));
|
return success(PayRefundConvert.INSTANCE.convert(refundService.submitRefundOrder(req)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.userserver.modules.pay.controller.order.vo;
|
package cn.iocoder.yudao.module.pay.controller.app.refund.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
@ -8,11 +8,11 @@ import lombok.NoArgsConstructor;
|
|||||||
|
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
|
||||||
@ApiModel("退款订单 Req VO")
|
@ApiModel("用户 APP - 退款订单 Req VO")
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class PayRefundReqVO {
|
public class AppPayRefundReqVO {
|
||||||
|
|
||||||
@ApiModelProperty(value = "支付订单编号自增", required = true, example = "10")
|
@ApiModelProperty(value = "支付订单编号自增", required = true, example = "10")
|
||||||
@NotEmpty(message = "支付订单编号自增")
|
@NotEmpty(message = "支付订单编号自增")
|
@ -1,22 +1,22 @@
|
|||||||
package cn.iocoder.yudao.userserver.modules.pay.controller.order.vo;
|
package cn.iocoder.yudao.module.pay.controller.app.refund.vo;
|
||||||
|
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
@ApiModel("提交退款订单 Response VO")
|
@ApiModel("用户 APP - 提交退款订单 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class PayRefundRespVO {
|
public class AppPayRefundRespVO {
|
||||||
|
|
||||||
/**
|
@ApiModelProperty(value = "退款订单编号", required = true, example = "10")
|
||||||
* 支付退款单编号, 自增
|
|
||||||
*/
|
|
||||||
private Long refundId;
|
private Long refundId;
|
||||||
|
|
||||||
}
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
/**
|
||||||
|
* 提供 RESTful API 给前端:
|
||||||
|
* 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目
|
||||||
|
* 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分
|
||||||
|
*/
|
||||||
|
package cn.iocoder.yudao.module.pay.controller;
|
@ -1,14 +1,14 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.convert.app;
|
package cn.iocoder.yudao.module.pay.convert.app;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayAppDO;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.app.*;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayAppDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.app.vo.*;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支付应用信息 Convert
|
* 支付应用信息 Convert
|
@ -1,22 +1,18 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.convert.channel;
|
package cn.iocoder.yudao.module.pay.convert.channel;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayChannelDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.pay.core.client.impl.wx.WXPayClientConfig;
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelCreateReqVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelExcelVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelRespVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.channel.PayChannelUpdateReqVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayChannelDO;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.Mapping;
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.channel.vo.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付渠道
|
|
||||||
Convert
|
|
||||||
*
|
|
||||||
* @author 芋艿
|
|
||||||
*/
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface PayChannelConvert {
|
public interface PayChannelConvert {
|
||||||
|
|
@ -1,19 +1,17 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.convert.merchant;
|
package cn.iocoder.yudao.module.pay.convert.merchant;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant.PayMerchantDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantCreateReqVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantExcelVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantRespVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.merchant.vo.merchant.PayMerchantUpdateReqVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.merchant.PayMerchantDO;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.merchant.vo.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 支付商户信息 Convert
|
|
||||||
*
|
|
||||||
* @author 芋艿
|
|
||||||
*/
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface PayMerchantConvert {
|
public interface PayMerchantConvert {
|
||||||
|
|
@ -1,12 +1,15 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.convert.order;
|
package cn.iocoder.yudao.module.pay.convert.order;
|
||||||
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderDetailsRespVO;
|
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderExcelVO;
|
import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderDetailsRespVO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderPageItemRespVO;
|
import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderExcelVO;
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order.PayOrderRespVO;
|
import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderPageItemRespVO;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderDO;
|
import cn.iocoder.yudao.module.pay.controller.admin.order.vo.PayOrderRespVO;
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayOrderExtensionDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.order.dto.PayOrderCreateReqDTO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.order.dto.PayOrderSubmitReqDTO;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
@ -24,24 +27,10 @@ public interface PayOrderConvert {
|
|||||||
|
|
||||||
PayOrderConvert INSTANCE = Mappers.getMapper(PayOrderConvert.class);
|
PayOrderConvert INSTANCE = Mappers.getMapper(PayOrderConvert.class);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PayOrderRespVO convert(PayOrderDO bean);
|
PayOrderRespVO convert(PayOrderDO bean);
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单DO 转换为 详细订单 RespVO
|
|
||||||
*
|
|
||||||
* @param bean 订单DO
|
|
||||||
* @return 详细订单 RespVO
|
|
||||||
*/
|
|
||||||
PayOrderDetailsRespVO orderDetailConvert(PayOrderDO bean);
|
PayOrderDetailsRespVO orderDetailConvert(PayOrderDO bean);
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单扩展DO 转换为 详细订单扩展 RespVO
|
|
||||||
*
|
|
||||||
* @param bean 订单扩展DO
|
|
||||||
* @return 详细订单扩展 RespVO
|
|
||||||
*/
|
|
||||||
PayOrderDetailsRespVO.PayOrderExtension orderDetailExtensionConvert(PayOrderExtensionDO bean);
|
PayOrderDetailsRespVO.PayOrderExtension orderDetailExtensionConvert(PayOrderExtensionDO bean);
|
||||||
|
|
||||||
List<PayOrderRespVO> convertList(List<PayOrderDO> list);
|
List<PayOrderRespVO> convertList(List<PayOrderDO> list);
|
||||||
@ -58,12 +47,6 @@ public interface PayOrderConvert {
|
|||||||
*/
|
*/
|
||||||
PayOrderPageItemRespVO pageConvertItemPage(PayOrderDO bean);
|
PayOrderPageItemRespVO pageConvertItemPage(PayOrderDO bean);
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单DO 转 订单导出excel VO
|
|
||||||
*
|
|
||||||
* @param bean 订单 DO
|
|
||||||
* @return 订单导出excel VO
|
|
||||||
*/
|
|
||||||
default PayOrderExcelVO excelConvert(PayOrderDO bean) {
|
default PayOrderExcelVO excelConvert(PayOrderDO bean) {
|
||||||
if (bean == null) {
|
if (bean == null) {
|
||||||
return null;
|
return null;
|
||||||
@ -101,4 +84,12 @@ public interface PayOrderConvert {
|
|||||||
|
|
||||||
return payOrderExcelVO;
|
return payOrderExcelVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
PayOrderDO convert(PayOrderCreateReqDTO bean);
|
||||||
|
|
||||||
|
PayOrderExtensionDO convert(PayOrderSubmitReqDTO bean);
|
||||||
|
|
||||||
|
PayOrderUnifiedReqDTO convert2(PayOrderSubmitReqDTO bean);
|
||||||
|
|
||||||
}
|
}
|
@ -3,4 +3,4 @@
|
|||||||
*
|
*
|
||||||
* 目前使用 MapStruct 框架
|
* 目前使用 MapStruct 框架
|
||||||
*/
|
*/
|
||||||
package cn.iocoder.yudao.userserver.modules.pay.convert;
|
package cn.iocoder.yudao.module.pay.convert;
|
@ -1,9 +1,16 @@
|
|||||||
package cn.iocoder.yudao.adminserver.modules.pay.convert.refund;
|
package cn.iocoder.yudao.module.pay.convert.refund;
|
||||||
|
|
||||||
import cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo.*;
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.order.PayRefundDO;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.admin.refund.vo.*;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.app.refund.vo.AppPayRefundReqVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.controller.app.refund.vo.AppPayRefundRespVO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.order.dto.PayRefundReqDTO;
|
||||||
|
import cn.iocoder.yudao.module.pay.service.order.dto.PayRefundRespDTO;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.Mapping;
|
||||||
|
import org.mapstruct.Mappings;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -87,4 +94,16 @@ public interface PayRefundConvert {
|
|||||||
return payRefundExcelVO;
|
return payRefundExcelVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO 太多需要处理了, 暂时不用
|
||||||
|
@Mappings(value = {
|
||||||
|
@Mapping(source = "amount", target = "payAmount"),
|
||||||
|
@Mapping(source = "id", target = "orderId"),
|
||||||
|
@Mapping(target = "status",ignore = true)
|
||||||
|
})
|
||||||
|
PayRefundDO convert(PayOrderDO orderDO);
|
||||||
|
|
||||||
|
PayRefundReqDTO convert(AppPayRefundReqVO bean);
|
||||||
|
|
||||||
|
AppPayRefundRespVO convert(PayRefundRespDTO bean);
|
||||||
|
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant;
|
package cn.iocoder.yudao.module.pay.dal.dataobject.merchant;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant;
|
package cn.iocoder.yudao.module.pay.dal.dataobject.merchant;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.merchant;
|
package cn.iocoder.yudao.module.pay.dal.dataobject.merchant;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
@ -1,6 +1,6 @@
|
|||||||
package cn.iocoder.yudao.coreservice.modules.pay.dal.dataobject.notify;
|
package cn.iocoder.yudao.module.pay.dal.dataobject.notify;
|
||||||
|
|
||||||
import cn.iocoder.yudao.coreservice.modules.pay.enums.notify.PayNotifyStatusEnum;
|
import cn.iocoder.yudao.module.pay.enums.notify.PayNotifyStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.*;
|
import lombok.*;
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user