'use strict'; const scheduleConst = require('../const/schedule'); module.exports = app => { class ScheduleAudit extends app.BaseService { constructor(ctx) { super(ctx); this.tableName = 'schedule_audit'; } async addAudit(data) { const transaction = await this.db.beginTransaction(); try { const insertData = { tid: this.ctx.tender.id, audit_id: data.audit_id, in_time: new Date(), }; const result = await transaction.insert(this.tableName, insertData); await transaction.commit(); return await this.getDataById(result.insertId); } catch (err) { await transaction.rollback(); throw err; } } async removeAudit(data) { const transaction = await this.db.beginTransaction(); try { await transaction.delete(this.tableName, { id: data.id }); await transaction.commit(); return true; } catch (err) { await transaction.rollback(); throw err; } } async editAudit(data) { const transaction = await this.db.beginTransaction(); try { if (!this._.includes(this._.values(scheduleConst.permission), data.permission)) { throw '修改失败'; } await transaction.update(this.tableName, { id: data.id, permission: data.permission }); await transaction.commit(); return true; } catch (err) { await transaction.rollback(); throw err; } } } return ScheduleAudit; };