feat: 完善后台管理+搜索功能+分销系统
主要更新: - 后台菜单精简(9项→6项) - 新增搜索功能(敏感信息过滤) - 分销绑定和提现系统完善 - 数据库初始化API(自动修复表结构) - 用户管理:显示绑定关系详情 - 小程序:上下章导航优化、匹配页面重构 - 修复hydration和数据类型问题
This commit is contained in:
50
lib/db.ts
50
lib/db.ts
@@ -58,28 +58,62 @@ export async function initDatabase() {
|
||||
try {
|
||||
console.log('开始初始化数据库表结构...')
|
||||
|
||||
// 用户表
|
||||
// 用户表(完整字段)
|
||||
await query(`
|
||||
CREATE TABLE IF NOT EXISTS users (
|
||||
id VARCHAR(50) PRIMARY KEY,
|
||||
open_id VARCHAR(100) UNIQUE NOT NULL,
|
||||
open_id VARCHAR(100) UNIQUE,
|
||||
session_key VARCHAR(100) COMMENT '微信session_key',
|
||||
nickname VARCHAR(100),
|
||||
avatar VARCHAR(500),
|
||||
phone VARCHAR(20),
|
||||
wechat_id VARCHAR(100),
|
||||
password VARCHAR(100) COMMENT '密码(可选)',
|
||||
wechat_id VARCHAR(100) COMMENT '用户填写的微信号',
|
||||
referral_code VARCHAR(20) UNIQUE,
|
||||
purchased_sections JSON,
|
||||
referred_by VARCHAR(50) COMMENT '推荐人ID',
|
||||
purchased_sections JSON DEFAULT '[]',
|
||||
has_full_book BOOLEAN DEFAULT FALSE,
|
||||
earnings DECIMAL(10,2) DEFAULT 0,
|
||||
pending_earnings DECIMAL(10,2) DEFAULT 0,
|
||||
referral_count INT DEFAULT 0,
|
||||
is_admin BOOLEAN DEFAULT FALSE COMMENT '是否管理员',
|
||||
earnings DECIMAL(10,2) DEFAULT 0 COMMENT '已提现收益',
|
||||
pending_earnings DECIMAL(10,2) DEFAULT 0 COMMENT '待提现收益',
|
||||
withdrawn_earnings DECIMAL(10,2) DEFAULT 0 COMMENT '累计已提现',
|
||||
referral_count INT DEFAULT 0 COMMENT '推广人数',
|
||||
match_count_today INT DEFAULT 0 COMMENT '今日匹配次数',
|
||||
last_match_date DATE COMMENT '最后匹配日期',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
INDEX idx_open_id (open_id),
|
||||
INDEX idx_referral_code (referral_code)
|
||||
INDEX idx_phone (phone),
|
||||
INDEX idx_referral_code (referral_code),
|
||||
INDEX idx_referred_by (referred_by)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
|
||||
`)
|
||||
|
||||
// 尝试添加可能缺失的字段(用于升级已有数据库)
|
||||
try {
|
||||
await query('ALTER TABLE users ADD COLUMN IF NOT EXISTS session_key VARCHAR(100)')
|
||||
} catch (e) { /* 忽略 */ }
|
||||
try {
|
||||
await query('ALTER TABLE users ADD COLUMN IF NOT EXISTS password VARCHAR(100)')
|
||||
} catch (e) { /* 忽略 */ }
|
||||
try {
|
||||
await query('ALTER TABLE users ADD COLUMN IF NOT EXISTS referred_by VARCHAR(50)')
|
||||
} catch (e) { /* 忽略 */ }
|
||||
try {
|
||||
await query('ALTER TABLE users ADD COLUMN IF NOT EXISTS is_admin BOOLEAN DEFAULT FALSE')
|
||||
} catch (e) { /* 忽略 */ }
|
||||
try {
|
||||
await query('ALTER TABLE users ADD COLUMN IF NOT EXISTS match_count_today INT DEFAULT 0')
|
||||
} catch (e) { /* 忽略 */ }
|
||||
try {
|
||||
await query('ALTER TABLE users ADD COLUMN IF NOT EXISTS last_match_date DATE')
|
||||
} catch (e) { /* 忽略 */ }
|
||||
try {
|
||||
await query('ALTER TABLE users ADD COLUMN IF NOT EXISTS withdrawn_earnings DECIMAL(10,2) DEFAULT 0')
|
||||
} catch (e) { /* 忽略 */ }
|
||||
|
||||
console.log('用户表初始化完成')
|
||||
|
||||
// 订单表
|
||||
await query(`
|
||||
CREATE TABLE IF NOT EXISTS orders (
|
||||
|
||||
Reference in New Issue
Block a user