mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	支付系统的实体的初始化
This commit is contained in:
		| @ -0,0 +1,6 @@ | ||||
| /** | ||||
|  * 提供 POJO 类的实体转换 | ||||
|  * | ||||
|  * 目前使用 MapStruct 框架 | ||||
|  */ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.convert; | ||||
| @ -0,0 +1 @@ | ||||
| <http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao> | ||||
| @ -0,0 +1,57 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import com.baomidou.mybatisplus.annotation.TableId; | ||||
| import lombok.Data; | ||||
|  | ||||
| /** | ||||
|  * 支付应用 DO | ||||
|  * 一个商户下,可能会有多个支付应用。例如说,京东有京东商城、京东到家等等 | ||||
|  * 不过一般来说,一个商户,只有一个应用哈~ | ||||
|  * | ||||
|  * 即 PayMerchantDO : PayAppDO = 1 : n | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @Data | ||||
| public class PayAppDO extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * 应用编号,数据库自增 | ||||
|      */ | ||||
|     @TableId | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 应用号 | ||||
|      * 例如说,60cc81e0e4b06afc4d3f0cfq | ||||
|      */ | ||||
|     private String no; | ||||
|     /** | ||||
|      * 应用名 | ||||
|      */ | ||||
|     private String name; | ||||
|     /** | ||||
|      * 状态 | ||||
|      * | ||||
|      * 枚举 {@link CommonStatusEnum} | ||||
|      */ | ||||
|     private Integer status; | ||||
|     /** | ||||
|      * 备注 | ||||
|      */ | ||||
|     private String remark; | ||||
|     /** | ||||
|      * 应用私钥 | ||||
|      * TODO 芋艿:用途 | ||||
|      */ | ||||
|     private String secret; | ||||
|  | ||||
|     /** | ||||
|      * 商户编号 | ||||
|      * | ||||
|      * 关联 {@link PayMerchantDO#getId()} | ||||
|      */ | ||||
|     private Long merchantId; | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,55 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant; | ||||
|  | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.enums.PayChannelCodeEnum; | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import lombok.Data; | ||||
|  | ||||
| /** | ||||
|  * 支付渠道 DO | ||||
|  * 一个应用下,会有多种支付渠道,例如说微信支付、支付宝支付等等 | ||||
|  * | ||||
|  * 即 PayAppDO : PayChannelDO = 1 : n | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @Data | ||||
| public class PayChannelDO extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * 渠道编号,数据库自增 | ||||
|      */ | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 渠道编码 | ||||
|      * | ||||
|      * 枚举 {@link PayChannelCodeEnum} | ||||
|      */ | ||||
|     private String code; | ||||
|     /** | ||||
|      * 状态 | ||||
|      * | ||||
|      * 枚举 {@link CommonStatusEnum} | ||||
|      */ | ||||
|     private Integer status; | ||||
|     /** | ||||
|      * 渠道费率,单位:百分比 | ||||
|      */ | ||||
|     private Double feeRate; | ||||
|  | ||||
|     /** | ||||
|      * 商户编号 | ||||
|      * | ||||
|      * 关联 {@link PayMerchantDO#getId()} | ||||
|      */ | ||||
|     private Long merchantId; | ||||
|     /** | ||||
|      * 应用编号 | ||||
|      * | ||||
|      * 关联 {@link PayAppDO#getId()} | ||||
|      */ | ||||
|     private String appId; | ||||
|  | ||||
|     // TODO 芋艿:不同渠道的配置。暂时考虑硬编码 | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,46 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import com.baomidou.mybatisplus.annotation.TableId; | ||||
| import lombok.Data; | ||||
|  | ||||
| /** | ||||
|  * 商户信息 DO | ||||
|  * 目前暂时没有特别的用途,主要为未来多商户提供基础。 | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @Data | ||||
| public class PayMerchantDO extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * 商户编号,数据库自增 | ||||
|      */ | ||||
|     @TableId | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 商户号 | ||||
|      * 例如说,M233666999 | ||||
|      */ | ||||
|     private String no; | ||||
|     /** | ||||
|      * 商户全称 | ||||
|      */ | ||||
|     private String name; | ||||
|     /** | ||||
|      * 商户简称 | ||||
|      */ | ||||
|     private String shortName; | ||||
|     /** | ||||
|      * 状态 | ||||
|      * | ||||
|      * 枚举 {@link CommonStatusEnum} | ||||
|      */ | ||||
|     private Integer status; | ||||
|     /** | ||||
|      * 备注 | ||||
|      */ | ||||
|     private String remark; | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,15 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.order; | ||||
|  | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import lombok.Data; | ||||
|  | ||||
| /** | ||||
|  * 商户支付、退款等的通知 | ||||
|  * 在支付系统收到支付渠道的支付、退款的结果后,需要不断的通知到业务系统,直到成功。 | ||||
|  * TODO 芋艿:待完善 | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @Data | ||||
| public class PayNotifyDO extends BaseDO { | ||||
| } | ||||
| @ -0,0 +1,167 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.order; | ||||
|  | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayAppDO; | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayChannelDO; | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayMerchantDO; | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.enums.PayChannelCodeEnum; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import lombok.Data; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| /** | ||||
|  * 支付订单 DO | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @Data | ||||
| public class PayOrderDO extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * 订单编号,数据库自增 | ||||
|      */ | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 订单号,根据规则生成 | ||||
|      * | ||||
|      * 例如说,P202110132239124200055 | ||||
|      */ | ||||
|     private String no; | ||||
|     /** | ||||
|      * 商户编号 | ||||
|      * | ||||
|      * 关联 {@link PayMerchantDO#getId()} | ||||
|      */ | ||||
|     private Long merchantId; | ||||
|     /** | ||||
|      * 应用编号 | ||||
|      * | ||||
|      * 关联 {@link PayAppDO#getId()} | ||||
|      */ | ||||
|     private Long appId; | ||||
|     /** | ||||
|      * 渠道编号 | ||||
|      * | ||||
|      * 关联 {@link PayChannelDO#getMerchantId()} | ||||
|      */ | ||||
|     private Long channelId; | ||||
|     /** | ||||
|      * 商户编码 | ||||
|      * | ||||
|      * 枚举 {@link PayChannelCodeEnum} | ||||
|      */ | ||||
|     private String channelCode; | ||||
|  | ||||
|     // ========== 商户相关字段 ========== | ||||
|  | ||||
|     /** | ||||
|      * 商户订单号 | ||||
|      * 例如说,内部系统 A 的订单号。需要保证每个 PayMerchantDO 唯一 TODO 芋艿:需要在测试下 | ||||
|      */ | ||||
|     private String merchantOrderNo; | ||||
|     /** | ||||
|      * 商品标题 | ||||
|      */ | ||||
|     private String subject; | ||||
|     /** | ||||
|      * 商品描述信息 | ||||
|      */ | ||||
|     private String body; | ||||
|     /** | ||||
|      * 商户拓展参数 | ||||
|      */ | ||||
|     private String merchantExtra; | ||||
|     /** | ||||
|      * 通知商户支付结果的回调状态 | ||||
|      * TODO 芋艿:0 未发送 1 已发送 | ||||
|      */ | ||||
|     private Integer notifyStatus; | ||||
|  | ||||
|     // ========== 订单相关字段 ========== | ||||
|  | ||||
|     /** | ||||
|      * 支付金额,单位:分 | ||||
|      */ | ||||
|     private Long amount; | ||||
|     /** | ||||
|      * 渠道手续费 | ||||
|      * | ||||
|      * 冗余 {@link PayChannelDO#getFeeRate()} | ||||
|      */ | ||||
|     private Double channelFeeRate; | ||||
|     /** | ||||
|      * 渠道手续金额 | ||||
|      */ | ||||
|     private Long channelFeeAmount; | ||||
|     /** | ||||
|      * 支付状态 | ||||
|      * | ||||
|      * TODO 芋艿:状态枚举 | ||||
|      */ | ||||
|     private Integer status; | ||||
|     /** | ||||
|      * 客户端 IP | ||||
|      */ | ||||
|     private String clientIp; | ||||
|     /** | ||||
|      * 订单支付成功时间 | ||||
|      */ | ||||
|     private Date successTime; | ||||
|     /** | ||||
|      * 订单失效时间 | ||||
|      */ | ||||
|     private Date expiredTime; | ||||
|     /** | ||||
|      * 支付渠道的额外参数 | ||||
|      * | ||||
|      * 参见 https://www.pingxx.com/api/支付渠道%20extra%20参数说明.html | ||||
|      */ | ||||
|     private String channelExtra; | ||||
|     /** | ||||
|      * 异步通知地址 | ||||
|      */ | ||||
|     private String notifyUrl; | ||||
|     /** | ||||
|      * 页面跳转地址 | ||||
|      */ | ||||
|     private String returnUrl; | ||||
|  | ||||
|     // TODO 芋艿:可能要优化 | ||||
|     /** | ||||
|      * 渠道支付错误码 | ||||
|      */ | ||||
|     private String errorCode; | ||||
|     /** | ||||
|      * 渠道支付错误消息 | ||||
|      */ | ||||
|     private String errorMessage; | ||||
|  | ||||
|     // ========== 退款相关字段 ========== | ||||
|     /** | ||||
|      * 退款状态 | ||||
|      * | ||||
|      * TODO 芋艿:0 - 未退款;1 - 部分退款; 2 - 全额退款 | ||||
|      */ | ||||
|     private Integer refundStatus; | ||||
|     /** | ||||
|      * 退款次数 | ||||
|      */ | ||||
|     private Integer refundTimes; | ||||
|     /** | ||||
|      * 退款总金额,单位:分 | ||||
|      */ | ||||
|     private Long refundAmount; | ||||
|  | ||||
|     // ========== 渠道相关字段 ========== | ||||
|     /** | ||||
|      * 渠道用户编号 | ||||
|      * | ||||
|      * 例如说,微信 openid、支付宝账号 | ||||
|      */ | ||||
|     private String channelUserId; | ||||
|     /** | ||||
|      * 渠道订单号 | ||||
|      */ | ||||
|     private String channelOrderNo; | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,133 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.order; | ||||
|  | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayAppDO; | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayChannelDO; | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject.merchant.PayMerchantDO; | ||||
| import cn.iocoder.yudao.adminserver.modules.pay.enums.PayChannelCodeEnum; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import lombok.Data; | ||||
|  | ||||
| import java.util.Date; | ||||
|  | ||||
| /** | ||||
|  * 支付退款单 DO | ||||
|  * 一个支付订单,可以拥有多个支付退款单 | ||||
|  * | ||||
|  * 即 PayOrderDO : PayRefundDO = 1 : n | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @Data | ||||
| public class PayRefundDO extends BaseDO { | ||||
|  | ||||
|     /** | ||||
|      * 退款单编号,数据库自增 | ||||
|      */ | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 退款单号,根据规则生成 | ||||
|      * | ||||
|      * 例如说,R202109181134287570000 | ||||
|      */ | ||||
|     private String no; | ||||
|     /** | ||||
|      * 商户编号 | ||||
|      * | ||||
|      * 关联 {@link PayMerchantDO#getId()} | ||||
|      */ | ||||
|     private Long merchantId; | ||||
|     /** | ||||
|      * 应用编号 | ||||
|      * | ||||
|      * 关联 {@link PayAppDO#getId()} | ||||
|      */ | ||||
|     private Long appId; | ||||
|     /** | ||||
|      * 渠道编号 | ||||
|      * | ||||
|      * 关联 {@link PayChannelDO#getMerchantId()} | ||||
|      */ | ||||
|     private Long channelId; | ||||
|     /** | ||||
|      * 商户编码 | ||||
|      * | ||||
|      * 枚举 {@link PayChannelCodeEnum} | ||||
|      */ | ||||
|     private String channelCode; | ||||
|     /** | ||||
|      * 订单编号 | ||||
|      * | ||||
|      * 关联 {@link PayOrderDO#getId()} | ||||
|      */ | ||||
|     private Long orderId; | ||||
|  | ||||
|     // ========== 商户相关字段 ========== | ||||
|     /** | ||||
|      * 商户退款订单号 | ||||
|      * 例如说,内部系统 A 的退款订单号。需要保证每个 PayMerchantDO 唯一 TODO 芋艿:需要在测试下 | ||||
|      */ | ||||
|     private String merchantRefundNo; | ||||
|     /** | ||||
|      * 商户拓展参数 | ||||
|      */ | ||||
|     private String merchantExtra; | ||||
|  | ||||
|     // ========== 退款相关字段 ========== | ||||
|     /** | ||||
|      * 退款状态 | ||||
|      * | ||||
|      * TODO 芋艿:状态枚举 | ||||
|      */ | ||||
|     private Integer status; | ||||
|     /** | ||||
|      * 客户端 IP | ||||
|      */ | ||||
|     private String clientIp; | ||||
|     /** | ||||
|      * 退款金额,单位:分 | ||||
|      */ | ||||
|     private Long amount; | ||||
|     /** | ||||
|      * 退款原因 | ||||
|      */ | ||||
|     private String reason; | ||||
|     /** | ||||
|      * 订单退款成功时间 | ||||
|      */ | ||||
|     private Date successTime; | ||||
|     /** | ||||
|      * 退款失效时间 | ||||
|      */ | ||||
|     private Date expiredTime; | ||||
|     /** | ||||
|      * 支付渠道的额外参数 | ||||
|      * | ||||
|      * 参见 https://www.pingxx.com/api/Refunds%20退款概述.html | ||||
|      */ | ||||
|     private String channelExtra; | ||||
|     /** | ||||
|      * 异步通知地址 | ||||
|      */ | ||||
|     private String notifyUrl; | ||||
|  | ||||
|     // TODO 芋艿:可能要优化 | ||||
|     /** | ||||
|      * 渠道支付错误码 | ||||
|      */ | ||||
|     private String errorCode; | ||||
|     /** | ||||
|      * 渠道支付错误消息 | ||||
|      */ | ||||
|     private String errorMessage; | ||||
|  | ||||
|     // ========== 渠道相关字段 ========== | ||||
|     /** | ||||
|      * 渠道订单号 | ||||
|      */ | ||||
|     private String channelOrderNo; | ||||
|     /** | ||||
|      * 渠道退款号 | ||||
|      */ | ||||
|     private String channelRefundNo; | ||||
|  | ||||
| } | ||||
| @ -0,0 +1 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.dal.dataobject; | ||||
| @ -0,0 +1,28 @@ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay.enums; | ||||
|  | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Getter; | ||||
|  | ||||
| /** | ||||
|  * 支付渠道的编码的枚举 | ||||
|  * | ||||
|  * @author 芋道源码 | ||||
|  */ | ||||
| @Getter | ||||
| @AllArgsConstructor | ||||
| public enum PayChannelCodeEnum { | ||||
|  | ||||
|     wx_pub("wx_pub", "微信 JSAPI 支付"); | ||||
|  | ||||
|     /** | ||||
|      * 编码 | ||||
|      * | ||||
|      * 参考 https://www.pingxx.com/api/支付渠道属性值.html | ||||
|      */ | ||||
|     private String code; | ||||
|     /** | ||||
|      * 名字 | ||||
|      */ | ||||
|     private String name; | ||||
|  | ||||
| } | ||||
| @ -0,0 +1,7 @@ | ||||
| /** | ||||
|  * pay 包下,我们放支付业务,提供业务的支付能力。 | ||||
|  * 例如说:商户、应用、支付、退款等等 | ||||
|  * | ||||
|  * 缩写:pay | ||||
|  */ | ||||
| package cn.iocoder.yudao.adminserver.modules.pay; | ||||
| @ -3,6 +3,7 @@ package cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger; | ||||
| import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||
| import cn.iocoder.yudao.coreservice.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum; | ||||
| import com.baomidou.mybatisplus.annotation.TableId; | ||||
| import com.baomidou.mybatisplus.annotation.TableName; | ||||
| import lombok.*; | ||||
|  | ||||
| @ -25,6 +26,7 @@ public class InfApiErrorLogDO extends BaseDO { | ||||
|     /** | ||||
|      * 编号 | ||||
|      */ | ||||
|     @TableId | ||||
|     private Long id; | ||||
|     /** | ||||
|      * 用户编号 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV