123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- const _ = require('lodash');
- const jwt = require('jsonwebtoken');
- const { Op } = require('sequelize');
- const express = require('express');
- const { body } = require('express-validator');
- const paramCheck = require('../../../middleware/check');
- const { getToken } = require('../../../utils/qiniu');
- const { setCookie, md5, clearCookie, onSuccess, onError } = require('../../../utils');
- const { jwtSecretAdmin } = require('../../../config');
- const Admin = require('../../../db/models/admin');
- const { home } = require('../../../models/page');
- const router = express.Router();
- router.get('/', async (req, res, next) => {
- // if (!req.admin) {
- // return res.redirect('/master/login');
- // }
- // const admin = req.cookies.token || req.session.admin;
- // // const admin = jwt.decode(token, jwtSecretAdmin);
- // if (!admin) {
- // return res.redirect('/master/login');
- // }
- res.render('master');
- });
- // // 登录
- // router.get('/login', (req, res) => {
- // if (req.admin) {
- // return res.redirect('/master');
- // }
- // const admin = req.cookies.token || req.session.admin;
- // // const admin = jwt.decode(token, jwtSecretAdmin);
- // if (admin) {
- // return res.redirect('/master');
- // }
- // res.render('master');
- // });
- /**
- * showdoc
- * @catalog v1/后台/登陆相关
- * @title 登录
- * @description 登录接口
- * @method POST
- * @url /master/login
- * @param phone 1 string 手机号
- * @param password 1 string 密码
- * @return
- * @remark
- * @number
- */
- // 登录
- router.post(
- '/login',
- paramCheck([body(['phone', 'password']).isString()]),
- async (req, res, next) => {
- const { phone, password } = req.body;
- const data = await Admin.findOne({
- where: {
- [Op.or]: [{ phone }, { name: phone }],
- pwd: md5(password),
- },
- });
- if (!data || !data.id) {
- return res.send(onError('帐号或密码错误'));
- }
- req.session.admin = data;
- // setCookie({
- // res,
- // key: 'token',
- // value: data,
- // domain: '',
- // });
- return res.send(onSuccess(data));
- }
- );
- /**
- * showdoc
- * @catalog v1/后台/登陆相关
- * @title 退出登录
- * @description 退出登录接口
- * @method GET
- * @url /master/signout
- * @return
- * @remark
- * @number
- */
- // 登出
- router.get('/signout', async (req, res) => {
- // clearCookie(res, 'token');
- req.session.destroy(async err => {
- err && console.error(err, 'err');
- // res.redirect('/master/login');
- });
- // return res.send(onSuccess(null, '退出成功'));
- return res.redirect('/master');
- });
- /**
- * showdoc
- * @catalog v1/后台/登陆相关
- * @title 获取七牛token
- * @description 获取七牛token
- * @method GET
- * @url /master/qiniu_token
- * @return {"code":0,"data": "zgHXZu267Ka7IF3EIljfVVsW6jdNAplr0gGd-bfQ:EgvJ8ouY3hPrxNzxsfOubQg2Om4=:eyJpbnNlcnRPbmx5IjoxLCJzY29wZSI6InNlYWdpbmUtdGVzdCIsImRlYWRsaW5lIjoxNjU1MjgwNDM1fQ=="endpoint: "https://s4.360chief.com/"prefix: "bpp/"}
- * @remark
- * @number
- */
- router.get('/qiniu_token', async (req, res) => {
- const data = await getToken();
- res.json(onSuccess(data));
- });
- /**
- * showdoc
- * @catalog v1/后台/登陆相关
- * @title 个人信息
- * @description 个人信息接口
- * @method GET
- * @url /master/my
- * @return {"code":0,"data":{"id":1000,"account":"admin111","name":"测试","roleId":1000,"img":"https://s4.360chief.com/bpp/5996773316732686.png","createdAt":"2022-06-13 11:07:11","roleName":"项目经理"}}
- * @remark
- * @number
- */
- router.get('/my', async (req, res) => {
- const data = await Admin.findOne({
- where: { id: req.admin.id },
- });
- res.send(onSuccess(data));
- });
- /**
- * showdoc
- * @catalog v1/后台/首页相关
- * @title 首页数据
- * @description 首页数据接口
- * @method GET
- * @url /master/home
- * @return {"code":0,"data":{}}
- * @return_param sCount integer 样本总数
- * @return_param sReserves integer 储蓄量总计
- * @return_param sVolume integer 积蓄量总计
- * @return_param clueCount integer 咨询量总计
- * @return_param bCount integer 商家数量
- * @return_param clue7 array 近七天咨询量(第一个是今天)
- * @return_param bus array 商家地区分布
- * @return_param bus.psum integer 商家地区分布数量
- * @remark
- * @number
- */
- router.get('/home', async (req, res) => {
- const data = await home();
- res.send(data);
- });
- /**
- * showdoc
- * @catalog v1/后台/登陆相关
- * @title 修改该密码
- * @description 修改密码接口
- * @method PUT
- * @url /master/pwd/
- * @param npwd 1 string 新密码
- * @param pwd 1 string 密码
- * @return {"code":0, "msg": "修改成功"}
- * @remark
- * @number
- */
- router.put('/pwd', paramCheck([body(['npwd', 'pwd']).isString()]), async (req, res) => {
- const { pwd, npwd } = req.body;
- const aItem = await Admin.findOne({ where: { id: req.admin.id, pwd: md5(pwd) } });
- if (!aItem) {
- res.send(onError('密码错误'));
- }
- req.boyd.pwd = md5(npwd);
- const data = await Admin.update(_.pick(req.body, ['pwd']), {
- where: { id: req.admin.id },
- limit: 1,
- });
- res.send(onSuccess(null, '修改成功'));
- });
- module.exports = router;
|