/** * Created by Mai on 2017/1/18. */ var db = require('../db/pm_db'); var Schema = db.mongoose.Schema; var ProjectSchema = new Schema({ "name": String, "projType": String, "lastDateTime": Date, "createDateTime": Date, "id": Number, "parentId": Number, "nextId": Number, "userId": Number, "deleted": Boolean, 'deleteDateTime': Date, '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, ''); } }); }; module.exports = new ProjectsDAO();