Browse Source

fixed:用户端-下单(兼容抢单类型)

刘学玺 4 months ago
parent
commit
657e235b76
1 changed files with 6 additions and 8 deletions
  1. 6 8
      app/Services/Client/OrderService.php

+ 6 - 8
app/Services/Client/OrderService.php

@@ -871,7 +871,7 @@ class OrderService
     public function calculateOrderAmount(
         int $userId,
         int $addressId,
-        int $coachId,
+        ?int $coachId,
         int $projectId,
         ?int $agentId = null,
         bool $useBalance = false,
@@ -886,15 +886,13 @@ class OrderService
             abort_if(! $user || $user->state != UserStatus::OPEN->value, 404, '用户不存在或状态异常');
 
             // 2. 查询技师项目
-            $coach = $this->validateCoach($coachId);
+            $coach = $coachId ? $this->validateCoach($coachId) : null;
 
-            abort_if(! $coach, 404, '技师不存在或状态异常');
-            $coachProject = $coach->projects()
+            $coachProject = $coach ? $coach->projects()
                 ->where('state', ProjectStatus::OPEN->value)
                 ->where('project_id', $projectId)
-                ->first();
+                ->first() : null;
 
-            abort_if(! $coachProject, 404, '技师项目不存在');
             // 3. 查询基础项目
             $project = Project::where('id', $projectId)
                 ->where('state', ProjectStatus::OPEN->value())
@@ -903,7 +901,7 @@ class OrderService
             abort_if(! $project, 404, '项目不存在或状态异常');
 
             // 4. 计算距离
-            if (floatval($distance) <= 0) {
+            if (floatval($distance) <= 0 && $coachId) {
 
                 $address = $user->addresses()->find($addressId) ?? ['latitude' => $lat, 'longitude' => $lng];
 
@@ -917,7 +915,7 @@ class OrderService
             $projectAmount = $this->getProjectPrice($project, $agentId, $projectId);
 
             // 6. 计算路费
-            $deliveryFee = $this->calculateDeliveryFee($coachId, $projectId, $agentId, $distance);
+            $deliveryFee = $coachId ? $this->calculateDeliveryFee($coachId, $projectId, $agentId, $distance) : 0;
 
             // 7. 计算优惠券金额
             $couponAmount = $this->calculateCouponAmount();