refactor: implement centralized cache key management and add utility traits for vCenter SSH operations.

This commit is contained in:
pbao9
2026-05-16 16:52:21 +07:00
parent 06dbd54ecd
commit 8a115c5175
36 changed files with 1694 additions and 517 deletions
@@ -9,6 +9,7 @@ use App\Repositories\DnsManager\Domain\DnsDomainRepositoryInterface;
use App\Services\ServerService;
use Exception;
use Illuminate\Support\Carbon;
use App\Support\Cache\CacheKey;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
@@ -356,19 +357,19 @@ class DomainController extends Controller
private function clearDomainCaches($domain): void
{
try {
Cache::forget("domain.{$domain->id}");
Cache::forget("domain.{$domain->domain_name}");
Cache::forget('domains.all');
Cache::forget('domains.filtered');
// Clear specific domain keys
Cache::forget(CacheKey::build('domain', 'detail', ['id' => $domain->id]));
Cache::forget(CacheKey::build('domain', 'detail', ['name' => $domain->domain_name]));
Cache::forget(CacheKey::build('domain', 'all'));
if ($domain->users) {
foreach ($domain->users as $user) {
Cache::forget("user.{$user->id}.domains");
Cache::forget(CacheKey::build('domain', 'user-list', ['user_id' => $user->id]));
}
}
if ($domain->dns_manager_server_id) {
Cache::forget("server.{$domain->dns_manager_server_id}.domains");
Cache::forget(CacheKey::build('domain', 'server-list', ['server_id' => $domain->dns_manager_server_id]));
}
} catch (Exception $e) {
Log::warning('Failed to clear domain caches: ' . $e->getMessage());