GetOrderList.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. const API = require("../../../lib/API.js");
  2. const db = require("../../../plugin/DataBase/db.js");
  3. const { BaseStdResponse } = require("../../../BaseStdResponse.js");
  4. const AccessControl = require("../../../lib/AccessControl.js");
  5. class GetOrderList extends API {
  6. constructor() {
  7. super();
  8. this.setPath('/Kefu/Order')
  9. this.setMethod('GET')
  10. }
  11. async onRequest(req, res) {
  12. let { uuid, session, pagesize, current } = req.query
  13. if ([uuid, session, pagesize, current].some(value => value === '' || value === null || value === undefined))
  14. return res.json({
  15. ...BaseStdResponse.MISSING_PARAMETER
  16. })
  17. // 校验分页参数
  18. if (isNaN(pagesize) || pagesize <= 0) {
  19. return res.json({
  20. ...BaseStdResponse.ERR,
  21. msg: '参数错误'
  22. })
  23. }
  24. if (isNaN(current) || current <= 0) {
  25. return res.json({
  26. ...BaseStdResponse.ERR,
  27. msg: '参数错误'
  28. })
  29. }
  30. if (!await AccessControl.checkSession(uuid, session))
  31. return res.status(401).json({
  32. ...BaseStdResponse.ACCESS_DENIED
  33. })
  34. // 计算分页的 offset
  35. const offset = (current - 1) * pagesize
  36. let sql = `
  37. SELECT
  38. id,
  39. title,
  40. state,
  41. email,
  42. create_time,
  43. update_time
  44. FROM
  45. work_order
  46. WHERE
  47. create_user = ?
  48. ORDER BY update_time DESC
  49. LIMIT ? OFFSET ?
  50. `
  51. let countSql = `
  52. SELECT COUNT(*) AS total
  53. FROM work_order
  54. WHERE create_user = ?
  55. `
  56. let rows = await db.query(sql, [uuid, String(pagesize), String(offset)])
  57. let countResult = await db.query(countSql, [uuid])
  58. if (!rows || !countResult)
  59. return res.json({
  60. ...BaseStdResponse.DATABASE_ERR
  61. })
  62. let total = countResult[0].total
  63. res.json({
  64. ...BaseStdResponse.OK,
  65. data: rows,
  66. pagination: {
  67. current,
  68. pagesize,
  69. total
  70. }
  71. })
  72. }
  73. }
  74. module.exports.GetOrderList = GetOrderList