在产品的使用过程当中,常常要针对某个订单表、申请表等进行操做日志记录,但愿有一个统一的服务能够一次性解决这个痛点数据库
服务结构图
app
注解 | 介绍 | 参数 |
---|---|---|
@OperationLog | 在DAO(MAPPER)层的方法上添加此注解,表示会发送日志请求 | tableName-表名;type-操做类型;remark-备注;primaryTable-是否主表,若是有@Transactional注解 须要标记此字段 |
@OperationLogAlias | 在参数实体类的字段里,添加此字段,表示显示的名字,不以数据库的备注,而是以此 | key-字典表的key;type-别名类型;dataBaseName-库名;tableName-表名;fieldName-字段名;fieldId-表的id;attributeAlias-显示名字的别名 |
@OperationLogIgnore | 在参数实体类的字段里,添加此字段,表示忽略此字段,不会保存到日志服务 |
操做表operation_{{databaseName}},例:保存car库的车辆申请信息apply,databaseName:car数据库设计
字段 | 类型 | 备注 |
---|---|---|
database_name | char | 目标的数据库名,如:car |
table_name | char | 表名,如:apply表 |
object_id | char | apply表的主键id |
group_id | char | 分组id,apply有扩展信息也要保存,那么在同一组,通常取apply表的主键id |
operator | char | 操做人姓名 |
operation_type | char | 操做类型名称,好比,新增 保存 |
operation_alias | char | 操做的别名,对于调皮的产品,老是有奇怪的想法,好比:某某人,左脚一跺,一条订单隐隐浮现到订单榜中 |
属性表attribution_{{databaseName}}设计
字段 | 类型 | 备注 |
---|---|---|
operation_id | char | 操做表id |
attribute_alias | char | 属性别名 |
old_value | char | 旧值 |
new_value | char | 新值 |
remark | char | 备注:将{{attribute_alias}}由{{old_value}}改为{{new_value}},写在触发器插入的时候 |