任务模块设计方案.md 3.0 KB

任务模块设计方案

1. 目录结构设计

app/Module/Task/
├── README.md                 # 模块说明文档
├── AdminControllers/         # 后台控制器
│   ├── TaskController.php      # 任务管理
│   ├── TaskTypeController.php  # 任务类型管理
│   └── TaskRewardController.php # 任务奖励管理
├── Commands/                 # 命令行
│   └── ResetDailyTasksCommand.php # 重置日常任务
├── Databases/                # 数据库
│   └── GenerateSql/            # SQL文件
│       ├── task_types.sql       # 任务类型表
│       ├── tasks.sql            # 任务表
│       ├── user_tasks.sql       # 用户任务表
│       └── task_rewards.sql     # 任务奖励表
├── Dtos/                     # 数据传输对象
│   ├── TaskDto.php             # 任务DTO
│   └── TaskProgressDto.php     # 任务进度DTO
├── Enums/                    # 枚举
│   ├── TASK_STATUS.php         # 任务状态
│   ├── TASK_TYPE.php           # 任务类型
│   └── REWARD_TYPE.php         # 奖励类型
├── Events/                   # 事件
│   ├── TaskCompleted.php       # 任务完成事件
│   └── TaskProgressUpdated.php # 任务进度更新事件
├── Listeners/                # 事件监听器
│   ├── AwardTaskReward.php     # 发放任务奖励
│   └── UpdateTeamTaskStats.php # 更新团队任务统计
├── Models/                   # 模型
│   ├── Task.php                # 任务模型
│   ├── TaskType.php            # 任务类型模型
│   └── UserTask.php            # 用户任务模型
├── Providers/                # 服务提供者
│   └── TaskServiceProvider.php # 任务服务提供者
├── Repositorys/              # 仓储
│   ├── TaskRepository.php      # 任务仓储
│   └── UserTaskRepository.php  # 用户任务仓储
├── Services/                 # 服务层
│   ├── TaskService.php         # 任务服务
│   └── TaskProgressService.php # 任务进度服务
└── Validations/              # 验证
    └── TaskValidation.php      # 任务验证

2. 核心类设计

2.1 任务服务(TaskService)

  • 提供任务创建、更新、删除等管理功能
  • 处理任务进度更新
  • 处理任务完成检查
  • 提供任务列表查询

2.2 任务进度服务(TaskProgressService)

  • 处理用户任务进度更新
  • 触发任务完成事件
  • 处理任务奖励发放

2.3 任务模型(Task)

  • 定义任务基础属性
  • 定义与任务类型的关联关系
  • 定义与奖励的关联关系

3. 与其他模块的交互

3.1 与用户系统交互

  • 通过user_id关联用户信息
  • 任务完成时更新用户统计信息

3.2 与道具系统交互

  • 任务奖励可能包含道具
  • 通过事件触发道具发放

3.3 与团队系统交互

  • 团队任务进度统计
  • 团队任务奖励分配