change_apply_history.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use strict';
  2. /**
  3. * 变更新增部位插入记录表
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. module.exports = app => {
  10. class ChangeApplyHistory extends app.BaseService {
  11. /**
  12. * 构造函数
  13. *
  14. * @param {Object} ctx - egg全局变量
  15. * @return {void}
  16. */
  17. constructor(ctx) {
  18. super(ctx);
  19. this.tableName = 'change_apply_history';
  20. }
  21. async saveHistory(transaction, data, list) {
  22. await transaction.insert(this.tableName, {
  23. tid: data.tid,
  24. caid: data.id,
  25. info_json: JSON.stringify(data),
  26. list_json: JSON.stringify(list),
  27. });
  28. }
  29. async returnHistory(transaction, caid) {
  30. const data = await transaction.get(this.tableName, { caid });
  31. if (!data) throw '撤销前数据不存在,无法撤销';
  32. const change_update = {};
  33. const oldInfo = JSON.parse(data.info_json);
  34. for (const key in oldInfo) {
  35. if (key !== 'in_time') {
  36. change_update[key] = oldInfo[key];
  37. }
  38. }
  39. await transaction.update(this.ctx.service.changeApply.tableName, change_update);
  40. const oldList = JSON.parse(data.list_json);
  41. // 先删后插
  42. await transaction.delete(this.ctx.service.changeApplyList.tableName, { caid });
  43. if (oldList.length > 0) await transaction.insert(this.ctx.service.changeApplyList.tableName, oldList);
  44. }
  45. }
  46. return ChangeApplyHistory;
  47. };