2025-09-01 01:08:04 +08:00
|
|
|
-- 创建数据库
|
|
|
|
|
CREATE DATABASE IF NOT EXISTS jiebanke_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
|
USE jiebanke_dev;
|
|
|
|
|
|
|
|
|
|
-- 创建管理员表
|
|
|
|
|
CREATE TABLE IF NOT EXISTS admins (
|
|
|
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
username VARCHAR(50) NOT NULL UNIQUE,
|
|
|
|
|
password VARCHAR(255) NOT NULL,
|
|
|
|
|
email VARCHAR(100),
|
|
|
|
|
role ENUM('super_admin', 'admin') DEFAULT 'admin',
|
|
|
|
|
status ENUM('active', 'inactive') DEFAULT 'active',
|
|
|
|
|
last_login TIMESTAMP NULL,
|
|
|
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
-- 创建用户表
|
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
|
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
username VARCHAR(50) NOT NULL UNIQUE,
|
|
|
|
|
password VARCHAR(255) NOT NULL,
|
|
|
|
|
email VARCHAR(100) UNIQUE,
|
|
|
|
|
phone VARCHAR(20),
|
|
|
|
|
real_name VARCHAR(100),
|
|
|
|
|
id_card VARCHAR(20),
|
|
|
|
|
status ENUM('active', 'inactive', 'frozen') DEFAULT 'active',
|
|
|
|
|
balance DECIMAL(15,2) DEFAULT 0.00,
|
|
|
|
|
credit_score INT DEFAULT 100,
|
|
|
|
|
last_login TIMESTAMP NULL,
|
|
|
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
-- 创建订单表
|
|
|
|
|
CREATE TABLE IF NOT EXISTS orders (
|
|
|
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
user_id INT NOT NULL,
|
|
|
|
|
order_no VARCHAR(50) NOT NULL UNIQUE,
|
|
|
|
|
amount DECIMAL(15,2) NOT NULL,
|
|
|
|
|
status ENUM('pending', 'processing', 'completed', 'cancelled', 'failed') DEFAULT 'pending',
|
|
|
|
|
type ENUM('loan', 'repayment', 'transfer') NOT NULL,
|
|
|
|
|
description TEXT,
|
|
|
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
|
|
|
|
|
);
|
|
|
|
|
|
2025-09-22 02:04:07 +08:00
|
|
|
-- 创建促销活动表
|
|
|
|
|
CREATE TABLE IF NOT EXISTS promotion_activities (
|
|
|
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
name VARCHAR(100) NOT NULL,
|
|
|
|
|
description TEXT,
|
|
|
|
|
type ENUM('signup', 'invitation', 'purchase', 'custom') NOT NULL,
|
|
|
|
|
status ENUM('active', 'inactive', 'expired') DEFAULT 'active',
|
|
|
|
|
start_date DATE NOT NULL,
|
|
|
|
|
end_date DATE NOT NULL,
|
|
|
|
|
reward_type ENUM('cash', 'points', 'coupon') NOT NULL,
|
|
|
|
|
reward_amount DECIMAL(15,2) NOT NULL,
|
|
|
|
|
participation_limit INT DEFAULT 0 COMMENT '0表示无限制',
|
|
|
|
|
current_participants INT DEFAULT 0,
|
|
|
|
|
rules JSON COMMENT '活动规则配置',
|
|
|
|
|
created_by INT NOT NULL COMMENT '创建人ID',
|
|
|
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
FOREIGN KEY (created_by) REFERENCES admins(id) ON DELETE CASCADE
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
-- 创建奖励记录表
|
|
|
|
|
CREATE TABLE IF NOT EXISTS promotion_rewards (
|
|
|
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
|
|
|
user_id INT NOT NULL,
|
|
|
|
|
user_name VARCHAR(100) NOT NULL,
|
|
|
|
|
user_phone VARCHAR(20),
|
|
|
|
|
activity_id INT NOT NULL,
|
|
|
|
|
activity_name VARCHAR(100) NOT NULL,
|
|
|
|
|
reward_type ENUM('cash', 'points', 'coupon') NOT NULL,
|
|
|
|
|
reward_amount DECIMAL(15,2) NOT NULL,
|
|
|
|
|
status ENUM('pending', 'issued', 'failed') DEFAULT 'pending',
|
|
|
|
|
issued_at TIMESTAMP NULL,
|
|
|
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
|
|
|
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
|
|
|
|
|
FOREIGN KEY (activity_id) REFERENCES promotion_activities(id) ON DELETE CASCADE
|
|
|
|
|
);
|
|
|
|
|
|
2025-09-01 01:08:04 +08:00
|
|
|
-- 插入默认管理员账号
|
|
|
|
|
INSERT INTO admins (username, password, email, role) VALUES
|
|
|
|
|
('admin', '$2b$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'admin@jiebanke.com', 'super_admin'),
|
|
|
|
|
('manager', '$2b$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'manager@jiebanke.com', 'admin');
|
|
|
|
|
|
|
|
|
|
-- 插入测试用户账号
|
|
|
|
|
INSERT INTO users (username, password, email, phone, real_name, id_card, balance, credit_score) VALUES
|
2025-09-01 03:32:45 +08:00
|
|
|
('user1', '$2b$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'user1@jiebanke.com', '13800138001', '张三', '110101199001011234', 1000.00, 95),
|
|
|
|
|
('user2', '$2b$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 'user2@jiebanke.com', '13800138002', '李四', '110101199002022345', 500.00, 85);
|
2025-09-01 01:08:04 +08:00
|
|
|
|
|
|
|
|
-- 创建索引
|
|
|
|
|
CREATE INDEX idx_admins_username ON admins(username);
|
|
|
|
|
CREATE INDEX idx_admins_email ON admins(email);
|
|
|
|
|
CREATE INDEX idx_users_username ON users(username);
|
|
|
|
|
CREATE INDEX idx_users_email ON users(email);
|
|
|
|
|
CREATE INDEX idx_users_phone ON users(phone);
|
|
|
|
|
CREATE INDEX idx_orders_user_id ON orders(user_id);
|
|
|
|
|
CREATE INDEX idx_orders_order_no ON orders(order_no);
|
2025-09-22 02:04:07 +08:00
|
|
|
CREATE INDEX idx_orders_status ON orders(status);
|
|
|
|
|
CREATE INDEX idx_promotion_activities_status ON promotion_activities(status);
|
|
|
|
|
CREATE INDEX idx_promotion_activities_type ON promotion_activities(type);
|
|
|
|
|
CREATE INDEX idx_promotion_activities_dates ON promotion_activities(start_date, end_date);
|
|
|
|
|
CREATE INDEX idx_promotion_rewards_user_id ON promotion_rewards(user_id);
|
|
|
|
|
CREATE INDEX idx_promotion_rewards_activity_id ON promotion_rewards(activity_id);
|
|
|
|
|
CREATE INDEX idx_promotion_rewards_status ON promotion_rewards(status);
|
|
|
|
|
CREATE INDEX idx_promotion_rewards_created_at ON promotion_rewards(created_at);
|