var express = require('express'); var router = express.Router(); var path = require("path"); // 获取验证模块 var authorization = require(path.join(process.cwd(),"/modules/authorization")); // 通过验证模块获取用户管理服务 var mgrServ = authorization.getService("ManagerService"); // 查询用户列表 router.get("/", // 验证参数 function(req,res,next) { // 参数验证 if(!req.query.pagenum || req.query.pagenum <= 0) return res.sendResult(null,400,"pagenum 参数错误"); if(!req.query.pagesize || req.query.pagesize <= 0) return res.sendResult(null,400,"pagesize 参数错误"); next(); }, // 处理业务逻辑 function(req,res,next) { mgrServ.getAllManagers( { "query":req.query.query, "pagenum":req.query.pagenum, "pagesize":req.query.pagesize }, function(err,result){ if(err) return res.sendResult(null,400,err); res.sendResult(result,200,"获取管理员列表成功"); } )(req,res,next); } ); // 获取用户信息 router.get("/:id", // 参数验证 function(req,res,next) { if(!req.params.id) { return res.sendResult(null,400,"用户ID不能为空"); } if(isNaN(parseInt(req.params.id))) return res.sendResult(null,400,"用户ID必须是数字"); next(); }, function(req,res,next) { mgrServ.getManager(req.params.id,function(err,manager){ if(err) return res.sendResult(null,400,err); res.sendResult(manager,200,"获取成功"); })(req,res,next); } ); // 创建用户 router.post("/", // 验证参数 function(req,res,next) { if(!req.body.username){ return res.sendResult(null,400,"用户名不能为空"); } if(!req.body.password) { return res.sendResult(null,400,"密码不能为空"); } if(!req.body.rid) { req.body.rid = -1; //return res.sendResult(null,200,"角色ID不能为空"); } if(isNaN(parseInt(req.body.rid))) req.body.rid = -1;//return res.sendResult(null,200,"角色ID必须是数字"); next(); }, // 处理业务逻辑 function(req,res,next) { params = { "username":req.body.username, "password":req.body.password, "mobile":req.body.mobile, "email":req.body.email, "rid":req.body.rid } mgrServ.createManager(params,function(err,manager){ if(err) return res.sendResult(null,400,err); res.sendResult(manager,201,"创建成功"); })(req,res,next); } ); // 修改用户信息 router.put("/:id", // 参数验证 function(req,res,next) { if(!req.params.id) { return res.sendResult(null,400,"用户ID不能为空"); } if(isNaN(parseInt(req.params.id))) return res.sendResult(null,400,"用户ID必须是数字"); next(); }, // 处理业务逻辑 function(req,res,next) { mgrServ.updateManager( { "id":req.params.id, "mobile":req.body.mobile, "email":req.body.email }, function(err,manager) { if(err) return res.sendResult(null,400,err); res.sendResult(manager,200,"更新成功"); } )(req,res,next); } ); // 删除用户信息 router.delete("/:id", // 验证参数 function(req,res,next){ if(!req.params.id) return res.sendResult(null,400,"用户ID不能为空"); if(isNaN(parseInt(req.params.id))) return res.sendResult(null,400,"ID必须是数字"); if(req.params.id == 500) return res.sendResult(null,400,"不允许删除admin账户"); next(); }, // 处理业务逻辑 function(req,res,next){ mgrServ.deleteManager(req.params.id,function(err){ if(err) return res.sendResult(null,400,err); return res.sendResult(null,200,"删除成功"); })(req,res,next); } ); // 分配用户角色 router.put("/:id/role", // 参数验证 function(req,res,next) { if(!req.params.id) { return res.sendResult(null,400,"用户ID不能为空"); } if(isNaN(parseInt(req.params.id))) return res.sendResult(null,400,"用户ID必须是数字"); if(req.params.id == 500) return res.sendResult(null,400,"不允许修改admin账户"); if(!req.body.rid) res.sendResult(null,400,"权限ID不能为空"); next(); }, // 处理业务逻辑 function(req,res,next) { mgrServ.setRole(req.params.id,req.body.rid,function(err,manager){ if(err) return res.sendResult(null,400,err); res.sendResult(manager,200,"设置角色成功"); })(req,res,next); } ); router.put("/:id/state/:state", // 参数验证 function(req,res,next) { if(!req.params.id) { return res.sendResult(null,400,"用户ID不能为空"); } if(isNaN(parseInt(req.params.id))) return res.sendResult(null,400,"用户ID必须是数字"); // // // if(!req.params.state) { // // // return res.sendResult(null,400,"状态不能为空"); // // // } // // if(isNaN(parseInt(req.params.state))) return res.sendResult(null,400,"状态必须是数字"); // if(parseInt(req.params.state) != 0 && parseInt(req.params.state) != 1) return res.sendResult(null,400,"管理状态只能为0或1"); next(); }, // 处理业务逻辑 function(req,res,next) { state = 0 if(req.params.state && req.params.state == "true") state = 1 mgrServ.updateMgrState(req.params.id,state,function(err,manager){ if(err) return res.sendResult(null,400,err); res.sendResult(manager,200,"设置状态成功"); })(req,res,next); } ) module.exports = router;