GetRecordDetail.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 GetRecordDetail extends API {
  6. constructor() {
  7. super();
  8. this.setPath('/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. let sql = `
  27. SELECT
  28. r.time,
  29. r.result,
  30. r.lepao_account,
  31. r.point_data,
  32. a.name,
  33. p.data
  34. FROM
  35. lepao_record r
  36. LEFT JOIN
  37. lepao_account a
  38. ON
  39. r.lepao_account = a.student_num
  40. LEFT JOIN
  41. path_data p
  42. ON
  43. r.path_id = p.id
  44. WHERE
  45. (r.uuid = ? OR (a.create_user IS NOT NULL AND a.create_user = ?)) AND r.id = ?
  46. `
  47. let rows = await db.query(sql, [uuid, uuid, id])
  48. if (!rows)
  49. return res.json({
  50. ...BaseStdResponse.MISSING_FILE,
  51. msg: '获取记录数据失败!'
  52. })
  53. if(rows.length === 0)
  54. return res.json({
  55. ...BaseStdResponse.MISSING_FILE,
  56. msg: '记录不存在或已被删除!'
  57. })
  58. let data = rows[0]
  59. data.data = data.data.map(point => [point.o, point.a])
  60. res.json({
  61. ...BaseStdResponse.OK,
  62. data
  63. })
  64. }
  65. }
  66. module.exports.GetRecordDetail = GetRecordDetail