123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /**
- * Created by Tony on 2017/4/21.
- */
- var mongoose = require("mongoose");
- var dbm = require("../../../config/db/db_manager");
- var chapterTreeDb = dbm.getCfgConnection("rationRepository")
- var async = require("async");
- var Schema = mongoose.Schema;
- var rationChapterTreeSchema = mongoose.Schema({//章节树 //生成唯一id改为sectionID 改成string
- rationRepId: Number,
- ID:Number,
- ParentID:Number,
- NextSiblingID:Number,
- name: String,
- isDeleted: Boolean
- });
- var rationChapterTreeModel = chapterTreeDb.model("rationChapterTrees",rationChapterTreeSchema, "rationChapterTrees")
- var repositoryMap = require('./repositoryMap');
- var counter = require('../../../public/counter/counter');
- var rationChapterTreeDAO = function(){};
- rationChapterTreeDAO.prototype.getRationChapterTree = function(repositoryName,callback){
- repositoryMap.getRealLibName(repositoryName, function(err, rst){
- rationChapterTreeModel.find({"rationRepId": rst[0].ID, "$or": [{"isDeleted": null}, {"isDeleted": false} ]},function(err,data){
- if(data.length) callback(false,data);
- else if(err) callback("获取定额树错误!",false)
- else callback(false,false);
- })
- })
- }
- rationChapterTreeDAO.prototype.createNewNode = function(repositoryName, lastNodeId, nodeData,callback){
- var promise = repositoryMap.getRealLibName(repositoryName), libId;
- if (promise) {
- promise.then(function(rst){
- libId = rst[0].ID;
- return counter.counterDAO.getIDAfterCount(counter.moduleName.rationTree, 1, function(err, result){
- nodeData.rationRepId = libId;
- nodeData.ID = result.value.sequence_value;
- var node = new rationChapterTreeModel(nodeData);
- node.save(function (err, result) {
- if (err) {
- callback("章节树ID错误!", false);
- } else {
- if (lastNodeId > 0) {
- rationChapterTreeModel.update({ID: lastNodeId}, {"NextSiblingID": nodeData.ID}, function(err, rst){
- if (err) {
- callback("章节树ID错误!", false);
- } else {
- callback(false, result);
- }
- });
- } else callback(false, result);
- }
- });
- });
- });
- } else {
- callback("定额库选择错误!", false);
- }
- },
- rationChapterTreeDAO.prototype.tempRationChapterTreeInsert = function(repositoryName,rationTempTree,callback){
- var db = dbm.getCfgConnection(repositoryName)
- var rationChapterTreeModel = db.model("rationChapterTrees",rationChapterTreeSchema, "rationChapterTrees")
- rationChapterTreeModel.collection.insert(rationTempTree,function(err,data){
- if(err) callback("插入定额模板错误",false)
- else callback(false,"ok")
- })
- }
- rationChapterTreeDAO.prototype.removeNodes = function(nodeIds, preNodeId, preNodeNextId, callback){
- var functions = [];
- if (preNodeId != -1) {
- functions.push((function(nodeId, nextId) {
- return function(cb) {
- rationChapterTreeModel.update({ID: nodeId}, {"NextSiblingID": nextId}, cb);
- };
- })(preNodeId, preNodeNextId));
- }
- for (var i=0; i < nodeIds.length; i++) {
- functions.push((function(nodeId) {
- return function(cb) {
- rationChapterTreeModel.update({ID: nodeId}, {"isDeleted": true}, cb);
- };
- })(nodeIds[i]));
- }
- async.parallel(functions, function(err, results) {
- callback(err, results);
- });
- }
- rationChapterTreeDAO.prototype.updateNodes = function(nodes,callback){
- var functions = [];
- for (var i=0; i < nodes.length; i++) {
- //var md = new rationChapterTreeModel(nodes[i]);
- //md.isNew = false;
- functions.push((function(doc) {
- return function(cb) {
- rationChapterTreeModel.update({ID: doc.ID}, doc, cb);
- };
- })(nodes[i]));
- }
- async.parallel(functions, function(err, results) {
- callback(err, results);
- });
- };
- module.exports = new rationChapterTreeDAO()
|