1. ↖回到主目录

2. 更新日志组件 ChangeManager

读取修改日志的代码很简单, 共写了2个例子, 如下:

  1. @Service
  2. public class UserService extends AdvancedService<UserDao, UserDTO> {
  3. @Override
  4. public void afterInsertOrUpdate(UserDTO userDTO, String state) {
  5. if (DbState.UPDATE.equals(state)) {
  6. // 例一:
  7. ChangeManager changeManager = changeManager(userDTO)
  8. .addFieldLabel("name", "用户姓名") //设置该字段的日志输出的中文名
  9. .addFieldLabel("mobile", "手机号"); //设置该字段的日志输出的中文名
  10. //输出 方式一 参数格式
  11. logger.debug("修改日志:{}", changeManager.output().toString() );
  12. // 输出样例:
  13. /**
  14. 修改日志:
  15. id:000000, //用户的id
  16. 用户姓名:开发者->开发者2,
  17. 手机号:13588330001->1805816881122
  18. */
  19. // 输出 方式二 JSON格式
  20. logger.debug("修改日志:{}", changeManager.outJSONString() );
  21. // 输出样例: c是 current的简写, 是当前值, 新值; o是 old的简写, 修改之前的值
  22. /**
  23. 修改日志:
  24. {
  25. "appName":"sec",
  26. "executeId":"1561367017351_14",
  27. "id":"000000",
  28. "data":{
  29. "version":{"c":"207","o":206},
  30. "用户姓名":{"c":"开发者2","o":"开发者"},
  31. "手机号":{"c":"1805816881122","o":"13588330001"}
  32. }
  33. }
  34. */
  35. //************************************************************************************
  36. // 例二 没有用 addFieldLabel 设置字段输出的中文名, 则data中的keys输出全部为英文
  37. logger.debug("修改日志:{}", changeManager(userDTO).outJSONString() );
  38. // 输出 JSON格式
  39. /**
  40. 修改日志:
  41. {
  42. "appName":"sec",
  43. "executeId":"1561367017351_14",
  44. "id":"000000",
  45. "data":{
  46. "version":{"c":"207","o":206},
  47. "name":{"c":"开发者2","o":"开发者"},
  48. "mobile":{"c":"1805816881122","o":"13588330001"}
  49. }
  50. }
  51. */
  52. //************************************************************************************
  53. }
  54. }
  55. }