跳转至

OnlineUserController(在线用户)

管理控制台的在线用户能力:分页查询当前在线的 runtime 用户集合,以及把指定在线用户强制下线(将其 WebUser.status 置为 99)。

  • 类级基址${myapps.context-path.manager:}/api/authtime(完整路径:{manager-context}/api/authtime<相对路径>
  • Tag:在线用户(控制器源码声明 @Tag(name = "在线用户")
  • 控制器源码obpm-manager/src/main/java/cn/myapps/manager/authtime/controller/onlineuser/OnlineUserController.java
  • 公共说明
  • 类继承 BaseAuthTimeController,通过其 success(errmsg, data) / error(errcode, errmsg, errors) 返回统一 Resource(字段 errcode/errmsg/data/errors,结构见 ../index.md「统一响应结构」)。
  • 端点在 try/catch 内捕获 Exceptione.printStackTrace() 后返回 errcode=500errmsg=e.getMessage()data=null
  • 端点显式声明 @ResponseStatus(HttpStatus.OK),HTTP 状态码 200。
  • 鉴权说明见 index.md「鉴权说明」(adminToken JWT)。
  • 控制器注入 UserRunTimeServicecn.myapps.manager.authtime.service.user.UserRunTimeService),由其读取 host 共享缓存中的 OnlineUsers 在线用户表。
  • 路径变量 userId 为 runtime 用户 id(即 WebUser.getId())。

1. 获取在线用户集合

分页查询当前在线的 runtime 用户集合,可按企业域(domainid)过滤。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/onlines(完整:{manager-context}/api/authtime/onlines
  • 鉴权:是(需管理员 adminToken,详见 index.md「鉴权说明」)
  • Tag:在线用户

请求参数

参数名 位置 类型 必填 说明
currpage query string 当前页码,缺省 1
pagelines query string 每页条数,缺省 10
domainid query string 企业域 id(无 @RequestParam 注解,Spring 默认按 query 参数绑定;为空时不过滤)

请求示例

GET /api/authtime/onlines?currpage=1&pagelines=20&domainid=__P1UD2yVWpnFpUedONr HTTP/1.1

响应

结构:统一 ResourcedataMap<String, Object>(由 UserRunTimeService.getOnlineUserList2 返回,具体字段由该服务实现决定,通常含分页信息与在线用户列表)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "currpage": 1,
    "pagelines": 20,
    "rowCount": 1,
    "datas": [
      { "id": "__U001", "name": "admin", "loginno": "admin", "domainid": "__P1UD2yVWpnFpUedONr" }
    ]
  },
  "errors": null
}

注:data 的具体字段形态由 UserRunTimeService.getOnlineUserList2 决定,上例为示意。

失败示例

{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 移除在线用户

按 runtime 用户 id 把指定在线用户强制下线:构造 WebUser 实例并把其 status 置为 99(强制下线标记),再写回会话。源码内有一段基于 OnlineUsers.getOnlineUsers() 全表迭代下线的逻辑被注释,当前生效的是 WebUser.setWebUser 路径。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/onlines/{userId}(完整:{manager-context}/api/authtime/onlines/{userId}
  • 鉴权:是
  • Tag:在线用户

请求参数

参数名 位置 类型 必填 说明
userId path string 待强制下线的 runtime 用户 id

请求示例

DELETE /api/authtime/onlines/__U001 HTTP/1.1

响应

结构:统一 Resourcedatanull

成功示例

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }