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 Admin = require('./admin.model');
const Action = require('../action/action.model'); const Action = require('../action/action.model');
const Ticket = require('../ticket/ticket.model'); const Ticket = require('../ticket/ticket.model');
const User = require('../user/user.model');
const crypto = require('../../utils/crypto');
module.exports = { module.exports = {
signin: function (SysConfig) { signup: inject(function (SysConfig) {
const { JWT_SECRET } = SysConfig; const { JWT_SECRET } = SysConfig;
return async (req, res) => { return async (req, res) => {
const { adminId, passwd } = req.headers; const { name, passwd = '' } = req.body;
if (!adminId || !passwd) return res.json({ code: 1, msg: '密码错误' }); const exist = await Admin.exists({ name });
const admin = await Admin.findOne({ id: adminId, passwd }); if (exist) return res.json({
code: 1,
msg: '已存在'
});
const admin = await new Admin({ name, passwd: crypto.hash(passwd) }).save();
// res.locals.user // res.locals.user
// const { userId } = res.locals.user; // const { userId } = res.locals.user;
const token = createToken({ 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) { async getUserActions (req, res) {
const { adminId } = res.locals.user; const { adminId } = res.locals.user;
if (!adminId) return res.json({ code: 1, msg: '非法访问' }); if (!adminId) return res.json({ code: 1, msg: '非法访问' });
const { userId, type, op } = req.body; await Action.find({ ...req.body }).then(data => {
await Action.find({ userId, type, op }).then(data => {
return res.json({ return res.json({
code: 0, code: 0,
data data
@@ -45,8 +73,7 @@ module.exports = {
async getDepositTicket (req, res) { async getDepositTicket (req, res) {
const { adminId } = res.locals.user; const { adminId } = res.locals.user;
if (!adminId) return res.json({ code: 1, msg: '非法访问' }); if (!adminId) return res.json({ code: 1, msg: '非法访问' });
const { userId, type, status } = req.body; await Ticket.find({ ...req.body }).then(data => {
await Ticket.find({ userId, status, type }).then(data => {
return res.json({ return res.json({
code: 0, code: 0,
data data
@@ -57,5 +84,21 @@ module.exports = {
msg: err.msg 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 mongoose = require('mongoose');
const AdminSchema = new mongoose.Schema({ const AdminSchema = new mongoose.Schema({
name: {
type: String,
default: 'admin'
},
passwd: { passwd: {
type: String type: String
}, },

View File

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

View File

@@ -209,7 +209,7 @@ module.exports = {
} else { } else {
res.json({ res.json({
code: exec.code ? exec.code : 1, code: exec.code ? exec.code : 1,
error: exec.error ? exec.error : '发送失败' msg: exec.error ? exec.error : '发送失败'
}); });
} }
}, },