'use strict'; /** * 变更新增部位插入记录表 * * @author Mai * @date * @version */ module.exports = app => { class ChangePlanHistory extends app.BaseService { /** * 构造函数 * * @param {Object} ctx - egg全局变量 * @return {void} */ constructor(ctx) { super(ctx); this.tableName = 'change_plan_history'; } async saveHistory(transaction, data, list) { await transaction.insert(this.tableName, { tid: data.tid, cpid: data.id, info_json: JSON.stringify(data), list_json: JSON.stringify(list), }); } async returnHistory(transaction, cpid) { const data = await transaction.get(this.tableName, { cpid }); if (!data) throw '撤销前数据不存在,无法撤销'; const change_update = {}; const oldInfo = JSON.parse(data.info_json); for (const key in oldInfo) { if (key !== 'in_time') { change_update[key] = oldInfo[key]; } } await transaction.update(this.ctx.service.changePlan.tableName, change_update); const oldList = JSON.parse(data.list_json); // 先删后插 await transaction.delete(this.ctx.service.changePlanList.tableName, { cpid }); if (oldList.length > 0) await transaction.insert(this.ctx.service.changePlanList.tableName, oldList); } } return ChangePlanHistory; };