# 渠道合作伙伴平台 - 后端接口需求清单 > **版本**: v1.2.0 > **更新时间**: 2026-01-06 > **说明**: 本文档基于前端业务逻辑分析,列出所有后端接口需求,包括已对接接口和未对接接口,按钮操作接口和数据展示接口 --- ## 目录 1. [认证模块 (Authentication)](#认证模块-authentication) 2. [仪表板模块 (Dashboard/Overview)](#仪表板模块-dashboardoverview) 3. [租户管理模块 (My Tenants)](#租户管理模块-my-tenants) 4. [资源管理模块 (Resource Management)](#资源管理模块-resource-management) 5. [计费模块 (Billing)](#计费模块-billing) 6. [设置模块 (Settings)](#设置模块-settings) 7. [附录:接口汇总表](#附录接口汇总表) --- ## 认证模块 (Authentication) ### 按钮操作接口 #### B1. 渠道用户登录 ✅ 已对接 **触发位置**: 登录页面 → "登录"按钮 **功能描述**: 渠道合作伙伴通过邮箱和密码登录系统 **接口**: ``` POST /api/auth/login ``` **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | email | string | 是 | 邮箱地址 | | password | string | 是 | 密码 | | role | string | 是 | 固定值 "channel" | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.token | string | 认证令牌 | | data.refreshToken | string | 刷新令牌 | | data.user | object | 用户信息 | **前端调用**: `TaijiAPIClient.login(email, password, "channel")` **Token存储**: `channel_token` (localStorage + Cookie) --- #### B2. 退出登录 ✅ 已对接 **触发位置**: 页面头部 → "退出"按钮 **功能描述**: 清除认证状态,退出系统 **接口**: ``` POST /api/auth/logout ``` **前端调用**: `TaijiAPIClient.logout()` **前端行为**: 清除所有本地存储的token,跳转到登录页 --- ## 仪表板模块 (Dashboard/Overview) ### 数据展示接口 #### D1. 渠道统计概览 ⚠️ 部分对接 **展示位置**: 仪表板页面 → 顶部统计卡片区域 **展示内容**: - 总租户数(如:5) - 活跃租户(如:3) - 月度收入(如:$12,500) - 已获佣金(如:$1,250) **功能描述**: 获取渠道的核心业务指标统计 **当前实现**: 从租户列表接口计算总租户数和活跃租户数 **接口**: ``` GET /api/channel/tenants ``` **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.tenants | array | 租户列表 | | data.tenants[].status | string | 租户状态(用于计算活跃数) | **前端调用**: `TaijiAPIClient.getChannelTenants()` **待完善**: - ❌ 月度收入统计(monthlyRevenue)- 需要后端提供专门接口 - ❌ 佣金统计(commission)- 需要后端提供专门接口 **建议新增接口**: ``` GET /api/channel/dashboard/stats ``` **建议响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | data.totalTenants | int | 总租户数 | | data.activeTenants | int | 活跃租户数 | | data.monthlyRevenue | float | 月度收入 | | data.commission | float | 累计佣金 | --- #### D2. 平台Agent概览 ✅ 已对接 **展示位置**: 仪表板页面 → "平台Agent概览"区域 **展示内容**: - Agent名称(如:gpt-assistant) - Agent描述 - 可用配额(如:10) - 授权状态(已授权/未授权) **功能描述**: 展示渠道可分配给租户的Agent资源列表 **接口**: ``` GET /api/channel/available-platform-agents ``` **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.templates | array | Agent模板列表 | | data.templates[].name | string | 模板名称 | | data.templates[].displayName | string | 显示名称 | | data.templates[].description | string | 描述 | | data.templates[].podQuota | int | Pod配额 | | data.templates[].podRemaining | int | 剩余配额 | | data.templates[].hasAccess | bool | 是否已授权 | **前端调用**: `TaijiAPIClient.getAvailablePlatformAgents()` --- ## 租户管理模块 (My Tenants) ### 数据展示接口 #### D3. 租户列表 ✅ 已对接 **展示位置**: "我的租户"标签页 → 租户列表 **展示内容**: - 租户名称 - 状态(活跃/已暂停) - 方案(企业版/专业版/入门版) - 用户数 - 月收入 **功能描述**: 展示该渠道下所有租户的基本信息 **接口**: ``` GET /api/channel/tenants ``` **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.tenants | array | 租户列表 | | data.tenants[].id | string | 租户ID | | data.tenants[].name | string | 租户名称 | | data.tenants[].status | string | 状态:active/suspended | | data.tenants[].plan | string | 方案:enterprise/professional/starter | | data.tenants[].users | int | 用户数 | | data.tenants[].revenue | string | 月收入(如 "$3,200") | | data.tenants[].balance | string | 余额 | | data.tenants[].creditLimit | string | 授信额度 | **前端调用**: `TaijiAPIClient.getChannelTenants()` --- ### 按钮操作接口 #### B3. 创建租户 ✅ 已对接 **触发位置**: "我的租户"标签页 → "添加租户"按钮 **功能描述**: 渠道为其客户创建新的租户账号 **接口**: ``` POST /api/channel/tenants/create ``` **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | name | string | 是 | 公司名称 | | email | string | 是 | 联系邮箱(用于登录) | | password | string | 是 | 登录密码 | | subscriptionTier | string | 否 | 订阅等级:free/pro/enterprise | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.tenant | object | 创建的租户信息 | | data.tenant.id | string | 租户ID | **前端调用**: `TaijiAPIClient.createChannelTenant(data)` **备注**: 前端锁定为"租户"角色,避免渠道自行调整权限 --- #### B4. 查看租户详情 ✅ 已对接(前端展示) **触发位置**: 租户列表 → 操作菜单 → "查看详情" **功能描述**: 查看租户的详细信息 **当前实现**: 使用租户列表中的数据展示,无需额外接口 **展示字段**: - 租户名称 - 状态 - 方案 - 用户数 - 月度收入 - 创建时间 --- #### B5. 删除租户 ✅ 已对接 **触发位置**: 租户列表 → 操作菜单 → "删除租户" **功能描述**: 删除指定租户及其所有数据(软删除) **接口**: ``` DELETE /api/channel/tenants/{tenantId} ``` **路径参数**: | 参数 | 类型 | 说明 | |------|------|------| | tenantId | string | 租户ID | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | message | string | 操作结果消息 | **前端调用**: `TaijiAPIClient.deleteTenant(tenantId)` **确认机制**: 二次确认弹窗,显示租户信息和警告提示 --- #### B6. 分配资源 ✅ 已对接 **触发位置**: 租户列表 → 操作菜单 → "分配资源" **功能描述**: 为租户分配Agent配额和模型配额 **接口**: ``` PUT /api/channel/tenants/{tenantId}/resources ``` **路径参数**: | 参数 | 类型 | 说明 | |------|------|------| | tenantId | string | 租户ID | **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | agents | array | 否 | Agent配额列表 | | agents[].agentId | string | 是 | Agent模板名称 | | agents[].quantity | int | 是 | 分配数量 | | models | array | 否 | 模型配额列表 | | models[].modelName | string | 是 | 模型名称(如gpt-4) | | models[].rpm | int | 是 | 每分钟请求数限制 | | models[].tpm | int | 是 | 每分钟令牌数限制 | | customAgentQuota | object | 否 | 自定义Agent资源配额 | | customAgentQuota.cpuQuota | float | 否 | CPU配额(核数/Agent) | | customAgentQuota.memoryQuota | float | 否 | 内存配额(GB/Agent) | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | message | string | 操作结果消息 | **前端调用**: `TaijiAPIClient.allocateTenantResources(tenantId, data)` --- #### B7. 租户充值 ✅ 已对接 **触发位置**: 租户列表 → 操作菜单 → "充值" **功能描述**: 为租户账户充值余额 **接口**: ``` POST /api/channel/tenants/{tenantId}/recharge ``` **路径参数**: | 参数 | 类型 | 说明 | |------|------|------| | tenantId | string | 租户ID | **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | amount | float | 是 | 充值金额(USD) | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.newBalance | float | 充值后余额 | **前端调用**: `TaijiAPIClient.rechargeTenant(tenantId, amount)` **快捷金额**: $50, $100, $500, $1000 --- #### B8. 设置授信额度 ✅ 已对接 **触发位置**: 租户列表 → 操作菜单 → "授信额度" **功能描述**: 允许租户在余额不足时继续使用服务 **接口**: ``` PUT /api/channel/tenants/{tenantId}/credit ``` **路径参数**: | 参数 | 类型 | 说明 | |------|------|------| | tenantId | string | 租户ID | **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | creditLimit | float | 是 | 授信额度(USD) | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | message | string | 操作结果消息 | **前端调用**: `TaijiAPIClient.setTenantCreditLimit(tenantId, creditLimit)` **快捷金额**: $500, $1000, $5000, $10000 --- #### B9. 管理计费 ✅ 已对接 **触发位置**: 租户列表 → 操作菜单 → "管理计费" **功能描述**: 设置租户的订阅层级和折扣比例 **接口**: ``` PUT /api/channel/tenants/{tenantId}/billing ``` **路径参数**: | 参数 | 类型 | 说明 | |------|------|------| | tenantId | string | 租户ID | **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | subscriptionTier | string | 否 | 订阅层级:free/professional/enterprise | | discount | int | 否 | 折扣比例(0-100的百分比) | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | message | string | 操作结果消息 | **前端调用**: `TaijiAPIClient.updateTenantBilling(tenantId, data)` **订阅层级说明**: | 层级 | 价格 | 说明 | |------|------|------| | 免费版 (free) | $0/mo | 基础功能 | | 专业版 (professional) | $1,800/mo | 适合中小企业 | | 企业版 (enterprise) | $3,200/mo | 无限制 | --- ## 资源管理模块 (Resource Management) ### 数据展示接口 #### D4. 平台Agent模板列表 ✅ 已对接 **展示位置**: "资源管理"标签页 → "平台Agent模板"区域 **展示内容**: - Agent名称和显示名称 - 描述 - 状态(可用/不可用) - 授权状态(已授权/未授权) - CPU配置(cpuRequest / cpuLimit) - 内存配置(memoryRequest / memoryLimit) - Pod配额信息(配额/已使用/剩余) **功能描述**: 展示渠道可用的平台Agent模板及其资源配置 **接口**: ``` GET /api/channel/available-platform-agents ``` **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.templates | array | Agent模板列表 | | data.templates[].name | string | 模板名称 | | data.templates[].displayName | string | 显示名称 | | data.templates[].description | string | 描述 | | data.templates[].status | string | 状态:available/unavailable | | data.templates[].hasAccess | bool | 是否已授权 | | data.templates[].pendingApplication | bool | 是否有待审批的申请 | | data.templates[].cpuRequest | string | CPU请求量(如 "100m") | | data.templates[].cpuLimit | string | CPU上限(如 "500m") | | data.templates[].memoryRequest | string | 内存请求量(如 "128Mi") | | data.templates[].memoryLimit | string | 内存上限(如 "512Mi") | | data.templates[].podQuota | int | Pod配额 | | data.templates[].podUsed | int | 已使用Pod数 | | data.templates[].podRemaining | int | 剩余Pod数 | **前端调用**: `TaijiAPIClient.getAvailablePlatformAgents()` --- #### D5. 模型供应商列表 ✅ 已对接 **展示位置**: "资源管理"标签页 → "模型管理"区域 **展示内容**: - 供应商名称 - 供应商类型(openai, anthropic等) - 授权状态(已授权/未授权) - 支持模型数 - 授权RPM - 授权TPM **功能描述**: 展示渠道可用的模型供应商及授权状态 **接口**: ``` GET /api/channel/providers ``` **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.providers | array | 供应商列表 | | data.providers[].id | string | 供应商ID | | data.providers[].name | string | 供应商名称 | | data.providers[].provider | string | 供应商类型 | | data.providers[].hasAccess | bool | 是否已授权 | | data.providers[].pendingApplication | bool | 是否有待审批的申请 | | data.providers[].supportedModels | array | 支持的模型列表 | | data.providers[].rpm | int | 授权RPM | | data.providers[].tpm | int | 授权TPM | **前端调用**: `TaijiAPIClient.getChannelProviders()` --- ### 按钮操作接口 #### B10. 申请平台Agent配额 ✅ 已对接 **触发位置**: Agent模板卡片 → "申请使用"/"申请更多配额"按钮 **功能描述**: 向超级管理员申请使用平台Agent资源 **接口**: ``` POST /api/channel/applications/platform-agents ``` **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | templateName | string | 是 | Agent模板名称 | | requestedPodQuota | int | 是 | 申请的Pod配额数量 | | reason | string | 是 | 申请理由 | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.applicationId | string | 申请ID | | message | string | 操作结果消息 | **前端调用**: `TaijiAPIClient.applyForPlatformAgent(data)` --- #### B11. 申请模型供应商使用权限 ✅ 已对接 **触发位置**: 模型供应商卡片 → "申请使用"按钮 **功能描述**: 向超级管理员申请使用模型供应商资源 **接口**: ``` POST /api/channel/providers/apply ``` **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | providerId | string | 是 | 供应商ID | | requestedRpm | int | 否 | 申请的RPM配额 | | requestedTpm | int | 否 | 申请的TPM配额 | | reason | string | 是 | 申请理由 | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.applicationId | string | 申请ID | | message | string | 操作结果消息 | **前端调用**: `TaijiAPIClient.applyForProvider(data)` --- ## 计费模块 (Billing) ### 数据展示接口 #### D6. 租户计费统计 ✅ 已对接 **展示位置**: "计费"标签页 → "租户计费统计"区域 **展示内容**: - 租户名称和ID - 调用次数 - 总EU消耗 - 租户总价(¥) **功能描述**: 按租户维度展示计费统计数据 **接口**: ``` GET /api/channel/billing/stats ``` **查询参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | startTime | string | 是 | 开始时间(ISO 8601格式) | | endTime | string | 是 | 结束时间(ISO 8601格式) | | tenantName | string | 否 | 租户名称筛选 | | minCalls | int | 否 | 最小调用次数 | | maxCalls | int | 否 | 最大调用次数 | | export | string | 否 | 导出格式:excel/csv/pdf | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.tenantStats | array | 租户统计列表 | | data.tenantStats[].tenantId | string | 租户ID | | data.tenantStats[].tenantName | string | 租户名称 | | data.tenantStats[].calls | int | 调用次数 | | data.tenantStats[].totalEU | float | 总EU消耗 | | data.tenantStats[].totalCost | float | 租户总价(¥) | **前端调用**: `TaijiAPIClient.getChannelBillingStats(params)` **默认范围**: 最近30天 --- #### D7. 调用记录明细 ✅ 已对接 **展示位置**: "计费"标签页 → "调用记录明细"表格 **展示内容**: - 时间戳 - 租户名称 - Agent类型 - 调用时长(秒) - EU消耗 - 单次调用总价(¥) **功能描述**: 展示详细的调用记录 **接口**: 同 D6,使用 `data.callRecords` 字段 **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | data.callRecords | array | 调用记录列表 | | data.callRecords[].timestamp | string | 调用时间戳 | | data.callRecords[].tenantName | string | 租户名称 | | data.callRecords[].agentType | string | Agent类型 | | data.callRecords[].duration | int | 调用时长(秒) | | data.callRecords[].eu | float | EU消耗 | | data.callRecords[].price | float | 单次调用价格(¥) | **计费规则**: 1 EU = 10秒调用时长 --- ### 按钮操作接口 #### B12. 时间范围查询 ✅ 已对接 **触发位置**: "计费"标签页 → "时间查询"按钮 **功能描述**: 按时间范围查询计费数据 **接口**: 同 D6,通过 `startTime` 和 `endTime` 参数实现 --- #### B13. 筛选功能 ✅ 已对接 **触发位置**: "计费"标签页 → "筛选"按钮 **功能描述**: 按条件筛选计费数据 **筛选条件**: - 客户名称(tenantName) - 最小调用次数(minCalls) - 最大调用次数(maxCalls) **接口**: 同 D6,通过查询参数实现 --- #### B14. 数据导出 ⚠️ 待完善 **触发位置**: "计费"标签页 → "导出"按钮 **功能描述**: 导出计费数据 **支持格式**: - Excel (.xlsx) - CSV (.csv) - PDF (.pdf) **接口**: 同 D6,通过 `export` 参数实现 **待完善**: 后端需要支持生成并返回文件下载链接 --- ## 设置模块 (Settings) ### 数据展示接口 #### D8. 管理员列表 ✅ 已对接 **展示位置**: "设置"标签页 → "当前管理员列表"区域 **展示内容**: - 管理员名称 - 邮箱 - 角色(渠道管理员/计费管理员/运营管理员) - 状态(活跃/已停用) **功能描述**: 展示该渠道下的所有管理员 **接口**: ``` GET /api/channel/admins ``` **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.admins | array | 管理员列表 | | data.admins[].id | string | 管理员ID | | data.admins[].name | string | 管理员名称 | | data.admins[].email | string | 邮箱 | | data.admins[].role | string | 角色:channel_admin/billing_admin/operations_admin | | data.admins[].status | string | 状态:active/inactive | **前端调用**: `TaijiAPIClient.getChannelAdmins()` --- ### 按钮操作接口 #### B15. 创建管理员 ✅ 已对接 **触发位置**: "设置"标签页 → "添加管理员"按钮 **功能描述**: 创建计费管理员或运营管理员 **接口**: ``` POST /api/channel/admins/create ``` **请求参数**: | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | name | string | 是 | 管理员姓名 | | email | string | 是 | 登录邮箱 | | password | string | 是 | 登录密码 | | role | string | 是 | 角色:billing_admin/operations_admin | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | data.admin | object | 创建的管理员信息 | | data.admin.id | string | 管理员ID | **前端调用**: `TaijiAPIClient.createChannelAdmin(data)` --- #### B16. 删除管理员 ✅ 已对接 **触发位置**: 管理员列表 → 删除按钮 **功能描述**: 删除指定的管理员账号 **接口**: ``` DELETE /api/admin/admins/{adminId} ``` **路径参数**: | 参数 | 类型 | 说明 | |------|------|------| | adminId | string | 管理员ID | **响应字段**: | 字段 | 类型 | 说明 | |------|------|------| | success | bool | 是否成功 | | message | string | 操作结果消息 | **前端调用**: `TaijiAPIClient.deleteAdmin(adminId)` **确认机制**: 二次确认弹窗 --- #### B17. 配置角色权限 ⚠️ 待完善 **触发位置**: "设置"标签页 → 角色卡片 → "配置权限"按钮 **功能描述**: 设置不同角色可访问的功能模块 **可配置模块**: - 概览(overview) - 租户管理(tenants) - 资源管理(resources) - 计费(billing) - 设置(settings) **默认角色权限**: | 角色 | 默认权限 | |------|----------| | 计费管理员 | overview, tenants, billing | | 运营管理员 | overview, tenants, resources | **当前实现**: 权限配置仅在前端状态管理 **待完善**: 需要后端接口持久化权限配置 **建议新增接口**: ``` PUT /api/channel/roles/{roleId}/permissions ``` **建议请求参数**: | 参数 | 类型 | 说明 | |------|------|------| | permissions | array | 权限列表(如 ["overview", "tenants", "billing"]) | --- ## 附录:接口汇总表 ### 认证相关接口 | 接口 | 方法 | 路径 | 状态 | 说明 | |------|------|------|------|------| | 登录 | POST | `/api/auth/login` | ✅ 已对接 | 用户登录 | | 登出 | POST | `/api/auth/logout` | ✅ 已对接 | 用户登出 | ### 仪表板相关接口 | 接口 | 方法 | 路径 | 状态 | 说明 | |------|------|------|------|------| | 渠道统计 | GET | `/api/channel/dashboard/stats` | ❌ 待开发 | 月度收入、佣金统计 | | 平台Agent概览 | GET | `/api/channel/available-platform-agents` | ✅ 已对接 | 可用Agent模板 | ### 租户管理相关接口 | 接口 | 方法 | 路径 | 状态 | 说明 | |------|------|------|------|------| | 获取租户列表 | GET | `/api/channel/tenants` | ✅ 已对接 | 获取渠道下所有租户 | | 创建租户 | POST | `/api/channel/tenants/create` | ✅ 已对接 | 创建新租户 | | 删除租户 | DELETE | `/api/channel/tenants/{tenantId}` | ✅ 已对接 | 删除租户 | | 分配资源 | PUT | `/api/channel/tenants/{tenantId}/resources` | ✅ 已对接 | 分配Agent和模型资源 | | 充值 | POST | `/api/channel/tenants/{tenantId}/recharge` | ✅ 已对接 | 为租户充值 | | 设置授信 | PUT | `/api/channel/tenants/{tenantId}/credit` | ✅ 已对接 | 设置授信额度 | | 更新计费 | PUT | `/api/channel/tenants/{tenantId}/billing` | ✅ 已对接 | 更新计费设置 | | 更新状态 | PUT | `/api/channel/tenants/{tenantId}/status` | ✅ 已对接 | 更新租户状态 | | 更新权限 | PUT | `/api/channel/tenants/{tenantId}/permissions` | ✅ 已对接 | 更新租户权限 | ### 资源管理相关接口 | 接口 | 方法 | 路径 | 状态 | 说明 | |------|------|------|------|------| | 获取供应商列表 | GET | `/api/channel/providers` | ✅ 已对接 | 获取可用模型供应商 | | 申请供应商 | POST | `/api/channel/providers/apply` | ✅ 已对接 | 申请使用供应商 | | 获取申请列表 | GET | `/api/channel/providers/applications` | ✅ 已对接 | 获取申请记录 | | 获取平台Agent | GET | `/api/channel/available-platform-agents` | ✅ 已对接 | 获取可用Agent模板 | | 申请Agent配额 | POST | `/api/channel/applications/platform-agents` | ✅ 已对接 | 申请Agent配额 | | 获取Agent申请 | GET | `/api/channel/applications/platform-agents` | ✅ 已对接 | 获取Agent申请记录 | ### 计费统计相关接口 | 接口 | 方法 | 路径 | 状态 | 说明 | |------|------|------|------|------| | 获取计费统计 | GET | `/api/channel/billing/stats` | ✅ 已对接 | 获取租户计费统计 | ### 管理员管理相关接口 | 接口 | 方法 | 路径 | 状态 | 说明 | |------|------|------|------|------| | 获取管理员列表 | GET | `/api/channel/admins` | ✅ 已对接 | 获取渠道管理员 | | 创建管理员 | POST | `/api/channel/admins/create` | ✅ 已对接 | 创建管理员 | | 删除管理员 | DELETE | `/api/admin/admins/{adminId}` | ✅ 已对接 | 删除管理员 | | 配置角色权限 | PUT | `/api/channel/roles/{roleId}/permissions` | ❌ 待开发 | 配置角色权限 | --- ## 待后端完善的功能点 ### 1. 统计数据接口 | 需求 | 说明 | 优先级 | |------|------|--------| | 月度收入统计 | 需要专门的接口返回渠道月度收入 | 高 | | 佣金统计 | 需要接口返回渠道累计佣金 | 高 | | 渠道仪表板统计 | 建议提供 `/api/channel/dashboard/stats` 聚合接口 | 高 | ### 2. 权限配置持久化 | 需求 | 说明 | 优先级 | |------|------|--------| | 角色权限保存 | 当前权限配置仅在前端状态管理,需要后端接口持久化 | 中 | | 权限验证 | 后端需要根据角色权限控制API访问 | 中 | ### 3. 数据导出功能 | 需求 | 说明 | 优先级 | |------|------|--------| | 导出接口 | 计费数据导出需要后端支持生成Excel/CSV/PDF文件 | 中 | | 文件下载 | 需要返回文件下载链接或直接返回文件流 | 中 | --- ## 数据模型参考 ### 租户数据结构 ```typescript interface Tenant { id: string name: string email: string status: "active" | "suspended" | "inactive" plan: "enterprise" | "professional" | "starter" | "free" users: number revenue: string // 如 "$3,200" balance?: string creditLimit?: string createdAt?: string } ``` ### Agent资源数据结构 ```typescript interface AgentResource { id: string name: string displayName?: string description?: string status: "available" | "unavailable" | "Running" | "Pending" hasAccess: boolean pendingApplication?: boolean cpuRequest?: string // K8s格式,如 "100m" cpuLimit?: string // K8s格式,如 "500m" memoryRequest?: string // K8s格式,如 "128Mi" memoryLimit?: string // K8s格式,如 "512Mi" podQuota?: number podUsed?: number podRemaining?: number } ``` ### 模型供应商数据结构 ```typescript interface ModelProvider { id: string name: string provider?: string // openai, anthropic等 type?: string hasAccess: boolean pendingApplication?: boolean supportedModels?: string[] rpm: number tpm: number } ``` ### 计费统计数据结构 ```typescript interface BillingStats { tenantStats: Array<{ tenantId: string tenantName: string calls: number totalEU: number totalCost: number }> callRecords: Array<{ timestamp: string tenantName: string agentType: string duration: number // 秒 eu: number price: number }> } ``` ### 管理员数据结构 ```typescript interface ChannelAdmin { id: string name: string email: string role: "channel_admin" | "billing_admin" | "operations_admin" status?: "active" | "inactive" } ``` --- ## 前端源文件参考 | 文件路径 | 说明 | |----------|------| | `app/channel/dashboard/page.tsx` | 渠道仪表板主页面(约3000行) | | `app/channel/login/page.tsx` | 渠道登录页面 | | `app/channel/layout.tsx` | 渠道布局组件 | | `lib/api-client.ts` | API客户端封装 | --- *文档生成时间: 2026-01-06* *基于前端代码版本分析*