log.js 2.5 KB

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