GetOrderDetail.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. const API = require("../../../lib/API")
  2. const db = require("../../../plugin/DataBase/db")
  3. const AccessControl = require("../../../lib/AccessControl")
  4. const { BaseStdResponse } = require("../../../BaseStdResponse")
  5. class GetOrderDetail extends API {
  6. constructor() {
  7. super()
  8. this.setPath('/Admin/Order/Detail')
  9. this.setMethod('get')
  10. }
  11. async onRequest(req, res) {
  12. const { uuid, session, orderId } = req.query
  13. if (!uuid || !session || !orderId) {
  14. return res.json({
  15. ...BaseStdResponse.MISSING_PARAMETER
  16. })
  17. }
  18. if (!await AccessControl.checkSession(uuid, session)) {
  19. return res.status(401).json({
  20. ...BaseStdResponse.ACCESS_DENIED
  21. })
  22. }
  23. let permission = await AccessControl.getPermission(uuid)
  24. if (!permission.includes("admin") && !permission.includes("product")) {
  25. return res.json({
  26. ...BaseStdResponse.PERMISSION_DENIED
  27. })
  28. }
  29. const sql = `
  30. SELECT
  31. o.orderId,
  32. o.create_time,
  33. o.pay_time,
  34. o.price,
  35. o.original_price,
  36. o.discount_amount,
  37. o.coupon_code,
  38. o.state,
  39. o.pay_id,
  40. o.pay_type,
  41. o.goods_id,
  42. o.create_user,
  43. g.name,
  44. g.content,
  45. g.icon,
  46. g.isHot,
  47. g.description,
  48. g.category,
  49. g.features,
  50. g.lepao_count,
  51. g.ic_count,
  52. g.vip,
  53. u.username,
  54. u.avatar,
  55. u.email AS user_email
  56. FROM
  57. orders o
  58. LEFT JOIN
  59. goods g ON o.goods_id = g.id
  60. LEFT JOIN
  61. users u ON o.create_user = u.uuid
  62. WHERE
  63. o.orderId = ?
  64. `
  65. const rows = await db.query(sql, [orderId])
  66. if (!rows || rows.length !== 1) {
  67. return res.json({
  68. ...BaseStdResponse.ERR,
  69. msg: '订单不存在'
  70. })
  71. }
  72. res.json({
  73. ...BaseStdResponse.OK,
  74. data: rows[0]
  75. })
  76. }
  77. }
  78. module.exports.GetOrderDetail = GetOrderDetail