'use strict'; module.exports = app => { class ScheduleLedgerMonth extends app.BaseService { constructor(ctx) { super(ctx); this.tableName = 'schedule_ledger_month'; } async save(data) { // 判断是添加,删除,还是修改 const transaction = await this.db.beginTransaction(); try { const info = await this.getDataByCondition({ tid: this.ctx.tender.id, lid: data.lid, yearmonth: data.yearmonth }); if (info) { if (data.plan_gcl === null && data.plan_tp === null) { await transaction.delete(this.tableName, { id: info.id }); } else { const updateData = { id: info.id, plan_gcl: data.plan_gcl, plan_tp: data.plan_tp, }; await transaction.update(this.tableName, updateData); } } else { const insertData = { tid: this.ctx.tender.id, lid: data.lid, yearmonth: data.yearmonth, plan_gcl: data.plan_gcl, plan_tp: data.plan_tp, }; await transaction.insert(this.tableName, insertData); } await transaction.commit(); return true; } catch (err) { await transaction.rollback(); throw err; } } } return ScheduleLedgerMonth; };