first commit

This commit is contained in:
dev
2026-02-22 12:12:02 +08:00
commit b236048a24
1467 changed files with 160403 additions and 0 deletions
+142
View File
@@ -0,0 +1,142 @@
-- ----------------------------
-- 支付应用表
-- ----------------------------
DROP TABLE IF EXISTS `pay_app`;
CREATE TABLE `pay_app` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '应用ID',
`name` varchar(64) NOT NULL COMMENT '应用名',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0开启 1关闭)',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`pay_notify_url` varchar(1024) NOT NULL COMMENT '支付结果回调地址',
`refund_notify_url` varchar(1024) NOT NULL COMMENT '退款结果回调地址',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='支付应用信息';
-- ----------------------------
-- 支付渠道表
-- ----------------------------
DROP TABLE IF EXISTS `pay_channel`;
CREATE TABLE `pay_channel` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '渠道ID',
`code` varchar(32) NOT NULL COMMENT '渠道编码(alipay_pc, wx_pub)',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0开启 1关闭)',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`fee_rate` double NOT NULL DEFAULT '0' COMMENT '渠道费率(%)',
`app_id` bigint NOT NULL COMMENT '应用ID',
`config` text NOT NULL COMMENT '支付渠道配置(JSON)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='支付渠道';
-- ----------------------------
-- 支付订单表
-- ----------------------------
DROP TABLE IF EXISTS `pay_order`;
CREATE TABLE `pay_order` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单ID',
`app_id` bigint NOT NULL COMMENT '应用ID',
`channel_id` bigint DEFAULT NULL COMMENT '渠道ID',
`channel_code` varchar(32) DEFAULT NULL COMMENT '渠道编码',
`merchant_order_id` varchar(64) NOT NULL COMMENT '商户订单编号',
`subject` varchar(32) NOT NULL COMMENT '商品标题',
`body` varchar(128) DEFAULT NULL COMMENT '商品描述',
`notify_url` varchar(1024) NOT NULL COMMENT '异步通知地址',
`price` int NOT NULL COMMENT '支付金额(分)',
`channel_fee_rate` double DEFAULT '0' COMMENT '渠道费率',
`channel_fee_price` int DEFAULT '0' COMMENT '渠道手续费(分)',
`status` tinyint NOT NULL COMMENT '状态(0未支付 10已支付 20已退款 30已关闭)',
`user_ip` varchar(50) NOT NULL COMMENT '用户IP',
`expire_time` datetime NOT NULL COMMENT '订单失效时间',
`success_time` datetime DEFAULT NULL COMMENT '支付成功时间',
`extension_id` bigint DEFAULT NULL COMMENT '拓展业务ID (如扫码支付的记录ID)',
`no` varchar(32) DEFAULT NULL COMMENT '支付单号(内部生成)',
`channel_order_no` varchar(64) DEFAULT NULL COMMENT '渠道订单号(微信/支付宝)',
`channel_user_id` varchar(64) DEFAULT NULL COMMENT '渠道用户OpenId',
`channel_extras` varchar(1024) DEFAULT NULL COMMENT '渠道额外参数(JSON)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_merchant_order_id` (`merchant_order_id`)
) ENGINE=InnoDB COMMENT='支付订单';
-- ----------------------------
-- 退款订单表
-- ----------------------------
DROP TABLE IF EXISTS `pay_refund`;
CREATE TABLE `pay_refund` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '退款ID',
`no` varchar(32) NOT NULL COMMENT '退款单号',
`app_id` bigint NOT NULL COMMENT '应用ID',
`channel_id` bigint NOT NULL COMMENT '渠道ID',
`channel_code` varchar(32) NOT NULL COMMENT '渠道编码',
`order_id` bigint NOT NULL COMMENT '支付订单ID',
`order_no` varchar(32) NOT NULL COMMENT '支付订单no',
`merchant_order_id` varchar(64) NOT NULL COMMENT '商户订单编号',
`merchant_refund_id` varchar(64) NOT NULL COMMENT '商户退款编号',
`notify_url` varchar(1024) NOT NULL COMMENT '回调地址',
`status` tinyint NOT NULL COMMENT '状态(0等待 10成功 20失败)',
`pay_price` int NOT NULL COMMENT '支付金额(分)',
`refund_price` int NOT NULL COMMENT '退款金额(分)',
`reason` varchar(256) NOT NULL COMMENT '退款原因',
`user_ip` varchar(50) DEFAULT NULL COMMENT '用户IP',
`channel_order_no` varchar(64) NOT NULL COMMENT '渠道订单号',
`channel_refund_no` varchar(64) DEFAULT NULL COMMENT '渠道退款单号',
`success_time` datetime DEFAULT NULL COMMENT '退款成功时间',
`error_code` varchar(32) DEFAULT NULL COMMENT '渠道错误码',
`error_msg` varchar(128) DEFAULT NULL COMMENT '渠道错误描述',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='退款订单';
-- ----------------------------
-- 支付通知日志表
-- ----------------------------
DROP TABLE IF EXISTS `pay_notify_log`;
CREATE TABLE `pay_notify_log` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`app_id` bigint NOT NULL COMMENT '应用ID',
`channel_id` bigint NOT NULL COMMENT '渠道ID',
`order_id` bigint NOT NULL COMMENT '支付订单ID',
`notify_type` varchar(32) NOT NULL COMMENT '通知类型(pay, refund)',
`status` tinyint NOT NULL COMMENT '处理状态(0处理中 10成功 20失败)',
`request_params` text COMMENT '请求参数',
`response_body` text COMMENT '响应结果',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_order_id` (`order_id`)
) ENGINE=InnoDB COMMENT='支付通知日志';
-- ----------------------------
-- 支付通知任务表
-- ----------------------------
DROP TABLE IF EXISTS `pay_notify_task`;
CREATE TABLE `pay_notify_task` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID',
`order_id` bigint NOT NULL COMMENT '订单ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`notify_url` varchar(1024) NOT NULL COMMENT '通知地址',
`notify_body` text COMMENT '通知内容',
`retry_count` int NOT NULL DEFAULT '0' COMMENT '重试次数',
`max_retry` int NOT NULL DEFAULT '5' COMMENT '最大重试次数',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0进行中 1成功 2失败)',
`next_notify_time` datetime NOT NULL COMMENT '下次通知时间',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_next_notify_time` (`next_notify_time`)
) ENGINE=InnoDB COMMENT='支付通知任务';