weapp_tender_check.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. 'use strict';
  2. const auditConst = require('../const/audit').ledger;
  3. const messageType = require('../const/message_type');
  4. const buildStatus = require('../const/tender').buildStatus;
  5. module.exports = options => {
  6. return async function weappTenderCheck(ctx, next) {
  7. try {
  8. const tenderId = ctx.request.body.tenderId || ctx.request.query.tenderId || ctx.params.tenderId;
  9. const accountId = ctx.session.sessionUser.accountId;
  10. // 读取标段数据
  11. const tender = { id: Number(tenderId) };
  12. if (!tender.id) {
  13. throw '当前未打开标段';
  14. }
  15. tender.data = await ctx.service.tender.getTender(tender.id);
  16. if (!tender.data) {
  17. throw '标段数据错误';
  18. }
  19. if (!tender.data.measure_type) {
  20. throw '请先选择计量模式';
  21. }
  22. tender.info = await ctx.service.tenderInfo.getTenderInfo(tender.id);
  23. if (!tender.data.ledger_times) {
  24. tender.data.ledger_times = 1;
  25. }
  26. if (!tender.data.ledger_status) {
  27. tender.data.ledger_status = auditConst.status.uncheck;
  28. }
  29. if (tender.data.project_id !== ctx.session.sessionProject.id) {
  30. throw '您无权查看该项目';
  31. }
  32. const isTenderTourist = await ctx.service.tenderTourist.getDataByCondition({ tid: tender.id, user_id: accountId });
  33. tender.isTourist = isTenderTourist !== null;
  34. ctx.tender = tender;
  35. await next();
  36. } catch (err) {
  37. console.log(err);
  38. ctx.body = { code: -1, msg: err.toString(), data: null };
  39. return;
  40. }
  41. };
  42. };