r_news.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. const router = require('express').Router();
  2. const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result");
  3. const c_solution = require("../control/c_solution");
  4. const typeTool = require("../tools/typeTool_cjs");
  5. const c = require("../control/c_news");
  6. const {isEmpty} = require("../tools/typeTool_cjs");
  7. const checkLogin = require("../middleware/checkSession");
  8. const progressField = require("../map/progressField");
  9. const log = require("../logger").logger("r_news","info");
  10. router.get(
  11. '/search',
  12. async (req, res) => {
  13. try{
  14. let err, result;
  15. let {key, l, p, type, s,st } = req.query;
  16. type = type || 'all';
  17. l = typeTool.toNumber(l);
  18. p = typeTool.toNumber(p);
  19. log.info(`page=${p},limit=${l}`);
  20. [err, result] = await c_solution.searchNews(type, key, s, st, p, l);
  21. if(err){
  22. return controlError(res, err, null);}
  23. log.info(`result len=${result.arr.length}`)
  24. searchSuccess(res,
  25. result.arr,
  26. result.total,
  27. result.page,
  28. result.limit,
  29. );
  30. }catch (e) {
  31. ServerError(res, null, e.message);
  32. }
  33. });
  34. router.get(
  35. '/pages',
  36. async (req, res) => {
  37. try{
  38. log.info(`获取所有文章接口`)
  39. let err, result;
  40. let {key, l, p, type ,pType} = req.query;
  41. type = type || 'all';
  42. l = typeTool.toNumber(l);
  43. p = typeTool.toNumber(p);
  44. log.info(`key=${key} pTYpe=${pType} page=${p},limit=${l}`);
  45. [err, result] = await c_solution.searchAllNews(pType, type, key, p, l);
  46. if(err){
  47. return controlError(res, err, null);}
  48. log.info(`result len=${result.arr.length}`)
  49. searchSuccess(res,
  50. result.arr,
  51. result.total,
  52. result.page,
  53. result.limit,
  54. );
  55. }catch (e) {
  56. ServerError(res, null, e.message);
  57. }
  58. });
  59. router.get('/mini', async (req, res) => {
  60. try{
  61. log.info(`[搜索文章] 只获取基础值`)
  62. let err, result;
  63. let {key, l, p, type} = req.query;
  64. type = type || 'all';
  65. l = typeTool.toNumber(l);
  66. p = typeTool.toNumber(p);
  67. log.info(`page=${p},limit=${l}`);
  68. [err, result] = await c.searchNewsByMini(type, key, p, l);
  69. if(err){
  70. log.info(`[搜索文章] err=${err}`);
  71. return controlError(res, err, null);}
  72. log.info(`result len=${result.arr.length}`)
  73. searchSuccess(res,
  74. result.arr,
  75. result.total,
  76. result.page,
  77. result.limit,
  78. );
  79. }catch (e) {
  80. ServerError(res, null, e.message);
  81. }
  82. });
  83. router.get('/read',async(req,res)=>{
  84. try{
  85. let err, result;
  86. let {id} = req.query;
  87. id = typeTool.toNumber(id);
  88. if(!id){
  89. paramFail(res, "id is required");
  90. return;
  91. }
  92. [err, result] = await c.addReadNum(id);
  93. if(err){ return controlError(res, err, null);}
  94. success(res, result);
  95. }catch (e) {
  96. ServerError(res, null, e.message);
  97. }
  98. })
  99. router.post('/add',async(req,res)=>{
  100. try{
  101. let err, result;
  102. let body = req.body;
  103. if(isEmpty(body) || !body.title || !body.content || !body.type || !body.cover){
  104. paramFail(res, "请按照要求填写数据");
  105. return;
  106. }
  107. [err, result] = await c.addArticle(body);
  108. if(err){ return controlError(res, err, null);}
  109. success(res, result);
  110. }catch (e) {
  111. ServerError(res, null, e.message);
  112. }
  113. });
  114. router.post('/edit',async(req,res)=>{
  115. try{
  116. let err, result;
  117. let body = req.body;
  118. if(isEmpty(body) || !body.title || !body.content || !body.type || !body.cover){
  119. paramFail(res, "请按照要求填写数据");
  120. return;
  121. }
  122. [err, result] = await c.editArticle(body);
  123. if(err){ return controlError(res, err, null);}
  124. success(res, result);
  125. }catch (e) {
  126. ServerError(res, null, e.message);
  127. }
  128. });
  129. router.delete('/del', checkLogin(progressField.session_hfy), async(req,res)=>{
  130. try{
  131. let err, result;
  132. let id = req.query.id;
  133. id = typeTool.toNumber(id);
  134. console.log(`删除文章`)
  135. if(!id){
  136. paramFail(res, "id is required");
  137. return;
  138. }
  139. [err, result] = await c.delArticle(id);
  140. if(err){ return controlError(res, err, null);}
  141. success(res, result);
  142. }catch (e) {
  143. ServerError(res, null, e.message);
  144. }
  145. })
  146. // 获取文章分类
  147. router.get('/types', async (req, res) => {
  148. try{
  149. let err, result;
  150. [err, result] = await c.getArticleTypes();
  151. if(err){ return controlError(res, err, null);}
  152. success(res, result);
  153. }catch (e) {
  154. ServerError(res, null, e.message);
  155. }
  156. });
  157. // 删除
  158. router.post('/type/edit',
  159. checkLogin(progressField.session_hfy),
  160. async (req, res) => {
  161. try {
  162. let err, result;
  163. const id = req.query.id;
  164. const body = req.body;
  165. log.info(`[编辑文章类型] id=${id}, body=${JSON.stringify(body)}`);
  166. [err, result] = await c.editType(id, body);
  167. if(err){ return controlError(res, err, null);}
  168. success(res, result);
  169. }catch (e) {
  170. ServerError(res, null, e.message);
  171. }
  172. });
  173. router.post('/type/add',
  174. checkLogin(progressField.session_hfy),
  175. async (req, res) => {
  176. try {
  177. let err, result;
  178. const body = req.body;
  179. log.info(`[新增文章类型] body=${JSON.stringify(body)}`);
  180. [err, result] = await c.addType(body);
  181. if(err){ return controlError(res, err, null);}
  182. success(res, result);
  183. }catch (e) {
  184. ServerError(res, null, e.message);
  185. }
  186. });
  187. router.delete('/type/del',
  188. checkLogin(progressField.session_hfy),
  189. async (req, res) => {
  190. try {
  191. let err, result;
  192. const id = req.query.id;
  193. log.info(`[移除文章类型] id=${id} `);
  194. if(!id ){
  195. paramFail(res, "id is must be two ");
  196. return;
  197. }
  198. [err, result] = await c.deleteType(id);
  199. if(err){ return controlError(res, err, null);}
  200. success(res, result);
  201. }catch (e) {
  202. ServerError(res, null, e.message);
  203. }
  204. });
  205. module.exports = router;