Browse Source

去除标题名字模糊删除,日志增加时间人员信息

asd123a20 3 years ago
parent
commit
8289067b16

+ 21 - 9
app/middleware/error_handler.js

@@ -1,19 +1,25 @@
 'use strict';
 const routerMethod = require('../../config/routerMethod');
 const routerMondel = require('../../config/routerMondel');
+const moment = require('moment');
 module.exports = () => {
   return async function errorHandler(ctx, next) {
     let jsons = { };
     const { url, method, body } = ctx.request;
-    if (method !== 'GET') {
+    let mondel = '';
+    let methods = '';
+    // token
+    const str = ctx.request.header.authorization;
+    const token = str.substring(7);
+    const decode = ctx.app.jwt.verify(token, ctx.app.config.secret);
+    const date = moment().format('YYYY-MM-DD HH:mm:ss');
+    if (url.indexOf('power') === -1 && method !== 'GET') {
       const str = url.split('/');
-      let mondel;
-      let method;
       for (let i = 0; i < str.length; i++) {
         const e = str[i];
         if (e !== '' && e !== 'api') {
-          if (e === 'create' || e === 'update' || e === 'delete') {
-            method = routerMethod[e];
+          if (e === 'create' || e === 'update' || e === 'delete' || e === 'upload') {
+            methods = routerMethod[e];
             if (e === 'delete') {
               break;
             }
@@ -22,17 +28,23 @@ module.exports = () => {
           }
         }
       }
-      jsons = { mondel, method, data: body };
+      jsons = { mondel, method: methods, data: body };
     }
     try {
-      await next();
-      if (method !== 'GET') {
+      if (method !== 'GET' && url.indexOf('power') === -1) {
         jsons.result = '成功';
+        jsons.userName = decode.userName;
+        jsons.acct = decode.acct;
+        jsons.date = date;
         await ctx.service.log.create(jsons);
       }
+      await next();
     } catch (err) {
-      if (method !== 'GET') {
+      if (method !== 'GET' && url.indexOf('power') === -1) {
         jsons.result = '失败';
+        jsons.userName = decode.userName;
+        jsons.acct = decode.acct;
+        jsons.date = date;
         await ctx.service.log.create(jsons);
       }
       const { message } = err;

+ 9 - 0
app/model/Log.js

@@ -23,6 +23,15 @@ module.exports = app => {
     createAt: {
       type: String,
     },
+    userName: {
+      type: String,
+    },
+    acct: {
+      type: String,
+    },
+    date: {
+      type: String,
+    },
   });
   return mongoose.model('Log', LogSchema);
 };

+ 1 - 1
app/service/adminUser.js

@@ -66,7 +66,7 @@ class adminUserService extends Service {
   async query({ skip, limit, userName, state, acct }) {
     const { AdminUser: model } = this.ctx.model;
     const filter = {};
-    if (userName) filter.userName = { $regex: userName };
+    if (userName) filter.userName = userName;
     if (state) filter.state = state;
     if (acct) filter.acct = acct;
     try {

+ 1 - 1
app/service/banner.js

@@ -57,7 +57,7 @@ class ContentService extends Service {
   async query({ skip, limit, title }) {
     const { Banner: model } = this.ctx.model;
     const filter = {};
-    if (title) filter.title = { $regex: title };
+    if (title) filter.title = title;
     const total = await model.find({ ...filter });
     try {
       let res;

+ 1 - 1
app/service/column.js

@@ -83,7 +83,7 @@ class ColumnService extends Service {
   async query({ skip, limit, name, code }) {
     const { Column: model } = this.ctx.model;
     const filter = {};
-    if (name) filter.name = { $regex: name };
+    if (name) filter.name = name;
     if (code) filter.code = code;
     try {
       let res;

+ 3 - 3
app/service/content.js

@@ -21,14 +21,14 @@ class ContentService extends Service {
       throw new Error({ errcode: -2001, errmsg: '添加失败' });
     }
   }
-  async update({ title, thumbnail, annex, content, istop, columns, _id, year, datte, annexname }) {
+  async update({ title, thumbnail, annex, content, istop, columns, _id, year, date, annexname }) {
     assert(_id, 'id不存在');
     const { Content: model } = this.ctx.model;
     let text = content.replace(new RegExp('</?[^>]+>', 'gm'), '');
     text = text.replace('\\s*|\t|\r|\n', '');
     const slug = text.substring(0, 200);
     try {
-      await model.findById(_id).update({ title, slug, thumbnail, annex, content, istop, columns, year, datte, annexname });
+      await model.findById(_id).update({ title, slug, thumbnail, annex, content, istop, columns, year, date, annexname });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       throw new Error({ errcode: -2001, errmsg: '修改失败' });
@@ -62,7 +62,7 @@ class ContentService extends Service {
   async query({ skip, limit, title, columns }) {
     const { Content: model } = this.ctx.model;
     const filter = {};
-    if (title) filter.title = { $regex: title };
+    if (title) filter.title = title;
     if (columns) filter.columns = columns;
     let total = 0;
     try {

+ 1 - 2
app/service/files.js

@@ -50,7 +50,7 @@ class FilesService extends Service {
     assert(type, '类型不存在');
     const filter = {};
     filter.type = type;
-    if (name) filter.name = { $regex: name };
+    if (name) filter.name = name;
     const { Files: model } = this.ctx.model;
     try {
       const total = await model.find({ ...filter });
@@ -102,7 +102,6 @@ class FilesService extends Service {
       await this.ctx.service.files.create({ name: filename, path: filepath, type });
       return { errmsg: '', errcode: 0, data: { name: filename, path: filepath } };
     } catch (error) {
-      console.log(error);
       throw new Error({ errcode: -2001, errmsg: '上传失败' });
     }
   }

+ 1 - 1
app/service/link.js

@@ -42,7 +42,7 @@ class LinkService extends Service {
     const { Links: model } = this.ctx.model;
     try {
       const filter = {};
-      if (name) filter.name = { $regex: name };
+      if (name) filter.name = name;
       let res;
       const total = await model.find({ ...filter });
       if (skip && limit) {

+ 5 - 2
app/service/log.js

@@ -4,15 +4,18 @@ const Service = require('egg').Service;
 const assert = require('assert');
 const moment = require('moment');
 class LogService extends Service {
-  async create({ mondel, method, data, result }) {
+  async create({ mondel, method, data, result, userName, acct, date }) {
     assert(mondel, '模块不存在');
     assert(method, '类型不存在');
     assert(data, '数据不存在');
     assert(result, '结果不存在');
+    assert(userName, '操作人不存在');
+    assert(acct, '操作帐号不存在');
+    assert(date, '时间不存在');
     const { Log: model } = this.ctx.model;
     const createAt = moment().format('x');
     try {
-      await model.create({ data, method, createAt, mondel, result });
+      await model.create({ data, method, createAt, mondel, result, userName, acct, date });
       return { errmsg: '', errcode: 0 };
     } catch (error) {
       console.log(error);

+ 1 - 1
app/service/menu.js

@@ -84,7 +84,7 @@ class MenuService extends Service {
     const { Menu: model } = this.ctx.model;
     try {
       const filter = {};
-      if (name) filter.name = { $regex: name };
+      if (name) filter.name = name;
       if (code) filter.code = code;
       if (type) filter.type = type;
       const total = await model.find({ ...filter });

+ 1 - 1
app/service/page.js

@@ -71,7 +71,7 @@ class PageService extends Service {
   async query({ skip, limit, title }) {
     const { Page: model } = this.ctx.model;
     const filter = {};
-    if (title) filter.title = { $regex: title };
+    if (title) filter.title = title;
     try {
       const total = await model.find({ ...filter });
       let res;

+ 1 - 1
app/service/role.js

@@ -54,7 +54,7 @@ class RoleService extends Service {
   async query({ skip, limit, name, code, state }) {
     const { Role: model } = this.ctx.model;
     const filter = {};
-    if (name) filter.name = { $regex: name };
+    if (name) filter.name = name;
     if (code) filter.state = code;
     if (state) filter.acct = state;
     try {

+ 13 - 13
config/config.default.js

@@ -50,21 +50,21 @@ module.exports = appInfo => {
   config.userSecret = '123456';
   config.filespath = '/home/cms';
   // 数据库配置
-  // config.mongoose = {
-  //   url: 'mongodb://172.17.116.7:27018/cms',
-  //   options: {
-  //     user: 'root',
-  //     pass: 'cms@cc-lotus',
-  //     authSource: 'admin',
-  //     useNewUrlParser: true,
-  //     useCreateIndex: true,
-  //     useUnifiedTopology: true,
-  //   },
-  // };
   config.mongoose = {
-    url: 'mongodb://127.0.0.1:27017/example',
-    options: {},
+    url: 'mongodb://172.17.116.7:27018/cms',
+    options: {
+      user: 'root',
+      pass: 'cms@cc-lotus',
+      authSource: 'admin',
+      useNewUrlParser: true,
+      useCreateIndex: true,
+      useUnifiedTopology: true,
+    },
   };
+  // config.mongoose = {
+  //   url: 'mongodb://127.0.0.1:27017/example',
+  //   options: {},
+  // };
   // 异常捕获 路由拦截
   config.middleware = [ 'errorHandler' ];
   config.errorHandler = {

+ 2 - 0
config/routerMethod.js

@@ -1,3 +1,4 @@
+/* eslint-disable no-dupe-keys */
 /* eslint-disable quote-props */
 'use strict';
 
@@ -6,4 +7,5 @@ module.exports = {
   'create': '添加',
   'update': '修改',
   'delete': '删除',
+  'upload': '上传文件',
 };