'use strict'; const audit = require('../const/audit'); module.exports = app => { class WeappReviseController extends app.BaseController { async index(ctx) { try { const tenderId = ctx.params.id; const show_revise_invalid = 1; const ledgerRevise = await ctx.service.ledgerRevise.getReviseList(tenderId, show_revise_invalid); ctx.body = { code: 0, msg: '', data: ledgerRevise }; } catch (err) { this.log(err); ctx.body = { code: -1, msg: err.toString(), data: null }; } } async check(ctx) { try { const reviseId = ctx.params.rid; const revise = await ctx.service.ledgerRevise.getDataById(reviseId); if (!revise) { ctx.body = { code: -1, msg: '修订不存在', data: null }; return; } if (revise.status !== audit.revise.status.checking) { ctx.body = { code: -1, msg: `修订状态不正确,当前状态为"${audit.revise.statusString[revise.status] || '未知'}",无法审批`, data: { currentStatus: revise.status } }; return; } revise.curHis = revise.his_id ? await ctx.service.ledgerHistory.getDataById(revise.his_id) : null; const curAudits = await ctx.service.reviseAudit.getCurAuditors(revise.id, revise.times); const curAuditorIds = curAudits.map(x => { return x.audit_id; }); if (curAuditorIds.indexOf(ctx.session.sessionUser.accountId) < 0) { ctx.body = { code: -1, msg: '您不是当前审批人,无权进行该操作', data: null }; return; } const data = ctx.request.body; const checkType = parseInt(data.checkType); if (!checkType || isNaN(checkType)) { ctx.body = { code: -1, msg: '提交数据错误:缺少审批类型参数', data: null }; return; } const opinion = data.opinion || ''; await ctx.service.reviseAudit.check(revise, checkType, opinion, revise.times); ctx.body = { code: 0, msg: '审批成功', data: null }; } catch (err) { ctx.body = { code: -1, msg: err.toString(), data: null }; } } } return WeappReviseController; };