request->adminInfo ?? []); if (empty($identity) || empty($identity['admin_id'])) { return $this->fail('登录已失效,请重新登录'); } if ((int)($identity['terminal'] ?? 0) !== AdminTerminalEnum::WECOM_RPA) { return $this->fail('当前登录令牌不属于企业微信客服桌面端'); } $admin = Admin::where(['id' => (int)$identity['admin_id']]) ->field('id,account,name,avatar,disable') ->findOrEmpty(); if ($admin->isEmpty() || (int)$admin['disable'] === YesNoEnum::YES) { return $this->fail('管理员不存在或已禁用'); } $account = trim((string)$admin['account']); $name = trim((string)$admin['name']); return $this->data([ // 加类型前缀,避免管理员 id 与普通用户 id 相同时落到同一个客服租户。 'user_id' => 'admin:' . (int)$admin['id'], 'sn' => $account, 'nickname' => $name !== '' ? $name : $account, 'mobile' => '', 'avatar' => (string)$admin['avatar'], 'terminal' => AdminTerminalEnum::WECOM_RPA, 'expire_time' => (int)($identity['expire_time'] ?? 0), 'status' => 'active', 'account_type' => 'admin', ]); } }