topic.endpoint.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  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. /**
  39. * 获取议题列表
  40. */
  41. router.get(APIv2.Sessions.TopicList, function (req, res) {
  42. let user = req.query.user;
  43. let status = req.query.status;
  44. let reply = req.query.reply;//SESSION_TYPES
  45. let page = req.query.page;
  46. let pagesize = req.query.pagesize;
  47. let topic = new Topics();
  48. ControllerUtil.regModelEventHandler(topic, res);
  49. let users = user.split(",");
  50. topic.findAllByUserAndReplyAndStatus(users,reply,status,page,pagesize);
  51. });
  52. /**
  53. * 健康咨询
  54. */
  55. router.get(APIv2.Sessions.HealthTopicList, function (req, res) {
  56. let user = req.query.user;
  57. let status = req.query.status;
  58. let reply = req.query.reply;//SESSION_TYPES
  59. let page = req.query.page;
  60. let pagesize = req.query.pagesize;
  61. let patientName = req.query.patientName;
  62. let topic = new Topics();
  63. ControllerUtil.regModelEventHandler(topic, res);
  64. let users = user.split(",");
  65. topic.findAllByUserAndReplyAndStatusHealthTopic(users,reply,status,page,pagesize,patientName);
  66. });
  67. /**
  68. * 按类型查找咨询(未回复,进行中,已回复)
  69. */
  70. router.get(APIv2.Sessions.TopicListByType,function (req,res) {
  71. let user = req.query.user;
  72. let status = req.query.status;
  73. let type = req.query.type;
  74. let reply = req.query.reply;//SESSION_TYPES
  75. let page = req.query.page;
  76. let pagesize = req.query.pagesize;
  77. let patientName = req.query.patientName;
  78. let startTime = req.query.startTime;
  79. let endTime = req.query.endTime;
  80. let topic = new Topics();
  81. ControllerUtil.regModelEventHandler(topic, res);
  82. let users = user.split(",");
  83. topic.findAllTopicByType(users,reply,status,type,patientName,startTime,endTime,page,pagesize);
  84. });
  85. /**
  86. * 按类型查找咨询(未回复,进行中,已回复)的数量
  87. */
  88. router.get(APIv2.Sessions.TopicListCountByType,function (req,res) {
  89. let user = req.query.user;
  90. let status = req.query.status;
  91. let type = req.query.type;
  92. let reply = req.query.reply;//SESSION_TYPES
  93. let patientName = req.query.patientName;
  94. let startTime = req.query.startTime;
  95. let endTime = req.query.endTime;
  96. let topic = new Topics();
  97. ControllerUtil.regModelEventHandler(topic, res);
  98. let users = user.split(",");
  99. topic.topicListCountByType(users,reply,status,type,patientName,startTime,endTime);
  100. });
  101. /**
  102. * 健康咨询(区分团队)
  103. */
  104. router.get(APIv2.Sessions.HealthTeamTopicList, function (req, res) {
  105. let user = req.query.user;
  106. let status = req.query.status;
  107. let adminTeamCode = req.query.adminTeamCode;
  108. let reply = req.query.reply;//SESSION_TYPES
  109. let page = req.query.page;
  110. let pagesize = req.query.pagesize;
  111. let topic = new Topics();
  112. ControllerUtil.regModelEventHandler(topic, res);
  113. let users = user.split(",");
  114. topic.findAllByUserAndReplyAndStatusHealthTeamTopic(users,reply,status,adminTeamCode,page,pagesize);
  115. });
  116. /**
  117. * 议题回复数统计
  118. */
  119. router.get(APIv2.Sessions.TopicReplyCount, function (req, res) {
  120. let user = req.query.user;
  121. let status = req.query.status;
  122. let reply = req.query.reply;
  123. let adminTeamCode = req.query.adminTeamCode;
  124. let topic = new Topics();
  125. ControllerUtil.regModelEventHandler(topic, res);
  126. let users = user.split(",");
  127. topic.findReplyCount(users,reply,status,adminTeamCode);
  128. });
  129. /**
  130. * 创建议题
  131. */
  132. router.post(APIv2.Sessions.Topics, function (req, res) {
  133. let payload = req.body;
  134. let testing = ObjectUtil.fieldsCheck(payload, "topic_id", "topic_name", "participants", "messages", "session_type");
  135. if (!testing.pass) {
  136. throw {httpStatus: 406, message: testing.message}
  137. }
  138. let topic = new Topics();
  139. ControllerUtil.regModelEventHandler(topic, res);
  140. topic.createTopic(payload.topic_name, payload.topic_id, payload.session_id, JSON.parse(payload.participants), JSON.parse(payload.messages),payload.session_type);
  141. });
  142. /**
  143. * 修改议题
  144. */
  145. router.put(APIv2.Sessions.Topics, function (req, res) {
  146. let payload = req.body;
  147. let topicId = payload.topic_id;
  148. let jsonValue = payload.data;
  149. let topic = new Topics();
  150. ControllerUtil.regModelEventHandler(topic, res);
  151. topic.updateTopic(topicId, JSON.parse(jsonValue));
  152. });
  153. /**
  154. * 议题是否已结束,若top_id为current,则检查最后一个议题的状态
  155. */
  156. router.get(APIv2.Sessions.TopicEnded, function (req, res) {
  157. let sessionId = req.params.session_id;
  158. let topicId = req.params.topic_id;
  159. let topic = new Topics();
  160. ControllerUtil.regModelEventHandler(topic, res);
  161. topic.isTopicEnded(sessionId, topicId, null);
  162. });
  163. /**
  164. *结束议题
  165. */
  166. router.post(APIv2.Sessions.TopicEnded, function (req, res) {
  167. let payload = req.body;
  168. let endUser = payload.end_user;
  169. let endUserName = payload.end_user_name;
  170. let topicId = payload.topic_id;
  171. let agent = payload.agent;
  172. let topic = new Topics();
  173. ControllerUtil.regModelEventHandler(topic, res);
  174. topic.endTopic(topicId, endUser, endUserName,agent);
  175. });
  176. /**
  177. * 进入议题
  178. */
  179. router.post(APIv2.Sessions.TopicInto, function (req, res) {
  180. let payload = req.body;
  181. let intoUser = payload.into_user;
  182. let senderId = payload.sender_id;
  183. let intoUserName = payload.into_user_name;
  184. let topicId = payload.topic_id;
  185. let topic = new Topics();
  186. ControllerUtil.regModelEventHandler(topic, res);
  187. topic.intoTopic(topicId, intoUser, intoUserName,senderId,payload.content);
  188. });
  189. module.exports = router;