compleViewController.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /**
  2. * Created by Zhong on 2017/12/22.
  3. */
  4. const BaseController = require('../../common/base/base_controller');
  5. const CompleViewModel = require('../models/compleViewModel');
  6. const EngineeringLibModel = require("../../users/models/engineering_lib_model");
  7. let config = require("../../../config/config.js");
  8. let compleViewModel = new CompleViewModel();
  9. const CompleRationDao = require('../models/compleRationModel');
  10. const compleRationDao = new CompleRationDao();
  11. let callback = function (req, res, err, msg, data) {
  12. res.json({error: err, message: msg, data: data});
  13. };
  14. async function getGljLibId(sessionCompilation) {
  15. let gljLibId = null,
  16. rationValuation = sessionCompilation.ration_valuation,
  17. billValuation = sessionCompilation.bill_valuation,
  18. engineeringLibModel = new EngineeringLibModel(),
  19. valuationIDs = [] ;
  20. for(let r of rationValuation){//{ "glj_lib.0": {$exists:1} }
  21. if(r.id){
  22. valuationIDs.push(r.id);
  23. }
  24. }
  25. for(let b of billValuation){
  26. if(b.id){
  27. valuationIDs.push(b.id);
  28. }
  29. }
  30. if(valuationIDs.length > 0){
  31. let engineeringInfo = await engineeringLibModel.findDataByCondition({'valuationID': {"$in": valuationIDs},"glj_lib.0": {$exists:1}});//数组大于0
  32. gljLibId = engineeringInfo.glj_lib.length > 0 && typeof engineeringInfo.glj_lib !== 'undefined' ? engineeringInfo.glj_lib[0].id : null;
  33. }
  34. return gljLibId;
  35. }
  36. class CompleViewController extends BaseController{
  37. async redirectRation(req, res){
  38. const gljLibId = await getGljLibId(req.session.sessionCompilation);
  39. const redirectGlj = `/complementaryRation/glj`;
  40. const redirectCoe = `/complementaryRation/coe`;
  41. const redirectInstallation = `/complementaryRation/installation`;
  42. res.render('building_saas/complementary_ration_lib/html/dinge.html', {
  43. userID: req.session.sessionUser.id,
  44. redirectGlj: redirectGlj,
  45. redirectCoe: redirectCoe,
  46. redirectInstallation: redirectInstallation,
  47. gljLibId: gljLibId,
  48. compilationName: req.session.sessionCompilation.name,
  49. versionName: req.session.compilationVersion,
  50. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  51. title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"?????????"
  52. });
  53. }
  54. async prepareInitData (req, res) {
  55. try {
  56. const gljLibId = await getGljLibId(req.session.sessionCompilation);
  57. const userId = req.session.sessionUser.id;
  58. const compilationId = req.session.sessionCompilation._id;
  59. const initData = await compleRationDao.prepareInitData(userId, compilationId, gljLibId);
  60. res.json({error: 0, message: 'success', data: initData});
  61. } catch (err) {
  62. res.json({error: 1, message: 'fail', data: null});
  63. }
  64. }
  65. async redirectGljList(req, res){
  66. const gljLibId = await getGljLibId(req.session.sessionCompilation);
  67. const redirectRation = `/complementaryRation/ration`;
  68. const redirectCoe = `/complementaryRation/coe`;
  69. const redirectInstallation = `/complementaryRation/installation`;
  70. res.render('building_saas/complementary_ration_lib/html/gongliao.html', {
  71. userID: req.session.sessionUser.id,
  72. redirectRation: redirectRation,
  73. redirectCoe: redirectCoe,
  74. redirectInstallation: redirectInstallation,
  75. gljLibId: gljLibId,
  76. compilationName: req.session.sessionCompilation.name,
  77. versionName: req.session.compilationVersion,
  78. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  79. title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"?????????"
  80. });
  81. }
  82. async redirectCoeList(req, res){
  83. const gljLibId = await getGljLibId(req.session.sessionCompilation);
  84. const redirectRation = `/complementaryRation/ration`;
  85. const redirectGlj = `/complementaryRation/glj`;
  86. const redirectInstallation = `/complementaryRation/installation`;
  87. res.render('building_saas/complementary_ration_lib/html/fuzhu.html', {
  88. userID: req.session.sessionUser.id,
  89. redirectRation: redirectRation,
  90. redirectGlj: redirectGlj,
  91. redirectInstallation: redirectInstallation,
  92. gljLibId: gljLibId,
  93. compilationName: req.session.sessionCompilation.name,
  94. versionName: req.session.compilationVersion,
  95. LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
  96. title:config[process.env.NODE_ENV].title?config[process.env.NODE_ENV].title:"?????????"
  97. });
  98. }
  99. redirectInstallation(req, res){
  100. const repId = req.query.repository;
  101. const redirectRation = `/complementaryRation/ration`;
  102. const redirectGlj = `/complementaryRation/glj?repository=${repId}`;
  103. const redirectCoe = `/complementaryRation/coe?repository=${repId}`;
  104. res.render('building_saas/complementary_ration_lib/html/anzhuang.html', {
  105. userID: req.session.sessionUser.id,
  106. redirectRation: redirectRation,
  107. redirectGlj: redirectGlj,
  108. redirectCoe: redirectCoe,
  109. compilationName: req.session.sessionCompilation.name,
  110. versionName: req.session.compilationVersion,
  111. LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
  112. });
  113. }
  114. getRationLib(req, res){
  115. let data = JSON.parse(req.body.data);
  116. compleViewModel.getRationLib(data.rationRepId, function (err, data) {
  117. callback(req, res, err, '', data);
  118. });
  119. }
  120. getRationLibs(req, res){
  121. let data = JSON.parse(req.body.data);
  122. compleViewModel.getRationLibs(req.session.sessionCompilation._id, data.ids, function (err, data) {
  123. callback(req, res, err, '', data);
  124. });
  125. }
  126. }
  127. module.exports = CompleViewController;