news.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. const News = require('../module/News');
  2. const Router = require('koa-router');
  3. const permission = require('../intercept/permission');
  4. const router = new Router();
  5. async function getNews(id) {
  6. let news = new News();
  7. news.id = id;
  8. let [result = {}] = await news.query()
  9. return result
  10. }
  11. /**
  12. * 获取新闻数据
  13. */
  14. router.get('/', async ctx => {
  15. let { page = 0, keyword = '', limit = 15, language } = ctx.request.query;
  16. let news = new News();
  17. news.hide = 0;
  18. let result = await news.paging(page, Number(limit), keyword, language)
  19. ctx.body = {
  20. msg: '成功获取数据',
  21. content: result
  22. }
  23. });
  24. /**
  25. * 获取数据具体数据
  26. */
  27. router.get('/:id', async ctx => {
  28. let language = Number(ctx.query.language)
  29. let id = ctx.params.id;
  30. (!id || !Number.isFinite(Number(id))) &&
  31. ctx.error('该新闻不存在,请刷新后重试!');
  32. let result = await getNews(id)
  33. if (language && result.language !== language && result.redire) {
  34. let reResult = null
  35. let reId = language === 1 ? result.chinese_id :
  36. language === 2 ? result.english_id : null
  37. reId && (reResult = await getNews(reId))
  38. reResult && (result = reResult)
  39. }
  40. ctx.body = {
  41. msg: '成功获取!',
  42. content: result
  43. };
  44. });
  45. /**
  46. * 添加新闻
  47. */
  48. router.post('/', permission, async ctx => {
  49. let body = ctx.request.body;
  50. let news = new News();
  51. news.title = body.title;
  52. news.content = body.content;
  53. news.cover = body.cover;
  54. news.label = body.label;
  55. news.outer_link = body.outer_link
  56. news.redire = body.redire;
  57. news.date = body.date;
  58. news.sort = Number(body.sort) || 0;
  59. news.address = body.address;
  60. news.origin = body.origin;
  61. news.language = body.language;
  62. news.brief = body.brief
  63. news.chinese_id = Number(body.chinese_id) || 0;
  64. news.english_id = Number(body.english_id) || 0;
  65. news.user_id = ctx.session.user.id
  66. let { insertId } = await news.insert()
  67. ctx.body = {
  68. msg: '成功添加!',
  69. insertId
  70. };
  71. });
  72. /**
  73. * 修改新闻
  74. */
  75. router.put('/', permission, async ctx => {
  76. let body = ctx.request.body;
  77. let news = new News();
  78. news.id = body.id;
  79. if (!await news.exists()) {
  80. ctx.error('该新闻不存在!')
  81. }
  82. console.log('----------', body.origin, '--------------')
  83. news.title = body.title;
  84. news.content = body.content;
  85. news.cover = body.cover;
  86. news.label = body.label;
  87. news.date = body.date;
  88. news.redire = body.redire;
  89. news.origin = body.origin;
  90. news.outer_link = body.outer_link
  91. news.brief = body.brief
  92. news.language = body.language;
  93. news.chinese_id = Number(body.chinese_id) || 0;
  94. news.english_id = Number(body.english_id) || 0;
  95. news.sort = Number(body.sort) || 0;
  96. news.address = body.address;
  97. await news.update()
  98. ctx.body = {
  99. msg: '成功修改!'
  100. };
  101. });
  102. /**
  103. * 删除文章
  104. */
  105. router.delete('/:id', permission, async ctx => {
  106. let id = ctx.params.id;
  107. (!id || !Number.isFinite(Number(id))) &&
  108. ctx.error('该新闻不存在,请刷新后重试!');
  109. let news = new News();
  110. news.id = id;
  111. news.hide = 0;
  112. (await news.exists()) ||
  113. ctx.error('该新闻不存在,请刷新后重试!');
  114. news.hide = 1;
  115. await news.update();
  116. ctx.body = { msg: '成功删除!' };
  117. });
  118. module.exports = exports = { path: '/news', router };