'use strict'; /** * * * @author Mai * @date * @version */ const auditConst = require('../const/audit').flow; module.exports = options => { /** * 期校验 中间件 * 1. 读取期数据 * 2. 检验用户是否参与期(不校验具体权限) * * @param {function} next - 中间件继续执行的方法 * @return {void} */ return function* stageCheck(next) { try { // 读取标段数据 const stageOrder = parseInt(this.params.id); if (stageOrder <= 0) { throw '您访问的期不存在'; } console.log(this.tender); console.log(stageOrder); const stage = yield this.service.stage.getDataByCondition({ tid: this.tender.id, order: stageOrder, }); console.log(stage); if (!stage) { throw '期数据错误' } stage.auditors = yield this.service.stageAudit.getAuditors(stage.id, stage.times); stage.curAuditor = yield this.service.stageAudit.getCurAuditor(stage.id, stage.times); // todo 校验权限 (标段参与人、分享) this.stage = stage; yield next; } catch (err) { console.log(err); // 输出错误到日志 if (err.stack) { this.logger.error(err); } else { this.getLogger('fail').info(JSON.stringify({ error: err, project: this.session.sessionProject, user: this.session.sessionUser, body: this.session.body, })); } // 重定向值标段管理 this.redirect(this.request.headers.referer); } }; };