problem.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. const express = require('express');
  2. const _ = require('lodash');
  3. const { query, body } = require('express-validator');
  4. const { onSuccess, fill } = require('../../../utils');
  5. const { limit } = require('../../config');
  6. const check = require('../../../middleware/check');
  7. const Problem = require('../../../db/models/problem');
  8. const router = express.Router();
  9. async function fillSingle(data) {
  10. return data;
  11. }
  12. /**
  13. * showdoc
  14. * @catalog v1/商家/常见问题
  15. * @title 常见问题列表
  16. * @description 常见问题列表接口
  17. * @method GET
  18. * @url /master/problem/
  19. * @param page 0 Int 页码: 不传默认取第1页数据,每页20条数据
  20. * @return {"code":0, "count":1, "data": []}
  21. * @return_param id integer id
  22. * @return_param name string 问题名称
  23. * @return_param tid integer 类型ID
  24. * @return_param content text 问题内容
  25. * @return_param createdAt date -
  26. * @return_param updatedAt date -
  27. * @remark
  28. * @number
  29. */
  30. router.get('/', async (req, res) => {
  31. const { page = 0 } = req.query;
  32. const where = _.omit(req.query, ['page']);
  33. const info = onSuccess();
  34. info.data = await Problem.findAll({ where, limit, offset: page * limit });
  35. info.data = await fill(info.data, fillSingle);
  36. if (!page) {
  37. info.count = await Problem.count({ where });
  38. }
  39. res.send(info);
  40. });
  41. /**
  42. * showdoc
  43. * @catalog v1/商家/常见问题
  44. * @title 常见问题详情
  45. * @description
  46. * @method GET
  47. * @url /master/problem/:id
  48. * @param :id 1 STRING 详情ID
  49. * @return {"code":0, "data": {}}
  50. * @return_param id integer id
  51. * @return_param name string 问题名称
  52. * @return_param tid integer 类型ID
  53. * @return_param content text 问题内容
  54. * @return_param createdAt date -
  55. * @return_param updatedAt date -
  56. * @remark
  57. * @number
  58. */
  59. router.get('/:id', async (req, res) => {
  60. let data = await Problem.findOne({ where: req.params });
  61. data = await fill(data, fillSingle);
  62. res.send(onSuccess(data));
  63. });
  64. module.exports = router;