|
@@ -2,7 +2,12 @@
|
|
|
* 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){
|
|
@@ -15,15 +20,32 @@ module.exports = {
|
|
|
grpType = params.grpType,
|
|
|
userId = params.userId,
|
|
|
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) {
|
|
|
let params = JSON.parse(req.body.params),
|
|
|
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){
|
|
@@ -31,16 +53,47 @@ module.exports = {
|
|
|
nodeIds = params.nodeIds,
|
|
|
preNodeId = params.preNodeId,
|
|
|
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){
|
|
|
let params = JSON.parse(req.body.params),
|
|
|
lastNodeId = params.lastNodeId,
|
|
|
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);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
}
|
|
|
}
|