guard()->user(); $unreadMessageCount = Message::ofEmployee($user) ->whereDoesntHave('readingLogs', fn ($query) => $query->where('employee_id', $user->id)) ->count(); return [ 'id' => $user->id, 'name' => $user->name, 'phone' => $user->phone, 'avatar' => $user->avatar, 'jobs' => KeywordResource::collection($user->jobs), 'store' => $user->store ? StoreResource::make($user->store) : null, 'unread_notifications' => $unreadMessageCount, // 身份: user-普通员工, store-店长, admin-管理员 'role' => $user->userRole(), ]; } // 修改账户信息 public function update(Request $request) { $user = $this->guard()->user(); try { DB::beginTransaction(); $service = EmployeeService::make(); $data = $request->only(['name', 'avatar', 'password', 'confirm_password', 'phone']); if (! $service->update($user->id, $data)) { throw new RuntimeException($service->getError()); } DB::commit(); } catch (\Exception $e) { DB::rollback(); throw new RuntimeException($e->getMessage()); } return response('', Response::HTTP_OK); } // 门店列表 public function storeList(Request $request) { $user = $this->guard()->user(); $role = $user->userRole(); $list = []; $query = Store::filter($request->all())->where('business_status', BusinessStatus::Open); if (in_array(UserRole::Admin, $role)) { $list = $query->get(); } elseif (in_array(UserRole::StoreUser, $role) || in_array(UserRole::Store, $role)) { $list = [$query->findOrFail($user->store_id)]; } return StoreResource::collection($list); } }