message.endpoint.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /**
  2. * 独立的发送消息接口
  3. */
  4. "use strict";
  5. let express = require('express');
  6. let router = express.Router();
  7. let ObjectUtil = require('../../util/object.util');
  8. let ControllerUtil = require('../../util/controller.util');
  9. let APIv2 = require('../../include/endpoints').APIv2;
  10. let MODEL_EVENTS = require('../../include/commons').MODEL_EVENTS;
  11. let Messages = require('../../models/messages/messages');
  12. let WechatClient = require("../../models/client/wechat.client.js");
  13. /**
  14. * 发送消息
  15. */
  16. router.post(APIv2.Message.Send, function (req, res) {
  17. let payload = req.body;
  18. let testing = ObjectUtil.fieldsCheck(payload, "sender_id", "sender_name", "content_type", "content");
  19. if (!testing.pass) {
  20. throw {httpStatus: 406, message: testing.message}
  21. }
  22. // 消息的发送时间由服务端决定
  23. payload.timestamp = new Date((new Date().getTime()));
  24. let messages = new Messages();
  25. ControllerUtil.regModelEventHandler(messages, res);
  26. messages.sendMessage(payload);
  27. });
  28. /**
  29. * 发送医生外层socket消息
  30. */
  31. router.post(APIv2.Message.DoctorSystemMessage, function (req, res) {
  32. let targetUserId = req.body.targetUserId;
  33. let message = req.body.message;
  34. if (!targetUserId) {
  35. throw {httpStatus: 406, message: 'Missing targetUserId.'};
  36. }
  37. if (!message) {
  38. throw {httpStatus: 406, message: 'Missing message.'};
  39. }
  40. ControllerUtil.regModelEventHandler(WechatClient, res);
  41. //推送MDT,医生外层新消息
  42. WechatClient.cloudSendMDTSocketMessageToDoctor(targetUserId,JSON.parse(message),null);
  43. });
  44. router.get(APIv2.Message.DataMessage, function (req, res) {
  45. let sessionId = req.query.sessionId;
  46. let messages = new Messages();
  47. ControllerUtil.regModelEventHandler(messages, res);
  48. messages.dataMessage(sessionId);
  49. });
  50. router.get(APIv2.Message.CleanMessageLastFetchTimeToRedis, function (req, res) {
  51. let sessionId = req.query.sessionId;
  52. let userId = req.query.userId;
  53. let messages = new Messages();
  54. ControllerUtil.regModelEventHandler(messages, res);
  55. messages.cleanMessageLastFetchTime(sessionId,userId);
  56. });
  57. module.exports = router;