Initial commit: Monisuo - 虚拟货币模拟交易平台
功能模块: - 用户注册/登录/KYC - 资金账户/交易账户 - 实时行情/币种管理 - 即时交易/充提审核 - 管理后台 技术栈: - 后端: SpringBoot 2.2.4 + MyBatis Plus - 前端: uni-app x (Vue3 + UTS) - 数据库: MySQL Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
257
sql/init.sql
Normal file
257
sql/init.sql
Normal file
@@ -0,0 +1,257 @@
|
||||
-- =============================================
|
||||
-- 虚拟货币模拟交易平台 - 数据库初始化脚本
|
||||
-- 数据库: monisuo
|
||||
-- 版本: V1.0
|
||||
-- =============================================
|
||||
|
||||
-- 设置字符集
|
||||
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-正常',
|
||||
`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='用户表';
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 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-普通管理员',
|
||||
`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='管理员表';
|
||||
|
||||
-- 初始化超级管理员账号 (密码: admin123)
|
||||
INSERT INTO `sys_admin` (`username`, `password`, `nickname`, `role`, `permissions`, `is_system`)
|
||||
VALUES
|
||||
('admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9vz.a', '超级管理员1', 1, 'all', 1),
|
||||
('superadmin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9vz.a', '超级管理员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)',
|
||||
`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 '排序权重(越大越靠前)',
|
||||
`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`, `description`, `status`, `sort`) VALUES
|
||||
('BTC', 'Bitcoin', '/static/coin/btc.png', 67000.00, 1, '比特币(Bitcoin)是一种点对点的电子现金系统,由中本聪于2008年提出。', 1, 100),
|
||||
('ETH', 'Ethereum', '/static/coin/eth.png', 3400.00, 1, '以太坊(Ethereum)是一个开源的区块链平台,支持智能合约功能。', 1, 99),
|
||||
('SOL', 'Solana', '/static/coin/sol.png', 170.00, 1, 'Solana是一个高性能区块链平台,旨在支持去中心化应用的大规模采用。', 1, 98);
|
||||
|
||||
-- 初始化管理币种
|
||||
INSERT INTO `coin` (`code`, `name`, `icon`, `price`, `price_type`, `description`, `status`, `sort`) VALUES
|
||||
('USDT', 'Tether', '/static/coin/usdt.png', 1.0000, 2, '泰达币(USDT)是一种与美元挂钩的稳定币。', 1, 97),
|
||||
('DOGE', 'Dogecoin', '/static/coin/doge.png', 0.15, 2, '狗狗币(Dogecoin)是一种基于Scrypt算法的加密货币。', 1, 96),
|
||||
('XRP', 'Ripple', '/static/coin/xrp.png', 0.50, 2, '瑞波币(XRP)是Ripple网络的原生加密货币。', 1, 95);
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 4. 资金账户表
|
||||
-- ---------------------------------------------
|
||||
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 '累计提现',
|
||||
`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='资金账户表';
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 5. 交易账户表
|
||||
-- ---------------------------------------------
|
||||
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='交易账户表';
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 6. 交易订单表
|
||||
-- ---------------------------------------------
|
||||
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)',
|
||||
`fee` decimal(20,8) DEFAULT '0.00000000' COMMENT '手续费',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 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`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易订单表';
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 7. 充提订单表
|
||||
-- ---------------------------------------------
|
||||
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)',
|
||||
`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态: 1-待审批 2-已完成 3-已驳回 4-已取消',
|
||||
`approve_admin_id` bigint(20) DEFAULT NULL COMMENT '审批管理员ID',
|
||||
`approve_admin_name` varchar(50) DEFAULT NULL COMMENT '审批管理员名称',
|
||||
`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_status` (`status`),
|
||||
KEY `idx_type` (`type`),
|
||||
KEY `idx_create_time` (`create_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充提订单表';
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 8. 资金流水表
|
||||
-- ---------------------------------------------
|
||||
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-卖出',
|
||||
`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`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='资金流水表';
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 9. 系统配置表
|
||||
-- ---------------------------------------------
|
||||
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', '最小提现金额'),
|
||||
('withdraw_max', '100000', '最大单笔提现金额'),
|
||||
('withdraw_daily_max', '500000', '每日最大提现金额'),
|
||||
('kyc_required', 'true', '交易前是否需要KYC');
|
||||
|
||||
-- ---------------------------------------------
|
||||
-- 10. 自选币种表
|
||||
-- ---------------------------------------------
|
||||
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='用户自选币种表';
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
Reference in New Issue
Block a user