/** * Created by Mai on 2017/1/18. */ // 对Date的扩展,将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) // 例子: // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 Date.prototype.Format = function (fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; }; /*/ var mongoose = require("mongoose"); var dbm = require("../../../config/db/db_manager"); var db = dbm.getCfgConnection("usersManages"); var Schema = 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.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().Format("yyyy-MM-dd"); } newProject = new Projects(data.updateData); newProject.save(updateAll); } else if (data.updateType === 'delete') { data.updateData['deleteDateTime'] = new Date().Format("yyyy-MM-dd"); 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();