/** * Created by Mai on 2017/1/18. */ //*/ var mongoose = require("mongoose"); var dbm = require("../../../config/db/db_manager"); var db = dbm.getCfgConnection("usersManages"); var Schema = mongoose.Schema; var ProjectSchema = new Schema({ "ID": Number, "ParentID": Number, "NextSiblingID": Number, "userID": Number, "name": String, "projType": String, "recentDateTime": Date, "createDateTime": Date, "deleted": Boolean, 'deleteDateTime': Date, 'fullFolder': Array }); var Projects = db.model("projects", ProjectSchema); /*/ var db = require('../db/pm_db'); var Schema = db.mongoose.Schema; var ProjectSchema = new Schema({ "name": String, "projType": String, "lastDateTime": String, "createDateTime": String, "id": Number, "parentId": Number, "nextId": Number, "userId": Number, "deleted": Boolean, 'deleteDateTime': String, 'deleteFullFolder': Array }); var Projects = db.mongoose.model("projects", ProjectSchema); //*/ var ProjectsDAO = function(){}; ProjectsDAO.prototype.getUserProjects = function(userId, callback){ Projects.find({userID: userId, deleted: { $in: [false, null]}}, '-_id', function(err, templates){ if (err) { callback(1, 'Error', null); } else { callback(0, '', templates); } }); }; ProjectsDAO.prototype.getUserProject = function (userId, ProjId, callback) { Projects.findOne({userID: userId, ID: ProjId}, '-_id', function(err, template){ if (err) { callback(1, '找不到标段数据', null); } else { callback(0, '', template); } }); } ProjectsDAO.prototype.updateUserProjects = function(userId, datas, callback){ var data, project, updateLength = 0, hasError = false; var updateAll = function (err) { if (!err){ updateLength += 1; if (updateLength === datas.length) { callback(0, '', datas); } } else { hasError = true; callback(1, '提交数据出错.', null); } }; if (datas){ for (var i = 0; i < datas.length && !hasError; i++){ data = datas[i]; if (data.updateType === 'update') { Projects.update({userID: userId, ID: data.updateData.ID}, data.updateData, updateAll) } else if (data.updateType === 'new') { data.updateData['userID'] = userId; if (data.updateData.projType === 'Tender') { data.updateData['createDateTime'] = new Date(); } newProject = new Projects(data.updateData); newProject.save(updateAll); } else if (data.updateType === 'delete') { data.updateData['deleteDateTime'] = new Date(); Projects.update({userID: userId, ID: data.updateData.ID}, data.updateData, updateAll); } } } }; ProjectsDAO.prototype.rename = function (userId, projectId, newName, callback){ Projects.update({userID: userId, ID: projectId}, {name: newName}, function(err){ if (err){ callback(1, '项目不存在.'); } else { callback(0, ''); } }); }; ProjectsDAO.prototype.beforeOpenProject = function (userId, projectId, updateData, callback){ updateData['recentDateTime'] = new Date(); Projects.update({userID: userId, ID: projectId}, updateData, function(err){ if (err){ callback(1, '项目不存在.'); } else { callback(0, ''); } }); }; module.exports = new ProjectsDAO();