GetMyAttendanceItems.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. const API = require("../../lib/API");
  2. const { BaseStdResponse } = require("../../BaseStdResponse");
  3. const db = require("../../plugin/DataBase/db");
  4. const AccessControl = require("../../lib/AccessControl");
  5. class GetMyAttendanceItems extends API {
  6. constructor() {
  7. super();
  8. this.setPath('/GetMyAttendanceItems');
  9. this.setMethod('GET');
  10. }
  11. async onRequest(data, res) {
  12. this.setAllowCORS(res);
  13. const { uuid, session } = data;
  14. // 检查必需的参数是否缺失
  15. if (!uuid || !session) {
  16. return res.json({
  17. ...BaseStdResponse.MISSING_PARAMETER,
  18. endpoint: 1513123
  19. });
  20. }
  21. // 检查 session 是否有效
  22. if (!await AccessControl.checkSession(uuid, session)) {
  23. return res.json({
  24. ...BaseStdResponse.ACCESS_DENIED,
  25. endpoint: 48153145
  26. });
  27. }
  28. try {
  29. const conn = db.getConnection();
  30. // 查询用户考勤项目
  31. const sqlGetItems = `
  32. SELECT id, name, user, day_of_week, loopy, begintime, endtime, address
  33. FROM kq_items
  34. WHERE JSON_CONTAINS(user, JSON_QUOTE(?), '$') ORDER BY id DESC
  35. `;
  36. const [items] = await conn.query(sqlGetItems, [uuid]);
  37. if (!items) {
  38. return res.json({
  39. ...BaseStdResponse.DATABASE_ERR,
  40. endpoint: 154754511
  41. });
  42. }
  43. // 查询用户考勤记录
  44. const sqlGetRecords = `
  45. SELECT id, uuid, project_id, time, commit
  46. FROM kq_records
  47. WHERE uuid = ?
  48. `;
  49. const [records] = await conn.query(sqlGetRecords, [uuid]);
  50. if (records === undefined) {
  51. return res.json({
  52. ...BaseStdResponse.DATABASE_ERR,
  53. endpoint: 154754511
  54. });
  55. }
  56. res.json({
  57. ...BaseStdResponse.OK,
  58. list: items,
  59. records: records
  60. });
  61. } catch (error) {
  62. res.json({
  63. ...BaseStdResponse.DATABASE_ERR,
  64. endpoint: 154754511
  65. });
  66. }
  67. }
  68. }
  69. module.exports.GetMyAttendanceItems = GetMyAttendanceItems;