|
@@ -23,78 +23,76 @@ var TreeNodeSchema = new Schema({
|
|
|
var TreeNodeModel = db.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
|
|
|
var counter = require('../../../public/counter/counter');
|
|
|
|
|
|
-var RplTplTreeDAO = function(){};
|
|
|
-
|
|
|
-RplTplTreeDAO.prototype.getTplTreeNodes = function(grpType, userId, tplType, callback) {
|
|
|
- var 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(true, null);
|
|
|
- } else callback(false,data);
|
|
|
- });
|
|
|
-};
|
|
|
-
|
|
|
-RplTplTreeDAO.prototype.updateTreeNodes = function(nodes, callback) {
|
|
|
- var functions = [];
|
|
|
- for (var i=0; i < nodes.length; i++) {
|
|
|
- functions.push((function(doc) {
|
|
|
- return function(cb) {
|
|
|
- TreeNodeModel.update({ID: doc.ID}, doc, cb);
|
|
|
- };
|
|
|
- })(nodes[i]));
|
|
|
- }
|
|
|
- async.parallel(functions, function(err, results) {
|
|
|
- callback(err, results);
|
|
|
- });
|
|
|
-};
|
|
|
-
|
|
|
-RplTplTreeDAO.prototype.removeNodes = function(nodeIds, preNodeId, preNodeNextId, callback){
|
|
|
- var functions = [];
|
|
|
- if (preNodeId != -1) {
|
|
|
- functions.push((function(nodeId, nextId) {
|
|
|
- return function(cb) {
|
|
|
- TreeNodeModel.update({ID: nodeId}, {"NextSiblingID": nextId}, cb);
|
|
|
- };
|
|
|
- })(preNodeId, preNodeNextId));
|
|
|
- }
|
|
|
- for (var i=0; i < nodeIds.length; i++) {
|
|
|
- functions.push((function(nodeId) {
|
|
|
- return function(cb) {
|
|
|
- TreeNodeModel.update({ID: nodeId}, {"isDeleted": true}, cb);
|
|
|
- };
|
|
|
- })(nodeIds[i]));
|
|
|
- }
|
|
|
- async.parallel(functions, function(err, results) {
|
|
|
- callback(err, results);
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
-RplTplTreeDAO.prototype.createTplTreeNode = function(nodeData, lastNodeId, callback) {
|
|
|
- counter.counterDAO.getIDAfterCount(counter.moduleName.report, 1, function(err, result){
|
|
|
- nodeData.ID = result.value.sequence_value;
|
|
|
- var node = new TreeNodeModel(nodeData);
|
|
|
- node.save(function (err, result) {
|
|
|
+//var RplTplTreeDAO = function(){};
|
|
|
+class RplTplTreeDAO{
|
|
|
+ getTplTreeNodes(grpType, userId, tplType, callback) {
|
|
|
+ var 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("树节点错误!", false);
|
|
|
- } else {
|
|
|
- if (lastNodeId > 0) {
|
|
|
- TreeNodeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
|
|
|
- if (err) {
|
|
|
- callback("树节点错误!", false);
|
|
|
- } else {
|
|
|
- callback(false, result);
|
|
|
- }
|
|
|
- });
|
|
|
- } else callback(false, result);
|
|
|
- }
|
|
|
+ callback(true, null);
|
|
|
+ } else callback(false,data);
|
|
|
});
|
|
|
- });
|
|
|
-};
|
|
|
+ };
|
|
|
+ updateTreeNodes(nodes, callback) {
|
|
|
+ var 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(err, results);
|
|
|
+ });
|
|
|
+ };
|
|
|
+ removeNodes(nodeIds, preNodeId, preNodeNextId, callback) {
|
|
|
+ var 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(err, results);
|
|
|
+ });
|
|
|
+ };
|
|
|
+ createTplTreeNode(nodeData, lastNodeId, callback) {
|
|
|
+ counter.counterDAO.getIDAfterCount(counter.moduleName.report, 1, function(err, result){
|
|
|
+ nodeData.ID = result.value.sequence_value;
|
|
|
+ var node = new TreeNodeModel(nodeData);
|
|
|
+ node.save(function (err, result) {
|
|
|
+ if (err) {
|
|
|
+ callback("树节点错误!", false);
|
|
|
+ } else {
|
|
|
+ if (lastNodeId > 0) {
|
|
|
+ TreeNodeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
|
|
|
+ if (err) {
|
|
|
+ callback("树节点错误!", false);
|
|
|
+ } else {
|
|
|
+ callback(false, result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } else callback(false, result);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ };
|
|
|
+}
|
|
|
|
|
|
module.exports = new RplTplTreeDAO();
|