topic.endpoint.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. /**
  2. * 会话接口。
  3. *
  4. * author: Sand
  5. * since: 12/15/2016
  6. */
  7. "use strict";
  8. let express = require('express');
  9. let router = express.Router();
  10. let log = require('../../util/log.js');
  11. let ObjectUtil = require("../../util/object.util.js");
  12. let ControllerUtil = require('../../util/controller.util');
  13. let Topics = require('../../models/sessions/topics');
  14. const APIv2 = require('../../include/endpoints').APIv2;
  15. /**
  16. * 获取用户的聊天列表
  17. */
  18. router.get(APIv2.Sessions.TopicMessages, function (req, res) {
  19. let topicId = req.query.topic_id;
  20. let startMsgId = req.query.start;
  21. let endMsgId = req.query.end;
  22. let page = req.query.page;
  23. let pagesize = req.query.pagesize;
  24. let user = req.query.user;
  25. let topic = new Topics();
  26. ControllerUtil.regModelEventHandler(topic, res);
  27. topic.getTopicMessages(topicId,user,startMsgId,endMsgId,page,pagesize);
  28. });
  29. /**
  30. * 获取topic单条记录
  31. */
  32. router.get(APIv2.Sessions.Topic, function (req, res) {
  33. let topicId = req.query.topic_id;
  34. let topic = new Topics();
  35. ControllerUtil.regModelEventHandler(topic, res);
  36. topic.getTopicByTopicId(topicId);
  37. });
  38. router.get(APIv2.Sessions.TopicList, function (req, res) {
  39. let user = req.query.user;
  40. let status = req.query.status;
  41. let reply = req.query.reply;//SESSION_TYPES
  42. let page = req.query.page;
  43. let pagesize = req.query.pagesize;
  44. let topic = new Topics();
  45. ControllerUtil.regModelEventHandler(topic, res);
  46. let users = user.split(",");
  47. topic.findAllByUserAndReplyAndStatus(users,reply,status,page,pagesize);
  48. });
  49. router.get(APIv2.Sessions.HealthTopicList, function (req, res) {
  50. let user = req.query.user;
  51. let status = req.query.status;
  52. let reply = req.query.reply;//SESSION_TYPES
  53. let page = req.query.page;
  54. let pagesize = req.query.pagesize;
  55. let topic = new Topics();
  56. ControllerUtil.regModelEventHandler(topic, res);
  57. let users = user.split(",");
  58. topic.findAllByUserAndReplyAndStatusHealthTopic(users,reply,status,page,pagesize);
  59. });
  60. router.get(APIv2.Sessions.TopicListByType,function (req,res) {
  61. let user = req.query.user;
  62. let status = req.query.status;
  63. let type = req.query.type;
  64. let reply = req.query.reply;//SESSION_TYPES
  65. let page = req.query.page;
  66. let pagesize = req.query.pagesize;
  67. let patientName = req.query.patientName;
  68. let startTime = req.query.startTime;
  69. let endTime = req.query.endTime;
  70. let topic = new Topics();
  71. ControllerUtil.regModelEventHandler(topic, res);
  72. let users = user.split(",");
  73. topic.findAllTopicByType(users,reply,status,type,patientName,startTime,endTime,page,pagesize);
  74. });
  75. router.get(APIv2.Sessions.TopicListCountByType,function (req,res) {
  76. let user = req.query.user;
  77. let status = req.query.status;
  78. let type = req.query.type;
  79. let reply = req.query.reply;//SESSION_TYPES
  80. let patientName = req.query.patientName;
  81. let startTime = req.query.startTime;
  82. let endTime = req.query.endTime;
  83. let topic = new Topics();
  84. ControllerUtil.regModelEventHandler(topic, res);
  85. let users = user.split(",");
  86. topic.topicListCountByType(users,reply,status,type,patientName,startTime,endTime);
  87. });
  88. router.get(APIv2.Sessions.HealthTeamTopicList, function (req, res) {
  89. let user = req.query.user;
  90. let status = req.query.status;
  91. let adminTeamCode = req.query.adminTeamCode;
  92. let reply = req.query.reply;//SESSION_TYPES
  93. let page = req.query.page;
  94. let pagesize = req.query.pagesize;
  95. let topic = new Topics();
  96. ControllerUtil.regModelEventHandler(topic, res);
  97. let users = user.split(",");
  98. topic.findAllByUserAndReplyAndStatusHealthTeamTopic(users,reply,status,adminTeamCode,page,pagesize);
  99. });
  100. router.get(APIv2.Sessions.TopicReplyCount, function (req, res) {
  101. let user = req.query.user;
  102. let status = req.query.status;
  103. let reply = req.query.reply;
  104. let adminTeamCode = req.query.adminTeamCode;
  105. let topic = new Topics();
  106. ControllerUtil.regModelEventHandler(topic, res);
  107. let users = user.split(",");
  108. topic.findReplyCount(users,reply,status,adminTeamCode);
  109. });
  110. router.post(APIv2.Sessions.Topics, function (req, res) {
  111. let payload = req.body;
  112. let testing = ObjectUtil.fieldsCheck(payload, "topic_id", "topic_name", "participants", "messages", "session_type");
  113. if (!testing.pass) {
  114. throw {httpStatus: 406, message: testing.message}
  115. }
  116. let topic = new Topics();
  117. ControllerUtil.regModelEventHandler(topic, res);
  118. topic.createTopic(payload.topic_name, payload.topic_id, payload.session_id, JSON.parse(payload.participants), JSON.parse(payload.messages),payload.session_type);
  119. });
  120. router.put(APIv2.Sessions.Topics, function (req, res) {
  121. let payload = req.body;
  122. let topicId = payload.topic_id;
  123. let jsonValue = payload.data;
  124. let topic = new Topics();
  125. ControllerUtil.regModelEventHandler(topic, res);
  126. topic.updateTopic(topicId, JSON.parse(jsonValue));
  127. });
  128. router.get(APIv2.Sessions.TopicEnded, function (req, res) {
  129. let sessionId = req.params.session_id;
  130. let topicId = req.params.topic_id;
  131. let topic = new Topics();
  132. ControllerUtil.regModelEventHandler(topic, res);
  133. topic.isTopicEnded(sessionId, topicId, null);
  134. });
  135. router.post(APIv2.Sessions.TopicEnded, function (req, res) {
  136. let payload = req.body;
  137. let endUser = payload.end_user;
  138. let endUserName = payload.end_user_name;
  139. let topicId = payload.topic_id;
  140. let agent = payload.agent;
  141. let topic = new Topics();
  142. ControllerUtil.regModelEventHandler(topic, res);
  143. topic.endTopic(topicId, endUser, endUserName,agent);
  144. });
  145. router.post(APIv2.Sessions.TopicInto, function (req, res) {
  146. let payload = req.body;
  147. let intoUser = payload.into_user;
  148. let senderId = payload.sender_id;
  149. let intoUserName = payload.into_user_name;
  150. let topicId = payload.topic_id;
  151. let topic = new Topics();
  152. ControllerUtil.regModelEventHandler(topic, res);
  153. topic.intoTopic(topicId, intoUser, intoUserName,senderId,payload.content);
  154. });
  155. module.exports = router;