仪表盘 · 全局业务统计概览 项目列车 · 配置国家与上游 app_id 国家地区 · 与上游国家 id 对齐,供前台选国家 订单流水 · 本地购买记录 用户列表 · 前台注册用户与账户余额 用户项目价格 · 指定用户设置指定国家下的项目价格 用户项目价格列表 · 查看当前用户已配置的项目价格记录 余额日志 · 管理员加减余额记录
v1
用户前台 修改密码 退出登录
{{ userInitial }} {{ displayName || 'Admin' }}
{{ projectCount }}
已配置项目
{{ orderCount }}
订单记录条数
{{ userCount }}
前台用户
{{ balanceLogCount }}
余额变动记录

项目列车

可点「从上游同步」拉取项目列表:接口价写入「接口参考价」,新建项目时展示价默认等于接口价;已存在项目的展示价不会被同步覆盖。编辑时可改「项目名称」「展示价」「排序」「上架状态」;国家、app_id、图标、有效期等由同步或新增维护。上游有效期以「天」为准。需配置 DAILY_SMS_API_KEY

从上游同步 新增项目

暂无项目列车

可先「从上游同步」,或手动「新增项目」
ID 国家 ID 国家 app_id 项目名称 接口参考价 展示价 有效期(天) 状态 操作
{{ row.id }} {{ row.country_id }} {{ row.country_name || '—' }} {{ row.app_id }} {{ row.name }} ${{ fmtMoney(row.api_price) }} ${{ fmtMoney(row.price) }} {{ fmtValidityDays(row.validity_text) }} {{ isRowActive(row) ? '上架' : '下架' }} 编辑 删除

国家地区

「从上游同步」拉取 /api-doc/countries:主键 id 即上游返回的 id(与项目表里的 country_id 同值)。同步只更新名称;语言代码与上架状态在编辑弹窗中维护。表为空时前台国家仍使用配置文件中的默认列表。

从上游同步

暂无国家数据

请先「从上游同步」;未同步前前台使用默认国家配置
id 名称 语言 状态 操作
{{ row.id }} {{ row.name }} {{ row.lang_code || '—' }} {{ isRowActive(row) ? '上架' : '下架' }} 编辑

订单流水

本站成功调用上游购号接口后写入的本地记录,便于对账与排查。

暂无订单记录

成功购号后会自动出现在此列表
ID 上游订单号 国家 项目 数量 金额 状态 创建时间
{{ row.id }} {{ row.provider_order_id || '—' }} {{ row.country_name }} {{ row.project_name }} {{ row.buy_num }} ${{ fmtMoney(row.amount) }} {{ row.status || '—' }} {{ fmtDateTime(row.created_at) }}

用户列表

由管理员在此创建前台用户;登录密码请线下告知用户。前台展示的余额读取 SMS_PORTAL_BALANCE_USER_ID 对应的用户。

允许前台注册
新增用户

暂无用户

点击「新增用户」创建账号
ID 昵称 邮箱 余额 注册时间 操作
{{ row.id }} {{ row.name }} {{ row.email }} ${{ fmtMoney(row.balance) }} {{ fmtDateTime(row.created_at) }} 调余额 设置项目价格

用户项目价格

按用户、国家、项目逐条设置购买价和续费价,提交后立即生效。

查看列表
默认价格:${{ fmtMoney(userProjectPriceCurrentProject.default_price) }}, 默认续费价格:${{ fmtMoney(userProjectPriceCurrentProject.default_renew_price) }}
当前生效购买价:${{ fmtMoney(userProjectPriceCurrentProject.effective_price) }}, 当前生效续费价:${{ fmtMoney(userProjectPriceCurrentProject.effective_renew_price) }}
提交

用户项目价格列表

直接展示所有已经设置过的用户项目价格数据。

返回设置

暂无已配置价格

目前还没有任何用户设置过专属项目价格
用户 国家 项目 购买价 续费价 默认购买价 默认续费价 操作
{{ row.user_name || '-' }} {{ row.user_email || ('ID:' + row.user_id) }}
{{ row.country_name || '-' }}
{{ row.project_name }} app_id: {{ row.app_id }}
${{ fmtMoney(row.custom_price) }} ${{ fmtMoney(row.custom_renew_price || row.effective_renew_price) }} ${{ fmtMoney(row.default_price) }} ${{ fmtMoney(row.default_renew_price) }} 编辑 删除

余额日志

管理员对用户余额的调整记录;正数为增加,负数为扣减。

搜索 重置
ID 用户 ID 用户 邮箱 操作类型 变动 变动前 变动后 操作管理员 备注 时间
{{ row.id }} {{ row.user_id }} {{ row.user_name }} {{ row.user_email }} {{ row.operation_type_label }} {{ row.delta_signed }} ${{ fmtMoney(row.balance_before) }} ${{ fmtMoney(row.balance_after) }} {{ row.admin_username || '—' }} {{ row.remark || '—' }} {{ fmtDateTime(row.created_at) }}

用户:{{ balanceAdjTarget.name }}({{ balanceAdjTarget.email }})
当前余额:${{ fmtMoney(balanceAdjTarget.balance) }}

填写变动金额:正数表示增加余额,负数表示扣减(扣减后余额不能小于 0)。

创建后请将邮箱与密码告知用户。前台无登录时,余额展示取决于环境变量 SMS_PORTAL_BALANCE_USER_ID 是否指向该用户。

建议使用字母+数字组合,长度不少于 6 位。

标识与名称
上架状态