repository_views_controller.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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. allNames: allNames,
  29. rationLibs: rationLibs,
  30. compilationList: compilationList,
  31. userAccount: req.session.managerData.username,
  32. userID: req.session.managerData.userID
  33. });
  34. }
  35. async redirectRation(req, res){
  36. const repId = req.query.repository;
  37. const locked = req.query.locked || 'true';
  38. const redirectGlj = `/rationRepository/lmm?repository=${repId}&locked=${locked}`;
  39. const redirectCoe = `/rationRepository/coeList?repository=${repId}&locked=${locked}`;
  40. const redirectInstallation = `/rationRepository/installation?repository=${repId}&locked=${locked}`;
  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. overWriteUrl: overWriteUrl
  60. });
  61. }
  62. async redirectGlj(req, res){
  63. const repId = req.query.repository;
  64. const locked = req.query.locked || 'true';
  65. const redirectRation = `/rationRepository/ration?repository=${repId}&locked=${locked}`;
  66. const redirectCoe = `/rationRepository/coeList?repository=${repId}&locked=${locked}`;
  67. const redirectInstallation = `/rationRepository/installation?repository=${repId}&locked=${locked}`;
  68. let overWriteUrl = null;
  69. let priceProperties = [];
  70. let stdRationLib = await rationLibModel.findOne({ID: repId});
  71. if(stdRationLib){
  72. let compilation = await compilationModel.findOne({_id: mongoose.Types.ObjectId(stdRationLib.compilationId)});
  73. priceProperties = compilation.priceProperties ? compilation.priceProperties : [];
  74. let absoluteUrl = compilation.overWriteUrl ? req.app.locals.rootDir + compilation.overWriteUrl : req.app.locals.rootDir;
  75. overWriteUrl = fs.existsSync(absoluteUrl) && fs.statSync(absoluteUrl).isFile()? compilation.overWriteUrl : null;
  76. }
  77. res.render('maintain/ration_repository/gongliao.html',
  78. {
  79. userAccount: req.session.managerData.username,
  80. userID: req.session.managerData.userID,
  81. redirectRation: redirectRation,
  82. redirectCoe: redirectCoe,
  83. redirectInstallation: redirectInstallation,
  84. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  85. priceProperties: JSON.stringify(priceProperties),
  86. rationLib: stdRationLib
  87. });
  88. }
  89. redirectCoeList(req, res){
  90. const repId = req.query.repository;
  91. const locked = req.query.locked || 'true';
  92. const redirectGlj = `/rationRepository/lmm?repository=${repId}&locked=${locked}`;
  93. const redirectRation = `/rationRepository/ration?repository=${repId}&locked=${locked}`;
  94. const redirectInstallation = `/rationRepository/installation?repository=${repId}&locked=${locked}`;
  95. res.render('maintain/ration_repository/fuzhu.html',
  96. {
  97. userAccount: req.session.managerData.username,
  98. userID: req.session.managerData.userID,
  99. redirectGlj: redirectGlj,
  100. redirectRation: redirectRation,
  101. redirectInstallation: redirectInstallation,
  102. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  103. });
  104. }
  105. async redirectInstallation(req, res){
  106. const repId = req.query.repository;
  107. const locked = req.query.locked || 'true';
  108. const redirectGlj = `/rationRepository/lmm?repository=${repId}&locked=${locked}`;
  109. const redirectCoe = `/rationRepository/coeList?repository=${repId}&locked=${locked}`;
  110. const redirectRation = `/rationRepository/ration?repository=${repId}&locked=${locked}`;
  111. let stdRationLib = await rationLibModel.findOne({ID: repId});
  112. res.render('maintain/ration_repository/anzhuang.html',
  113. {
  114. userAccount: req.session.managerData.username,
  115. userID: req.session.managerData.userID,
  116. redirectGlj: redirectGlj,
  117. redirectCoe: redirectCoe,
  118. redirectRation: redirectRation,
  119. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  120. rationLib: stdRationLib
  121. });
  122. }
  123. }
  124. export default ViewsController;