|
@@ -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('处理报警失败', [
|