|
@@ -7,6 +7,7 @@ use App\Enums\TechnicianAuthStatus;
|
|
|
use App\Enums\TechnicianLocationType;
|
|
|
use App\Enums\TechnicianWorkStatus;
|
|
|
use App\Models\CoachSchedule;
|
|
|
+use App\Models\CoachUser;
|
|
|
use App\Models\MemberUser;
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
use Illuminate\Support\Facades\DB;
|
|
@@ -332,7 +333,7 @@ class AccountService
|
|
|
// 生成Redis键
|
|
|
$key = $coachId.'_'.$type;
|
|
|
|
|
|
- // 将位置信息写入Redis
|
|
|
+ // 将���置信息写入Redis
|
|
|
$result = Redis::geoadd('coach_locations', $longitude, $latitude, $key);
|
|
|
|
|
|
// 同时写入数据库保存历史记录
|
|
@@ -467,7 +468,7 @@ class AccountService
|
|
|
];
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
- Log::error('技师排班设置���败', [
|
|
|
+ Log::error('技师排班设置败', [
|
|
|
'user_id' => $userId,
|
|
|
'time_ranges' => $timeRanges,
|
|
|
'error' => $e->getMessage(),
|
|
@@ -792,4 +793,36 @@ class AccountService
|
|
|
// 缓存更新失败不影响主流程
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取技师工作状态
|
|
|
+ *
|
|
|
+ * @param int $coachId 技师ID
|
|
|
+ */
|
|
|
+ public function getWorkStatus(int $coachId): array
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ // 验证技师信息
|
|
|
+ $coach = CoachUser::find($coachId);
|
|
|
+
|
|
|
+ abort_if(! $coach, 404, '技师不存在');
|
|
|
+
|
|
|
+ // 直接获取技师信息里的work_status
|
|
|
+ $workStatus = $coach->work_status;
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'work_status' => $workStatus,
|
|
|
+ 'work_status_text' => TechnicianWorkStatus::fromValue($workStatus)->label(),
|
|
|
+ 'updated_at' => now()->toDateTimeString(),
|
|
|
+ ];
|
|
|
+
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ Log::error('获取技师工作状态失败', [
|
|
|
+ 'coach_id' => $coachId,
|
|
|
+ 'error' => $e->getMessage(),
|
|
|
+ 'trace' => $e->getTraceAsString(),
|
|
|
+ ]);
|
|
|
+ throw $e;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|