shouldDisplay = $shouldDisplay; } public function title() { return '刷新检查'; } public function confirm() { return '确定要刷新检查同步状态吗?'; } public function handle(Request $request) { return $this->response()->success('刷新成功')->refresh(); } public function render() { if (!$this->shouldDisplay) { return ''; } return parent::render(); } public static function checkSyncStatus(): array { $json = ItemJsonConfig::getData(); $lastUpdated = \Carbon\Carbon::parse(\App\Module\GameItems\Models\Item::max('updated_at')); // dd($json); $generatedAt = \Carbon\Carbon::createFromTimestamp($json['generated_ts']); $isSynced = $generatedAt->gte($lastUpdated); return [ 'should_display' => !$isSynced, 'message' => $isSynced ? 'JSON数据已同步,生成于 '.$generatedAt->diffForHumans() : 'JSON数据已过期,最后更新于 '.$lastUpdated->diffForHumans(), 'is_synced' => $isSynced ]; } public static function shouldDisplay(): bool { return self::checkSyncStatus()['should_display']; } }