fix: 添加冷钱包表支持,修复充值功能
- 新增 cold_wallet 表结构及默认数据 - 补充 order_fund 表字段(wallet_id, wallet_address, pay_time, confirm_time, withdraw_contact) - 创建数据库补丁脚本 sql/patch_cold_wallet.sql - 创建充值功能测试脚本 test_deposit_api.sh - 创建数据库检查脚本 check_database.sh - 更新充值功能检查报告 check_cold_wallet.md 修复问题:充值功能因缺少冷钱包表而无法使用
This commit is contained in:
32
sql/init.sql
32
sql/init.sql
@@ -254,4 +254,36 @@ CREATE TABLE `user_favorite` (
|
||||
UNIQUE KEY `uk_user_coin` (`user_id`, `coin_code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户自选币种表';
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 11. 冷钱包地址表
|
||||
-- ---------------------------------------------
|
||||
DROP TABLE IF EXISTS `cold_wallet`;
|
||||
CREATE TABLE `cold_wallet` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`name` varchar(50) NOT NULL COMMENT '钱包名称',
|
||||
`address` varchar(255) NOT NULL COMMENT '钱包地址',
|
||||
`network` varchar(20) NOT NULL DEFAULT 'TRC20' COMMENT '网络类型: TRC20/ERC20/BEP20等',
|
||||
`is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认: 0-否 1-是',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用 1-启用',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_is_default` (`is_default`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='冷钱包地址表';
|
||||
|
||||
-- 插入默认测试钱包地址
|
||||
INSERT INTO `cold_wallet` (`name`, `address`, `network`, `is_default`, `status`) VALUES
|
||||
('USDT-TRC20 主钱包', 'TRX1234567890abcdefghijklmnopqrstuvwxyz1234', 'TRC20', 1, 1),
|
||||
('USDT-ERC20 备用钱包', '0x1234567890abcdef1234567890abcdef12345678', 'ERC20', 0, 1);
|
||||
|
||||
-- 更新 order_fund 表结构
|
||||
ALTER TABLE `order_fund`
|
||||
ADD COLUMN `wallet_id` bigint(20) DEFAULT NULL COMMENT '钱包ID' AFTER `amount`,
|
||||
ADD COLUMN `wallet_address` varchar(255) DEFAULT NULL COMMENT '钱包地址(充值地址/提现地址)' AFTER `wallet_id`,
|
||||
ADD COLUMN `withdraw_contact` varchar(100) DEFAULT NULL COMMENT '提现联系方式' AFTER `wallet_address`,
|
||||
ADD COLUMN `pay_time` datetime DEFAULT NULL COMMENT '用户打款时间' AFTER `remark`,
|
||||
ADD COLUMN `confirm_time` datetime DEFAULT NULL COMMENT '确认/审批时间' AFTER `pay_time`,
|
||||
ADD INDEX `idx_wallet_id` (`wallet_id`);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
40
sql/patch_cold_wallet.sql
Normal file
40
sql/patch_cold_wallet.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- =============================================
|
||||
-- 补丁脚本:添加冷钱包表
|
||||
-- 版本: V1.1
|
||||
-- 日期: 2026-03-23
|
||||
-- =============================================
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 11. 冷钱包地址表
|
||||
-- ---------------------------------------------
|
||||
DROP TABLE IF EXISTS `cold_wallet`;
|
||||
CREATE TABLE `cold_wallet` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`name` varchar(50) NOT NULL COMMENT '钱包名称',
|
||||
`address` varchar(255) NOT NULL COMMENT '钱包地址',
|
||||
`network` varchar(20) NOT NULL DEFAULT 'TRC20' COMMENT '网络类型: TRC20/ERC20/BEP20等',
|
||||
`is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否默认: 0-否 1-是',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用 1-启用',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_is_default` (`is_default`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='冷钱包地址表';
|
||||
|
||||
-- 插入默认测试钱包地址
|
||||
INSERT INTO `cold_wallet` (`name`, `address`, `network`, `is_default`, `status`) VALUES
|
||||
('USDT-TRC20 主钱包', 'TRX1234567890abcdefghijklmnopqrstuvwxyz1234', 'TRC20', 1, 1),
|
||||
('USDT-ERC20 备用钱包', '0x1234567890abcdef1234567890abcdef12345678', 'ERC20', 0, 1);
|
||||
|
||||
-- 为 order_fund 表添加钱包相关字段(如果不存在)
|
||||
ALTER TABLE `order_fund`
|
||||
ADD COLUMN IF NOT EXISTS `wallet_id` bigint(20) DEFAULT NULL COMMENT '钱包ID' AFTER `amount`,
|
||||
ADD COLUMN IF NOT EXISTS `wallet_address` varchar(255) DEFAULT NULL COMMENT '钱包地址' AFTER `wallet_id`,
|
||||
ADD COLUMN IF NOT EXISTS `pay_time` datetime DEFAULT NULL COMMENT '打款时间' AFTER `remark`,
|
||||
ADD COLUMN IF NOT EXISTS `confirm_time` datetime DEFAULT NULL COMMENT '确认时间' AFTER `pay_time`,
|
||||
ADD COLUMN IF NOT EXISTS `withdraw_contact` varchar(100) DEFAULT NULL COMMENT '提现联系方式' AFTER `wallet_address`;
|
||||
|
||||
-- 添加索引
|
||||
ALTER TABLE `order_fund`
|
||||
ADD INDEX IF NOT EXISTS `idx_wallet_id` (`wallet_id`);
|
||||
20
sql/update_order_fund_status.sql
Normal file
20
sql/update_order_fund_status.sql
Normal file
@@ -0,0 +1,20 @@
|
||||
-- =============================================
|
||||
-- 修正 order_fund 表状态定义
|
||||
-- 根据代码逻辑调整状态值
|
||||
-- =============================================
|
||||
|
||||
-- 充值订单状态说明:
|
||||
-- 1 = 待付款 (用户申请充值,等待用户打款)
|
||||
-- 2 = 待确认 (用户已确认打款,等待管理员审批)
|
||||
-- 3 = 已完成 (管理员审批通过,余额已到账)
|
||||
-- 4 = 已驳回 (管理员审批驳回)
|
||||
-- 5 = 已取消 (用户取消或系统取消)
|
||||
|
||||
-- 提现订单状态说明:
|
||||
-- 1 = 待审批 (用户申请提现,等待管理员审批)
|
||||
-- 2 = 已完成 (管理员审批通过,已打款)
|
||||
-- 3 = 已驳回 (管理员审批驳回,余额已退还)
|
||||
-- 4 = 已取消 (用户取消)
|
||||
|
||||
-- 添加注释说明
|
||||
ALTER TABLE `order_fund` MODIFY COLUMN `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '充值状态: 1-待付款 2-待确认 3-已完成 4-已驳回 5-已取消 | 提现状态: 1-待审批 2-已完成 3-已驳回 4-已取消';
|
||||
Reference in New Issue
Block a user