123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- /**
- * Created by Zhong on 2017/12/22.
- */
- const BaseController = require('../../common/base/base_controller');
- const CompleViewModel = require('../models/compleViewModel');
- const EngineeringLibModel = require("../../users/models/engineering_lib_model");
- let config = require("../../../config/config.js");
- let compleViewModel = new CompleViewModel();
- const CompleRationDao = require('../models/compleRationModel');
- const compleRationDao = new CompleRationDao();
- const pmFacade = require('../../pm/facade/pm_facade');
- const { ShareLibType } = require('../../../public/common_constants');
- let callback = function (req, res, err, msg, data) {
- res.json({error: err, message: msg, data: data});
- };
- async function getGljLibId(sessionCompilation) {
- let gljLibId = null,
- rationValuation = sessionCompilation.ration_valuation,
- billValuation = sessionCompilation.bill_valuation,
- engineeringLibModel = new EngineeringLibModel(),
- valuationIDs = [] ;
- for(let r of rationValuation){//{ "glj_lib.0": {$exists:1} }
- if(r.id){
- valuationIDs.push(r.id);
- }
- }
- for(let b of billValuation){
- if(b.id){
- valuationIDs.push(b.id);
- }
- }
- if(valuationIDs.length > 0){
- let engineeringInfo = await engineeringLibModel.findDataByCondition({'valuationID': {"$in": valuationIDs},"glj_lib.0": {$exists:1}});//数组大于0
- gljLibId = engineeringInfo.glj_lib.length > 0 && typeof engineeringInfo.glj_lib !== 'undefined' ? engineeringInfo.glj_lib[0].id : null;
- }
- return gljLibId;
- }
- class CompleViewController extends BaseController{
- async redirectRation(req, res){
- const { userID } = req.params;
- const sessionUserID = req.session.sessionUser.id;
- const compilationID = req.session.sessionCompilation._id;
- if (userID !== sessionUserID) {
- const receiveList = await pmFacade.getReceiveLibList(sessionUserID, compilationID, ShareLibType.RATION_LIB);
- const isValid = !!receiveList.find(user => String(user._id) === userID);
- if (!isValid) {
- return res.redirect(`/complementaryRation/ration/${sessionUserID}`);
- }
- }
- const gljLibId = await getGljLibId(req.session.sessionCompilation);
- const redirectGlj = `/complementaryRation/glj/${userID}`;
- const redirectCoe = `/complementaryRation/coe/${userID}`;
- const redirectInstallation = `/complementaryRation/installation/${userID}`;
- const priceProperties = req.session.sessionCompilation.priceProperties || [];
- const isReadOnly = userID !== sessionUserID;
- res.render('building_saas/complementary_ration_lib/html/dinge.html', {
- isReadOnly,
- userID: sessionUserID,
- redirectGlj: redirectGlj,
- redirectCoe: redirectCoe,
- redirectInstallation: redirectInstallation,
- gljLibId: gljLibId,
- compilationName: req.session.sessionCompilation.name,
- priceProperties: JSON.stringify(priceProperties),
- versionName: req.session.compilationVersion,
- LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
- });
- }
- async prepareInitData (req, res) {
- try {
- const { userID } = req.query;
- const sessionUserID = req.session.sessionUser.id;
- const gljLibId = await getGljLibId(req.session.sessionCompilation);
- const compilationId = req.session.sessionCompilation._id;
- const initData = await compleRationDao.prepareInitData(sessionUserID, userID, compilationId, gljLibId);
- res.json({error: 0, message: 'success', data: initData});
- } catch (err) {
- res.json({error: 1, message: 'fail', data: null});
- }
- }
- async redirectGljList(req, res){
- const { userID } = req.params;
- const gljLibId = await getGljLibId(req.session.sessionCompilation);
- const redirectRation = `/complementaryRation/ration/${userID}`;
- const redirectCoe = `/complementaryRation/coe/${userID}`;
- const redirectInstallation = `/complementaryRation/installation/${userID}`;
- res.render('building_saas/complementary_ration_lib/html/gongliao.html', {
- userID: req.session.sessionUser.id,
- redirectRation: redirectRation,
- redirectCoe: redirectCoe,
- redirectInstallation: redirectInstallation,
- gljLibId: gljLibId,
- compilationName: req.session.sessionCompilation.name,
- versionName: req.session.compilationVersion,
- LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
- });
- }
- async redirectCoeList(req, res){
- const gljLibId = await getGljLibId(req.session.sessionCompilation);
- const redirectRation = `/complementaryRation/ration/${userID}`;
- const redirectGlj = `/complementaryRation/glj/${userID}`;
- const redirectInstallation = `/complementaryRation/installation/${userID}`;
- res.render('building_saas/complementary_ration_lib/html/fuzhu.html', {
- userID: req.session.sessionUser.id,
- redirectRation: redirectRation,
- redirectGlj: redirectGlj,
- redirectInstallation: redirectInstallation,
- gljLibId: gljLibId,
- compilationName: req.session.sessionCompilation.name,
- versionName: req.session.compilationVersion,
- LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
- });
- }
- redirectInstallation(req, res){
- const repId = req.query.repository;
- const redirectRation = `/complementaryRation/ration/${userID}`;
- const redirectGlj = `/complementaryRation/glj?repository=${repId}/${userID}`;
- const redirectCoe = `/complementaryRation/coe?repository=${repId}/${userID}`;
- res.render('building_saas/complementary_ration_lib/html/anzhuang.html', {
- userID: req.session.sessionUser.id,
- redirectRation: redirectRation,
- redirectGlj: redirectGlj,
- redirectCoe: redirectCoe,
- compilationName: req.session.sessionCompilation.name,
- versionName: req.session.compilationVersion,
- LicenseKey:config.getLicenseKey(process.env.NODE_ENV)
- });
- }
- getRationLib(req, res){
- let data = JSON.parse(req.body.data);
- compleViewModel.getRationLib(data.rationRepId, function (err, data) {
- callback(req, res, err, '', data);
- });
- }
- getRationLibs(req, res){
- let data = JSON.parse(req.body.data);
- compleViewModel.getRationLibs(req.session.sessionCompilation._id, data.ids, function (err, data) {
- callback(req, res, err, '', data);
- });
- }
- }
- module.exports = CompleViewController;
|