| 
															
																@@ -2,7 +2,12 @@ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  * Created by Tony on 2017/6/1. 
															 | 
															
															 | 
															
																  * Created by Tony on 2017/6/1. 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  */ 
															 | 
															
															 | 
															
																  */ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-let TplNode = require('../models/tpl_tree_node'); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+let async = require("async"); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+let counter = require('../../../public/counter/counter'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+//let TplNode = require('../models/tpl_tree_node'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+let TreeNodeModel = require('../models/tpl_tree_node'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+let rptTplDef = require("../../../public/rpt_tpl_def").getUtil(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 //统一回调函数 
															 | 
															
															 | 
															
																 //统一回调函数 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 let callback = function(req, res, err, message, data){ 
															 | 
															
															 | 
															
																 let callback = function(req, res, err, message, data){ 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -15,15 +20,32 @@ module.exports = { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             grpType = params.grpType, 
															 | 
															
															 | 
															
																             grpType = params.grpType, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             userId = params.userId, 
															 | 
															
															 | 
															
																             userId = params.userId, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             tplType = params.tplType; 
															 | 
															
															 | 
															
																             tplType = params.tplType; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        TplNode.getTplTreeNodes(grpType, userId, tplType, function(err, data){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            callback(req,res,err,"", data); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        }) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        let filter = {"grpType": grpType, "$or": [{"isDeleted": null}, {"isDeleted": false} ]}; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (userId) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            filter.userId = userId; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if ((tplType && tplType !== rptTplDef.TplType.ALL)) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            filter.tplType = tplType; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        TreeNodeModel.find(filter, '-_id', function(err, data){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (err) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                callback(req,res, true,"", null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } else callback(req,res,false,"", data); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     }, 
															 | 
															
															 | 
															
																     }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     updateTreeNodes: function(req, res) { 
															 | 
															
															 | 
															
																     updateTreeNodes: function(req, res) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         let params = JSON.parse(req.body.params), 
															 | 
															
															 | 
															
																         let params = JSON.parse(req.body.params), 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             nodes = params.nodes; 
															 | 
															
															 | 
															
																             nodes = params.nodes; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        TplNode.updateTreeNodes(nodes, function(err,results){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            callback(req,res, err, "", results) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        let functions = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        for (let node of nodes) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            functions.push((function(doc) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                return function(cb) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    TreeNodeModel.update({ID: doc.ID}, doc, cb); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            })(node)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        async.parallel(functions, function(err, results) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            callback(req,res, err, "", results); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }); 
															 | 
															
															 | 
															
																         }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     }, 
															 | 
															
															 | 
															
																     }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     deleteTptTplNodes: function(req, res){ 
															 | 
															
															 | 
															
																     deleteTptTplNodes: function(req, res){ 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -31,16 +53,47 @@ module.exports = { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             nodeIds = params.nodeIds, 
															 | 
															
															 | 
															
																             nodeIds = params.nodeIds, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             preNodeId = params.preNodeId, 
															 | 
															
															 | 
															
																             preNodeId = params.preNodeId, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             preNodeNextId = params.preNodeNextId; 
															 | 
															
															 | 
															
																             preNodeNextId = params.preNodeNextId; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        TplNode.removeNodes(nodeIds, preNodeId, preNodeNextId, function(err,results){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            callback(req,res, err, "", results) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        let functions = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        if (preNodeId !== -1) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            functions.push((function(nodeId, nextId) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                return function(cb) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    TreeNodeModel.update({ID: nodeId}, {"NextSiblingID": nextId}, cb); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            })(preNodeId, preNodeNextId)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        for (let nId of nodeIds) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            functions.push((function(nodeId) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                return function(cb) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    TreeNodeModel.update({ID: nodeId}, {"isDeleted": true}, cb); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            })(nId)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        async.parallel(functions, function(err, results) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            callback(req,res, err, "", results); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }); 
															 | 
															
															 | 
															
																         }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     }, 
															 | 
															
															 | 
															
																     }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     createTplTreeNode: function(req, res){ 
															 | 
															
															 | 
															
																     createTplTreeNode: function(req, res){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         let params = JSON.parse(req.body.params), 
															 | 
															
															 | 
															
																         let params = JSON.parse(req.body.params), 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             lastNodeId = params.lastNodeId, 
															 | 
															
															 | 
															
																             lastNodeId = params.lastNodeId, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             nodeData = params.rawNodeData; 
															 | 
															
															 | 
															
																             nodeData = params.rawNodeData; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        TplNode.createTplTreeNode(nodeData, lastNodeId, function(err, data){ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            callback(req,res,err,"", data); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        }) 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        counter.counterDAO.getIDAfterCount(counter.moduleName.report, 1, function(err, result){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            nodeData.ID = result.value.sequence_value; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            let node = new TreeNodeModel(nodeData); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            node.save(function (err, result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                if (err) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    callback(req,res, "树节点错误!", "", null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    if (lastNodeId > 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        TreeNodeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            if (err) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                callback(req,res, "树节点错误!", "", null); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                callback(req,res, false, "", result); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    } else callback(req,res, false, "", result); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 |