module admin

This commit is contained in:
chaosBreaking
2019-10-06 16:10:50 +08:00
parent 2e35fe1aa5
commit 8ea1883828
4 changed files with 71 additions and 13 deletions

View File

@@ -5,14 +5,20 @@ const { inject } = require('../../common/Provider');
const Admin = require('./admin.model');
const Action = require('../action/action.model');
const Ticket = require('../ticket/ticket.model');
const User = require('../user/user.model');
const crypto = require('../../utils/crypto');
module.exports = {
signin: function (SysConfig) {
signup: inject(function (SysConfig) {
const { JWT_SECRET } = SysConfig;
return async (req, res) => {
const { adminId, passwd } = req.headers;
if (!adminId || !passwd) return res.json({ code: 1, msg: '密码错误' });
const admin = await Admin.findOne({ id: adminId, passwd });
const { name, passwd = '' } = req.body;
const exist = await Admin.exists({ name });
if (exist) return res.json({
code: 1,
msg: '已存在'
});
const admin = await new Admin({ name, passwd: crypto.hash(passwd) }).save();
// res.locals.user
// const { userId } = res.locals.user;
const token = createToken({
@@ -25,12 +31,34 @@ module.exports = {
}
});
};
},
}),
signin: inject(function (SysConfig) {
const { JWT_SECRET } = SysConfig;
return async (req, res) => {
const { name, passwd } = req.body;
if (!name || !passwd) return res.json({ code: 1, msg: '密码错误' });
const admin = await Admin.findOne({ name, passwd });
// res.locals.user
// const { userId } = res.locals.user;
if (!admin) return res.json({
code: 2,
msg: '用户名或密码错误'
});
const token = createToken({
adminId: admin._id
}, JWT_SECRET, {});
return res.json({
code: 0,
data: {
token
}
});
};
}),
async getUserActions (req, res) {
const { adminId } = res.locals.user;
if (!adminId) return res.json({ code: 1, msg: '非法访问' });
const { userId, type, op } = req.body;
await Action.find({ userId, type, op }).then(data => {
await Action.find({ ...req.body }).then(data => {
return res.json({
code: 0,
data
@@ -45,8 +73,7 @@ module.exports = {
async getDepositTicket (req, res) {
const { adminId } = res.locals.user;
if (!adminId) return res.json({ code: 1, msg: '非法访问' });
const { userId, type, status } = req.body;
await Ticket.find({ userId, status, type }).then(data => {
await Ticket.find({ ...req.body }).then(data => {
return res.json({
code: 0,
data
@@ -57,5 +84,21 @@ module.exports = {
msg: err.msg
});
});
},
async getUsers (req, res) {
const { adminId } = res.locals.user;
if (!adminId) return res.json({ code: 1, msg: '非法访问' });
const [sum, data] = await Promise.all([User.count({}), User.find({ ...req.body })]).catch(err => {
return [err.msg, ''];
});
if (!Array.isArray(data)) return res.json({
code: 1,
msg: sum
});
return res.json({
code: 0,
data,
sum
});
}
};

View File

@@ -3,6 +3,10 @@
const mongoose = require('mongoose');
const AdminSchema = new mongoose.Schema({
name: {
type: String,
default: 'admin'
},
passwd: {
type: String
},

View File

@@ -1,18 +1,29 @@
'use strict';
const indexRoute = '/admin/api';
const indexRoute = '/admin';
const controller = require('./admin.controller');
const services = [
{
url: '/in',
method: 'GET',
method: 'POST',
controller: controller.signin
},
{
url: '/actions',
method: 'POST',
controller: controller.getUserActions
}
},
{
url: '/tickets',
method: 'POST',
controller: controller.getDepositTicket
},
{
url: '/users',
method: 'POST',
controller: controller.getUsers
},
];
module.exports = services.map(service => {