任务模块设计方案
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 与团队系统交互