You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
185 lines
5.1 KiB
185 lines
5.1 KiB
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; |