page.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. 'use strict';
  2. const Service = require('egg').Service;
  3. const assert = require('assert');
  4. const moment = require('moment');
  5. class PageService extends Service {
  6. async create({ title, shortTitle, slug, annex, content, istop, menu }) {
  7. assert(title, '标题不存在');
  8. assert(shortTitle, '短标题不存在');
  9. assert(slug, '摘要不存在');
  10. assert(content, '内容不存在');
  11. assert(content, '内容不存在');
  12. const { Page: model } = this.ctx.model;
  13. const createAt = moment().format('x');
  14. try {
  15. await model.create({ title, shortTitle, slug, annex, content, istop, menu, createAt });
  16. return { errmsg: '', errcode: 0 };
  17. } catch (error) {
  18. throw new Error({ errcode: -2001, errmsg: '添加失败' });
  19. }
  20. }
  21. async update({ title, shortTitle, slug, annex, content, istop, menu, _id }) {
  22. assert(_id, 'id不存在');
  23. const { Page: model } = this.ctx.model;
  24. try {
  25. await model.findById(_id).update({ title, shortTitle, slug, annex, content, istop, menu });
  26. return { errmsg: '', errcode: 0 };
  27. } catch (error) {
  28. throw new Error({ errcode: -2001, errmsg: '修改失败' });
  29. }
  30. }
  31. async del({ id }) {
  32. assert(id, 'id不存在');
  33. const { Page: model } = this.ctx.model;
  34. try {
  35. await model.findById(id).remove();
  36. return { errmsg: '', errcode: 0 };
  37. } catch (error) {
  38. throw new Error({ errcode: -2001, errmsg: '删除失败' });
  39. }
  40. }
  41. async details({ id }) {
  42. assert(id, 'id不存在');
  43. const { Page: model } = this.ctx.model;
  44. try {
  45. const res = await model.findById(id);
  46. return { errmsg: '', errcode: 0, data: res };
  47. } catch (error) {
  48. throw new Error({ errcode: -2001, errmsg: '删除失败' });
  49. }
  50. }
  51. async detailscode({ code }) {
  52. assert(code, 'code不存在');
  53. const { Page: model } = this.ctx.model;
  54. try {
  55. const res = await model.find({ menu: code });
  56. return { errmsg: '', errcode: 0, data: res };
  57. } catch (error) {
  58. throw new Error({ errcode: -2001, errmsg: '删除失败' });
  59. }
  60. }
  61. async query({ skip, limit, title }) {
  62. const { Page: model } = this.ctx.model;
  63. const filter = {};
  64. if (title) filter.title = title;
  65. try {
  66. const total = await model.find();
  67. let res;
  68. if (skip && limit) {
  69. res = await model.find({ ...filter }, { content: false }).skip(Number(skip) * Number(limit)).limit(Number(limit));
  70. } else {
  71. res = await model.find({ ...filter }, { content: false });
  72. }
  73. return { errmsg: '', errcode: 0, data: res, total: total.length };
  74. } catch (error) {
  75. throw new Error({ errcode: -2001, errmsg: '查询失败' });
  76. }
  77. }
  78. }
  79. module.exports = PageService;