景好勇win11 3 сар өмнө
parent
commit
8636f31b62

+ 5 - 0
app/Services/Client/OrderService.php

@@ -406,6 +406,11 @@ readonly class OrderService
     {
         return DB::transaction(function () use ($userId, $data) {
             try {
+                // 转换时间格式
+                if (!empty($data['service_time'])) {
+                    $data['service_time'] = Carbon::parse($data['service_time'])->format('Y-m-d H:i:s');
+                }
+
                 // 1. 验证基础数据
                 $this->validateOrderData($userId, $data);
                 // 2. 计算订单金额

+ 11 - 8
app/Services/Client/Traits/ValidatesServiceTime.php

@@ -2,13 +2,13 @@
 
 namespace App\Services\Client\Traits;
 
+use Carbon\Carbon;
+use App\Models\Order;
+use App\Models\CoachUser;
 use App\Enums\OrderStatus;
-use App\Enums\TechnicianAuthStatus;
-use App\Enums\TechnicianStatus;
 use App\Models\CoachSchedule;
-use App\Models\CoachUser;
-use App\Models\Order;
-use Carbon\Carbon;
+use App\Enums\TechnicianStatus;
+use App\Enums\TechnicianAuthStatus;
 
 /**
  * 服务时间验证 Trait
@@ -57,8 +57,11 @@ trait ValidatesServiceTime
         abort_if(! $coach, 400, '技师不存在或未激活');
 
         // 验证技师认证状态
-        abort_if(! $coach->info || $coach->info->state !== TechnicianAuthStatus::PASSED->value,
-            400, '技师未通过认证');
+        abort_if(
+            ! $coach->info || $coach->info->state !== TechnicianAuthStatus::PASSED->value,
+            400,
+            '技师未通过认证'
+        );
 
         // 验证服务时间基本参数
         $this->validateBasicServiceTime($serviceTime);
@@ -129,7 +132,7 @@ trait ValidatesServiceTime
             ];
         }
 
-        $timeRanges = json_decode($schedule->time_ranges, true);
+        $timeRanges = is_string($schedule->time_ranges) ? json_decode($schedule->time_ranges, true) : $schedule->time_ranges;
 
         return [
             'work_days' => range(1, 7), // 默认每天都工作