From 8ea1883828cf62f9a845725eded6a9f0bab09d6d Mon Sep 17 00:00:00 2001 From: chaosBreaking Date: Sun, 6 Oct 2019 16:10:50 +0800 Subject: [PATCH] module admin --- src/modules/admin/admin.controller.js | 61 +++++++++++++++++++++++---- src/modules/admin/admin.model.js | 4 ++ src/modules/admin/admin.service.js | 17 ++++++-- src/modules/sign/sign.controller.js | 2 +- 4 files changed, 71 insertions(+), 13 deletions(-) diff --git a/src/modules/admin/admin.controller.js b/src/modules/admin/admin.controller.js index 4292e25..f743d9c 100644 --- a/src/modules/admin/admin.controller.js +++ b/src/modules/admin/admin.controller.js @@ -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 + }); } }; \ No newline at end of file diff --git a/src/modules/admin/admin.model.js b/src/modules/admin/admin.model.js index f9b0860..23b13bb 100644 --- a/src/modules/admin/admin.model.js +++ b/src/modules/admin/admin.model.js @@ -3,6 +3,10 @@ const mongoose = require('mongoose'); const AdminSchema = new mongoose.Schema({ + name: { + type: String, + default: 'admin' + }, passwd: { type: String }, diff --git a/src/modules/admin/admin.service.js b/src/modules/admin/admin.service.js index 6239e83..c15feb8 100644 --- a/src/modules/admin/admin.service.js +++ b/src/modules/admin/admin.service.js @@ -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 => { diff --git a/src/modules/sign/sign.controller.js b/src/modules/sign/sign.controller.js index 0dbc1d3..351ca1d 100644 --- a/src/modules/sign/sign.controller.js +++ b/src/modules/sign/sign.controller.js @@ -209,7 +209,7 @@ module.exports = { } else { res.json({ code: exec.code ? exec.code : 1, - error: exec.error ? exec.error : '发送失败' + msg: exec.error ? exec.error : '发送失败' }); } },