[ UpdateCropStatusListener::class, GenerateDisasterListener::class, ], HouseUpgradedEvent::class => [ AddLandAfterHouseUpgradeListener::class, ], LoginSuccessEvent::class => [ LoginSuccessListener::class, ], FarmCreatedEvent::class => [ FarmInitRewardListener::class, ], ]; /** * 注册服务 * * @return void */ public function register() { // 注册命令 $this->commands([ Commands\UpdateCropGrowthCommand::class, Commands\FixCropFinalOutputCommand::class, Commands\FixCropMatureOutputCommand::class, Commands\GenerateDisastersCommand::class, Commands\CheckHouseDowngradeCommand::class, Commands\CleanExpiredLogsCommand::class, Commands\GenerateFarmHouseConfigJson::class, Commands\GenerateFarmShrineConfigJson::class, Commands\GenerateFarmLandConfigJson::class, Commands\GenerateFarmSeedConfigJson::class, Commands\MigrateLandUpgradeMaterialsToConsumeGroupsCommand::class, Commands\MigrateLandUpgradeConditionsToConditionGroupsCommand::class, Commands\InitializeUserLandsCommand::class, Commands\InsertFarmConfigAdminMenu::class, Commands\GenerateFarmDailyStatsCommand::class, Commands\FixLandStatusCommand::class, Commands\FixRemovedCropLandStatusCommand::class, ]); } /** * 引导服务 * * @return void */ public function boot() { $events = $this->app['events']; foreach ($this->listen as $event => $listeners) { foreach ($listeners as $listener) { $events->listen($event, $listener); } } // 注册农场配置管理路由 $this->registerAdminRoutes(); // 注册农场定时任务 $this->registerSchedules(); } /** * 注册后台管理路由 * * @return void */ protected function registerAdminRoutes() { $attributes = [ 'prefix' => config('admin.route.prefix'), 'middleware' => config('admin.route.middleware'), ]; app('router')->group($attributes, function ($router) { // 农场配置管理路由 $router->resource('farm-configs', \App\Module\Farm\AdminControllers\FarmConfigController::class); // 清除缓存路由 $router->post('farm-configs/clear-cache', [\App\Module\Farm\AdminControllers\FarmConfigController::class, 'clearCache']); // 农场每日统计路由 $router->resource('farm-daily-stats', \App\Module\Farm\AdminControllers\FarmDailyStatsController::class); // 农场统计图表路由 $router->get('farm-metrics', [\App\Module\Farm\AdminControllers\FarmMetricsController::class, 'index']); }); } /** * 注册农场相关的定时任务 * * 将原本在 routes/console.php 中的农场调度配置迁移到此处 */ protected function registerSchedules(): void { // 在应用完全启动后注册定时任务 $this->app->booted(function () { // 每天凌晨2点检查房屋降级 Schedule::command('farm:check-house-downgrade') ->dailyAt('02:00') ->description('检查农场房屋降级'); // 每分钟更新作物生长状态 Schedule::command('farm:update-crop-growth') ->everyMinute() ->description('更新作物生长状态'); // 每分钟随机生成灾害 Schedule::command(\App\Module\Farm\Commands\GenerateDisastersCommand::class) ->everyMinute() ->description('随机生成农场灾害'); // 每天凌晨01:00生成农场每日统计数据 Schedule::command('farm:generate-daily-stats') ->dailyAt('01:00') ->description('生成农场每日统计数据'); }); } }