最新
This commit is contained in:
parent
231218bd5e
commit
116b830b18
@ -1,17 +1,35 @@
|
||||
<?php
|
||||
// Generated by setup_mariadb_project.sh — edit as needed.
|
||||
// Database configuration
|
||||
define('DB_HOST', '127.0.0.1');
|
||||
define('DB_NAME', 'app_38350');
|
||||
define('DB_USER', 'app_38350');
|
||||
define('DB_PASS', 'c79d2d31-7d44-4d51-ac22-5bfd0886fcc2');
|
||||
|
||||
function db() {
|
||||
static $pdo;
|
||||
if (!$pdo) {
|
||||
$pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8mb4', DB_USER, DB_PASS, [
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
]);
|
||||
}
|
||||
return $pdo;
|
||||
}
|
||||
static $pdo;
|
||||
if (!$pdo) {
|
||||
try {
|
||||
$pdo = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8mb4', DB_USER, DB_PASS, [
|
||||
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
||||
]);
|
||||
|
||||
// Auto-install check: if 'settings' table doesn't exist, run install.sql
|
||||
static $checked = false;
|
||||
if (!$checked) {
|
||||
$checked = true;
|
||||
$res = $pdo->query("SHOW TABLES LIKE 'settings'");
|
||||
if ($res->rowCount() == 0) {
|
||||
$sql_file = __DIR__ . '/install.sql';
|
||||
if (file_exists($sql_file)) {
|
||||
$sql = file_get_contents($sql_file);
|
||||
$pdo->exec($sql);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
die("Database connection failed: " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
return $pdo;
|
||||
}
|
||||
157
db/install.sql
Normal file
157
db/install.sql
Normal file
@ -0,0 +1,157 @@
|
||||
-- NovaEx Database Schema
|
||||
-- Optimized for one-click deployment
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- 1. Users Table
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`uid` int(11) NOT NULL,
|
||||
`username` varchar(100) NOT NULL,
|
||||
`password` varchar(255) NOT NULL,
|
||||
`trading_password` varchar(255) DEFAULT '123456',
|
||||
`balance` decimal(30,10) DEFAULT '0.0000000000',
|
||||
`credit_score` int(11) DEFAULT '80',
|
||||
`win_loss_control` enum('none','win','loss') DEFAULT 'none',
|
||||
`status` enum('active','disabled') DEFAULT 'active',
|
||||
`kyc_name` varchar(100) DEFAULT NULL,
|
||||
`kyc_id_number` varchar(50) DEFAULT NULL,
|
||||
`kyc_id_front` varchar(255) DEFAULT NULL,
|
||||
`kyc_id_back` varchar(255) DEFAULT NULL,
|
||||
`kyc_id_handheld` varchar(255) DEFAULT NULL,
|
||||
`kyc_status` tinyint(1) DEFAULT '0',
|
||||
`last_ip` varchar(45) DEFAULT NULL,
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `username` (`username`),
|
||||
UNIQUE KEY `uid` (`uid`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 2. Admins Table
|
||||
CREATE TABLE IF NOT EXISTS `admins` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`username` varchar(100) NOT NULL,
|
||||
`password` varchar(255) NOT NULL,
|
||||
`role` enum('super','agent') DEFAULT 'agent',
|
||||
`permissions` text,
|
||||
`remark` text,
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `username` (`username`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Insert default admin (admin / 123456)
|
||||
INSERT IGNORE INTO `admins` (`id`, `username`, `password`, `role`, `permissions`) VALUES
|
||||
(1, 'admin', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'super', 'all');
|
||||
|
||||
-- 3. Settings Table
|
||||
CREATE TABLE IF NOT EXISTS `settings` (
|
||||
`name` varchar(100) NOT NULL,
|
||||
`value` text,
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- Insert default settings
|
||||
INSERT IGNORE INTO `settings` (`name`, `value`) VALUES
|
||||
('win_rate', '70'),
|
||||
('price_control', '0'),
|
||||
('chat_greeting', '您好!欢迎咨询 NovaEx 官方客服。'),
|
||||
('site_logo', 'assets/images/logo.png');
|
||||
|
||||
-- 4. Fiat Orders Table (Recharge)
|
||||
CREATE TABLE IF NOT EXISTS `fiat_orders` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`amount` decimal(18,2) NOT NULL,
|
||||
`currency` varchar(10) DEFAULT 'CNY',
|
||||
`exchange_rate` decimal(18,4) DEFAULT NULL,
|
||||
`usdt_amount` decimal(18,4) DEFAULT NULL,
|
||||
`status` varchar(20) DEFAULT 'matching',
|
||||
`proof_image` varchar(255) DEFAULT NULL,
|
||||
`bank_account_info` text,
|
||||
`expires_at` timestamp NULL DEFAULT NULL,
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 5. Orders Table (Withdrawal/USDT)
|
||||
CREATE TABLE IF NOT EXISTS `orders` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`type` varchar(20) DEFAULT 'usdt',
|
||||
`amount` decimal(18,8) NOT NULL,
|
||||
`currency` varchar(10) DEFAULT 'USDT',
|
||||
`account_info` text,
|
||||
`proof_img` varchar(255) DEFAULT NULL,
|
||||
`status` varchar(20) DEFAULT 'pending',
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 6. Messages Table (Chat)
|
||||
CREATE TABLE IF NOT EXISTS `messages` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`sender` enum('user','admin') NOT NULL,
|
||||
`message` text NOT NULL,
|
||||
`type` varchar(20) DEFAULT 'text',
|
||||
`is_read` tinyint(1) DEFAULT '0',
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 7. Option Orders Table (Seconds Contract)
|
||||
CREATE TABLE IF NOT EXISTS `option_orders` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`symbol` varchar(20) NOT NULL,
|
||||
`amount` decimal(18,8) NOT NULL,
|
||||
`direction` enum('up','down') NOT NULL,
|
||||
`duration` int(11) NOT NULL,
|
||||
`profit_rate` decimal(5,2) NOT NULL,
|
||||
`opening_price` decimal(18,8) NOT NULL,
|
||||
`closing_price` decimal(18,8) DEFAULT NULL,
|
||||
`status` enum('pending','completed') DEFAULT 'pending',
|
||||
`result` enum('none','win','loss') DEFAULT 'none',
|
||||
`profit` decimal(18,8) DEFAULT '0.00000000',
|
||||
`control` enum('none','win','loss') DEFAULT 'none',
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`settle_at` timestamp NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 8. User Assets Table (Spot Balances)
|
||||
CREATE TABLE IF NOT EXISTS `user_assets` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`symbol` varchar(20) NOT NULL,
|
||||
`amount` decimal(30,10) DEFAULT '0.0000000000',
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `user_symbol` (`user_id`,`symbol`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 9. Trading Orders Table (Spot & Futures)
|
||||
CREATE TABLE IF NOT EXISTS `trading_orders` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`user_id` int(11) NOT NULL,
|
||||
`symbol` varchar(20) NOT NULL,
|
||||
`type` enum('spot','futures') NOT NULL,
|
||||
`side` enum('buy','sell') NOT NULL,
|
||||
`order_type` enum('limit','market') NOT NULL,
|
||||
`price` decimal(18,8) NOT NULL,
|
||||
`amount` decimal(18,8) NOT NULL,
|
||||
`total` decimal(18,8) NOT NULL,
|
||||
`leverage` int(11) DEFAULT '1',
|
||||
`tp_price` decimal(18,8) DEFAULT NULL,
|
||||
`sl_price` decimal(18,8) DEFAULT NULL,
|
||||
`status` varchar(20) DEFAULT 'open',
|
||||
`admin_status` varchar(20) DEFAULT 'pending',
|
||||
`win_loss` enum('none','win','loss') DEFAULT 'none',
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
Loading…
x
Reference in New Issue
Block a user