一个灵活可扩展的活动框架,支持多种活动玩法的快速开发和部署。
- 配置驱动:通过 JSON 配置文件定义活动
- 插件化设计:支持新玩法的快速接入
- 解耦设计:不依赖特定的UI框架或后端服务
- 状态管理:统一的活动状态管理机制
-
活动(Activity)
- 活动生命周期管理
- 多玩法组合支持
- 统一的状态管理
-
玩法(Game)
- 可扩展的玩法接口
- 独立的业务逻辑
- 配置化支持
-
奖品(Prize)
- 统一的奖品模型
- 灵活的奖品发放机制
活动配置示例:
{
"category": "community",
"version": "1.0",
"name": "社区活动",
"start_at": 1234567890,
"end_at": 1234567890,
"games": [
{
"type": "post",
"name": "发帖赢奖品",
"config": {
// 具体玩法配置
}
}
]
}
- 实现
ActivityInterface
接口 - 在
NewActivityFromConfig
中注册新活动类型 - 创建对应的配置文件
- 实现
GameInterface
接口 - 在
NewGameFromConfig
中注册新玩法 - 定义玩法特定的配置结构
storage/
├── mysql/
│ ├── migrations/ # 数据库迁移文件
│ │ └── 001_init_schema.sql
│ ├── models/ # GORM模型
│ │ └── activity.go
│ ├── repository/ # 仓储层
│ │ └── activity_repository.go
│ └── db.go # 数据库连接配置