Open duanluan opened 1 year ago
话题好大,信息有点多。@LogRecordField这个优化点我要考虑下,感觉意义也没有那么大,目前能做的也就是提供个alias。
话说你贴的代码实现的这种处理,我给的diffDTOList里应该有的。可以针对diffDTO处理的吧。
"diffDTOList":[
{
"diffFieldDTOList":[
{
"fieldName":"id",
"newFieldAlias":"用户工号",
"newValue":2,
"oldFieldAlias":"用户工号",
"oldValue":1
},
{
"fieldName":"name",
"newValue":"李四",
"oldValue":"张三"
}],
"newClassAlias":"用户信息实体",
"newClassName":"cn.monitor4all.logRecord.test.bean.TestUser",
"oldClassAlias":"用户信息实体",
"oldClassName":"cn.monitor4all.logRecord.test.bean.TestUser"
},
{
"diffFieldDTOList":[
{
"fieldName":"id",
"newFieldAlias":"用户工号",
"newValue":2,
"oldFieldAlias":"用户工号",
"oldValue":1
},
{
"fieldName":"name",
"newValue":"李四",
"oldValue":"张三"
}],
"newClassAlias":"用户信息实体",
"newClassName":"cn.monitor4all.logRecord.test.bean.TestUser",
"oldClassAlias":"用户信息实体",
"oldClassName":"cn.monitor4all.logRecord.test.bean.TestUser"
}]
我再提些建议,你别烦我🥺
我在使用过程中自定义了一个
toLogString
函数,作用是传进去对象或集合,输出有@LogRecordDiffField
的属性,而且还和diff-ignore-new-object-null-value
、diff-msg-separator
结合起来使用了。我觉得将参数属性名转为中文是很常见的需求,可以新增类似的公共函数。我觉得
@LogRecordDiffField
注解可以改成@LogRecordField
,然后同时适用于 Diff 和其他功能,就像 MyBatis Plus 的@TableField
或 Hibernate 的@Column
一样。我很久以前写过一个基于 Hibernate 的注解日志记录,会自动将带有
@Column
的属性名转为这个注解的 comment 输出,或者将它的属性名、@Column 注解的 comment 属性的值、属性值传到一个集合里后续再使用。我觉得除了新增类似的公共函数之外,也可以给
@OperationLog
加一个属性,为 true 就直接把属性名转成@LogRecordField
的 alias 的值了。CustomLogFn
: