r_product.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. const router = require('express').Router();
  2. const {paramFail, ServerError, success, controlError, searchSuccess} = require("../tools/result");
  3. const c = require('../control/product');
  4. const log = require("../logger").logger("r_product","info")
  5. const typeTool = require('../tools/typeTool_cjs');
  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. // console.log(key);
  22. // log.info(key);
  23. [err, result] = await c.loadProduct(key, p, l);
  24. if(err){ return controlError(res, err, null);}
  25. success(res, result);
  26. }catch (e) {
  27. ServerError(res, null, e.message);
  28. }
  29. });
  30. router.get(
  31. '/search',
  32. async (req, res) => {
  33. try{
  34. log.info(`[搜索产品] `)
  35. let err, result;
  36. let {key, l, p, type} = req.query;
  37. type = type || 'all';
  38. l = typeTool.toNumber(l);
  39. p = typeTool.toNumber(p);
  40. log.info(`page=${p},limit=${l}`);
  41. [err, result] = await c.searchProduct(type, key, p, l);
  42. if(err){
  43. log.info(`[搜索产品] err=${err}`);
  44. return controlError(res, err, null);}
  45. log.info(`result len=${result.arr.length}`)
  46. searchSuccess(res,
  47. result.arr,
  48. result.total,
  49. result.page,
  50. result.limit,
  51. );
  52. }catch (e) {
  53. ServerError(res, null, e.message);
  54. }
  55. });
  56. /**
  57. * 获取产品信息
  58. * @param id path 产品id
  59. */
  60. router.get('/:id', async (req, res) => {
  61. try{
  62. let err, result;
  63. let {id} = req.params;
  64. if(!id){
  65. paramFail(res, "id is required");
  66. return;
  67. }
  68. id = typeTool.toNumber(id);
  69. log.info(`product info ${id}`);
  70. [err, result] = await c.getProductInfo(id);
  71. if(err){ return controlError(res, err, null);}
  72. success(res, result);
  73. }catch (e) {
  74. ServerError(res, null, e.message);
  75. }
  76. });
  77. module.exports = router ;