请问“要显示这个版本修改了什么”这个功能,应该如何做比较好?

2023-07-31 09:08:15 +08:00
 BraveXaiver
在页面上,用户可以点进一笔订单的详情页查看,并且可以修改一些字段。这个详情页里大概有五十多个字段,其所对应的 VO 大概有两三层的深度。

用户修改了之后,会有审核员来审核这个修改。审核员希望说能清晰地看到用户到底做了什么修改。

请问下想实现这个功能,前后端(定死了用 js 和 java )该怎么设计比较好呢?

谢谢
1388 次点击
所在节点    问与答
9 条回复
mineralsalt
2023-07-31 09:11:49 +08:00
把修改记录先存到 redis 里面, 审核员那边显示与数据库记录的变化字段, 审核通过再更新到数据库里面呗
evalcony
2023-07-31 09:29:06 +08:00
数据库加表。然后把用户每次提交之前的操作相关数据存进去。
paopjian
2023-07-31 09:31:09 +08:00
数据库加一条版本号记录,每次修改新增一条数据,改版本号
nekomiao
2023-07-31 09:34:04 +08:00
js 可以用 diff.js
jackbrother
2023-07-31 09:41:45 +08:00
gpt
Shamiko
2023-07-31 10:05:51 +08:00
加版本号,然后 diff 显示
coderwl
2023-07-31 12:03:16 +08:00
我做过这个,主要是用来审计用户的修改信息,推荐一个好用的库 javers
kasusa
2023-07-31 14:40:55 +08:00
我想可以导出成 2 个 json ,然后两个 json 用工具一对比,这可能对审核员要求高一点。但是应该很好开发
sentinelK
2023-07-31 14:52:02 +08:00
如果对性能不敏感,两个 model 直接反射遍历所有字段,比较 value 应该就可以吧?
只要两个相同 key 的 value 不相等,那么就单独列出即可。

当然,前端把这个做成业务也行。(做在提交前检查中,如果域和 init 的值有区别,则记录一条变化日志,最终随订单的 update 一起提交。)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961087

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX