📊 数据概览 — 全局数据统计,实时查看用户、链接、推送效果
{{ dash.total_users || 0 }}
总用户数
{{ dash.active_users || 0 }}
活跃用户(24h)
{{ dash.blocked_users || 0 }}
已拉黑
{{ dash.today_new || 0 }}
今日新增
{{ linkStats.reduce((a,s)=>a+(s.start_count||0),0) }}
总点击次数
{{ linkStats.reduce((a,s)=>a+(s.user_count||0),0) }}
总新增用户
{{ linkStats.reduce((a,s)=>a+(s.today_new||0),0) }}
当日新增
{{ dash.total_users ? ((dash.blocked_users||0)*100/dash.total_users).toFixed(1)+'%' : '0%' }}
拉黑率
📊 渠道用户分布
{{ s.name || s.code }}{{ s.user_count || 0 }} 人
暂无数据
邀请链接统计
| 链接名称 | Code | 点击次数 | 新增用户 | 当日新增 |
|---|---|---|---|---|
| {{ s.name }} | {{ s.code }} | {{ s.start_count }} | {{ s.user_count || 0 }} | {{ s.today_new || 0 }} |
🤖 各机器人用户统计
| 机器人 | 总用户 | 今日新增 | 活跃(24h) | 已拉黑 |
|---|---|---|---|---|
| @{{ bs.bot_username || '未知' }} ({{ bs.bot_name }}) | {{ bs.total_users || 0 }} | {{ bs.today_new || 0 }} | {{ bs.active_users || 0 }} | {{ bs.blocked_users || 0 }} |
🤖 机器人管理 — 添加和管理 Telegram Bot,支持多 Bot 同时运行
| ID | 名称 | 用户名 | Token | 状态 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|
| {{ b.id }} | {{ b.name }} | @{{ b.username }} | {{ b.token.substring(0,15) }}... |
{{ b.is_active?'启用':'停用' }} | {{ fmtTime(b.created_at) }} | |
| 暂无机器人,请点击"添加机器人" | ||||||
💡 说明
- 添加机器人后需要重启服务才能生效(新 Bot 需要启动 polling)
- Token 从 @BotFather 获取,用户名填 Bot 的 username(不含 @)
- 停用机器人后,该 Bot 不再接收消息,但已有用户数据保留
👥 用户管理 — 查看所有通过 Bot 注册的用户,支持按渠道筛选和搜索
| ID | Telegram ID | 用户名 | 姓名 | 所属机器人 | 来源 | 状态 | 注册时间 |
|---|---|---|---|---|---|---|---|
| {{ u.id }} | {{ u.telegram_id }} | {{ str(u.username) || '-' }} | {{ str(u.first_name) }} {{ str(u.last_name) }} | {{ getBotName(u.bot_id) }} | {{ str(u.invite_link_code) || str(u.start_param) || '直接' }} | {{ u.is_blocked?'已屏蔽':'正常' }} | {{ fmtTime(u.created_at) }} |
🔗 邀请链接 — 创建推广链接,关联欢迎流程,追踪每个渠道的转化效果
| ID | 名称 | Code | 机器人 | 链接 | 点击次数 | 新增用户 | 当日新增 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|---|---|
| {{ l.id }} | {{ l.name }} | {{ l.code }} |
{{ getBotName(l.bot_id) }} | https://t.me/{{ getBotUsername(l.bot_id) }}?start={{ l.code }} | {{ l.start_count }} | {{ l.user_count }} | {{ (linkStats.find(s=>s.id===l.id)||{}).today_new || 0 }} | {{ l.is_active?'启用':'停用' }} |
🤖 欢迎流程
| ID | 名称 | 状态 | 创建时间 | 操作 |
|---|---|---|---|---|
| {{ f.id }} | {{ f.name }} | {{ f.is_active?'启用':'停用' }} | {{ fmtTime(f.created_at) }} |
📨 推送任务 — 批量发送消息,支持全部用户/按渠道/指定ID,可分组随机内容
| ID | 名称 | 类型 | 目标 | 机器人 | 状态 | 成功 | 失败 | 创建时间 | 发送时间 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ t.id }} | {{ t.name }} | {{ t.content_mode==='welcome_flow' ? '欢迎流程' : t.content_type }} | {{ {all:'全部用户',invite_link:'按链接',user_ids:'指定用户'}[t.target_type] || t.target_type }} | {{ getTaskBotNames(t.bot_ids) }} | {{ {draft:'草稿',pending:'待执行',running:'执行中',completed:'已完成',failed:'失败',cancelled:'已取消'}[t.status] || t.status }} | {{ t.success_count || 0 }} | {{ t.fail_count || 0 }} | {{ fmtTime(t.created_at) }} | {{ t.started_at && t.started_at.Valid ? fmtTime(t.started_at.Time) : '-' }} |
📋 操作日志 — 记录所有后台操作,便于审计追溯
| ID | 管理员 | 操作 | 目标类型 | 目标ID | IP | 时间 |
|---|---|---|---|---|---|---|
| {{ l.id }} | {{ l.admin_id }} | {{ {create:'创建',update:'更新',delete:'删除',login:'登录',start:'执行',toggle:'切换状态'}[l.action] || l.action }} | {{ {push_task:'推送任务',invite_link:'邀请链接',welcome_flow:'欢迎流程',material:'素材',material_group:'素材分组',admin:'管理员',user:'用户'}[l.target_type] || l.target_type }} | {{ l.target_id }} | {{ l.ip }} | {{ fmtTime(l.created_at) }} |
📦 素材库
素材分组
全部
{{ g.name }} ({{ {text:'文字',photo:'图片',video:'视频',button:'按钮'}[g.type] || g.type }})
✏️
❌
| ID | 名称 | 类型 | 分组 | 内容预览 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|
| {{ m.id }} | {{ str(m.name) || '-' }} | {{ {text:'文字',photo:'图片',video:'视频',button:'按钮'}[m.type] }} | {{ getGroupName(m.group_id) }} | {{ fmtTime(m.created_at) }} |
📊 游戏大厅概览
{{ gDash.stats?.total_games||0 }}
游戏总数
{{ gDash.stats?.online_games||0 }}
已上架
{{ gDash.stats?.offline_games||0 }}
已下架
{{ gDash.stats?.total_categories||0 }}
分类数
{{ gDash.stats?.today_visits||0 }}
今日访问
{{ gDash.stats?.active_users_7d||0 }}
7日活跃
🔥 热门游戏 TOP10(近7天)
| # | 游戏 | 访问次数 |
|---|---|---|
| {{ i+1 }} | {{ g.game_icon }} {{ g.game_name }} | {{ g.visit_count }} |
| 暂无数据 | ||
📂 分类管理
| ID | 图标 | 名称 | 排序 | 状态 | 操作 |
|---|---|---|---|---|---|
| {{ c.id }} | {{ c.icon }} | {{ c.name }} | {{ c.sort }} | {{ c.status===1?'启用':'禁用' }} |
🕹️ 游戏管理
| ID | 图标 | 名称 | 分类 | 类型 | 推荐 | 热门 | 新游 | 排序 | 状态 | 浏览 | 操作 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ g.id }} | {{ g.icon&&g.icon.startsWith('http')?'🖼️':g.icon||'🎮' }} | {{ g.name }} {{ g.subtitle }} |
{{ gCatName(g.category_id) }} | {{ g.open_type }} |
{{ g.is_recommend?'✅':'' }} | {{ g.is_hot?'🔥':''}} | {{ g.is_new?'🆕':''}} | {{ g.sort }} | {{ g.status===1?'上架':'下架' }} | {{ g.view_count }} |
共 {{ gGameTotal }} 条
🖼️ Banner管理
| ID | 标题 | 图片 | 跳转类型 | 跳转目标 | 排序 | 状态 | 操作 |
|---|---|---|---|---|---|---|---|
| {{ b.id }} | {{ b.title }} | {{ b.jump_type }} |
{{ b.sort }} | {{ b.status===1?'启用':'禁用' }} |
👁️ 访问记录
| ID | 用户ID | 游戏ID | 来源 | 时间 |
|---|---|---|---|---|
| {{ v.id }} | {{ v.user_id }} | {{ v.game_id }} | {{ v.source }} | {{ fmtTime(v.created_at) }} |
| 暂无记录 | ||||
共 {{ gVisitTotal }} 条
⚙️ 游戏大厅配置
🔗 WebApp 链接
将以下链接设置为 Telegram Bot 的 Menu Button 或 Inline Button:
❓ 使用帮助
📋 快速上手流程
- 创建素材 → 素材库中添加文字/图片/视频/按钮素材,按分组管理
- 创建欢迎流程 → 设置用户进入后收到的消息(支持多步骤、延迟发送、分组随机)
- 创建邀请链接 → 生成专属推广链接,关联对应的欢迎流程
- 分发链接 → 将
https://t.me/Bot用户名?start=链接Code分发到各渠道 - 查看数据 → 在数据概览和邀请链接的用户日志中追踪效果
📦 素材库
素材是欢迎流程和推送任务的内容来源,分为四种类型:
- 文字素材 — 支持 MarkdownV2 格式和
{emoji:贴纸包名:序号}自定义表情 - 图片素材 — 支持上传本地文件或填写 URL
- 视频素材 — 同图片,支持上传或 URL
- 按钮素材 — 内联按钮(文字 + 链接),点击后跳转 URL
素材按分组管理。分组用于"分组随机"功能 — 每次发送时从分组内随机抽取一个素材。
🤖 欢迎流程
用户点击邀请链接或发送 /start 后,Bot 自动发送的消息序列。
- 多步骤 — 一个流程可以包含多条消息,按顺序发送
- 延迟发送 — 每个步骤可设置延迟秒数(第一条立即发送)
- 内容来源 — 每个步骤的文字/图片/按钮支持三种模式:
- 手动输入 — 直接填写内容
- 指定素材 — 从素材库选择固定素材
- 分组随机 — 从素材分组中随机抽取,每次不同
- 随机流程 — 未关联流程的链接或直接 /start 会随机选取一个启用的流程
- 启用/停用 — 停用的流程不会被随机选中
⚠️ 确保至少有一个启用的流程且有步骤,这是兜底保障。
🔗 邀请链接
每个邀请链接对应一个推广渠道,生成格式:https://t.me/Bot用户名?start=Code
- 关联欢迎流程 — 每个链接可关联不同的欢迎流程,实现千人千面
- 用户日志 — 点击"用户日志"查看每次点击记录、发送状态、错误信息
- 统计 — 自动统计点击次数和新增用户数
- 停用/删除 — 停用或删除的链接,用户点击后会随机收到一个启用的欢迎流程
📨 推送任务
向用户批量发送消息,支持多种目标和内容模式。
- 目标类型:全部用户 / 按邀请链接 / 指定用户ID
- 内容模式:手动输入 / 指定素材 / 分组随机
- 执行 — 创建后点"执行"开始发送,支持查看发送详情和成功/失败统计
🚨 报警机制
以下情况会自动给管理员 Telegram 私聊发送报警通知:
- 欢迎流程查找失败
- 流程没有步骤(会随机 fallback 到其他启用的流程)
- 消息发送失败(自动重试一次后仍失败)
- 所有步骤全部发送失败
💡 常见问题
Q: 用户点击链接没收到消息?
A: 检查邀请链接是否关联了欢迎流程,流程是否已启用,流程是否有步骤。查看用户日志确认发送状态。
Q: 分组随机没效果?
A: 确认素材分组内有素材,且步骤选择了正确的分组。
Q: 图片发送失败?
A: 检查图片 URL 是否可访问,或上传的文件是否存在。Telegram 对图片大小有 10MB 限制。