Browse Source

fixed:后端

刘学玺 3 months ago
parent
commit
bd3818f946
2 changed files with 43 additions and 25 deletions
  1. 39 25
      app/Services/OrderService.php
  2. 4 0
      config/auth.php

+ 39 - 25
app/Services/OrderService.php

@@ -73,7 +73,6 @@ class OrderService extends AdminService
                 'message' => '更换技师成功',
                 'data' => null,
             ];
-
         } catch (\Exception $e) {
             DB::rollBack();
             Log::error('更换订单技师失败', [
@@ -126,7 +125,6 @@ class OrderService extends AdminService
                 'message' => '指定技师成功',
                 'data' => null,
             ];
-
         } catch (\Exception $e) {
             DB::rollBack();
             Log::error('指定抢单技师失败', [
@@ -174,7 +172,6 @@ class OrderService extends AdminService
                 'message' => '获取成功',
                 'data' => $data,
             ];
-
         } catch (\Exception $e) {
             Log::error('获取订单抢单技师列表失败', [
                 'order_id' => $orderId,
@@ -228,7 +225,6 @@ class OrderService extends AdminService
                 'message' => '获取成功',
                 'data' => $data,
             ];
-
         } catch (\Exception $e) {
             Log::error('获取附近技师列表失败', [
                 'order_id' => $orderId,
@@ -244,15 +240,27 @@ class OrderService extends AdminService
     /**
      * 重置订单技师
      *
-     * @param  array  $data  包含 order_id 和可选的 reason
+     * @param array $data 包含 order_id 和可选的 reason
      */
     public function resetOrderCoach(array $data): array
     {
+        // 获取管理员用户ID
+        $adminUser = Auth::guard('admin')->user();
+        abort_if(!$adminUser, 403, '未获取到管理员信息');
+
         try {
             DB::beginTransaction();
 
+            // 检查订单ID是否存在
+            if (!isset($data['order_id'])) {
+                throw new \Exception('订单ID不能为空');
+            }
+
             // 获取订单信息
-            $order = Order::findOrFail($data['order_id']);
+            $order = Order::find($data['order_id']);
+            if (!$order) {
+                throw new \Exception('订单不存在');
+            }
 
             // 验证订单状态是否允许重置技师
             $allowedStates = [
@@ -266,6 +274,9 @@ class OrderService extends AdminService
 
             // 记录原技师ID
             $oldCoachId = $order->coach_id;
+            if (!$oldCoachId) {
+                throw new \Exception('订单未分配技师');
+            }
 
             // 更新订单信息
             $order->coach_id = null;
@@ -275,12 +286,12 @@ class OrderService extends AdminService
             // 记录技师重置历史
             OrderRecord::create([
                 'order_id' => $order->id,
-                'object_id' => Auth::user()->id,
+                'object_id' => $adminUser->id,
                 'object_type' => 'admin',
                 'old_coach_id' => $oldCoachId,
                 'new_coach_id' => null,
                 'state' => OrderRecordStatus::RESET_COACH->value,
-                'remark' => $data['reason'] ?? null,
+                'remark' => $data['reason'] ?? '平台重置技师',
             ]);
 
             DB::commit();
@@ -290,14 +301,9 @@ class OrderService extends AdminService
                 'message' => '重置技师成功',
                 'data' => null,
             ];
-
         } catch (\Exception $e) {
             DB::rollBack();
-            Log::error('重置订单技师失败', [
-                'order_id' => $data['order_id'],
-                'error' => $e->getMessage(),
-                'trace' => $e->getTraceAsString(),
-            ]);
+
 
             throw $e;
         }
@@ -310,6 +316,9 @@ class OrderService extends AdminService
      */
     public function temporaryAcceptOrder(array $data): array
     {
+        // 获取管理员用户ID
+        $adminUser = Auth::guard('admin')->user();
+        abort_if(!$adminUser, 403, '未获取到管理员信息');
         try {
             DB::beginTransaction();
 
@@ -329,7 +338,7 @@ class OrderService extends AdminService
             // 记录临时接单历史
             OrderRecord::create([
                 'order_id' => $order->id,
-                'object_id' => Auth::user()->id,
+                'object_id' => $adminUser->id,
                 'object_type' => 'admin',
                 'old_coach_id' => null,
                 'new_coach_id' => $order->coach_id,
@@ -344,7 +353,6 @@ class OrderService extends AdminService
                 'message' => '接单成功',
                 'data' => null,
             ];
-
         } catch (\Exception $e) {
             DB::rollBack();
             Log::error('临时接单失败', [
@@ -364,6 +372,9 @@ class OrderService extends AdminService
      */
     public function startOrderService(array $data): array
     {
+        // 获取管理员用户ID
+        $adminUser = Auth::guard('admin')->user();
+        abort_if(!$adminUser, 403, '未获取到管理员信息');
         try {
             DB::beginTransaction();
 
@@ -380,13 +391,13 @@ class OrderService extends AdminService
             abort_if(! in_array($order->state, $allowedStates), 422, '当前订单状态不允许开始服务');
 
             // 更新订单状态
-            $order->state = OrderStatus::STARTED->value;
+            $order->state = OrderStatus::SERVICE_START->value;
             $order->save();
 
             // 记录开始服务历史
             OrderRecord::create([
                 'order_id' => $order->id,
-                'object_id' => Auth::user()->id,
+                'object_id' => $adminUser->id,
                 'object_type' => 'admin',
                 'old_coach_id' => $order->coach_id,
                 'new_coach_id' => $order->coach_id,
@@ -401,7 +412,6 @@ class OrderService extends AdminService
                 'message' => '开始服务成功',
                 'data' => null,
             ];
-
         } catch (\Exception $e) {
             DB::rollBack();
             Log::error('开始服务失败', [
@@ -421,6 +431,9 @@ class OrderService extends AdminService
      */
     public function endOrderService(array $data): array
     {
+        // 获取管理员用户ID
+        $adminUser = Auth::guard('admin')->user();
+        abort_if(!$adminUser, 403, '未获取到管理员信息');
         try {
             DB::beginTransaction();
 
@@ -428,7 +441,7 @@ class OrderService extends AdminService
             $order = Order::findOrFail($data['order_id']);
 
             // 验证订单状态是否为已开始服务状态
-            abort_if($order->state !== OrderStatus::STARTED->value, 422, '当前订单状态不允许结束服务');
+            abort_if($order->state !== OrderStatus::SERVICE_START->value, 422, '当前订单状态不允许结束服务');
 
             // 更新订单状态
             $order->state = OrderStatus::LEFT->value;
@@ -437,7 +450,7 @@ class OrderService extends AdminService
             // 记录结束服务历史
             OrderRecord::create([
                 'order_id' => $order->id,
-                'object_id' => Auth::user()->id,
+                'object_id' => $adminUser->id,
                 'object_type' => 'admin',
                 'old_coach_id' => $order->coach_id,
                 'new_coach_id' => $order->coach_id,
@@ -452,7 +465,6 @@ class OrderService extends AdminService
                 'message' => '结束服务成功',
                 'data' => null,
             ];
-
         } catch (\Exception $e) {
             DB::rollBack();
             Log::error('结束服务失败', [
@@ -472,6 +484,9 @@ class OrderService extends AdminService
      */
     public function handleOrderAlarm(array $data): array
     {
+        // 获取管理员用户ID
+        $adminUser = Auth::guard('admin')->user();
+        abort_if(!$adminUser, 403, '未获取到管理员信息');
         try {
             DB::beginTransaction();
 
@@ -484,14 +499,14 @@ class OrderService extends AdminService
 
             // 更新异常记录状态
             $excRecord->handle_result = $data['handle_result'];
-            $excRecord->handler_id = Auth::user()->id;
+            $excRecord->handler_id = $adminUser->id;
             $excRecord->handle_time = now();
             $excRecord->save();
 
             // 记录处理历史
             OrderRecord::create([
                 'order_id' => $order->id,
-                'object_id' => Auth::user()->id,
+                'object_id' => $adminUser->id,
                 'object_type' => 'admin',
                 'old_coach_id' => $order->coach_id,
                 'new_coach_id' => $order->coach_id,
@@ -506,7 +521,6 @@ class OrderService extends AdminService
                 'message' => '处理成功',
                 'data' => null,
             ];
-
         } catch (\Exception $e) {
             DB::rollBack();
             Log::error('处理报警失败', [

+ 4 - 0
config/auth.php

@@ -46,6 +46,10 @@ return [
             'driver' => 'sanctum',
             'provider' => 'member_users',
         ],
+        'admin' => [
+            'driver' => 'sanctum',
+            'provider' => 'users',
+        ],
     ],
 
     /*