跳转至

日志(LogsController)

提供 KMS 知识管理模块「日志域」的能力:用户操作日志查询、KM 访问日志查询、所有用户文件上传数量统计。本控制器共 3 个端点,所有端点均返回 JSON 资源。

  • 接口类型:REST 资源(@RestController,所有方法级 produces = MediaType.APPLICATION_JSON_VALUE
  • 基址${myapps.context-path.kms:}/api/kms(类级 @RequestMapping 仅声明单一前缀)
  • Tag:kms日志模块

公共说明

  • 鉴权(据源码 KmsMvcConfig + KmsSecurityFilterKmsMvcConfig 注册全局 Servlet 过滤器 KmsSecurityFilter(URL 模式 /*,context-path 为 / 时为 /kms/*)。本控制器路径 /api/kms/users/{userId}/logs/api/kms/logs/api/kms/logs/getAllUserUploadFileCount 不在 KmsSecurityFilter.isExcludeURI 的豁免名单内(豁免仅覆盖 /login.*/admin/domain.*/tray/service/authtimeservice/OfficeServer.*outsideshare/.*/preview、静态资源后缀、actuator/health 等)。过滤器调用 Security.getUserIdFromToken(request),取不到用户则返回 HTTP 401因此所有端点均需 accessToken,可通过以下任一方式传递(据 Security.getUserIdFromToken):query 参数 accessToken、query 参数 access_token(移动端)、请求头 accessToken、Cookie accessToken、请求头 Authorization: Bearer <token>。完整鉴权机制见 index.md「鉴权说明」。
  • 执行用户#3 调用 getUser().getDomainid() 取当前用户企业域;#1#2 不调用 getUser(),按入参 userId/deptId 过滤。
  • 响应结构:统一 Resource(见 ../index.md「统一响应结构」),字段为 errcode/errmsg/data/errors
  • 路径变量userId 为 KMS 内部用户主键(与 UserAPI 一致)。

1. 查询我的日志

按用户Id、操作类型、关键字分页查询该用户的操作日志(据 Javadoc「查询我的日志」)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/users/{userId}/logs(完整:{kms-context}/api/kms/users/{userId}/logs
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms日志模块

请求参数

参数名 位置 类型 必填 说明
userId path string 用户Id
keyWord query string 关键字(模糊匹配)
operationType query int 操作类型
pageNo query int 页码
linesPerPage query int 每页条数

请求示例

GET /api/kms/users/__USERID__/logs?operationType=1&pageNo=1&linesPerPage=20&accessToken=__TOKEN__ HTTP/1.1

响应

结构:统一 ResourcedataDataPackage<Logs>,日志分页数据。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "pageNo": 1,
    "linesPerPage": 20,
    "rowCount": 35,
    "datas": [
      { "id": "__LOGID__", "userId": "__USERID__", "operationType": 1, "content": "预览文件 报告.docx", "operationDate": "2026-08-04 10:00:00" }
    ]
  },
  "errors": null
}


2. 查询 KM 访问日志

按用户、部门、操作类型、时间范围分页查询 KM 系统访问日志(据 Javadoc「KM访问日志」)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/logs(完整:{kms-context}/api/kms/logs
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms日志模块

请求参数

参数名 位置 类型 必填 说明
userId query string 用户Id
deptId query string 部门Id
keyWord query string 关键字
operationType query int 操作类型
startDate query date 起始时间(Spring 默认按日期解析;建议传毫秒时间戳或 ISO 串,与服务端 Date 参数绑定一致)
endDate query date 截止时间
pageNo query int 页码
linesPerPage query int 每页条数

注:本端点的 startDate/endDate 由 Spring 按方法签名 Date 自动绑定,时间格式由全局 @InitBinder 决定(与 ReportController 中以字符串接收再手动解析不同)。

请求示例

GET /api/kms/logs?deptId=__DEPTID__&operationType=1&pageNo=1&linesPerPage=20&accessToken=__TOKEN__ HTTP/1.1

响应

结构:统一 ResourcedataDataPackage<Logs>,访问日志分页数据。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "pageNo": 1,
    "linesPerPage": 20,
    "rowCount": 120,
    "datas": [ { "id": "__LOGID__", "userId": "__USERID__", "operationType": 1, "content": "下载文件 方案.docx" } ]
  },
  "errors": null
}


3. 获取所有用户的文件上传数量

分页统计当前用户企业域下所有用户的文件上传数量,并按 userId 经 Feign 回查补全 userName/name/avatar 字段(用户信息查询失败时仅记录日志,不中断统计流程)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/logs/getAllUserUploadFileCount(完整:{kms-context}/api/kms/logs/getAllUserUploadFileCount
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms日志模块

请求参数

参数名 位置 类型 必填 说明
linesPerPage query int 每页条数
pageNo query int 页码

请求示例

GET /api/kms/logs/getAllUserUploadFileCount?pageNo=1&linesPerPage=20&accessToken=__TOKEN__ HTTP/1.1

响应

结构:统一 ResourcedataDataPackage<Map>,分页信息沿用底层结果(linesPerPage/pageNo/rowCount),datas 中每项为 Map

字段 类型 说明
userName string 用户名(来自 ContributionFileCount
fileUploadCount number 文件上传数量
id string 用户Id
avatar string 头像(JSON 字符串,来自 KmsUser.avatar;查询失败时缺省)
name string 用户姓名(来自 KmsUser.name;查询失败时缺省)

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": {
    "pageNo": 1,
    "linesPerPage": 20,
    "rowCount": 5,
    "datas": [
      { "userName": "zhangsan", "fileUploadCount": 28, "id": "__USERID1__", "avatar": "{...}", "name": "张三" }
    ]
  },
  "errors": null
}