📡 控制台

{{ user }}
筛选: ⟳ 加载中... ⚠️ {{ overviewError }} 实时数据 · {{ overviewTime }} 显示 {{ filteredProducts.length }} / {{ products.length }} 产品
{{ statusEmoji(selectedProduct.status) }} {{ selectedProduct.name }} {{ selectedProduct.team }}
最后更新: {{ selectedProduct.updated }}
🚨 {{ selectedProduct.alert }}

📊 实时今日

新增
{{ selectedProduct.daily_new }}
活跃
{{ selectedProduct.active }}
充值
¥{{ selectedProduct.charge }}
成功率
{{ selectedProduct.pay_rate || '—' }}

📈 累计

会员总数
{{ Number(selectedProduct.total_members).toLocaleString() }}

⚡ 快捷操作

加载详情中…

📊 后台详细数据 ({{ Object.keys(productDetail.fields).length }} 字段,按业务分组)

🔥 核心指标
{{ stripToday(k) }}
{{ v }}
📈 留存率 👥 注册 / 活跃 💰 充值 / 订单 📥 落地 / 下载 🎬 内容消费 💸 提现 / 奖金 📊 累计 / 周月 {{ group }}
{{ stripToday(k) }}
{{ v }}
📈 16 天趋势
{{ t.label }} {{ fmtNum(productDetail.fields._trends[t.key].slice(-1)[0]) }}

📊 后台详细数据

📈 15 天趋势
{{ t.label }} {{ fmtNum(productDetail.fields._trends[t.key].slice(-1)[0]) }}
📱 H5
{{ fmtNum(productDetail.fields._trends.device_bar[0]) }}
🤖 Android
{{ fmtNum(productDetail.fields._trends.device_bar[1]) }}
⚠️ {{ productDetail.error }}
📊 该平台详细数据待接入(留存 / 渠道 / 设备分布 / 趋势图)
{{ statusEmoji(p.status) }} {{ p.name }}
{{ p.team }}
新增{{ fmtNum(p.daily_new) }}
活跃{{ fmtNum(p.active) }}
充值¥{{ p.charge }}
成功率{{ p.pay_rate || '—' }}
🚨 {{ p.alert }}
更新:{{ p.updated }}

{{ filterTeam === '全部' ? '今日合计' : filterTeam + ' 合计' }}

新增
{{ fmtNum(totalize('daily_new')) }}
活跃
{{ fmtNum(totalize('active')) }}
充值
¥{{ totalize('charge') }}
订单数
{{ totalize('orders_count') }}
成功订单
{{ totalize('orders_ok') }}

🚨 今日告警 ({{ alerts.length }})

{{ a.level === 'critical' ? '🚨' : '⚠️' }} {{ a.time }} {{ a.msg }} ✅ 已恢复

📊 数据查询

查询类型:
时间范围:
产品:
{{ queryType === 'user' ? '用户 UID:' : '订单号:' }}
天数: 8 家全支持: d.php 4 家 + LGBT/他他GV 走真后台实时拉 · 不撸帝/Boys 走铁蛋历史快照(T+1)
订单类型: d.php 4 家专用
查询耗时 {{ queryDuration }}ms · 共 {{ queryResults.length }} 条
{{ queryError }}
{{ col }} {{ daySortDir === 'asc' ? '↑' : '↓' }}
✅ 通过 ❌ 拒绝 ✅ 成功 ❌ 失败 {{ r[col] }} {{ r[col] }}
没有查到数据
每页: 共 {{ queryResults.length }} 条
第 {{ currentPage }} / {{ totalPages }} 页
📊
选择查询条件,点"查询"开始
支持充值/审核/活跃/用户/订单 五类查询
筛选: 操作: 命中 {{ filteredAuditProducts.length }} 产品 · {{ filteredAuditTimeline.length }} 条动作
✅ 通过
{{ filteredAuditTotals.pass.toLocaleString() }}
❌ 删除
{{ filteredAuditTotals.delete.toLocaleString() }}
🚫 禁言
{{ filteredAuditTotals.ban.toLocaleString() }}
⏸️ Hold
{{ filteredAuditTotals.hold.toLocaleString() }}

📊 各产品审核统计(最近一轮)

⟳ 加载中 {{ auditStats.time }}
产品 通过 删除 禁言 Hold 分类拆分
{{ p.product }} {{ p.pass.toLocaleString() }} {{ p.delete.toLocaleString() }} {{ p.ban.toLocaleString() }} {{ p.hold.toLocaleString() }} {{ c.name }}({{ c.pass }}/{{ c.delete }}/{{ c.ban }})
没有命中数据

🕐 最近审核动作(按违规理由聚合)

从 review log 解析
{{ r['产品'] }} {{ r['操作'] }} {{ r['类型'] }} {{ r['理由'] }}
没有命中的审核动作
💡 Content-Studio v1.0 · 全链路发帖工作台 · 上传视频 + 多平台分发 + 任务追踪
今日发帖
{{ content.totals.today }}
含成功+失败+进行中
已完成
{{ content.totals.success }}
成功率 {{ contentSuccessRate }}%
流水线进行中
{{ content.totals.in_progress }}
{{ content.totals.in_progress }} 个待人工确认
发布失败
{{ content.totals.failed }}
点击查看详情
覆盖平台
{{ content.totals.platforms_active }}
今日活跃 {{ content.totals.platforms_active }} 个

📜 最近流水线任务

展示最近 50 条 点 + 新建视频发布 上传你的视频
ID 标题 目标平台 流水线进度 状态 时间
#{{ t.id }} {{ t.post_type === 'post' ? '📝' : '📹' }} {{ t.title }} {{ sub.platform_name }}
{{ t.progress }}
{{ t.status }} {{ t.created.split(' ')[1] || t.created }}
📭
还没有发布任务,点右上角「+ 新建视频发布」开始

📊 今日各平台发帖

{{ plat }} {{ stat.total }} 单
✅ {{ stat.success }} ❌ {{ stat.failed }}
今天还没有发布
🔍 跨平台用户查询 · 输 UID/uuid/Boys Code/手机号/订单号 反查 · 充值/禁言/AFF 一站查 v0.1 仅查询
组: 产品:
关键词:
⚠️ {{ account.error }}
查询关键词
{{ account.profile.query }}
命中平台
{{ account.profile.platforms_seen.length }}
{{ account.profile.platforms_seen.join(' / ') || '—' }}
订单数
{{ account.profile.total_orders }}
成功 {{ account.profile.total_success }}
累计金额
{{ account.profile.total_amount }}
最近 30 天
活跃时段
首: {{ account.profile.first_seen.split(' ')[0] }}
末: {{ account.profile.last_seen.split(' ')[0] }}
{{ p['性别'] === '女' ? '👩' : '🧑' }}
{{ p['别名(昵称)'] || '(无昵称)' }} {{ p['平台'] }} 👑 {{ p['VIP卡名'] || ('等级 ' + p['VIP等级']) }} 🚫 已禁言 ✓ 已认证
uid: {{ p['uid'] }} · {{ p['用户名'] }}
📋 基本资料
用户名{{ p['用户名'] }}
手机{{ p['手机'] }}
权限{{ p['权限'] }}
性别{{ p['性别'] }}
UUID
{{ p['uuid'] }}
👑 会员金币
VIP 等级 {{ p['VIP等级'] || '0' }}
🎫 {{ p['VIP卡名'] }}
VIP 到期 {{ formatVipExpire(p['会员到期']) }}
⏰ 无限看 {{ formatVipExpire(p['无限看到期']) }}
金币余额 {{ p['金币余额'] }}
消费总额{{ p['消费总额'] }}
App 版本{{ p['应用版本'] }}
📍 活动轨迹
注册
{{ p['注册时间'] }}
📍 {{ p['注册IP'] }}
最后访问
{{ p['最后访问'] }}
📍 {{ p['最后IP'] }}
登录 {{ p['登录次数'] }} 次
📡 渠道推广
渠道{{ p['渠道'] }}
AFF{{ p['AFF'] }}
邀请人数 {{ p['邀请人数'] }}
⚡ 账号操作
ℹ️ {{ p['平台'] }} ops 接口待大哥抓 cURL
⚠️ 这个关键词在选定平台上没找到匹配的用户。可能:用户在别的产品 / uuid 错了 / 平台权限不到。

📊 各平台汇总

平台 订单数 成功 累计金额 首单 末单
{{ p['平台'] }} {{ p['订单数'] }} {{ p['成功'] }} {{ p['累计金额'] }} {{ p['首单'] }} {{ p['末单'] }}

💰 充值明细

最近 50 条
创建时间 平台 订单号 类型 订单金额 实付金额 支付渠道 产品id 订单信息 状态
{{ o['创建时间'] || o['时间'] }} {{ o['产品'] }} {{ o['订单号'] }} {{ o['类型'] || '-' }} {{ o['订单金额'] || o['金额'] }} {{ o['实付金额'] || o['金额'] }} {{ o['通道'] }} {{ o['产品id'] || '-' }} {{ o['订单信息'] || o['商品'] || '-' }} {{ o['状态'] }}

💰 充值明细

最近 30 天
📭
该用户在所选范围内(最近 30 天)没有充值记录
不是 bug — 是用户真的没充过 / 充值在 30 天之前

🚫 命中禁言/删除/拒绝记录 ({{ account.ban_records.length }})

{{ r['平台'] }} {{ r['操作'] }} {{ r['内容'] }}
🔍
输入 UID / uuid / 手机号 / 订单号开始查询
系统会跨 5 个平台聚合该用户的充值、禁言、活跃记录
示例查询:08a9731c(搜同 uuid 前 8 位)
🚫 禁言用户 · 不撸帝走 /user/save (is_disabled=1) · 5-3 实战验证
🚫 禁言用户 · d.php 系走 doBlack workflow(listAjax 拉评论 → 拿 cid → flag=ban)· 实战验证可靠

⚙️ 操作表单

⚠️ 操作不可逆 · 会禁言整个用户(不只单条评论) · 本操作会写入操作日志(谁/何时/对谁)
{{ banResult.ok ? '✅ 禁言成功' : '❌ 失败' }}
{{ banResult.msg || banResult.error }}
使用 cid: {{ banResult.cid_used }} · 评论预览: "{{ banResult.comment_preview || '—' }}"
💡 LGBT/他他GV/不撸帝/Boys/小蓝/Gili Gili 待抓后台 cURL,以后陆续接。本期先 搜同 + GTV。
✏️ 改昵称 · 走 d.php members?code=save 部分更新模式 · 仅改 nickname,其他字段不动

⚙️ 改昵称表单

⚠️ 不可逆 · 仅改 nickname 字段(其他保留)· 写操作日志
{{ renameResult.ok ? '✅ 改昵称成功' : '❌ 失败' }}
{{ renameResult.msg || renameResult.error }}
uid: {{ renameResult.before.uid }} · 之前: {{ renameResult.before.nickname_before }}
💡 当前仅 d.php 4 家(搜同/GTV/小蓝/Gili Gili)。Boys 已知接口 PUT update 17 字段(/admin/cluser/m/user/update),不撸帝/TaTa 接口未做。重置密码/改头像/改角色 后续按需加。
🎟️ 改用户会员 · 改某用户的会员等级 + 到期日(月卡/年卡/至尊卡 等)· 工单常用
ℹ️ 搜同走 productuser 卡包(11 张真卡 + 取消)
流程:dashboard 提交后,后端 list 用户当前卡 → 全部 del → save 新卡(到期日由 productuser 按卡种自动算,永久卡 ≈ 27 年,月卡 30 天)· 同时支持转移会员卡(顶部 🔄 转移会员)

⚙️ 改会员表单

后端自动算到期日(永久卡 ≈ 27 年,月卡 30 天)
⏳ 加载会员卡列表中... (没出来就刷新)
ℹ️ 后端拉当前 vipEnd → 延长 N 天(已过期则从今天起算)→ PUT update + 反查 verify。点按钮直接提交,不再点下面"改会员"
ℹ️ 搜同走 productuser:到期日由后端按卡种自动算,不需手填
⚠️ 不可逆 · 直接覆盖用户当前会员 · 写操作日志 ↑ Boys 走快捷按钮提交
{{ vipResult.ok ? '✅ 改会员成功' : '❌ 失败' }}
{{ vipResult.msg || vipResult.error }}
用户: {{ vipResult.before.nickName || vipResult.before.nickname || '?' }}
之前: vip_level={{ vipResult.before.vip_level_before }} 到期 {{ vipResult.before.expired_at_before }}
之前 VIP: 开始 {{ vipResult.before.vipBegin_before || '(未充)' }} 到期 {{ vipResult.before.vipEnd_before || '(未充)' }} · 累充 ¥{{ vipResult.before.rechargeTotal }}
💡 已支持 5 平台:d.php 4 家(搜同/GTV/小蓝/Gili Gili)+ Boys(走 page2 反查 + 全字段 PUT update,保留 nickName/city 等其他字段)。LGBT/他他GV/不撸帝 待抓后台 cURL。
🔄 转移会员卡 · 把 A 用户的会员卡转给 B 用户(仅搜同 productuser 卡包,工单常用)

⚙️ 转移会员表单

📦 当前卡包: {{ c.vip_level_str || c.product_id }}(pk={{ c.id }})
⚠️ 该用户当前没卡可转
⚠️ 不可逆 · 删 From 全部卡 + 加新卡到 To · 写操作日志
{{ transferResult.ok ? '✅ 转移成功' : '❌ 失败' }}
{{ transferResult.msg || transferResult.error }}
已删 From 卡: pk={{ d.pk }}({{ d.vip_level_str }})·{{ d.ok ? '✅' : '❌' }}
加 To 卡: {{ transferResult.added.card_name }} (pid={{ transferResult.added.product_id }}) · {{ transferResult.added.ok ? '✅' : '❌' }} {{ transferResult.added.msg }}
📜 操作日志 · 全员最近 ops.* 操作(责任到人 · 出问题可追)· 默认 admin/副总/组长可看,组员需到 🛡️ 角色管理 加 admin.audit.view 权限
操作人: 动作:

操作日志 · {{ myAuditItems.length }} 条

加载中…
还没操作记录
时间 操作人 动作 目标 详情
{{ (it.time || '').slice(5, 19).replace('T', ' ') }} {{ it.actor }} {{ it.action }} {{ it.target || '—' }} {{ JSON.stringify(it.after).slice(0, 80) }}{{ JSON.stringify(it.after).length > 80 ? '…' : '' }} {{ it.note }}
无限看(免费看金币视频) · GTV/小蓝/Gili Gili 后台 add_free · day=0=清零 · 工单常用

⚙️ 加无限看天数

⚠️ 累加模式:多次点会叠加 · 写操作日志
{{ freeViewResult.ok ? '✅ 提交成功' : '❌ 失败' }}
{{ freeViewResult.msg || freeViewResult.error }}
💡 d.php 后端无现成反查接口,提交后请去对应平台后台核对实际无限看天数 · 搜同后台没此功能(下拉无搜同选项)
💰 金币上下分 · 给用户加/扣金币(quantity 正=上分,负=下分)· 工单常用

⚙️ 上下分表单

⚠️ 不可逆 · 直接调整用户余额 · 写操作日志
{{ coinResult.ok ? '✅ 上下分成功' : '❌ 失败' }}
{{ coinResult.msg || coinResult.error }}
💡 已支持 6 平台:Boys (balance/adjust) + d.php 4 家 (chargeadmin/save) + 不撸帝 (/user/recharge,自动带 TOTP)。LGBT/他他GV 待抓 cURL。
🤖 Agent 状态总览 · {{ agents.summary.services_active }}/{{ agents.summary.services_total }} 服务 · {{ agents.summary.crons_total }} cron · {{ agents.summary.infra_ok }}/{{ agents.summary.infra_total }} 基建 {{ agents.time }}
在线服务
{{ agents.summary.services_active }}/{{ agents.summary.services_total }}
7×24 跑的 bot 和服务
失败服务
{{ agents.summary.services_failed }}
{{ agents.summary.services_failed === 0 ? '一切正常' : '需要排查' }}
Cron 任务
{{ agents.summary.crons_total }}
定时跑的脚本
基础设施
{{ agents.summary.infra_ok }}/{{ agents.summary.infra_total }}
OpenAI / Cookie / Token / SS

🤖 业务 Bot 与服务

服务 职责 状态 已运行 内存 PID
{{ s.icon }} {{ s.display }}
{{ s.unit }}
{{ s.role }} {{ s.state === 'active' ? '🟢 运行中' : s.state === 'failed' ? '🚨 失败' : '⏸️ ' + s.state }} {{ s.uptime }} {{ s.mem_mb }} MB {{ s.pid }}

🌐 远端 Agent 节点

其他组的机器人 / 独立 VPS · 暴露 /health 后纳入实时采集
{{ r.icon }}
{{ r.name }}
{{ r.team }} · {{ r.product }}
{{ r.status === 'ok' ? '🟢 在线' : r.status === 'pending_endpoint' ? '⏳ 待接入' : '📦 已移交' }}
{{ r.role }}
📍 {{ r.host }}
{{ r.note }}

⏰ 关键定时任务

从 crontab 比对,{{ agents.crons.filter(c => c.configured).length }} / {{ agents.crons.length }} 已配置
任务 执行频率 配置 最近
{{ c.icon }} {{ c.display }}
{{ c.fragment }}
{{ c.schedule }} {{ c.configured ? '✅ 已配' : '⏸️ 未配' }} {{ c.last_run }}

🏗️ 基础设施

{{ i.icon }} {{ i.name }} {{ i.status === 'ok' ? '🟢 OK' : i.status === 'warn' ? '🟡 警告' : i.status === 'error' ? '🔴 错误' : '⏸️ ' + i.status }}
{{ i.note }}

📥 用户反馈(巡检评论 - 已去黄推)

{{ feedback.date }} · 原始 {{ feedback.total_raw }} 条 · 过滤 {{ feedback.blocked_blacklist }} 条黄推 · 命中分类 {{ feedback.classified }} 条
产品: 分类:
产品 分类 评论内容 位置 UID 视频/帖子
{{ r['产品'] }} {{ r['分类'] }} {{ r['评论'] }} {{ r['位置'] }} {{ r['UID'] }} {{ r['视频/帖子'] }}
没有命中的反馈
已显示 {{ feedbackPageSize }} / 共 {{ filteredFeedbackRows.length }} 条
📺 世界杯直播站配置 ▶ 预览(默认) ▶ GTV 入口 ▶ 搜同入口

⚙️ 基础

📰 跑马灯(叠播放器底部滚动)

#{{ idx+1 }}

🎯 广告位(按 ?from= 分流,各平台用户只看自家)

分组名(default/gtv/sotong/xiaolan 等)对应 URL `?from=` 参数,从 GTV 落地页跳来的 URL 加 `?from=gtv` 就只显示 gtv 那组广告。

{{ group }}{{ group==='default' ? ' (无 from 参数走这个)' : ' (?from=' + group + ')' }}
这个分组没有广告,点上面 ➕ 加一个

📊 埋点(最近 200 条)

总数: {{ zhiboEvents.length }}
页面打开: {{ zhiboEvents.filter(e=>e.event==='page_open').length }}
视频播放: {{ zhiboEvents.filter(e=>e.event==='video_play').length }}
广告点击: {{ zhiboEvents.filter(e=>e.event==='ad_click').length }}
跑马灯点击: {{ zhiboEvents.filter(e=>e.event==='marquee_click').length }}
{{ e.ts.slice(11,19) }} · {{ e.event }} · from={{ e.from }} · sid={{ e.sid.slice(0,8) }} {{ e.ad_id ? '· ad=' + e.ad_id : '' }}
还没埋点数据,等用户访问直播站后再看
⏳ 加载中... 等待加载...
📝 AV 落地页配置 ▶ 预览落地页
{{ landingConfigMsg }}
📌 顶部主信息
🔝 顶栏统计
🎯 主 Banner (页面最大那块)
🖼️ Banner 轮播大图 ({{ (landingCfg.banner_slides||[]).length }} 张)
两种方式都行:① 点 📁 直接选本地图(支持多选,自动上传)② 贴公网 URL(jpg/png/webp/gif),建议 1600×900 横图
还没图,点 + 加图 加一张试试
📊 数据指标卡 ({{ landingCfg.metrics.length }} 个数字)
🌶 双榜热推 (左右两张大卡)
⬅ 左卡
➡ 右卡
📱 APP 卡片 ({{ landingCfg.apps.length }} 个)
📱 {{ a.name || '(未命名)' }} [{{ a.key }}]
🔥 精选视频 ({{ landingCfg.videos.length }} 个)
🦶 页脚
改完点保存,落地页刷新就生效
⏳ 加载中... 等待加载...
{{ menus.find(m => m.key === activeMenu).icon }}
{{ menus.find(m => m.key === activeMenu).name }}
v0.1 占位 — 待开发

👥 用户管理

分配角色 · 调组 · 重置 TOTP · 删除
🔑 注册邀请码 新用户注册必须填这个码
📖 角色权限说明
{{ r.cn }} {{ r.note }}
用户名 角色 所属组 TOTP 最后登录 操作
{{ u.username }} admin {{ (u.last_login || '').replace('T', ' ').slice(0, 19) || '—' }}
暂无用户
⚠️ {{ adminError }}
✅ {{ adminSuccess }}

🛡️ 角色与权限管理

仿 NT 后台·v0.2

📋 角色列表({{ rolesData.length }} 个)

角色 职能描述 级别 权限数 用户数 最后修改 操作
{{ r.cn }}
{{ r.key }}
系统
{{ r.desc || '—' }} {{ r.level }} 全权 * {{ r.perms.length }} {{ r.user_count }} {{ (r.updated || '').slice(5, 16).replace('T', ' ') }}
暂无角色

{{ roleEditing.isNew ? '➕ 新建角色' : '✏️ 编辑:' + roleEditing.cn }}

⚡ 通配快捷 点一下加 / 移除整组
📦 {{ group }} {{ items.filter(i => roleEditing.perms.includes(i.key)).length }} / {{ items.length }}
已选 {{ roleEditing.perms.length }} 项权限
⚠️ {{ rolesError }}
✅ {{ rolesSuccess }}

📜 操作日志

最近 5000 条 · 谁 / 做了啥 / 前后值
共 {{ auditLogTotal }} 条
时间 操作人 操作类型 目标 操作前 操作后 IP
{{ (e.time || '').slice(5, 19).replace('T', ' ') }} {{ e.actor }} {{ e.action }} {{ e.target || '—' }} {{ e.before ? JSON.stringify(e.before) : '—' }} {{ e.after ? JSON.stringify(e.after) : '—' }} {{ e.ip || '—' }}
{{ auditLogLoading ? '加载中…' : '暂无日志' }}
第 {{ auditLogPage }} 页 / 共 {{ Math.max(1, Math.ceil(auditLogTotal / 50)) }} 页

🔐 安全设置

🛡️
二步验证(TOTP)
用 Google Authenticator / Microsoft Authenticator / Authy 扫码绑定
{{ totpEnabled ? '✅ 已启用' : '⏸️ 未启用' }}
用验证器扫描下方二维码:
TOTP QR 生成中...
扫不到?手动输入 secret: {{ totpSetup.secret }}
⚠️ {{ totpError }}
✅ {{ totpSuccess }}
下次登录需要验证器 6 位码。
⚠️ 解绑二步验证
账号信息
用户名:{{ user }}
注册:{{ accountCreated || '—' }}
上次登录:{{ accountLastLogin || '—' }}

+ 新建发布

已选: {{ uploadFileName }} ({{ (uploadFileSize/1024/1024).toFixed(1) }} MB)
支持 mp4 / mov / avi / mkv / webm / flv / m4v · 最大 1 GB
已选封面: {{ uploadCoverName }}
已选 {{ uploadPlatforms.length }} 个
⚠️ {{ uploadError }}
上传中: {{ uploadProgress }}%