Admin Console

香蕉菠萝蜜管理台

更适合运营和排障的后台视图,先做最常用也最值钱的部分。

{{ notice.type === 'error' ? '操作失败' : '操作成功' }}

{{ notice.message }}

{{ card.label }}

{{ card.value }}

{{ card.hint }}

最近录入用户

方便确认今天或最近新接入的同学。

{{ user.real_name }}

{{ classNameMap[user.class_id] || ('ID ' + user.class_id) }} · {{ user.student_no_label }}

暂无最近录入用户

快速操作

最值钱的操作集中放在这里,减少来回跳转。

用户管理

查找、封号、改到期时间、删除用户以及打开详情抽屉。

已选中 {{ selectedUserIds.length }} 个用户

批量暂停开始

批量暂停结束

{{ pagedUsers.length }} 条

{{ user.real_name }}

{{ getUserStatusLabel(user) }} {{ user.punch_paused_from }} 至 {{ user.punch_paused_until }} 试用

{{ classNameMap[user.class_id] || ('ID ' + user.class_id) }} · {{ user.student_no_label }}

UID: {{ user.own_userid }}

基础信息

联系方式

{{ user.contact_id || '未填写' }}

班级字段

时间设置

到期时间

暂停开始

暂停结束

最近状态

{{ user.latest_punch_success ? '最近成功' : '最近失败' }} {{ user.latest_punch_date || '未记录日期' }}

{{ user.latest_punch_message }}

暂无日志

没有匹配的用户数据

共 {{ filteredUsers.length }} 个用户,当前第 {{ userPage }} / {{ userTotalPages }} 页

生成卡密

支持设置有效天数、代理人,并快速分发给代理。

卡密列表

复制未使用卡密、导出 TXT 或 Excel 兼容 CSV。

{{ cdk.code }}

{{ cdk.valid_days }} 天 · {{ cdk.agent_name || '未填写代理人' }}

{{ cdk.is_used ? '已使用' : '未使用' }}

{{ cdk.used_by_display || '未使用' }}

{{ formatDateTime(cdk.used_at || cdk.created_at) }}

还没有匹配的卡密数据

共 {{ filteredCdkeys.length }} 张卡密,当前第 {{ cdkPage }} / {{ cdkTotalPages }} 页

在线支付配置

配置保存在后端数据库,商户密钥只写入不会回显。

{{ paymentSettings.enabled ? '支付已开启' : '支付未开启' }}

套餐 SKU

用户端只显示已上架套餐,金额单位为分。

{{ sku.name }} {{ sku.code }}

{{ sku.valid_days }} 天 · {{ (sku.amount_fen / 100).toFixed(2) }} 元

{{ sku.is_active ? '上架' : '下架' }}

还没有 SKU

QQ 官方机器人

出站推送配置保存在后端数据库。ClientSecret 只写入不回显。

{{ qqBotSettings.enabled ? '已启用' : '未启用' }}

班级 platform=qq 时,原 Webhook 字段必须填 QQ 事件里的 d.group_openid(不是 http 链接,也不是普通群号)。当前密钥状态:{{ qqBotSettings.client_secret_configured ? '已配置' : '未配置' }}

邀请点击

{{ referralOverview.totalClickCount }}

邀请链接总点击 PV

邀请成功

{{ referralStats.successCount }}

当前筛选条件下成功开通的邀请次数

邀请失败

{{ referralStats.failCount }}

包括重复身份、自邀、无效码等失败原因

实际送出

{{ referralStats.rewardDays }}

当前筛选条件下给邀请人实际增加的总天数

成功转化率

{{ referralOverview.successConversionRate }}%

点击到成功开通的转化

付费转化

{{ referralOverview.totalPaidCount }}

已付费 {{ referralOverview.paidConversionRate }}%

邀请管理

查看邀请成功、失败原因,以及邀请人实际获得了几天。

{{ item.status === 'success' ? '成功' : '失败' }}

{{ item.inviter_name || '未知邀请人' }} · {{ item.inviter_class_name }}

邀请了 {{ item.invitee_name || '未知用户' }} · {{ item.invitee_class_name }} · {{ item.invitee_student_no }}

已付费 未付费 付费状态未知 · 账号已删除

邀请码:{{ item.invite_code || '未记录' }}

{{ item.message }}

邀请人 +{{ item.inviter_reward_days_granted || 0 }} 天

新人 +{{ item.invited_reward_days_granted || 0 }} 天

{{ formatDateTime(item.created_at) }}

暂无匹配的邀请记录

新建班级配置

直接配置专业、接口、模板 JSON、通知和班级字段规则。

班级配置列表

支持直接编辑完整配置并保存。

{{ item.name }}

{{ item.punch_time ? `自动打卡 ${item.punch_time}` : '未设置打卡时间' }} {{ item.is_active ? '启用中' : '已停用' }}

额外班级字段

系统状态

安全查看运行配置,不直接在线修改 `.env`。

数据库地址

{{ systemStatus.database_url_masked || '未加载' }}

HOST TOKEN

{{ systemStatus.host_token_configured ? ('已配置 · 后 4 位 ' + (systemStatus.host_token_suffix || '')) : '未配置' }}

HOST USERID

{{ systemStatus.host_userid_suffix ? ('后 4 位 ' + systemStatus.host_userid_suffix) : '未配置' }}

Admin Key

{{ systemStatus.admin_api_key_configured ? '已配置' : '仍为默认值' }}

Webhook 状态

{{ item.class_name }}

{{ item.has_webhook ? '已配置' : '未配置' }}

平台:{{ item.platform }}

{{ item.platform === 'qq' ? 'group_openid 尾号' : 'Webhook 尾号' }}:{{ item.webhook_suffix || '无' }}

最近系统日志

查看最近接口访问、打卡任务和异常信息。

{{ systemLogs.length ? systemLogs.join('\n') : '暂无系统日志' }}