page.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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, thumbnail, annex, content, istop, menu }) {
  7. assert(title, '标题不存在');
  8. assert(shortTitle, '短标题不存在');
  9. assert(slug, '摘要不存在');
  10. assert(content, '内容不存在');
  11. const { Page: model } = this.ctx.model;
  12. const createAt = moment().format('x');
  13. try {
  14. await model.create({ title, shortTitle, slug, thumbnail, annex, content, istop, menu, createAt });
  15. return { errmsg: '', errcode: 0 };
  16. } catch (error) {
  17. throw new Error({ errcode: -2001, errmsg: '添加失败' });
  18. }
  19. }
  20. async update({ title, shortTitle, slug, thumbnail, annex, content, istop, menu, id }) {
  21. assert(id, 'id不存在');
  22. const { Page: model } = this.ctx.model;
  23. try {
  24. await model.findByIdAndUpdate(id, { title, shortTitle, slug, thumbnail, annex, content, istop, menu });
  25. return { errmsg: '', errcode: 0 };
  26. } catch (error) {
  27. throw new Error({ errcode: -2001, errmsg: '修改失败' });
  28. }
  29. }
  30. async del({ id }) {
  31. assert(id, 'id不存在');
  32. const { Page: model } = this.ctx.model;
  33. try {
  34. await model.findByIdAndDelete(id);
  35. return { errmsg: '', errcode: 0 };
  36. } catch (error) {
  37. throw new Error({ errcode: -2001, errmsg: '删除失败' });
  38. }
  39. }
  40. async details({ code }) {
  41. assert(code, 'code不存在');
  42. const { Page: model } = this.ctx.model;
  43. try {
  44. const res = await model.where('menu').in(code);
  45. return { errmsg: '', errcode: 0, data: res };
  46. } catch (error) {
  47. throw new Error({ errcode: -2001, errmsg: '删除失败' });
  48. }
  49. }
  50. async query({ skip, limit }) {
  51. const { Page: model } = this.ctx.model;
  52. try {
  53. let res;
  54. if (skip && limit) {
  55. res = await model.find({ content: false }).skip(skip * limit).limit(limit);
  56. } else {
  57. res = await model.find({ content: false });
  58. }
  59. return { errmsg: '', errcode: 0, data: res };
  60. } catch (error) {
  61. throw new Error({ errcode: -2001, errmsg: '查询失败' });
  62. }
  63. }
  64. }
  65. module.exports = PageService;