跳转至

AdminAuthtimeController(企业管理员管理)

管理企业域下的「企业管理员」(业务上以 UserVO.departmentUser=true 标记,由前端选中维护):分页查询某企业域的管理员候选列表、查询非管理员用户列表,以及把一批 runtime 用户标记为管理员 / 取消管理员标记。

  • 类级基址${myapps.context-path.manager:}/api/authtime(完整路径:{manager-context}/api/authtime<相对路径>
  • Tag:控制器未声明 @Tag(源码无 @Tag 注解)
  • 控制器源码obpm-manager/src/main/java/cn/myapps/manager/authtime/controller/admin/AdminAuthtimeController.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;空选校验返回 errcode=1OBPMValidateException 单独捕获并以异常信息作为 errmsg
  • 控制器未声明 @ResponseStatus,HTTP 状态码默认 200。
  • 鉴权说明见 index.md「鉴权说明」(adminToken JWT)。
  • 路径变量 domainid 为企业域 id(所有 4 个端点均持有)。
  • 业务定义:本控制器的「管理员」并非 SuperUserVO(特权用户),而是该企业域下、UserVO.departmentUser 标记为 true 的 runtime 用户。getAdminListgetNotAdminList 两个查询端点的实现**完全一致**(均调用 UserProcess.doQueryByDomainAndLikeNamedomainid + 名称模糊查询),前端按响应字段 departmentUser 自行筛选区分。两个端点的差异仅在语义命名。

1. 获取管理员列表

按企业域分页查询用户列表(按 name 模糊匹配)。响应中每个用户元素带 departmentUser 字段,由前端筛选 departmentUser=true 的用户作为企业管理员。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/domain/{domainid}/admins(完整:{manager-context}/api/authtime/domain/{domainid}/admins
  • 鉴权:是(需管理员 adminToken,详见 index.md「鉴权说明」)
  • Tag:企业管理员管理(控制器未声明 @Tag

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(空字符串时传 null 给查询)
content body JSON 过滤条件包体(字段见下)
currpage query string 当前页码,缺省 1
pagelines query string 每页条数,缺省 10
orderby query string 排序字段(参数持有但当前实现未使用)

请求体

JSON 对象(application/json),字段:

字段 类型 必填 说明
name string 用户名称模糊匹配关键词

请求示例

POST /api/authtime/domain/__P1UD2yVWpnFpUedONr/admins?currpage=1&pagelines=20 HTTP/1.1
Content-Type: application/json

{ "name": "admin" }

响应

结构:统一 ResourcedataJSONObject(手工拼装的分页包),字段:

字段 类型 说明
linesPerPage int 每页条数
pageCount int 总页数
pageNo int 当前页码
rowCount int 总记录数
datas array\<JSONObject> 用户数组(见下)

datas 元素字段:

字段 类型 说明
id string 用户 id
name string 用户名称
loginno string 登录账号
email string 邮箱
departmentUser boolean 是否企业管理员(前端据此筛选)
defaultDepartment object 默认部门

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 20,
    "pageCount": 1,
    "pageNo": 1,
    "rowCount": 2,
    "datas": [
      { "id": "__U001", "name": "admin", "loginno": "admin", "email": "admin@example.com", "departmentUser": true, "defaultDepartment": null },
      { "id": "__U002", "name": "zhangsan", "loginno": "zhangsan", "email": "", "departmentUser": false, "defaultDepartment": null }
    ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


2. 获取不是管理员的用户列表

按企业域分页查询用户列表(按 name 模糊匹配),用于补充挑选新管理员。实现与「获取管理员列表」完全一致(同一 doQueryByDomainAndLikeName 调用),前端按响应字段 departmentUser=false 自行筛选非管理员。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/domain/{domainid}/notadmins(完整:{manager-context}/api/authtime/domain/{domainid}/notadmins
  • 鉴权:是
  • Tag:企业管理员管理(控制器未声明 @Tag

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(空字符串时传 null 给查询)
content body JSON 过滤条件包体(字段见下)
currpage query string 当前页码,缺省 1
pagelines query string 每页条数,缺省 10
orderby query string 排序字段(参数持有但当前实现未使用)

请求体

JSON 对象(application/json),字段:

字段 类型 必填 说明
name string 用户名称模糊匹配关键词

请求示例

POST /api/authtime/domain/__P1UD2yVWpnFpUedONr/notadmins?currpage=1&pagelines=20 HTTP/1.1
Content-Type: application/json

{ "name": "" }

响应

结构:统一 ResourcedataJSONObject(同「获取管理员列表」的 data 结构)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 20,
    "pageCount": 1,
    "pageNo": 1,
    "rowCount": 2,
    "datas": [
      { "id": "__U001", "name": "admin", "loginno": "admin", "email": "admin@example.com", "departmentUser": true, "defaultDepartment": null },
      { "id": "__U002", "name": "zhangsan", "loginno": "zhangsan", "email": "", "departmentUser": false, "defaultDepartment": null }
    ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


3. 添加管理员

把指定 runtime 用户批量标记为企业管理员(将 UserVO.departmentUser 置为 truedoUpdate)。domainid 仅作路径声明,实际逻辑未使用。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/domain/{domainid}/admin(完整:{manager-context}/api/authtime/domain/{domainid}/admin
  • 鉴权:是
  • Tag:企业管理员管理(控制器未声明 @Tag

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(路径变量,方法签名持有但实际逻辑未直接使用)
ids body string[] 待标记为管理员的用户 id 数组

请求体

application/json,字符串数组:

[ "__U001", "__U002" ]

请求示例

PUT /api/authtime/domain/__P1UD2yVWpnFpUedONr/admin HTTP/1.1
Content-Type: application/json

[ "__U002" ]

响应

结构:统一 Resourcedata:字符串 "添加成功"

条件 errcode errmsg data
ids 为空数组或 null 1 没有记录被选中,请选择记录 null
业务校验异常 500 <异常信息> null
成功 0 ok 添加成功

成功示例

{ "errcode": 0, "errmsg": "ok", "data": "添加成功", "errors": null }
失败示例
{ "errcode": 1, "errmsg": "没有记录被选中,请选择记录", "data": null, "errors": null }


4. 移除管理员

把指定 runtime 用户批量取消企业管理员标记(将 UserVO.departmentUser 置为 falsedoUpdate)。domainid 仅作路径声明,实际逻辑未使用。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/domain/{domainid}/admin(完整:{manager-context}/api/authtime/domain/{domainid}/admin
  • 鉴权:是
  • Tag:企业管理员管理(控制器未声明 @Tag

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(路径变量,方法签名持有但实际逻辑未直接使用)
ids body string[] 待取消管理员标记的用户 id 数组

请求体

application/json,字符串数组:

[ "__U001", "__U002" ]

请求示例

DELETE /api/authtime/domain/__P1UD2yVWpnFpUedONr/admin HTTP/1.1
Content-Type: application/json

[ "__U002" ]

响应

结构:统一 Resourcedata:字符串 "移除成功"

条件 errcode errmsg data
ids 为空数组或 null 1 没有记录被选中,请选择记录 null
业务校验异常 500 <异常信息> null
成功 0 ok 移除成功

成功示例

{ "errcode": 0, "errmsg": "ok", "data": "移除成功", "errors": null }
失败示例
{ "errcode": 1, "errmsg": "没有记录被选中,请选择记录", "data": null, "errors": null }