GetRecordDetail.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 AdminGetRecordDetail extends API {
  6. constructor() {
  7. super();
  8. this.setPath('/Admin/Lepao/GetRecordDetail')
  9. this.setMethod('GET')
  10. }
  11. async onRequest(req, res) {
  12. let {
  13. uuid,
  14. session,
  15. id
  16. } = req.query
  17. if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
  18. return res.json({
  19. ...BaseStdResponse.MISSING_PARAMETER
  20. })
  21. // 检查 session
  22. if (!await AccessControl.checkSession(uuid, session))
  23. return res.status(401).json({
  24. ...BaseStdResponse.ACCESS_DENIED
  25. })
  26. // 检查权限
  27. let permission = await AccessControl.getPermission(uuid)
  28. if (!permission.includes("admin") && !permission.includes("server"))
  29. return res.json({
  30. ...BaseStdResponse.PERMISSION_DENIED
  31. })
  32. let sql = `
  33. SELECT
  34. r.time,
  35. r.path_id,
  36. r.task_id,
  37. r.area,
  38. r.path_data,
  39. r.startTime,
  40. r.endTime,
  41. r.distance,
  42. r.state,
  43. r.lepao_account,
  44. a.name
  45. FROM
  46. lepao_record r
  47. LEFT JOIN
  48. lepao_account a
  49. ON
  50. r.lepao_account = a.student_num
  51. WHERE
  52. r.id = ?
  53. `
  54. let rows = await db.query(sql, [id])
  55. if (!rows)
  56. return res.json({
  57. ...BaseStdResponse.MISSING_FILE,
  58. msg: '获取记录数据失败!'
  59. })
  60. if(rows.length === 0)
  61. return res.json({
  62. ...BaseStdResponse.MISSING_FILE,
  63. msg: '记录不存在或已被删除!'
  64. })
  65. let data = rows[0]
  66. data.distance = Number(data.distance).toFixed(2)
  67. res.json({
  68. ...BaseStdResponse.OK,
  69. data
  70. })
  71. }
  72. }
  73. module.exports.AdminGetRecordDetail = AdminGetRecordDetail