| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 | 
							- /**
 
-  * Created by Zhong on 2017/8/22.
 
-  */
 
- const BaseController = require("../../common/base/base_controller");
 
- const stdgljutil = require("../../../public/cache/std_glj_type_util");
 
- const GljDao = require("../models/gljModel");
 
- const EngineeringLibModel = require("../../users/models/engineering_lib_model");
 
- let config = require("../../../config/config.js");
 
- const pmFacade = require('../../pm/facade/pm_facade');
 
- const { ShareLibType } = require('../../../public/common_constants');
 
- let gljDao = new GljDao();
 
- let callback = function(req, res, err, message, data){
 
-     res.json({error: err, message: message, 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 GljController extends BaseController{
 
-     async redirectGlj(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.GLJ_LIB);
 
-             const isValid = !!receiveList.find(user => String(user._id) === userID);
 
-             if (!isValid) {
 
-                 return res.redirect(`/complementaryGlj/${sessionUserID}`);
 
-             }
 
-         }
 
-         const sessionCompilation = req.session.sessionCompilation;
 
-         const gljLibId = await getGljLibId(sessionCompilation);
 
-         let overWriteUrl = sessionCompilation && req.session.sessionCompilation.overWriteUrl &&
 
-             compilationID !== '5b4d581023a924000b760f2d' ? req.session.sessionCompilation.overWriteUrl : null;
 
-         const priceProperties = sessionCompilation.priceProperties || [];
 
-         const consumeAmtProperties = sessionCompilation.consumeAmtProperties || [];
 
-         const isReadOnly = userID !== sessionUserID;
 
-         res.render('building_saas/complementary_glj_lib/html/tools-gongliaoji.html',{
 
-             isReadOnly,
 
-             userID: sessionUserID,
 
-             gljLibId: gljLibId,
 
-             compilationId: sessionCompilation._id,
 
-             compilationName: sessionCompilation.name,
 
-             priceProperties: JSON.stringify(priceProperties),
 
-             consumeAmtProperties: JSON.stringify(consumeAmtProperties),
 
-             versionName: req.session.compilationVersion,
 
-             LicenseKey:config.getLicenseKey(process.env.NODE_ENV),
 
-             overWriteUrl: overWriteUrl,
 
-         });
 
-     }
 
-     async prepareInitData(req, res) {
 
-         try {
 
-             const { userID, projection } = JSON.parse(req.body.data);
 
-             const sessionUserID = req.session.sessionUser.id;
 
-             const gljLibID = await getGljLibId(req.session.sessionCompilation);
 
-             const compilationID = req.session.sessionCompilation._id;
 
-             const initData = await gljDao.prepareInitData(gljLibID, userID, sessionUserID, compilationID, projection);
 
-             res.json({error: 0, message: 'success', data: initData});
 
-         } catch (err) {
 
-             console.log(err);
 
-             res.json({error: 1, message: 'fail', data: null});
 
-         }
 
-     }
 
-     getGljDistType (req, res) {
 
-         let gljDistTypeCache = stdgljutil.getStdGljTypeCacheObj().toArray();
 
-         if(gljDistTypeCache.length >0 ){
 
-             callback(req, res, 0, '', gljDistTypeCache);
 
-         }
 
-         else {
 
-             callback(req, res, 1, 'Error', null);
 
-         }
 
-     }
 
-     getGljTree(req,res){
 
-         let data = JSON.parse(req.body.data);
 
-         let gljLibId = data.gljLibId;
 
-         gljDao.getGljTypes(gljLibId,function(err,data){
 
-             callback(req,res,err, 'Get Tree', data)
 
-         });
 
-     }
 
-     //获取标准分类树和补充分类树
 
-     async getMixedTree(req, res){
 
-         try {
 
-             let data = JSON.parse(req.body.data);
 
-             let treeData = await gljDao.getMixedTree(data.gljLibId, req.session.sessionUser.id, req.session.sessionCompilation._id);
 
-             callback(req, res, 0, 'success', treeData);
 
-         } catch (err) {
 
-             console.log(err);
 
-             callback(req, res, 1, err, null);
 
-         }
 
-     }
 
-     createNewGljTypeNode(req, res) {
 
-         let repId = req.body.repositoryId;
 
-         let lastNodeId = req.body.lastNodeId;
 
-         let lastOpr = req.body.lastOpr;
 
-         let nodeData = JSON.parse(req.body.rawNodeData);
 
-         gljDao.createNewNode(repId, lastOpr, lastNodeId, nodeData, function(err, msg, data){
 
-             callback(req,res,err,msg, data)
 
-         });
 
-     }
 
-     updateGljNodes(req, res) {
 
-         let nodes = JSON.parse(req.body.nodes);
 
-         let repId = req.body.repId,
 
-             lastOpr = req.body.lastOpr;
 
-         gljDao.updateNodes(repId, lastOpr, nodes, function(err,results){
 
-             callback(req,res, err, results)
 
-         });
 
-     }
 
-     deleteGljNodes(req, res) {
 
-         let nodes = JSON.parse(req.body.nodes);
 
-         let preNodeId = req.body.preNodeId;
 
-         let preNodeNextId = req.body.preNodeNextId;
 
-         let repId = req.body.repId, lastOpr = req.body.lastOpr;
 
-         gljDao.removeNodes(repId, lastOpr, nodes, preNodeId, preNodeNextId, function(err,results){
 
-             callback(req,res, err, results)
 
-         });
 
-     }
 
-     getGljItems(req, res) {
 
-         let data = JSON.parse(req.body.data);
 
-         let stdGljLibId = data.stdGljLibId;
 
-         let projection = data.projection;
 
-         gljDao.getGljItems(stdGljLibId, req.session.sessionUser.id, req.session.sessionCompilation._id, projection, function(err, data){
 
-             callback(req,res,err,'Get Items',data)
 
-         });
 
-     }
 
-     getStdItems(req, res) {
 
-         let data = JSON.parse(req.body.data),
 
-             stdGljLibId = data.stdGljLibId,
 
-             projection = data.projection;
 
-         gljDao.getStdItems(stdGljLibId, projection, function (err, data) {
 
-             callback(req, res, err, '获取人材机数据失败', data);
 
-         });
 
-     }
 
-     updateComponent(req, res){
 
-         let userId = req.body.userId;
 
-         let updateArr = JSON.parse(req.body.updateArr);
 
-         gljDao.updateComponent(userId, updateArr, function (err, message, rst) {
 
-             callback(req, res, err, message, rst);
 
-         })
 
-     }
 
-     mixUpdateGljItems(req, res){
 
-         let user_id = req.session.sessionUser.id,
 
-             compilation_id = req.session.sessionCompilation._id;
 
-         let data = JSON.parse(req.body.data);
 
-         let updateItems = data.updateItems,
 
-             addItems = data.addItems,
 
-             removeIds = data.removeIds;
 
-         gljDao.mixUpdateGljItems(user_id, compilation_id, updateItems, addItems, removeIds, function(err, message, rst){
 
-             if (err) {
 
-                 callback(req, res, err, message, null);
 
-             } else {
 
-                 callback(req, res, 0, message, rst);
 
-             }
 
-         });
 
-     }
 
- }
 
- module.exports = GljController;
 
 
  |