Enhance VM service management: add service_id and plain_password fields, sync service records, and update related migrations
This commit is contained in:
@@ -4,7 +4,6 @@ declare(strict_types=1);
|
||||
|
||||
namespace App\Observers;
|
||||
|
||||
use App\Models\Invoice;
|
||||
use App\Models\ModuleVmware;
|
||||
use App\Models\OrderItem;
|
||||
use App\Models\Service;
|
||||
@@ -101,35 +100,33 @@ class ModuleVmwareObserver
|
||||
{
|
||||
try {
|
||||
$orderItem = OrderItem::where('order_id', $moduleVmware->order_id)
|
||||
->where('os_id', $moduleVmware->os_id)
|
||||
->first();
|
||||
|
||||
$invoice = Invoice::where('order_id', $moduleVmware->order_id)->first();
|
||||
if (!$orderItem) {
|
||||
Log::warning('ModuleVmwareObserver: không tìm thấy OrderItem', [
|
||||
'order_id' => $moduleVmware->order_id,
|
||||
'module_vmware_id' => $moduleVmware->id,
|
||||
]);
|
||||
return;
|
||||
}
|
||||
|
||||
Service::firstOrCreate(
|
||||
['order_item_id' => $orderItem?->id],
|
||||
[
|
||||
'customer_id' => $moduleVmware->customer_id,
|
||||
'product_id' => $orderItem?->product_id,
|
||||
'invoice_id' => $invoice?->id,
|
||||
'vm_id' => $moduleVmware->vmware_id,
|
||||
'server_name' => $moduleVmware->hostname ?? $moduleVmware->name,
|
||||
'status' => 'active',
|
||||
'auto_renew' => false,
|
||||
'started_at' => now(),
|
||||
'expires_at' => ($orderItem && (int) $orderItem->months > 0)
|
||||
? now()->addMonths((int) $orderItem->months)
|
||||
: null,
|
||||
]
|
||||
);
|
||||
$updated = Service::where('order_item_id', $orderItem->id)
|
||||
->update([
|
||||
'vm_id' => $moduleVmware->id,
|
||||
'status' => 'active',
|
||||
'expires_at' => (int) $orderItem->months > 0
|
||||
? now()->addMonths((int) $orderItem->months)
|
||||
: null,
|
||||
]);
|
||||
|
||||
Log::info('Service record synced for ModuleVmware', [
|
||||
'module_vmware_id' => $moduleVmware->id,
|
||||
'vmware_id' => $moduleVmware->vmware_id,
|
||||
'order_item_id' => $orderItem?->id,
|
||||
'order_item_id' => $orderItem->id,
|
||||
'rows_updated' => $updated,
|
||||
]);
|
||||
} catch (\Throwable $e) {
|
||||
Log::error('Lỗi khi tạo Service từ ModuleVmwareObserver: ' . $e->getMessage(), [
|
||||
Log::error('Lỗi khi sync Service từ ModuleVmwareObserver: ' . $e->getMessage(), [
|
||||
'module_vmware_id' => $moduleVmware->id,
|
||||
'order_id' => $moduleVmware->order_id,
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user