Files
monisuo/sql/prod_init.sql
2026-04-23 00:44:39 +08:00

385 lines
22 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================
-- Monisuo 虚拟货币模拟交易平台 - 生产环境完整初始化脚本
-- 数据库: monisuo
-- 日期: 2026-04-20
-- 说明: 新环境部署时执行此脚本即可,包含全部表结构和初始数据
-- =============================================
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ---------------------------------------------
-- 1. 用户表
-- ---------------------------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` varchar(50) NOT NULL COMMENT '账号',
`password` varchar(100) NOT NULL COMMENT '密码(BCrypt加密)',
`nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
`avatar` varchar(255) DEFAULT NULL COMMENT '头像URL',
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
`kyc_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'KYC状态: 0-未激活 1-已激活',
`id_card_front` varchar(255) DEFAULT NULL COMMENT '身份证正面照URL',
`id_card_back` varchar(255) DEFAULT NULL COMMENT '身份证反面照URL',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用 1-正常',
`level` tinyint(1) NOT NULL DEFAULT '0' COMMENT '用户等级: 0-普通用户 1-会员用户',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` varchar(50) DEFAULT NULL COMMENT '最后登录IP',
`token` varchar(500) DEFAULT NULL COMMENT '当前Token',
`refresh_token` varchar(512) DEFAULT NULL COMMENT '刷新Token',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`referral_code` varchar(8) DEFAULT NULL COMMENT '推广码',
`referred_by` bigint(20) DEFAULT NULL COMMENT '推广人用户ID',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
UNIQUE KEY `uk_referral_code` (`referral_code`),
KEY `idx_referred_by` (`referred_by`)
) ENGINE=InnoDB AUTO_INCREMENT=100000 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-- ---------------------------------------------
-- 2. 管理员表
-- ---------------------------------------------
DROP TABLE IF EXISTS `sys_admin`;
CREATE TABLE `sys_admin` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`username` varchar(50) NOT NULL COMMENT '账号',
`password` varchar(100) NOT NULL COMMENT '密码(BCrypt加密)',
`nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
`avatar` varchar(255) DEFAULT NULL COMMENT '头像URL',
`role` tinyint(1) NOT NULL DEFAULT '2' COMMENT '角色: 1-超级管理员 2-普通管理员 3-财务',
`permissions` varchar(500) DEFAULT NULL COMMENT '权限列表(JSON格式)',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用 1-正常',
`is_system` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否系统预置: 0-否 1-是',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` varchar(50) DEFAULT NULL COMMENT '最后登录IP',
`token` varchar(500) DEFAULT NULL COMMENT '当前Token',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理员表';
-- 初始化超级管理员(密码: saw123
INSERT INTO `sys_admin` (`username`, `password`, `nickname`, `role`, `permissions`, `is_system`) VALUES
('SupperadminWho1', '$2a$10$mk2IthNSTCQXNtT7AR9Sou3UsZPiPCrqwiJhqKu5mOb8CW0Dqdz2G', '超级管理员1', 1, 'all', 1),
('SupperadminWho2', '$2a$10$mk2IthNSTCQXNtT7AR9Sou3UsZPiPCrqwiJhqKu5mOb8CW0Dqdz2G', '超级管理员2', 1, 'all', 1);
-- ---------------------------------------------
-- 3. 币种表(含模拟引擎配置字段)
-- ---------------------------------------------
DROP TABLE IF EXISTS `coin`;
CREATE TABLE `coin` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`code` varchar(20) NOT NULL COMMENT '币种代码(如BTC)',
`name` varchar(50) NOT NULL COMMENT '币种名称(如Bitcoin)',
`icon` varchar(255) DEFAULT NULL COMMENT '币种图标URL',
`price` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '当前价格(USDT)',
`initial_price` decimal(20,8) DEFAULT NULL COMMENT '初始价格(首次调价时锁定)',
`price_usd` decimal(20,8) DEFAULT NULL COMMENT '美元价格',
`price_cny` decimal(20,8) DEFAULT NULL COMMENT '人民币价格',
`price_type` tinyint(1) NOT NULL DEFAULT '2' COMMENT '价格类型: 1-实时模拟 2-管理定价',
`change_24h` decimal(10,4) DEFAULT '0.0000' COMMENT '24小时涨跌幅(%)',
`high_24h` decimal(20,8) DEFAULT NULL COMMENT '24小时最高价',
`low_24h` decimal(20,8) DEFAULT NULL COMMENT '24小时最低价',
`volume_24h` decimal(20,4) DEFAULT NULL COMMENT '24小时交易量',
`market_cap` decimal(20,2) DEFAULT NULL COMMENT '市值',
`total_supply` decimal(20,2) DEFAULT NULL COMMENT '总发行量',
`circulating_supply` decimal(20,2) DEFAULT NULL COMMENT '流通量',
`description` text COMMENT '币种简介',
`website` varchar(255) DEFAULT NULL COMMENT '官网链接',
`price_scale` int(11) DEFAULT '8' COMMENT '价格小数位',
`quantity_scale` int(11) DEFAULT '8' COMMENT '数量小数位',
`min_quantity` decimal(20,8) DEFAULT '0.00000001' COMMENT '最小交易数量',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 0-下架 1-上架',
`sort` int(11) DEFAULT '0' COMMENT '排序权重(越大越靠前)',
`is_platform` tinyint(1) DEFAULT '0' COMMENT '是否平台代币: 0-否 1-是',
`volatility_min` decimal(8,6) DEFAULT '0.000100' COMMENT '最小波动率(每tick)',
`volatility_max` decimal(8,6) DEFAULT '0.003000' COMMENT '最大波动率(每tick)',
`tick_interval_ms` int(11) DEFAULT '3000' COMMENT '报价刷新间隔(毫秒)',
`simulation_enabled` tinyint(1) DEFAULT '0' COMMENT '是否启用模拟引擎: 0-否 1-是',
`trade_start_time` varchar(10) DEFAULT NULL COMMENT '交易开始时间(HH:mm)',
`trade_end_time` varchar(10) DEFAULT NULL COMMENT '交易结束时间(HH:mm)',
`max_change_percent` decimal(6,2) DEFAULT '10.00' COMMENT '日最大涨跌幅(%)',
`trade_start_am` varchar(5) DEFAULT '09:00' COMMENT '上午开盘时间(HH:mm)',
`trade_end_am` varchar(5) DEFAULT '12:00' COMMENT '上午收盘时间(HH:mm)',
`trade_start_pm` varchar(5) DEFAULT '13:00' COMMENT '下午开盘时间(HH:mm)',
`trade_end_pm` varchar(5) DEFAULT '17:00' COMMENT '下午收盘时间(HH:mm)',
`target_low` decimal(20,8) DEFAULT NULL COMMENT '今日目标最低价',
`target_high` decimal(20,8) DEFAULT NULL COMMENT '今日目标最高价',
`target_close` decimal(20,8) DEFAULT NULL COMMENT '今日目标收盘价',
`profit_schedule` text DEFAULT NULL COMMENT '5天盈利计划JSON',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_code` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='币种表';
-- 初始化币种数据
INSERT INTO `coin` (`code`, `name`, `icon`, `price`, `price_type`, `simulation_enabled`, `is_platform`, `volatility_min`, `volatility_max`, `tick_interval_ms`, `description`, `status`, `sort`) VALUES
('BTC', 'Bitcoin', '/static/coin/btc.png', 67000.00000000, 1, 1, 0, 0.000100, 0.002000, 3000, '比特币Bitcoin是一种点对点的电子现金系统由中本聪于2008年提出。', 1, 100),
('ETH', 'Ethereum', '/static/coin/eth.png', 3400.00000000, 1, 1, 0, 0.000200, 0.003000, 3000, '以太坊Ethereum是一个开源的区块链平台支持智能合约功能。', 1, 99),
('SOL', 'Solana', '/static/coin/sol.png', 170.00000000, 1, 1, 0, 0.000300, 0.005000, 2500, 'Solana是一个高性能区块链平台旨在支持去中心化应用的大规模采用。', 1, 98),
('USDT', 'Tether', '/static/coin/usdt.png', 1.00000000, 2, 0, 0, 0.000100, 0.003000, 3000, '泰达币USDT是一种与美元挂钩的稳定币。', 1, 97),
('DOGE', 'Dogecoin', '/static/coin/doge.png', 0.15000000, 2, 0, 0, 0.000500, 0.008000, 2000, '狗狗币Dogecoin是一种基于Scrypt算法的加密货币。', 1, 96),
('XRP', 'Ripple', '/static/coin/xrp.png', 0.50000000, 2, 0, 0, 0.000200, 0.004000, 2500, '瑞波币XRP是Ripple网络的原生加密货币。', 1, 95);
-- 初始化24h统计数据
UPDATE `coin` SET `high_24h` = `price`, `low_24h` = `price`, `volume_24h` = 0, `change_24h` = 0 WHERE `code` != 'USDT';
-- ---------------------------------------------
-- 4. K线蜡烛数据表
-- ---------------------------------------------
DROP TABLE IF EXISTS `coin_kline`;
CREATE TABLE `coin_kline` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`coin_code` varchar(20) NOT NULL COMMENT '币种代码',
`interval` varchar(5) NOT NULL COMMENT '周期: 15m/1h/4h/1d/1M',
`open_time` bigint(20) NOT NULL COMMENT '开盘时间戳(ms)',
`open_price` decimal(20,8) NOT NULL,
`high_price` decimal(20,8) NOT NULL,
`low_price` decimal(20,8) NOT NULL,
`close_price` decimal(20,8) NOT NULL,
`volume` decimal(20,4) DEFAULT '0.0000' COMMENT '模拟成交量',
`close_time` bigint(20) NOT NULL COMMENT '收盘时间戳(ms)',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_coin_interval_open` (`coin_code`, `interval`, `open_time`),
KEY `idx_coin_interval_close` (`coin_code`, `interval`, `close_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='K线蜡烛数据表';
-- ---------------------------------------------
-- 5. 资金账户表
-- ---------------------------------------------
DROP TABLE IF EXISTS `account_fund`;
CREATE TABLE `account_fund` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`balance` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT 'USDT余额',
`frozen` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '冻结金额',
`total_deposit` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '累计充值',
`total_withdraw` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '累计提现',
`total_withdraw_profit` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '累计已提现盈利和奖励',
`first_deposit_time` datetime DEFAULT NULL COMMENT '首次充值完成时间',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资金账户表';
-- ---------------------------------------------
-- 6. 交易账户表
-- ---------------------------------------------
DROP TABLE IF EXISTS `account_trade`;
CREATE TABLE `account_trade` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`coin_code` varchar(20) NOT NULL COMMENT '币种代码',
`quantity` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '持仓数量',
`frozen` decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '冻结数量',
`avg_price` decimal(20,8) DEFAULT '0.00000000' COMMENT '平均成本价',
`total_buy` decimal(20,8) DEFAULT '0.00000000' COMMENT '累计买入数量',
`total_sell` decimal(20,8) DEFAULT '0.00000000' COMMENT '累计卖出数量',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_coin` (`user_id`, `coin_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易账户表';
-- ---------------------------------------------
-- 7. 交易订单表
-- ---------------------------------------------
DROP TABLE IF EXISTS `order_trade`;
CREATE TABLE `order_trade` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`coin_code` varchar(20) NOT NULL COMMENT '交易币种代码',
`direction` tinyint(1) NOT NULL COMMENT '交易方向: 1-买入 2-卖出',
`order_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '订单类型: 1-市价 2-限价',
`price` decimal(20,8) NOT NULL COMMENT '成交价格',
`quantity` decimal(20,8) NOT NULL COMMENT '成交数量',
`amount` decimal(20,8) NOT NULL COMMENT '成交金额(USDT)',
`cost_price` decimal(20,8) DEFAULT NULL COMMENT '卖出时的成本价(买入加权平均价)',
`fee` decimal(20,8) DEFAULT '0.00000000' COMMENT '手续费',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 0-委托中 1-已成交 2-失败 3-已取消',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_coin_code` (`coin_code`),
KEY `idx_create_time` (`create_time`),
KEY `idx_user_dir_status_time` (`user_id`, `direction`, `status`, `create_time`),
KEY `idx_status_create_time` (`status`, `create_time`),
KEY `idx_coin_type_status_time` (`coin_code`, `order_type`, `status`, `create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易订单表';
-- ---------------------------------------------
-- 8. 充提订单表
-- ---------------------------------------------
DROP TABLE IF EXISTS `order_fund`;
CREATE TABLE `order_fund` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`order_no` varchar(32) NOT NULL COMMENT '订单号',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`username` varchar(50) NOT NULL COMMENT '用户账号(冗余)',
`type` tinyint(1) NOT NULL COMMENT '类型: 1-充值 2-提现',
`amount` decimal(20,8) NOT NULL COMMENT '金额(USDT)',
`fee` decimal(18,2) DEFAULT '0.00' COMMENT '手续费',
`receivable_amount` decimal(18,2) DEFAULT NULL COMMENT '到账金额',
`wallet_id` bigint(20) DEFAULT NULL COMMENT '冷钱包ID',
`wallet_address` varchar(255) DEFAULT NULL COMMENT '钱包地址(充值地址/提现地址)',
`network` varchar(20) DEFAULT NULL COMMENT '提现网络类型(TRC20/ERC20等)',
`withdraw_contact` varchar(100) DEFAULT NULL COMMENT '提现联系方式',
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '充值: 1-待付款 2-待确认 3-已完成 4-已驳回 5-已取消 | 提现: 1-待审批 2-已出款 3-已驳回 4-已取消 5-待财务审核',
`pay_time` datetime DEFAULT NULL COMMENT '用户确认打款时间',
`confirm_time` datetime DEFAULT NULL COMMENT '确认/审批时间',
`approve_admin_id` bigint(20) DEFAULT NULL COMMENT '审批管理员ID',
`approve_admin_name` varchar(50) DEFAULT NULL COMMENT '审批管理员名称',
`approve_time` datetime DEFAULT NULL COMMENT '审批时间',
`finance_admin_id` bigint(20) DEFAULT NULL COMMENT '财务审批管理员ID',
`finance_admin_name` varchar(50) DEFAULT NULL COMMENT '财务审批管理员名称',
`finance_approve_time` datetime DEFAULT NULL COMMENT '财务审批时间',
`reject_reason` varchar(255) DEFAULT NULL COMMENT '驳回原因',
`remark` varchar(255) DEFAULT NULL COMMENT '用户备注',
`admin_remark` varchar(255) DEFAULT NULL COMMENT '管理员备注',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`),
KEY `idx_user_id` (`user_id`),
KEY `idx_type_status_time` (`type`, `status`, `create_time`),
KEY `idx_type_time_user` (`type`, `create_time`, `user_id`),
KEY `idx_user_status` (`user_id`, `status`),
KEY `idx_approve_admin` (`approve_admin_id`),
KEY `idx_finance_admin` (`finance_admin_id`),
KEY `idx_wallet_id` (`wallet_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充提订单表';
-- ---------------------------------------------
-- 9. 资金流水表
-- ---------------------------------------------
DROP TABLE IF EXISTS `account_flow`;
CREATE TABLE `account_flow` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`flow_no` varchar(32) NOT NULL COMMENT '流水号',
`flow_type` tinyint(1) NOT NULL COMMENT '流水类型: 1-充值 2-提现 3-划转转入 4-划转转出 5-买入 6-卖出 7-福利',
`amount` decimal(20,8) NOT NULL COMMENT '变动金额',
`balance_before` decimal(20,8) NOT NULL COMMENT '变动前余额',
`balance_after` decimal(20,8) NOT NULL COMMENT '变动后余额',
`coin_code` varchar(20) DEFAULT 'USDT' COMMENT '相关币种',
`related_order_no` varchar(32) DEFAULT NULL COMMENT '关联订单号',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_flow_type` (`flow_type`),
KEY `idx_create_time` (`create_time`),
KEY `idx_user_flow_type` (`user_id`, `flow_type`),
KEY `idx_user_flow_type_time` (`user_id`, `flow_type`, `create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资金流水表';
-- ---------------------------------------------
-- 10. 系统配置表
-- ---------------------------------------------
DROP TABLE IF EXISTS `sys_config`;
CREATE TABLE `sys_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`config_key` varchar(100) NOT NULL COMMENT '配置键',
`config_value` varchar(500) NOT NULL COMMENT '配置值',
`config_desc` varchar(255) DEFAULT NULL COMMENT '配置说明',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_config_key` (`config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置表';
-- 初始化系统配置
INSERT INTO `sys_config` (`config_key`, `config_value`, `config_desc`) VALUES
('withdraw_min', '10', '最小提现金额(USDT)'),
('withdraw_max', '100000', '最大单笔提现金额(USDT)'),
('withdraw_daily_max', '500000', '每日最大提现金额(USDT)'),
('kyc_required', 'true', '交易前是否需要KYC'),
('deposit_min', '1000', '最小充值金额(USDT)'),
('deposit_max_total', '8000', '累计最大充值金额(USDT)'),
('customer_service_contact', '', '客服联系账号');
-- ---------------------------------------------
-- 11. 用户自选币种表
-- ---------------------------------------------
DROP TABLE IF EXISTS `user_favorite`;
CREATE TABLE `user_favorite` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`coin_code` varchar(20) NOT NULL COMMENT '币种代码',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_coin` (`user_id`, `coin_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户自选币种表';
-- ---------------------------------------------
-- 12. 冷钱包地址表
-- ---------------------------------------------
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`)
) 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);
-- ---------------------------------------------
-- 13. 用户盈亏日志表
-- ---------------------------------------------
DROP TABLE IF EXISTS `user_profit_log`;
CREATE TABLE `user_profit_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`profit_date` date NOT NULL COMMENT '盈亏日期(北京时间)',
`amount` decimal(20,8) NOT NULL COMMENT '盈亏金额(正=盈利,负=亏损)',
`type` tinyint(1) NOT NULL COMMENT '类型: 1=交易盈亏 2=福利',
`coin_code` varchar(20) DEFAULT NULL COMMENT '币种代码(交易盈亏时有值)',
`related_order_no` varchar(32) DEFAULT NULL COMMENT '关联订单号',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_user_date` (`user_id`, `profit_date`),
KEY `idx_profit_date` (`profit_date`),
KEY `idx_user_type` (`user_id`, `type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户盈亏日志表';
-- ---------------------------------------------
-- 14. 平台代币盈利计划表
-- ---------------------------------------------
DROP TABLE IF EXISTS `coin_profit_schedule`;
CREATE TABLE `coin_profit_schedule` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`coin_id` bigint(20) NOT NULL COMMENT '币种ID',
`profit_date` date NOT NULL COMMENT '盈利计划日期',
`profit_per_thousand` decimal(10,2) NOT NULL COMMENT '每1000U盈利金额',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-待执行 1-已执行 2-已取消',
`actual_profit_rate` decimal(12,8) DEFAULT NULL COMMENT '实际执行比率(自动回填)',
`admin_id` bigint(20) DEFAULT NULL COMMENT '操作管理员',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_coin_date` (`coin_id`, `profit_date`),
KEY `idx_profit_date` (`profit_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台代币盈利计划表';
SET FOREIGN_KEY_CHECKS = 1;