| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- namespace App\Console\Commands;
- use App\Module\Farm\Events\HouseUpgradedEvent;
- use App\Module\Farm\Models\FarmUpgradeLog;
- use App\Module\Farm\Models\FarmUser;
- use App\Module\Farm\Enums\UPGRADE_TYPE;
- use Illuminate\Console\Command;
- /**
- * 测试房屋升级事件命令
- */
- class TestHouseUpgradeCommand extends Command
- {
- /**
- * 命令签名
- *
- * @var string
- */
- protected $signature = 'test:house-upgrade {user_id} {old_level} {new_level}';
- /**
- * 命令描述
- *
- * @var string
- */
- protected $description = '测试房屋升级事件,验证土地是否正确进入暂存区';
- /**
- * 执行命令
- *
- * @return int
- */
- public function handle()
- {
- $userId = (int) $this->argument('user_id');
- $oldLevel = (int) $this->argument('old_level');
- $newLevel = (int) $this->argument('new_level');
- $this->info("开始测试用户 {$userId} 的房屋升级事件");
- $this->info("从等级 {$oldLevel} 升级到等级 {$newLevel}");
- // 获取用户农场信息
- $farmUser = FarmUser::where('user_id', $userId)->first();
- if (!$farmUser) {
- $this->error("用户 {$userId} 的农场信息不存在");
- return 1;
- }
- // 创建升级记录
- $upgradeLog = new FarmUpgradeLog();
- $upgradeLog->user_id = $userId;
- $upgradeLog->upgrade_type = UPGRADE_TYPE::HOUSE->value;
- $upgradeLog->old_level = $oldLevel;
- $upgradeLog->new_level = $newLevel;
- $upgradeLog->materials_consumed = [];
- $upgradeLog->upgrade_time = now();
- $upgradeLog->created_at = now();
- $upgradeLog->save();
- $this->info("创建升级记录,ID: {$upgradeLog->id}");
- // 触发房屋升级事件
- event(new HouseUpgradedEvent($userId, $farmUser, $oldLevel, $newLevel, $upgradeLog));
- $this->info("房屋升级事件已触发");
- $this->info("请检查:");
- $this->info("1. 是否创建了新的土地");
- $this->info("2. 新土地是否进入了暂存区");
- return 0;
- }
- }
|