跳转至

UserAuthtimeController(用户管理)

管理企业域下的用户全生命周期:当前管理员个人信息查询、用户分页列表(按关键词 / 角色 / 状态 / 部门 / 自定义字段过滤)、单条用户详情、用户部门-软件-角色矩阵查询、按登录账号跨域查重、用户创建 / 更新 / 删除 / 批量废置、角色批量授权、Excel 导入导出、KM 角色配置、个人资料与密码修改。

  • 类级基址${myapps.context-path.manager:}/api/authtime(完整路径:{manager-context}/api/authtime<相对路径>
  • Tag:用户操作模块
  • 控制器源码obpm-manager/src/main/java/cn/myapps/manager/authtime/controller/user/UserAuthtimeController.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(HTTP 状态码由 @ResponseStatus 决定,业务异常时仍为 200/201);业务校验失败常用 errcode=4001
  • 少数端点(doListgetRoleWithDeptAndKMRelation)异常时方法体直接 return null(不返回统一 Resource),由 Spring 默认序列化为空响应体(HTTP 200,body 为 null)。
  • excelExportUserAndDept 返回 void,直接写二进制流到响应输出流(非统一 Resource)。
  • 鉴权说明见 index.md「鉴权说明」(adminToken JWT)。
  • 路径变量 domainid / domainId 为企业域 id;id / userid / userId 为用户 id;departmentid 为部门 id;applicationid 为软件 id。

1. 获取个人信息

获取当前登录管理员的个人信息(id、名称、类型、级别、是否开启三员管理、密码加密模式)。开启三员管理(security.mode)时附带管理员的部门列表与企业域列表。

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

请求参数

无。

请求示例

GET /api/authtime/myprofile HTTP/1.1

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataMap,字段:

字段 类型 说明
id string 管理员用户 id
name string 管理员名称
type int 管理员类型(SuperUserVO.type
level int 管理员级别(SuperUserVO.level
isOpenSecurity boolean 是否开启三员管理(读取全局配置 security.mode
encryptionMode string 登录密码加密模式(读取 LoginConfig.LOGIN_PASSWORD_ENCRYPTION_MODE,缺省 0
departments array 部门列表(仅 isOpenSecurity=true 时返回)
domains array 企业域列表(仅 isOpenSecurity=true 时返回)

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "id": "__U001",
    "name": "admin",
    "type": 1,
    "level": 1,
    "isOpenSecurity": false,
    "encryptionMode": "0"
  },
  "errors": null
}
失败示例:方法签名 throws Exception,异常由 Spring 默认异常处理(HTTP 500,无统一 Resource 体)。


2. 获取用户列表

按企业域分页查询用户列表,支持按关键词(searchWord,模糊匹配)、角色(roleid)、状态(status)、部门(departmentid)、排序(orderby)、自定义扩展字段(fieldExtends)过滤。响应会处理上级用户 / 代理人的循环引用,并把管理 / 接口部门 id 数组解析为部门对象列表。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/domain/{domainid}/users(完整:{manager-context}/api/authtime/domain/{domainid}/users
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(空字符串返回 errcode=4001
content body JSON 过滤条件包体(字段见下)
currpage query string 当前页码,缺省取 body 的 currpage,再缺省 1
lines query string 每页条数,缺省取 body 的 lines,再缺省 10
departmentid query string 部门 id,缺省取 body 的 departmentid
orderby query string 排序字段,缺省取 body 的 orderby

请求体

JSON 对象(application/json):

字段 类型 必填 说明
searchWord string 关键词,空字符串或 "null" 视为不传
roleid string 角色 id,空字符串或 "null" 视为不传
status int 用户状态
fieldExtends object 自定义字段扩展过滤(键值对 Map)
currpage any 当前页码(query 缺省时回退)
lines any 每页条数(query 缺省时回退)
departmentid string 部门 id(query 缺省时回退)
orderby string 排序字段(query 缺省时回退)

请求示例

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

{
  "searchWord": "admin",
  "roleid": "",
  "status": 1,
  "fieldExtends": {}
}

响应

结构:统一 ResourcedataDataPackage<UserVO>,字段:

字段 类型 说明
linesPerPage int 每页条数
pageCount int 总页数
pageNo int 当前页码
rowCount int 总记录数
datas array\<UserVO> 用户数组(每个元素的 superiorproxyUser 已替换为仅含 id/name 的精简对象,避免循环引用)
条件 errcode errmsg data
domainid 为空 4001 企业域不存在 null
成功 0 ok DataPackage<UserVO>
抛异常 null(控制器 catchreturn null不返回统一 Resource

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 20,
    "pageCount": 1,
    "pageNo": 1,
    "rowCount": 1,
    "datas": [
      {
        "id": "__U001",
        "name": "admin",
        "loginno": "admin",
        "status": 1,
        "superior": { "id": "__U002", "name": "张三" },
        "proxyUser": null
      }
    ]
  },
  "errors": null
}
失败示例
HTTP 200,响应体为 null(异常被吞掉,返回 Java null)


3. 获取指定用户

按用户 id 查询用户详情。响应会处理上级用户 / 代理人的循环引用。用户不存在时返回 errcode=4001

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/user/{id}(完整:{manager-context}/api/authtime/user/{id}
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
id path string 用户 id

请求示例

GET /api/authtime/user/__U001 HTTP/1.1

响应

结构:统一 ResourcedataUserVOsuperior / proxyUser 已替换为仅含 id/name 的精简对象)。

条件 errcode errmsg data
用户不存在 4001 用户不存在 null
成功 0 ok UserVO

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "id": "__U001",
    "name": "admin",
    "loginno": "admin",
    "status": 1,
    "superior": null,
    "proxyUser": null
  },
  "errors": null
}
失败示例
{ "errcode": 4001, "errmsg": "用户不存在", "data": null, "errors": null }


4. 获取指定用户的部门角色和km角色的关系

按用户 id 查询其「部门 → 软件 → 角色」矩阵,前端用于展示用户在各应用中各部门下的角色绑定。用户不存在时返回 errcode=4001

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/user/{userid}/rolewithdeptandkmrelation(完整:{manager-context}/api/authtime/user/{userid}/rolewithdeptandkmrelation
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
userid path string 用户 id

请求示例

GET /api/authtime/user/__U001/rolewithdeptandkmrelation HTTP/1.1

响应

结构:统一 ResourcedataJSONObject,字段:

字段 类型 说明
departmentdata array\<Map> 部门矩阵列表,元素字段见下
departmentstatu boolean 固定为 true

departmentdata 元素字段:

字段 类型 说明
departmentId string 部门 id
departmentName string 部门名称
isDefaultDepartment boolean 是否为该用户的默认部门
applicationData array\<Map> 该部门下的软件-角色绑定列表

applicationData 元素字段:

字段 类型 说明
applicationId string 软件 id
applicationName string 软件名称(描述为空时取 name
roleData array\<Map> 角色列表(roleId / roleName
条件 errcode errmsg data
用户不存在 4001 用户不存在 null
成功 0 ok 上述 JSONObject
抛异常 null(控制器 catchreturn null不返回统一 Resource

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "departmentdata": [
      {
        "departmentId": "__DEPT01",
        "departmentName": "研发部",
        "isDefaultDepartment": true,
        "applicationData": [
          {
            "applicationId": "__APP01",
            "applicationName": "协同办公",
            "roleData": [ { "roleId": "__ROLE01", "roleName": "管理员" } ]
          }
        ]
      }
    ],
    "departmentstatu": true
  },
  "errors": null
}
失败示例
HTTP 200,响应体为 null(异常被吞掉,返回 Java null)


5. 根据账号获取指定用户(跨域查重)

按登录账号 loginNo 查询所有同名账号用户,返回第一个所属企业域与路径 domainid 不一致的用户(用于检测账号在其他域是否已被占用)。命中时返回脱敏后的用户资料;无跨域命中时返回 errcode=4001

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/domain/{domainid}/user(完整:{manager-context}/api/authtime/domain/{domainid}/user
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(仅作排除条件)
loginNo query string 登录账号

请求示例

GET /api/authtime/domain/__P1UD2yVWpnFpUedONr/user?loginNo=admin HTTP/1.1

响应

结构:统一 ResourcedataJSONObject,字段:

字段 类型 说明
name string 用户名称
loginpwd string 解密后的登录密码(Security.decryptPassword
email string 邮箱
telephone string 手机号
telephone2 string 备用手机号
field1~field10 string 10 个自定义扩展字段(field11 ~ field25 源码已注释不返回)
条件 errcode errmsg data
无跨域同名用户 4001 用户不存在 null
命中跨域同名用户 0 ok 上述 JSONObject

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "name": "管理员",
    "loginpwd": "plain-password",
    "email": "admin@example.com",
    "telephone": "13800138000",
    "telephone2": "",
    "field1": "", "field2": "", "field3": "", "field4": "", "field5": "",
    "field6": "", "field7": "", "field8": "", "field9": "", "field10": ""
  },
  "errors": null
}
失败示例
{ "errcode": 4001, "errmsg": "用户不存在", "data": null, "errors": null }


6. 创建用户

在指定企业域下新建用户。校验上级 / 代理人不能为自身、登录账号不能为 admin、代理人起止时间合法性、密码长度(LOGIN_PASSWORD_LENGTH)与密码字符规则(checkPassWord)。密码前端做「末两位挪到前面再 BASE64 解码」的轻量混淆。成功后若域开启了企业微信代理(非 WEIXIN_PROXY_TYPE_NONE),同步推送至企业微信端。响应 HTTP 状态码为 201

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/domain/{domainid}/user(完整:{manager-context}/api/authtime/domain/{domainid}/user
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(写入用户的 domainid 字段)
content body JSON UserVO 序列化字段(见下)

请求体

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

字段 类型 必填 说明
loginno string 登录账号(不能为 admin
loginpwd string 登录密码(前端混淆后的 BASE64 字符串)
name string 用户名称
superiorid string 上级用户 id(不能等于自身 id)
_proxyUser string 代理人用户 id(不能等于自身 id)
startProxyTime datetime 代理开始时间(设置代理人时必填且不得晚于结束时间)
endProxyTime datetime 代理结束时间(设置代理人时必填且不得早于当前时间)
_userRoleDepartmentJson string 用户-部门-角色绑定 JSON 数组文本(元素字段 userId/departmentId/roleId/applicationId
其他 UserVO 的其他持久化字段(邮箱、电话、部门、状态、扩展字段等)

请求示例

POST /api/authtime/domain/__P1UD2yVWpnFpUedONr/user HTTP/1.1
Content-Type: application/json

{
  "loginno": "zhangsan",
  "loginpwd": "encoded-password",
  "name": "张三",
  "superiorid": "__U001",
  "_userRoleDepartmentJson": "[{\"departmentId\":\"__DEPT01\",\"roleId\":\"__ROLE01\",\"applicationId\":\"__APP01\"}]"
}

响应

结构:统一 ResourcedataUserVO(新建并持久化后的对象,含生成的 id)。

条件 errcode errmsg data
上级为自身 4001 上级用户不能选择自身 null
代理人为自身 4001 代理人用户不能选择自身 null
账号为 admin 4001 {*[NotCanUseadminAsLoginno]*} null
代理开始时间晚于结束时间 4001 {*[page.core.calendar.overoftime]*} null
代理结束时间早于当前时间 4001 {*[cn.myapps.core.user.tip.proxyenddate_currenttime]*} null
密码长度不足 4001 {*[PasswordLengthCanNotLow]*}<N> null
密码字符不合法 500 checkPassWord 返回的提示 null
业务校验异常 500 <异常信息> null
成功 0 ok 新建 UserVO(HTTP 201)

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "id": "__NEWUSER001",
    "name": "张三",
    "loginno": "zhangsan",
    "domainid": "__P1UD2yVWpnFpUedONr",
    "status": 1
  },
  "errors": null
}
失败示例
{ "errcode": 4001, "errmsg": "上级用户不能选择自身", "data": null, "errors": null }


7. 更新用户 km 角色权限

roleIds × userIds × deptIds 的笛卡尔积,为一批用户在其对应部门上批量绑定 KM 角色权限。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/domain/user/role/auth(完整:{manager-context}/api/authtime/domain/user/role/auth
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
content body JSON 角色授权包体(字段见下)

请求体

JSON 对象(application/json):

字段 类型 必填 说明
roleIds string[] KM 角色 id 数组
userIds string[] 用户 id 数组
deptIds string[] 部门 id 数组

请求示例

PUT /api/authtime/domain/user/role/auth HTTP/1.1
Content-Type: application/json

{
  "roleIds": ["__KMROLE01"],
  "userIds": ["__U001", "__U002"],
  "deptIds": ["__DEPT01"]
}

响应

结构:统一 Resourcedatanull

成功示例

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


8. 保存 km 角色管理

ids 列出的用户批量保存 KM 角色配置:对每个用户取其默认部门,按 kmRoleSelectItem 逗号分隔的角色 id 列表,调用 createKmUseRole 写入该用户的 KM 角色绑定。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/domain/{domainid}/savekmconfig(完整:{manager-context}/api/authtime/domain/{domainid}/savekmconfig
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(路径变量,方法签名持有但实际逻辑未直接使用)
jsonObject body JSON 配置包体(字段见下)

请求体

JSON 对象(application/json):

字段 类型 必填 说明
kmRoleSelectItem string KM 角色 id 列表(逗号分隔)
ids string 用户 id 列表(逗号分隔)

请求示例

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

{
  "kmRoleSelectItem": "__KMROLE01,__KMROLE02",
  "ids": "__U001,__U002"
}

响应

结构:统一 Resourcedata:字符串 "保存成功"

成功示例

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


9. 更新用户

更新指定用户。校验上级 / 代理人不能为自身、登录账号不能为 admin、代理人起止时间合法性、密码长度与字符规则;支持密码占位符 888888qqqq(表示沿用原密码并按当前加密模式重编码)。禁用用户(status=0)时同步把已登录的 WebUser 状态置为 99(踢下线)。成功后若域开启了企业微信代理,同步推送至企业微信端。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/domain/{domainid}/user/{id}(完整:{manager-context}/api/authtime/domain/{domainid}/user/{id}
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id
id path string 用户 id(用作持久化依据,覆盖 body 中的 id
content body JSON UserVO 序列化字段(同「创建用户」)

请求体

同「创建用户」请求体,但额外支持:

字段 类型 必填 说明
loginpwd string 登录密码;值为 888888qqqq 时表示沿用原密码并按当前加密模式重新编码

请求示例

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

{
  "id": "__U001",
  "loginno": "zhangsan",
  "loginpwd": "888888qqqq",
  "name": "张三",
  "status": 1
}

响应

结构:统一 Resourcedata:字符串 "保存成功"

条件 errcode errmsg data
上级 / 代理人为自身 4001 对应提示 null
账号为 admin 4001 {*[NotCanUseadminAsLoginno]*} null
代理时间非法 4001 对应提示 null
密码长度不足 4001 {*[PasswordLengthCanNotLow]*}<N> null
密码字符不合法 500 checkPassWord 返回的提示 null
业务校验异常 500 <异常信息> null
成功 0 ok 保存成功

成功示例

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


10. 删除用户

按用户 id 数组批量删除用户,并把对应用户的 WebUser 会话状态置为 99(踢下线)。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/domain/{domainId}/user(完整:{manager-context}/api/authtime/domain/{domainId}/user
  • 鉴权:是
  • Tag:用户操作模块

请求参数

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

请求体

application/json,字符串数组:

[ "__U001", "__U002" ]

请求示例

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

[ "__U001" ]

响应

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

成功示例

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


11. 获取部门下的用户

分页查询「不属于指定部门」的用户列表(用于部门添加成员时从外部挑选)。响应结构同「获取用户列表」的 DataPackage<UserVO>(但**不**处理上级 / 代理人的循环引用)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/department/{departmentid}/users(完整:{manager-context}/api/authtime/department/{departmentid}/users
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
departmentid path string 部门 id
currpage query string 当前页码,默认 1
pagelines query string 每页条数,默认 10

请求示例

GET /api/authtime/department/__DEPT01/users?currpage=1&pagelines=20 HTTP/1.1

响应

结构:统一 ResourcedataDataPackage<UserVO>(结构同「获取用户列表」的 data)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "linesPerPage": 20,
    "pageCount": 1,
    "pageNo": 1,
    "rowCount": 1,
    "datas": [ { "id": "__U001", "name": "admin", "loginno": "admin", "status": 1 } ]
  },
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }


12. 用 excel 导入用户和部门

按上传 Excel 文件路径,把用户与部门导入指定企业域。文件扩展名必须为 .xls / .xlsx,否则返回 errcode=4001

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/domain/{domainid}/user/import(完整:{manager-context}/api/authtime/domain/{domainid}/user/import
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id
jsonObject body JSON 导入参数包体(字段见下)

请求体

JSON 对象(application/json):

字段 类型 必填 说明
path string 上传 Excel 文件的相对路径(相对于 web 根)

请求示例

POST /api/authtime/domain/__P1UD2yVWpnFpUedONr/user/import HTTP/1.1
Content-Type: application/json

{ "path": "/uploads/import/users.xlsx" }

响应

结构:统一 ResourcedataJSONObject(由 DomainProcess.excelImportToDomain 返回,结构由导入逻辑决定,通常含成功 / 失败计数)。

条件 errcode errmsg data
文件非 .xls / .xlsx 4001 {*[core.dts.excelimport.config.cannotimport]*} null
成功 0 ok 导入结果 JSONObject
抛异常 500 <异常信息> null

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": { "successCount": 10, "failCount": 0 },
  "errors": null
}
失败示例
{ "errcode": 4001, "errmsg": "{*[core.dts.excelimport.config.cannotimport]*}", "data": null, "errors": null }


13. 导出用户和部门

把指定企业域下的全部用户与部门导出为 Excel 文件(文件名 用户列表.xls),通过响应输出流下发二进制。

  • 接口类型:REST 资源(二进制流)
  • 请求方式GET
  • 请求路径/domain/{domainid}/user/export(完整:{manager-context}/api/authtime/domain/{domainid}/user/export
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id

请求示例

GET /api/authtime/domain/__P1UD2yVWpnFpUedONr/user/export HTTP/1.1

响应

  • Content-Typeappliction/excel(源码原样拼写,注意拼写)
  • Content-Dispositionattachment;fileName=<URL 编码后的「用户列表.xls」>
  • 状态码:200(成功)
  • 响应体:Excel 二进制流(无统一 Resource

注:本端点返回 void,异常被 catch 吞掉后无响应体输出。


14. 给角色批量添加用户

userIds × deptIds 的笛卡尔积,把指定角色绑定到每个用户的对应部门上(已存在的绑定会跳过)。若用户原本没有默认部门,自动取笛卡尔积中第一个部门作为默认部门。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/user/batch(完整:{manager-context}/api/authtime/user/batch
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
json body JSON 批量授权包体(字段见下)

请求体

JSON 对象(application/json):

字段 类型 必填 说明
userIds string[] 用户 id 数组(非空才处理)
deptIds string[] 部门 id 数组(非空才处理)
roleId string 角色 id

请求示例

POST /api/authtime/user/batch HTTP/1.1
Content-Type: application/json

{
  "userIds": ["__U001", "__U002"],
  "deptIds": ["__DEPT01"],
  "roleId": "__ROLE01"
}

响应

结构:统一 Resourcedatanull

条件 errcode errmsg data
userIdsdeptIds 为空 0 ok null(直接跳过逻辑)
成功 0 ok null
抛异常 500 <异常信息> null

成功示例

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


15. 批量废置用户

把一批用户的状态置为离职(UserVO.DIMISSION),并把对应用户的 WebUser 会话状态置为 99(踢下线)。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/domain/{domainid}/user/abandonment(完整:{manager-context}/api/authtime/domain/{domainid}/user/abandonment
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
domainid path string 企业域 id(路径变量,方法签名持有但实际逻辑未直接使用)
content body string 用户 id 的 JSON 数组文本(JSONArray.fromObject 解析)

请求体

application/json,字符串数组:

[ "__U001", "__U002" ]

请求示例

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

[ "__U001" ]

响应

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

成功示例

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


16. 更新用户信息(个人资料 / 密码)

当前管理员更新个人资料(姓名 / 邮箱 / 电话 / 头像),或修改登录密码(含原密码校验、二次确认、密码历史校验、密码长度与字符规则校验)。密码前端做「末两位挪到前面再 BASE64 解码」的轻量混淆。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/domain/user/{userId}/detail(完整:{manager-context}/api/authtime/domain/user/{userId}/detail
  • 鉴权:是
  • Tag:用户操作模块

请求参数

参数名 位置 类型 必填 说明
userId path string 用户 id
content body JSON 个人资料或密码修改包体(字段见下)

请求体

JSON 对象(application/json),按是否修改密码分两种形态:

形态一:修改密码(包体含 oldPassword

字段 类型 必填 说明
oldPassword string 原密码(前端混淆后的 BASE64 字符串)
newpassword string 新密码(前端混淆后的 BASE64 字符串)
confirmPassword string 二次确认新密码(前端混淆后的 BASE64 字符串)

形态二:仅改资料(包体不含 oldPassword

字段 类型 必填 说明
name string 用户名称
email string 邮箱
telephone string 手机号
avatar string 头像 URL

请求示例

POST /api/authtime/domain/user/__U001/detail HTTP/1.1
Content-Type: application/json

{
  "name": "管理员",
  "email": "admin@example.com",
  "telephone": "13800138000",
  "avatar": "/uploads/avatar/admin.png"
}

响应

结构:统一 Resourcedatanull

条件 errcode errmsg data
两次输入的密码不一致 4001 两次输入的密码不一致 null
原密码错误 4001 原密码错误 null
密码长度不足 4001 密码长度不能小于<N> null
密码字符不合法 4001 checkPassWord 返回的提示 null
业务校验异常 500 <异常信息> null
成功 0 ok null

成功示例

{ "errcode": 0, "errmsg": "ok", "data": null, "errors": null }
失败示例
{ "errcode": 4001, "errmsg": "原密码错误", "data": null, "errors": null }