repository_views_controller.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /**
  2. * Created by Zhong on 2017/8/3.
  3. */
  4. import BaseController from "../../common/base/base_controller";
  5. import CompilationModel from '../../users/models/compilation_model';
  6. let config = require("../../../config/config.js");
  7. import mongoose from 'mongoose';
  8. const compilationModel = mongoose.model('compilation');
  9. const rationLibModel = mongoose.model('std_ration_lib_map');
  10. const fs = require('fs');
  11. class ViewsController extends BaseController{
  12. async redirectMain(req, res){
  13. let filter = req.query.filter ? {compilationId: req.query.filter} : null;
  14. let allLibs = await rationLibModel.find({}, {_id: 0, recentOpr: 0}),
  15. rationLibs = allLibs.filter(lib => filter && lib.compilationId === filter.compilationId || !filter),
  16. allNames = allLibs.map(lib => lib.dispName);
  17. let compilationModel = new CompilationModel();
  18. let compilationList = await compilationModel.getCompilationList({_id: 1, name: 1});
  19. compilationList.unshift({_id: 'all', name: '所有'});
  20. let activeCompilation = compilationList.find(compilation => compilation._id.toString() === req.query.filter);
  21. if (activeCompilation) {
  22. activeCompilation.active = 'active';
  23. } else {
  24. compilationList[0].active = 'active'
  25. }
  26. res.render('maintain/ration_repository/main.html',
  27. {
  28. rationLibs: rationLibs,
  29. allNames: allNames,
  30. compilationList: compilationList,
  31. userAccount: req.session.managerData.username,
  32. userID: req.session.managerData.userID,
  33. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  34. });
  35. }
  36. async redirectRation(req, res){
  37. const repId = req.query.repository;
  38. const redirectGlj = `/rationRepository/lmm?repository=${repId}`;
  39. const redirectCoe = `/rationRepository/coeList?repository=${repId}`;
  40. const redirectInstallation = `/rationRepository/installation?repository=${repId}`;
  41. let overWriteUrl = null;
  42. let priceProperties = [];
  43. let stdRationLib = await rationLibModel.findOne({ID: repId});
  44. if(stdRationLib){
  45. let compilation = await compilationModel.findOne({_id: mongoose.Types.ObjectId(stdRationLib.compilationId)});
  46. priceProperties = compilation.priceProperties ? compilation.priceProperties : [];
  47. let absoluteUrl = compilation.overWriteUrl ? req.app.locals.rootDir + compilation.overWriteUrl : req.app.locals.rootDir;
  48. overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile()? compilation.overWriteUrl : null;
  49. }
  50. res.render('maintain/ration_repository/dinge.html',
  51. {
  52. userAccount: req.session.managerData.username,
  53. userID: req.session.managerData.userID,
  54. redirectGlj: redirectGlj,
  55. redirectCoe: redirectCoe,
  56. redirectInstallation: redirectInstallation,
  57. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  58. priceProperties: JSON.stringify(priceProperties)
  59. });
  60. }
  61. async redirectGlj(req, res){
  62. const repId = req.query.repository;
  63. const redirectRation = `/rationRepository/ration?repository=${repId}`;
  64. const redirectCoe = `/rationRepository/coeList?repository=${repId}`;
  65. const redirectInstallation = `/rationRepository/installation?repository=${repId}`;
  66. let overWriteUrl = null;
  67. let priceProperties = [];
  68. let stdRationLib = await rationLibModel.findOne({ID: repId});
  69. if(stdRationLib){
  70. let compilation = await compilationModel.findOne({_id: mongoose.Types.ObjectId(stdRationLib.compilationId)});
  71. priceProperties = compilation.priceProperties ? compilation.priceProperties : [];
  72. let absoluteUrl = compilation.overWriteUrl ? req.app.locals.rootDir + compilation.overWriteUrl : req.app.locals.rootDir;
  73. overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile()? compilation.overWriteUrl : null;
  74. }
  75. res.render('maintain/ration_repository/gongliao.html',
  76. {
  77. userAccount: req.session.managerData.username,
  78. userID: req.session.managerData.userID,
  79. redirectRation: redirectRation,
  80. redirectCoe: redirectCoe,
  81. redirectInstallation: redirectInstallation,
  82. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  83. priceProperties: JSON.stringify(priceProperties)
  84. });
  85. }
  86. redirectCoeList(req, res){
  87. const repId = req.query.repository;
  88. const redirectGlj = `/rationRepository/lmm?repository=${repId}`;
  89. const redirectRation = `/rationRepository/ration?repository=${repId}`;
  90. const redirectInstallation = `/rationRepository/installation?repository=${repId}`;
  91. res.render('maintain/ration_repository/fuzhu.html',
  92. {
  93. userAccount: req.session.managerData.username,
  94. userID: req.session.managerData.userID,
  95. redirectGlj: redirectGlj,
  96. redirectRation: redirectRation,
  97. redirectInstallation: redirectInstallation,
  98. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  99. });
  100. }
  101. redirectInstallation(req, res){
  102. const repId = req.query.repository;
  103. const redirectGlj = `/rationRepository/lmm?repository=${repId}`;
  104. const redirectCoe = `/rationRepository/coeList?repository=${repId}`;
  105. const redirectRation = `/rationRepository/ration?repository=${repId}`;
  106. res.render('maintain/ration_repository/anzhuang.html',
  107. {
  108. userAccount: req.session.managerData.username,
  109. userID: req.session.managerData.userID,
  110. redirectGlj: redirectGlj,
  111. redirectCoe: redirectCoe,
  112. redirectRation: redirectRation,
  113. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  114. });
  115. }
  116. }
  117. export default ViewsController;