跳到主要内容

RYZZ-管理后台

RYZZ Admin 是支撑主站和 App 端全业务线的运营管理后台,基于 UmiJS Max 4 + Ant Design Pro 构建。覆盖公会管理、订单审核、资金空投、Keys 股息奖励、Token War 活动配置、Banner 运营、品类管理、数字货币配置等核心运营功能,为平台的日常运营和财务管理提供全方位支持。


一、项目技术架构

1.1 架构概览

1.2 核心技术栈

领域技术选型版本
框架UmiJS Max4.0.52
UI 框架Ant Design5.2.2
Pro 组件Ant Design Pro2.3.57
状态管理UmiJS Model(基于 hooks)内置
HTTPUmiJS request(Axios 封装)内置
React Hooksahooks3.7.8
日期处理dayjs + date-fns1.11.9 / 2.29.3
工具库lodash4.17.21
数字动画react-countup6.4.2
构建加速mfsu(模块联邦)内置
国际化UmiJS locale9 种语言
API 代码生成OpenAPI Generator内置

1.3 请求拦截与统一错误处理

环境自动切换
  • 生产环境://api-gateway.ryzz.tv
  • 测试环境://api-test.x3live.info

通过 UmiJS 的环境变量机制,构建时自动注入对应环境的 API 地址,无需手动切换。


二、功能模块全景

2.1 模块总览

2.2 路由结构

菜单路由功能
公会管理/guild/list公会列表、创建、成员管理
/guild/settle公会结算记录
白名单/whitelist/channel频道白名单管理
查询/query/channel频道信息查询
资金管理/funds/coin金币空投管理
Keys 管理/keys/incentiveaudit股息奖励审核
品类/category/catalogue一级目录管理
/category/list二级品类管理
推荐游戏/recGame/list推荐配置
邀请码/inviteCode/list邀请码生成
Banner/banner/homeList官网首页 Banner
/banner/zoneHList游戏专区首页 Banner
/banner/webListWeb 首页 Banner
/banner/reGameList推荐游戏封面
/banner/zoneList专区详情页 Banner
订单管理/order/list充值订单
/order/gemstone宝石提现
申诉举报/appeal/recharge充值申诉处理
Token War/war/tokenlist代币管理
/war/activelist活动配置
/war/datalist数据查询
数字货币/coin/list币种管理

三、核心功能详解

3.1 公会管理系统

公会是平台主播聚集和管理的核心单元,公会管理模块支撑了整个 MCN 运营体系。

公会列表功能

  • 展示公会 ID、外显 ID(shortId)、名称、会长信息(头像+昵称+钱包地址)
  • 创建公会:表单提交(名称、会长钱包地址、Logo 上传、人数上限)
  • 实时修改成员上限
  • 按名称模糊搜索、按状态筛选(正常/解散)
  • 导航到成员管理页查看签约主播频道

结算记录功能

  • 账户总结算金额展示(CountUp 动画效果)
  • 多币种支持(通过全局 currency model)
  • 结算来源明细:门票、礼物、打赏、时间卡等
  • 结算状态跟踪:成功 / 失败
  • 多字段排序:创建时间、总金额、结算金额

3.2 Keys 股息奖励系统

Keys 是 RYZZ 平台的创作者股份代币机制,持有者可获得股息奖励。

功能要点

  • 按轮次管理股息奖励,每轮显示参与频道数、总股息(ETH)、持股人数量
  • 四级状态流转:未下发 → 部分下发 → 等待下发 → 已下发
  • 支持钻取到频道级别查看详细奖励明细

3.3 Token War 活动配置

Token War 是平台的特色活动模块,管理后台提供完整的活动配置和数据查询能力。

代币管理:创建/编辑/删除代币,支持上线/下线状态切换,Logo 上传 活动管理:创建活动时关联多个在线代币,设置时间范围,支持提前终止 数据查询:查看活动期间的交易数据和参与者排名

3.4 Banner 运营系统

管理平台多个位置的 Banner 轮播,是运营最频繁使用的模块之一。

五个独立 Banner 管理页面

位置路由用途
官网首页/banner/homeList官网首屏轮播
游戏专区首页/banner/zoneHList游戏专区入口
Web 首页/banner/webListWeb 版本首屏
推荐游戏封面/banner/reGameList游戏推荐卡片
游戏专区详情/banner/zoneList专区内部轮播

通用功能

  • Banner CRUD(标题、描述、图片上传、跳转 URL)
  • 标签管理(动态添加/删除/编辑 Tag)
  • 权重设置控制展示排序
  • 启用/禁用开关

3.5 资金空投管理

管理平台内金币(Coin)的空投发放。

功能特点

  • 空投账户余额实时展示(CountUp 动画)
  • 支持输入钱包地址和金额进行空投
  • 空投订单追踪(成功/失败状态)
  • 确认机制防止误操作

3.6 订单与申诉管理

  • 充值订单:查看订单 ID、用户 ID、金额、状态,支持操作处理
  • 宝石提现:审核提现申请,查看地址、数量、状态
  • 充值申诉:处理用户关于充值问题的申诉,包含转账平台、钱包地址、金额等信息

3.7 品类与游戏管理

品类目录(两级结构):

  • 一级目录:标题 + Icon 上传,支持启用/禁用
  • 二级品类:关联一级目录,具体游戏分类

推荐游戏

  • 关联品类目录和具体游戏
  • 权重设置控制推荐排序
  • 支持增删改操作

邀请码

  • 批量生成邀请码(调用 NFT 服务 batchMintInviteCode
  • 关联推荐游戏
  • 使用状态追踪

3.8 数字货币配置

管理平台支持的所有加密货币。

配置字段

  • 币种名称、链 ID(chainId)、合约地址(address)、小数位数(decimal)
  • Icon 上传和预览
  • 本地货币标记(localCurrency)
  • 显示开关(display)

全局共享:通过 useModel('currency') 将币种信息共享给所有需要的页面。

3.9 频道查询与白名单

频道查询

  • 多维度查询:频道 ID、频道 Code、用户 ID
  • 返回频道详情:名称、Handle、直播间 ID、主播信息
  • 跨服务查询:同时调用 Live 服务、User 服务、NFT 服务

白名单

  • 管理频道级别的白名单
  • 白名单频道享有特殊权限或功能

四、服务层架构

4.1 API 服务模块分布

4.2 API 接口对接的后端微服务

服务路径前缀微服务功能域
/x/guild/admin/公会服务公会 CRUD、成员管理
/x/live/admin/直播服务频道管理、品类管理
/x/pay/admin/支付服务充值/提现/结算
/x/coin/admin/币种服务货币配置
/x/nft/admin/NFT 服务NFT 铸造、邀请码
/x/fire/admin/火力值服务Token War、激励
/x/recommend/admin/推荐服务Banner、推荐管理
/x/file/admin/文件服务文件上传
/x/user/admin/用户服务用户查询
/x/market/admin/市场服务Keys 交易、股息

4.3 OpenAPI 代码自动生成

后台 API 服务层大量使用 OpenAPI Generator 自动生成:

OpenAPI 代码生成
pnpm openapi  # 从 Swagger/OpenAPI 规范自动生成 TypeScript 类型和请求函数

生成特点

  • 请求参数和响应类型自动推导
  • 分页参数自动展开处理
  • 完整的 TypeScript 类型覆盖

五、开发模式与最佳实践

5.1 页面开发模板

管理后台的页面遵循统一的开发模式:

统一的数据流模式

useRequest(API, { manual: true })  →  状态更新  →  表格渲染
↑ |
└────── 分页/搜索/筛选变更触发 ──────────────┘

5.2 关键技术模式

模式实现用途
异步请求useRequest(ahooks)统一管理 loading、error 状态
函数稳定useMemoizedFn(ahooks)回调函数引用稳定,避免不必要重渲染
全局状态useModel('currency')跨页面共享币种信息
表单管理Form.useForm() + ModalCRUD 操作的统一模式
文件上传Upload + uploadLog1 API统一的文件上传路径管理
事件通信EventEmitter登录过期等跨组件事件

5.3 权限管理

当前为简化权限模型

当前采用 canAdmin = true 的简化模型,所有管理员拥有全部权限。后续如需细粒度权限控制(如角色分级、菜单级权限),需基于 UmiJS 的 access 插件进行扩展。

当前采用简化模型(canAdmin = true),预留了扩展接口:

src/access.ts
export default function access(initialState) {
return { canAdmin: true };
}
页面中使用权限组件
<Access accessible={access.canAdmin}>
<SensitiveComponent />
</Access>

六、技术亮点总结

6.1 企业级管理后台架构

核心架构优势
  • UmiJS Max 全家桶:路由、请求、状态、国际化、权限一体化方案,避免了多库整合的配置成本
  • Ant Design Pro 布局:Mix 混合布局(侧边栏+顶部),开箱即用的企业级 UI
  • mfsu 模块联邦:开发时编译加速,大幅提升 DX,冷启动时间减少 50% 以上

6.2 与公共包的深度集成

  • login 包:统一的认证体系,Admin 端与主站共用同一套登录逻辑
  • constant 包:共享 API 地址、存储键名等常量
  • function 包:复用工具函数(复制到剪贴板、数字格式化等)

6.3 多后端微服务对接

微服务架构

后台对接了 12+ 个后端微服务,通过统一的 API Gateway 路由,服务层按业务域清晰划分,50+ 个接口文件覆盖全业务场景。所有微服务通过统一的请求拦截器处理认证和错误,降低了多服务对接的复杂度。

6.4 OpenAPI 驱动的类型安全

类型安全的 API 层

通过 OpenAPI 代码生成器,所有 API 调用都有完整的 TypeScript 类型支持,从根源上消除了前后端接口不一致的问题:

  • 请求参数类型检查
  • 响应数据类型推导
  • 业务模型自动生成

6.5 运营效率工具

功能技术实现
数字动画react-countup,结算金额、账户余额等关键数据的动态展示
批量操作邀请码批量生成、空投批量发放
图片上传统一的文件上传服务,按业务路径分类存储
标签管理Banner 标签的动态添加/编辑/删除
多维排序表格支持多字段排序(时间、金额等)

6.6 九种语言国际化

zh-CN(简体中文,默认)| zh-TW | en-US | ja-JP | ko-KR | pt-BR | id-ID | bn-BD | fa-IR

七、业务价值总结

管理后台作为平台的"大脑",承担了:

  • MCN/公会运营:完整的公会生命周期管理和财务结算
  • 创作者经济:Keys 股息发放、收益分配
  • 游戏生态:品类管理、推荐配置、邀请码发放
  • 金融合规:充值/提现审核、申诉处理、空投管理
  • 活动运营:Token War 活动全生命周期管理
  • 内容运营:多位置 Banner 管理、推荐策略配置

八、项目数据概览

指标数据
页面视图文件83 个 TSX
API 服务文件50+
路由菜单13 个一级菜单
对接微服务12+ 个
样式模块17 个
支持语言9 种
全局 Model1 个(currency)
工具函数15+ 个通用工具