UNPKG

nyx_server

Version:

Node内容发布

155 lines (137 loc) 4.59 kB
var config = require("../../config/default-config"); var DBTemplate = require("../../db/DBTemplate"); var dbtemplate = new DBTemplate(config.NYX_DB_CONFIG_NAME); var _ = require("lodash"); var Promise = require("bluebird"); /** * user: id: id name: 姓名 password:密码 source: 来源。是域用户还是注册用户 created_time:创建时间 modify_time:修改时间 state:用户状态, 有效 1,无效0 */ /** * 增加用户 * @param user 用户信息 */ function isExistUser(userName){ var connection = this.connection || dbtemplate; var sql = "select id from user_info_t where name = ?"; return connection.query(sql , [userName]).then(function(result){ if(result && result.length>0){ return true; }else{ return false; } }); } module.exports.isExistUser = isExistUser; function dbDataToUser(dbData){ return { id : dbData.id, //id name : dbData.name, //名称 realName : dbData.real_name, department : dbData.department, //部门 state : dbData.state, //状态 contact : dbData.contact, createTime : dbData.created_time } } function getUserById(id){ var connection = this.connection || dbtemplate; return connection.query("select * from user_info_t where id =?" , [id]).then(function(result){ if(result && result.length>0){ return dbDataToUser(result[0]); } }) } function addUser(user){ var connection = this.connection || dbtemplate; return isExistUser.bind({connection:connection})(user.name).then(function(exist){ if(exist){ throw new Error("用户已经存在"); } var sql = "insert into user_info_t(name,real_name,password,contact,department,state,source,created_time) values(?,?,?,?,?,?,?,now())"; return connection.query(sql , [user.name,user.realName,user.password,user.contact,user.department,1,user.source]) .then(function(result){ return result.insertId; }).then(function(userId){ return getUserById.bind({connection:connection})(userId) }); }) } module.exports.addUser = addUser; /** * 使用户失效 */ function disableUser(userId){ var connection = this.connection || dbtemplate; var sql = "update user_info_t set state=0 where id = ?" return connection.query(sql , [userId]).then(function(){ return true; }) } /** * 得到所有用户 * @param {Array}params 请求参数, key,value对 * @param {Object}pagination 页面信息 */ function getUsers(params , pagination){ params = params || []; pagination = pagination || {start:0 , count:20}; var connection = this.connection || dbtemplate; var _params = []; var sql = "select count(id) idcount from user_info_t where 1=1"; var sqlWhere = _.reduce(params , function(sql , param){ Object.keys().forEach(function(key){ var v = param[key]; sqlbuf += " and "+key+"=? " _params.push(v); }) }, ""); var p1 = connection.query(sql+sqlWhere).then(function(rows){ return rows[0].idcount; }) var sql1 = "select * from user_info_t where 1=1 "; var p2 = connection.query(sql + sqlWhere).then(function(){ var start = pagination.start; var conut = pagination.count; sql1 += (" limit " + start + "," + conut); return connection.query(sql1 , _params).then(function(rows){ return rows.map(function(row){ delete row["password"]; return row; }) }) }); return Promise.all([p1,p2]).spread(function(count , users){ return { total:count, data:users } }); } module.exports.getUsers = getUsers; /** * 通过用户名查询用户 */ function getUserByName(userName){ var connection = this.connection || dbtemplate; var sql = "select * from user_info_t where name = ?"; return connection.query(sql , [userName]).then(function(result){ if(!result || result.length ==0){ return null; } var d = result[0]; return { id : d.id, //id name : d.name, //名称 department : d.department, //部门 state : d.state, //状态 imgUrl : d.imgUrl //图标地址 } }); }