var Evt = require('evt'); var db = require('db'); function log(o) { console.log(o); } /** UserId (主键) Email Username Token LastLoginTime IsActive // 是否是活跃用户 */ // 用户基本信息 var User = { token: '', userId: '', email: '', username: '', // 登录后保存当前 setCurUser: function(user) { if(user) { this.token = user.Token; this.userId = user.UserId; this.email = user.Email; this.username = user.Username; // 保存到数据库中 this.saveCurUser(user); } }, saveCurUser: function(user, callback) { // 当前用户是否在数据库中 db.users.count({_id: user.UserId}, function(err, count) { if(err || count == 0) { // 添加一个 user['_id'] = user.UserId; user['IsActive'] = true; db.users.insert(user, function(err, doc) { log(err); }); } else { user.IsActive = true; delete user['Ok']; db.users.update({_id: user.UserId}, {$set: user}, function(err, cnt) { if(err || cnt == 0) { log(err); callback && callback(false); } else { callback && callback(true); } }); } }); // 设值其它用户为非active db.users.update({_id: {$ne: user.UserId}}, {$set: {IsActive: false}}, {multiple: true}) }, // 打开软件时, 从db中获取当前用户 init: function(callback) { console.log("......user init.......") var me = this; db.users.findOne({IsActive: true}, function(err, doc) { if(err || !doc) { log('不存在'); callback && callback(false); } else { me.setCurUser(doc); callback && callback(doc); } }); }, // 得到当前活跃用户Id getCurActiveUserId: function() { return this.userId || "user1"; }, getToken: function() { return this.token || "user1"; }, getCurUserImagesPath: function() { return Evt.getBasePath() + '/' + this.getCurUserImagesAppPath(); }, getCurUserAttachsPath: function() { return Evt.getBasePath() + '/' + this.getCurUserAttachsAppPath(); }, getCurUserImagesAppPath: function() { return 'data/' + this.getCurActiveUserId() + '/images'; }, getCurUserAttachsAppPath: function() { return 'data/' + this.getCurActiveUserId() + '/attachs'; } }; module.exports = User;