DEV.md 6.8 KB

任务模块开发计划

1. 创建基本目录结构 ✅

  • 创建 AdminControllers 目录
  • 创建 Commands 目录
  • 创建 Docs 目录
  • 创建 Dtos 目录
  • 创建 Enums 目录
  • 创建 Events 目录
  • 创建 Listeners 目录
  • 创建 Models 目录
  • 创建 Providers 目录
  • 创建 Repositorys 目录
  • 创建 Services 目录

2. 实现数据库结构 ✅

  • 创建数据库设计文档
  • 创建数据库创建脚本 (create.sql)
  • 实现数据库表结构
    • task_categories - 任务分类表
    • task_tasks - 任务定义表
    • task_rewards - 任务奖励定义表
    • task_costs - 任务接取消耗表
    • task_conditions - 任务条件表
    • task_achievement_conditions - 任务达成条件表
    • task_user_tasks - 用户任务关联表
    • task_user_progress - 用户任务进度表
    • task_completion_logs - 任务完成日志表
    • task_reward_logs - 任务奖励发放日志表
    • task_cost_logs - 任务消耗日志表
    • task_reset_logs - 任务重置日志表

3. 实现模型类 ✅

  • TaskCategory - 任务分类模型
  • Task - 任务模型
  • TaskReward - 任务奖励模型
  • TaskCost - 任务接取消耗模型
  • TaskCondition - 任务条件模型
  • TaskAchievementCondition - 任务达成条件模型
  • TaskUserTask - 用户任务关联模型
  • TaskUserProgress - 用户任务进度模型
  • TaskCompletionLog - 任务完成日志模型
  • TaskRewardLog - 任务奖励发放日志模型
  • TaskCostLog - 任务消耗日志模型
  • TaskResetLog - 任务重置日志模型

4. 实现数据仓库 ✅

  • TaskCategoryRepository - 任务分类数据仓库
  • TaskRepository - 任务数据仓库
  • TaskRewardRepository - 任务奖励数据仓库
  • TaskCostRepository - 任务接取消耗数据仓库
  • TaskConditionRepository - 任务条件数据仓库
  • TaskAchievementConditionRepository - 任务达成条件数据仓库
  • TaskUserTaskRepository - 用户任务关联数据仓库
  • TaskUserProgressRepository - 用户任务进度数据仓库
  • TaskCompletionLogRepository - 任务完成日志数据仓库
  • TaskRewardLogRepository - 任务奖励发放日志数据仓库
  • TaskCostLogRepository - 任务消耗日志数据仓库
  • TaskResetLogRepository - 任务重置日志数据仓库

5. 实现事件和监听器 ✅

  • [x] 创建基础监听器类

    • BaseTaskEventListener - 任务事件监听器基类
  • [x] 创建事件类

    • TaskCompletedEvent - 任务完成事件
    • TaskRewardClaimedEvent - 任务奖励领取事件
  • [x] 创建监听器类

    • TaskCompletedListener - 任务完成事件监听器
    • TaskRewardClaimedListener - 任务奖励领取事件监听器

6. 实现服务提供者 ✅

  • TaskServiceProvider - 任务模块服务提供者
    • 合并事件监听器注册功能,移除单独的TaskEventServiceProvider

7. 实现枚举类 🔄

  • TASK_TYPE - 任务类型枚举
  • TASK_STATUS - 任务状态枚举
  • TASK_CONDITION_TYPE - 任务条件类型枚举
  • TASK_REWARD_TYPE - 任务奖励类型枚举
  • TASK_RESET_TYPE - 任务重置类型枚举

8. 实现服务类 🔄

  • TaskService - 任务服务类
  • TaskConditionService - 任务条件服务类
  • TaskRewardService - 任务奖励服务类
  • TaskProgressService - 任务进度服务类

9. 实现DTO类 🔄

  • TaskDto - 任务数据传输对象
  • TaskConditionDto - 任务条件数据传输对象
  • TaskRewardDto - 任务奖励数据传输对象
  • TaskProgressDto - 任务进度数据传输对象

10. 实现后台控制器 🔄

  • TaskCategoryController - 任务分类控制器
  • TaskController - 任务控制器
  • TaskRewardController - 任务奖励控制器
  • TaskCostController - 任务接取消耗控制器
  • TaskConditionController - 任务条件控制器
  • TaskAchievementConditionController - 任务达成条件控制器
  • TaskUserTaskController - 用户任务关联控制器
  • TaskUserProgressController - 用户任务进度控制器
  • TaskCompletionLogController - 任务完成日志控制器
  • TaskRewardLogController - 任务奖励发放日志控制器
  • TaskCostLogController - 任务消耗日志控制器
  • TaskResetLogController - 任务重置日志控制器

11. 实现命令行工具 ⏳

  • ResetDailyTasksCommand - 重置每日任务命令
  • ResetWeeklyTasksCommand - 重置每周任务命令
  • ResetMonthlyTasksCommand - 重置每月任务命令
  • CheckTaskProgressCommand - 检查任务进度命令
  • CleanExpiredTasksCommand - 清理过期任务命令

12. 实现文档 🔄

  • 数据库设计文档
  • Proto设计文档
  • 开发指南文档
  • 事件系统文档
  • 配置表设计文档
  • 与其他模块集成文档

开发进度

  • ✅ 已完成
  • 🔄 进行中
  • ⏳ 待开始

当前进度

  • 已完成基本目录结构创建
  • 已完成数据库设计和创建脚本
  • 已完成所有模型类的实现
  • 已完成所有数据仓库类的实现
  • 已完成事件和监听器的实现
  • 已完成服务提供者的实现
  • 进行中的工作:枚举类、服务类、DTO类、后台控制器和文档的实现

下一步计划

  1. 完成枚举类的实现
  2. 完成服务类的实现
  3. 完成DTO类的实现
  4. 完成后台控制器的实现
  5. 完成命令行工具的实现
  6. 完善模块文档

开发规范

命名规范

  1. 类名:使用大驼峰命名法(PascalCase),如TaskService
  2. 方法名:使用小驼峰命名法(camelCase),如getTaskById
  3. 变量名:使用小驼峰命名法(camelCase),如taskId
  4. 常量名:使用全大写下划线命名法(SNAKE_CASE),如TASK_STATUS_COMPLETED
  5. 枚举类:使用全大写下划线命名法(SNAKE_CASE),如TASK_TYPE

代码规范

  1. 遵循PSR-12编码规范
  2. 使用强类型声明
  3. 编写完整的PHPDoc注释
  4. 遵循SOLID原则

文档规范

  1. 使用Markdown格式编写文档
  2. 文档应包含标题、概述、正文和总结等部分
  3. 代码示例应包含注释
  4. 保持文档与代码同步更新

依赖项

  1. 用户模块 - 获取用户信息
  2. 物品模块 - 发放物品奖励
  3. 货币模块 - 发放货币奖励
  4. 经验模块 - 发放经验奖励
  5. 事件系统 - 监听游戏事件

注意事项

  1. 任务模块是游戏系统的核心功能之一,需要确保高性能和稳定性
  2. 任务条件和奖励类型可能会不断增加,需要设计良好的扩展机制
  3. 任务进度更新频繁,需要考虑缓存和批量更新策略
  4. 任务重置需要考虑时区问题,确保在正确的时间点重置
  5. 任务完成和奖励发放需要考虑并发问题,确保数据一致性