log.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. 'use strict';
  2. const assert = require('assert');
  3. const Service = require('egg').Service;
  4. const moment = require('moment');
  5. class LogService extends Service {
  6. constructor(ctx) {
  7. super(ctx);
  8. this.model = this.ctx.model.Log;
  9. }
  10. async create({ service, module, method, details, result, userName, name }) {
  11. assert(service, 'service不存在');
  12. assert(module, 'module不存在');
  13. assert(method, 'method不存在');
  14. assert(details, 'details不存在');
  15. assert(result, 'result不存在');
  16. try {
  17. const createAt = moment().format('x');
  18. const updateAt = moment().format('x');
  19. const res = await this.model.create({ service, module, method, details, result, userName, name, createAt, updateAt });
  20. return { errcode: 0, errmsg: 'ok', data: res };
  21. } catch (error) {
  22. throw error;
  23. }
  24. }
  25. async update({ id, service, module, method, details, result, userName, name }) {
  26. assert(id, 'id不存在');
  27. try {
  28. await this.model.updateOne({ _id: id }, { service, module, method, details, result, userName, name });
  29. return { errcode: 0, errmsg: 'ok', data: '' };
  30. } catch (error) {
  31. throw error;
  32. }
  33. }
  34. async delete({ id }) {
  35. assert(id, 'id不存在');
  36. try {
  37. await this.model.remove({ _id: id });
  38. return { errcode: 0, errmsg: 'ok', data: '' };
  39. } catch (error) {
  40. throw error;
  41. }
  42. }
  43. async query({ skip, limit, service, module, method, result, userName, name }) {
  44. const filter = {};
  45. if (service || module || method || result || userName || name) filter.$or = [];
  46. if (service) filter.$or.push({ service: { $regex: service } });
  47. if (module) filter.$or.push({ module: { $regex: module } });
  48. if (method) filter.$or.push({ method: { $regex: method } });
  49. if (result) filter.$or.push({ result: { $regex: result } });
  50. if (userName) filter.$or.push({ userName: { $regex: userName } });
  51. if (name) filter.$or.push({ name: { $regex: name } });
  52. try {
  53. const total = await this.model.find({ ...filter });
  54. let res;
  55. if (skip && limit) {
  56. res = await this.model.find({ ...filter }).sort({ createAt: -1 }).skip(Number(skip) * Number(limit))
  57. .limit(Number(limit));
  58. } else {
  59. res = await this.model.find({ ...filter });
  60. }
  61. return { errcode: 0, errmsg: 'ok', data: res, total: total.length };
  62. } catch (error) {
  63. throw error;
  64. }
  65. }
  66. async fetch({ id }) {
  67. assert(id, 'id不存在');
  68. try {
  69. const res = await this.model.findOne({ _id: id });
  70. return { errcode: 0, errmsg: 'ok', data: res };
  71. } catch (error) {
  72. throw error;
  73. }
  74. }
  75. }
  76. module.exports = LogService;