r_solution.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. const router = require('express').Router();
  2. const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result");
  3. const c = require("../control/c_solution");
  4. const typeTool = require("../tools/typeTool_cjs");
  5. const log = require("../logger").logger("r_solution","info");
  6. /**
  7. * 加载解决方案
  8. * @param key query 解决方案类别
  9. * @param p query 页码
  10. * @param l query 每页数量
  11. */
  12. router.get('/load',
  13. async (req, res) => {
  14. try{
  15. let err, result;
  16. let {key, l, p} = req.query;
  17. if(!key){
  18. paramFail(res, "key is required");
  19. return;
  20. }
  21. log.info(key);
  22. [err, result] = await c.loadSolution(key, p, l);
  23. if(err){ return controlError(res, err, null);}
  24. success(res, result);
  25. }catch (e) {
  26. ServerError(res, null, e.message);
  27. }
  28. });
  29. router.get(
  30. '/search',
  31. async (req, res) => {
  32. try{
  33. let err, result;
  34. let {key, l, p, type} = req.query;
  35. type = type || 'all';
  36. l = typeTool.toNumber(l);
  37. p = typeTool.toNumber(p);
  38. log.info(`page=${p},limit=${l}`);
  39. [err, result] = await c.searchSolution(type, key, p, l);
  40. if(err){
  41. return controlError(res, err, null);}
  42. log.info(`result len=${result.arr.length}`)
  43. searchSuccess(res,
  44. result.arr,
  45. result.total,
  46. result.page,
  47. result.limit,
  48. );
  49. }catch (e) {
  50. ServerError(res, null, e.message);
  51. }
  52. });
  53. router.get('/:id', async (req, res) => {
  54. try{
  55. let err, result;
  56. let {id} = req.params;
  57. id = typeTool.toNumber(id);
  58. if(!id){
  59. paramFail(res, "id is required");
  60. return;
  61. }
  62. log.info(`get solution info ${id}`);
  63. [err, result] = await c.getSolutionInfo(id);
  64. if(err){ return controlError(res, err, null);}
  65. success(res, result);
  66. }catch (e) {
  67. ServerError(res, null, e.message);
  68. }
  69. });
  70. module.exports = router;