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.
vue-shop-admin-work/routes/api/private/v1/users.js

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;