dashboard_controller.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. 'use strict';
  2. /**
  3. * 控制面板
  4. *
  5. * @author CaiAoLin
  6. * @date 2017/11/23
  7. * @version
  8. */
  9. const auditConst = require('../const/audit');
  10. module.exports = app => {
  11. class DashboardController extends app.BaseController {
  12. /**
  13. * 控制面板页面
  14. *
  15. * @param {Object} ctx - egg全局变量
  16. * @return {void}
  17. */
  18. async index(ctx) {
  19. const auditTenders = await ctx.service.ledgerAudit.getAuditTender(ctx.session.sessionUser.accountId);
  20. const auditStages = await ctx.service.stageAudit.getAuditStage(ctx.session.sessionUser.accountId);
  21. const auditChanges = await ctx.service.changeAudit.getAuditChange(ctx.session.sessionUser.accountId);
  22. const auditRevise = await ctx.service.reviseAudit.getAuditRevise(ctx.session.sessionUser.accountId);
  23. const projectAccountInfo = await ctx.service.projectAccount.getDataById(ctx.session.sessionUser.accountId);
  24. const pa = await ctx.service.projectAccount.getDataById(ctx.session.sessionUser.accountId);
  25. const lastNotice = pa.last_notice ? pa.last_notice : (pa.last_notice === 0 ? new Date() : new Date(pa.last_login * 1000));
  26. const noticeLedger = await ctx.service.ledgerAudit.getNoticeTender(ctx.session.sessionProject.id, pa.id, lastNotice);
  27. const noticeStage = await ctx.service.stageAudit.getNoticeStage(ctx.session.sessionProject.id, pa.id, lastNotice);
  28. const noticeChange = await ctx.service.changeAudit.getNoticeChange(ctx.session.sessionProject.id, pa.id, lastNotice);
  29. const noticeRevise = await ctx.service.reviseAudit.getNoticeRevise(ctx.session.sessionProject.id, pa.id, lastNotice);
  30. const renderData = {
  31. auditTenders,
  32. auditStages,
  33. auditChanges,
  34. auditRevise,
  35. role: projectAccountInfo.role,
  36. acLedger: auditConst.ledger,
  37. acStage: auditConst.stage,
  38. acChange: auditConst.flow,
  39. acRevise: auditConst.revise,
  40. noticeLedger,
  41. noticeStage,
  42. noticeChange,
  43. noticeRevise,
  44. };
  45. await this.layout('dashboard/index.ejs', renderData);
  46. await ctx.service.projectAccount.defaultUpdate({
  47. id: this.ctx.session.sessionUser.accountId,
  48. last_notice: new Date(),
  49. });
  50. }
  51. }
  52. return DashboardController;
  53. };