# 任务模块设计方案 ## 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 与团队系统交互 - 团队任务进度统计 - 团队任务奖励分配