notify.msg.repo.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * 保存服务端向客户端发送的“推送消息”。当用户A向用户B发送消息,服务器会保存此消息,并构建一条通知消息保存到数据库,
  3. * 并通过个推系统向B发送此消息。
  4. */
  5. "use strict";
  6. let log = require('../../util/log');
  7. let ImDb = require("../mysql/db/im.db.js");
  8. class NotifyMsgRepo {
  9. /**
  10. * 保存推送消息。
  11. *
  12. * @param to
  13. * @param contentType
  14. * @param title
  15. * @param content
  16. * @param message
  17. * @param has_pushed
  18. * @param delay
  19. * @param handler
  20. */
  21. static save(to, contentType, title, content, message, has_pushed, delay, handler) {
  22. ImDb.execQuery({
  23. "sql": "INSERT INTO push_notify (to_uid, type, title, content, data, delay, has_pushed) VALUES (?,?,?,?,?,?,?)",
  24. "args": [to, contentType, title, content, message, delay, has_pushed],
  25. "handler": handler
  26. });
  27. };
  28. /**
  29. * 查找未推送的消息。
  30. */
  31. static findUnpushedMessages(handler) {
  32. let sql = "select to_uid, title, type, content, data, delay " +
  33. "FROM push_notify " +
  34. "WHERE delay IS NOT NULL AND delay > now()";
  35. ImDb.execQuery({
  36. "sql": sql,
  37. "args": [],
  38. "handler": handler
  39. });
  40. };
  41. }
  42. module.exports = NotifyMsgRepo;