开心农场系统 - 任务系统,管理游戏内各类任务的创建、分配、完成和奖励发放
任务模块是开心农场系统的核心功能模块之一,负责管理游戏中的各类任务,包括日常任务、成就任务、活动任务等。该模块提供任务的创建、分配、进度跟踪、完成验证和奖励发放等功能,通过任务系统引导玩家体验游戏内容,提高用户活跃度和留存率。
任务模块采用分层架构设计,遵循"服务是对外的,Logic是内部的"原则:
app/Module/Task/
├── AdminControllers/ # 后台管理控制器
│ ├── Helper/ # 控制器辅助类
│ ├── Actions/ # 控制器动作类
│ └── LazyRenderable/ # 懒加载渲染类
├── Commands/ # 命令行工具
├── Controllers/ # 前端API控制器
├── Databases/ # 数据库相关文件
│ └── GenerateSql/ # 数据库创建脚本
├── Dtos/ # 数据传输对象
├── Enums/ # 枚举类型定义
├── Events/ # 事件类
├── Exceptions/ # 异常类
├── Listeners/ # 事件监听器
├── Logics/ # 业务逻辑类
├── Models/ # 数据模型
├── Providers/ # 服务提供者
├── Repositorys/ # 数据仓库
├── Services/ # 服务类
└── Docs/ # 模块文档
任务模块包含以下核心数据表:
详细的数据库设计请参考 数据库设计文档。
任务模块提供以下主要API接口:
GET /api/task/listGET /api/task/detailPOST /api/task/acceptPOST /api/task/abandonPOST /api/task/completePOST /api/task/claim-rewardGET /api/task/progress详细的API接口设计请参考 API接口设计文档。
任务模块与以下模块进行集成:
详细的集成方式请参考 与其他模块集成文档。
app/Module/Task目录下php artisan migrateconfig/app.php中添加App\Module\Task\Providers\TaskServiceProvider::classphp artisan vendor:publish --tag=task-config任务模块的主要配置选项位于config/task.php文件中:
reset_time - 任务重置时间配置notification_enabled - 是否启用任务通知expiration_reminder_hours - 任务过期提醒时间(小时)log_retention_days - 日志保留天数TASK_TYPE枚举中添加新的任务类型TaskLogic中实现相应的验证和处理逻辑TARGET_TYPE枚举中添加新的目标类型TaskService::updateTaskProgress方法中添加新目标类型的处理逻辑TaskLogic::processTaskReward方法中添加新奖励类型的处理逻辑可能的原因:
解决方案:
可能的原因:
解决方案:
可能的原因:
解决方案: