feat: 完善后台管理+搜索功能+分销系统

主要更新:
- 后台菜单精简(9项→6项)
- 新增搜索功能(敏感信息过滤)
- 分销绑定和提现系统完善
- 数据库初始化API(自动修复表结构)
- 用户管理:显示绑定关系详情
- 小程序:上下章导航优化、匹配页面重构
- 修复hydration和数据类型问题
This commit is contained in:
卡若
2026-01-25 19:37:59 +08:00
parent 65d2831a45
commit 4dd2f9f4a7
49 changed files with 5921 additions and 636 deletions

View File

@@ -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 (