AddStar.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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 AddStar extends API{
  6. constructor(){
  7. super()
  8. this.setPath('/IC/Star')
  9. this.setMethod('POST')
  10. }
  11. async onRequest(req, res){
  12. let {
  13. uuid,
  14. session,
  15. devId,
  16. id,
  17. state,
  18. name,
  19. index
  20. } = req.body
  21. if ([uuid, session, devId, name].some(value => value === '' || value === null || value === undefined))
  22. return res.json({
  23. ...BaseStdResponse.MISSING_PARAMETER
  24. })
  25. // 检查 session
  26. if (!await AccessControl.checkSession(uuid, session))
  27. return res.status(401).json({
  28. ...BaseStdResponse.ACCESS_DENIED
  29. })
  30. // 检查权限
  31. let permission = await AccessControl.getPermission(uuid)
  32. if (!permission.includes("admin") && !permission.includes("product"))
  33. return res.json({
  34. ...BaseStdResponse.PERMISSION_DENIED
  35. })
  36. let sql, r
  37. const time = new Date().getTime()
  38. if(!id) {
  39. sql = 'SELECT id FROM ic_star WHERE create_user = ? AND devId = ?'
  40. const rows = await db.query(sql, [uuid, devId])
  41. if (!rows)
  42. return res.json({ ...BaseStdResponse.ERR, endpoint: 794378, msg: '添加志愿失败!数据库错误' })
  43. if(rows.length > 0)
  44. return res.json({ ...BaseStdResponse.ERR, endpoint: 789378, msg: '您已添加过该位置' })
  45. sql = 'INSERT INTO ic_star (devId, create_user, create_time, \`name\`) VALUES (?, ?, ?, ?)'
  46. r = await db.query(sql, [devId, uuid, time, name])
  47. } else {
  48. sql = 'UPDATE ic_star SET devId = ?, state = ?, \`name\` = ?, \`index\` = ? WHERE id = ? AND create_user = ?'
  49. r = await db.query(sql, [devId, state, name, index, id, uuid])
  50. }
  51. try {
  52. if (r && r.affectedRows > 0) {
  53. res.json({
  54. ...BaseStdResponse.OK
  55. })
  56. } else {
  57. res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '添加志愿失败!数据库错误' })
  58. }
  59. } catch (err) {
  60. this.logger.error(`添加志愿失败!${err.stack}`)
  61. res.json({
  62. ...BaseStdResponse.ERR,
  63. msg: "添加志愿失败!",
  64. });
  65. }
  66. }
  67. }
  68. module.exports.AddStar = AddStar;