Class OperationLogDTO

java.lang.Object
org.shoulder.log.operation.model.OperationLogDTO
All Implemented Interfaces:
Serializable, Cloneable

public class OperationLogDTO extends Object implements Cloneable, Serializable
操作日志实体 (所有字段均为 protect: 方便使用者灵活扩展) 重要信息:操作时间、用户id、用户名称,IP、操作动作、被操作对象、操作结果、操作详情 其他信息:操作者终端标识、操作者使用的终端类型、追踪链路标识 traceId

todo 【可选优化】考虑记录请求 url?

Author:
lym
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected String
    应用标识 (必填) 默认取 `spring.application.name`
    protected String
    与本次操作所关联其他业务操作的业务号 ,用于多个请求完共同完成一个业务功能时(选填) 例 上传csv进行数据的批量导入场景:上传导入文件、校验导入数据、点击确认导入、导入成功业务相关可以填同一个标识符 上传新头像、确定修改个人信息也可以有相同的业务标识
    protected String
    本次操作的详细描述(选填) 详细的描述用户的操作内容,如被操作对象的 json 输出,注意不要输出密码等敏感信息,或是具体发生了怎样的事情
    protected List<String>
    操作详情占位填充项,用于填充 detailKey 中的 %1,%2,%n
    protected String
    操作详情对应的多语言key(选填) - 若不支持多语言则不填。 占位符使用 %1,%2,%n形式,n表示第n个参数;
    protected Instant
    操作结束时间
    protected String
    当操作结果为失败时,记录操作失败对应的错误码(选填)
    protected Map<String,Object>
    扩展字段 (选填) key 不能为 null
    protected Long
    应用实例编号 / 机器序号
    protected String
    被操作对象唯一标示 (选填) 例: tb_user 的 userId
    protected String
    操作对象的名称 (选填) 若存在多个值时,以 ","分隔 例: "user1,user2,user3"
    protected String
    被操作对象的类型标识 (选填) Key格式为:objectType.<操作对象类型标识>
    protected String
    具体操作标识 【必填】 多语言翻译文件由服务提供,导入到网关或日志服务前端,展示时翻译。 例:注册、登录、退出、查询、新增、修改、删除、下载等
    protected Instant
    操作发生时间
    protected List<OpLogParam>
    操作参数,记录业务操作的参数信息,用于操作审计和分析 (选填)
    protected String
    操作者所在终端标识,如 IP (选填) 用户终端机器IP 例:192.168.0.10 若系统内部触发为服务部署机器IP
    protected OperationResult
    本次操作结果(必填)
    protected String
    租户编码
    protected String
    操作者终端标识 (选填),也可以生成 UUID 手机设备的唯一标识:IMSI、IMEI、ESN、MEID PC 中网卡唯一标识 MAC 地址 系统内部触发记为服务器所在机器 MAC 地址
    protected String
    操作者终端信息,如浏览器可获取 UserAgent、App 可获取手机类型 (选填)
    protected TerminalType
    操作者终端类型 (必填)
    protected String
    本次业务操作的调用链标识(选填)
    protected String
    操作者标识 【必须】 用户 ————————— 用户名唯一标识,用户名、用户id等 系统内部触发 —— 应用标识 格式为 "system.应用标识" 例: system.order
    protected String
    操作者姓名(选填) 用户 ————————— 用户昵称, 例: lym 系统内部触发 —— 不填
    protected String
    操作者所属组唯一标识(选填) 用户 ————————— 所属组织/用户组/群/部门标识 例: tb_user_group 表的 主键 系统内部触发 —— 不填
    protected String
    操作者所属组名称(选填)
    protected String
    操作者真实姓名,适合在实名制较强的后台管理系统 (选填) 用户 ————————— 用户对应的真实姓名 系统内部触发 —— 不填
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    引导使用者填写必要字段
  • Method Summary

    Modifier and Type
    Method
    Description
    addDetailItem(String detailItem)
     
     
    克隆日志实体
    <T> T
     
    setExtField(String extKey, Object value)
    put Field to extends has order
    填充单个被操作对象信息
    填充操作者信息
     

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • userId

      protected String userId
      操作者标识 【必须】 用户 ————————— 用户名唯一标识,用户名、用户id等 系统内部触发 —— 应用标识 格式为 "system.应用标识" 例: system.order
    • userName

      protected String userName
      操作者姓名(选填) 用户 ————————— 用户昵称, 例: lym 系统内部触发 —— 不填
    • userRealName

      protected String userRealName
      操作者真实姓名,适合在实名制较强的后台管理系统 (选填) 用户 ————————— 用户对应的真实姓名 系统内部触发 —— 不填
    • userOrgId

      protected String userOrgId
      操作者所属组唯一标识(选填) 用户 ————————— 所属组织/用户组/群/部门标识 例: tb_user_group 表的 主键 系统内部触发 —— 不填
    • userOrgName

      protected String userOrgName
      操作者所属组名称(选填)
    • terminalType

      protected TerminalType terminalType
      操作者终端类型 (必填)
    • remoteAddress

      protected String remoteAddress
      操作者所在终端标识,如 IP (选填) 用户终端机器IP 例:192.168.0.10 若系统内部触发为服务部署机器IP
    • terminalId

      protected String terminalId
      操作者终端标识 (选填),也可以生成 UUID 手机设备的唯一标识:IMSI、IMEI、ESN、MEID PC 中网卡唯一标识 MAC 地址 系统内部触发记为服务器所在机器 MAC 地址
    • terminalInfo

      protected String terminalInfo
      操作者终端信息,如浏览器可获取 UserAgent、App 可获取手机类型 (选填)
    • operation

      protected String operation
      具体操作标识 【必填】 多语言翻译文件由服务提供,导入到网关或日志服务前端,展示时翻译。 例:注册、登录、退出、查询、新增、修改、删除、下载等
    • operationTime

      protected Instant operationTime
      操作发生时间
    • endTime

      protected Instant endTime
      操作结束时间
    • params

      protected List<OpLogParam> params
      操作参数,记录业务操作的参数信息,用于操作审计和分析 (选填)
      See Also:
    • detail

      protected String detail
      本次操作的详细描述(选填) 详细的描述用户的操作内容,如被操作对象的 json 输出,注意不要输出密码等敏感信息,或是具体发生了怎样的事情
    • detailKey

      protected String detailKey
      操作详情对应的多语言key(选填) - 若不支持多语言则不填。 占位符使用 %1,%2,%n形式,n表示第n个参数;
    • detailItems

      protected List<String> detailItems
      操作详情占位填充项,用于填充 detailKey 中的 %1,%2,%n
    • result

      protected OperationResult result
      本次操作结果(必填)
    • errorCode

      protected String errorCode
      当操作结果为失败时,记录操作失败对应的错误码(选填)
    • objectType

      protected String objectType
      被操作对象的类型标识 (选填) Key格式为:objectType.<操作对象类型标识>
    • objectId

      protected String objectId
      被操作对象唯一标示 (选填) 例: tb_user 的 userId
    • objectName

      protected String objectName
      操作对象的名称 (选填) 若存在多个值时,以 ","分隔 例: "user1,user2,user3"
    • businessId

      protected String businessId
      与本次操作所关联其他业务操作的业务号 ,用于多个请求完共同完成一个业务功能时(选填) 例 上传csv进行数据的批量导入场景:上传导入文件、校验导入数据、点击确认导入、导入成功业务相关可以填同一个标识符 上传新头像、确定修改个人信息也可以有相同的业务标识
    • tenantCode

      protected String tenantCode
      租户编码
    • appId

      protected String appId
      应用标识 (必填) 默认取 `spring.application.name`
    • instanceId

      protected Long instanceId
      应用实例编号 / 机器序号
    • traceId

      protected String traceId
      本次业务操作的调用链标识(选填)
    • extFields

      protected Map<String,Object> extFields
      扩展字段 (选填) key 不能为 null
  • Constructor Details

    • OperationLogDTO

      public OperationLogDTO()
    • OperationLogDTO

      public OperationLogDTO(String operation)
      引导使用者填写必要字段
  • Method Details