ImUtill.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. package com.yihu.wlyy.util;
  2. import org.json.JSONArray;
  3. import org.json.JSONObject;
  4. /**
  5. * Created by 卓 on 2017/1/13.
  6. */
  7. public class ImUtill {
  8. private static final String im_host = SystemConf.getInstance().getImListGet();
  9. /**
  10. * 获取医生统计数据
  11. * status reply 为空值是是该医生总咨询量
  12. *
  13. * @param user 团队就把团队的医生合并起来用,隔开(医生编码)
  14. * @param adminTeamCode
  15. * @param status
  16. * @param reply
  17. * @return
  18. */
  19. public static String getConsultData(String user,Integer adminTeamCode, Integer status, Integer reply) {
  20. String imAddr = im_host + "api/v2/sessions/topics/count/reply";
  21. imAddr = imAddr + "?user=" + user;
  22. if (status != null) {
  23. imAddr += ("&status=" + status);
  24. }
  25. if (adminTeamCode != null) {
  26. imAddr += ("&adminTeamCode=" + adminTeamCode);
  27. }
  28. if (reply != null) {
  29. imAddr += ("&reply=" + reply);
  30. }
  31. String response = HttpClientUtil.get(imAddr, "UTF-8");
  32. return response;
  33. }
  34. public static void updateTopics(String topicId, String jsonValue) {
  35. String imAddr = im_host + "api/v2/sessions/" + topicId + "/topics";
  36. JSONObject params = new JSONObject();
  37. params.put("topic_id", topicId);
  38. params.put("data", jsonValue);
  39. HttpClientUtil.putBody(imAddr, params);
  40. }
  41. /**
  42. * 当前医生下当前团队列表接口
  43. * 获取团队内医生的健康咨询状况
  44. * status = 10 已结束的咨询,status=0,reply = 1 已回复 ,status=0,reply=0未回复
  45. *
  46. * @param user 团队就把团队的医生合并起来用,隔开(医生编码)
  47. * @param adminTeamCode 行政团队code
  48. * @param page
  49. * @param pagesize
  50. * @param status
  51. * @param reply
  52. * @return
  53. */
  54. public static String getTeamConsultByStatus(String user,Integer adminTeamCode, Integer status, Integer reply, int page, int pagesize) {
  55. String imAddr = im_host + "api/v2/sessions/healthTeamTopics";
  56. imAddr = imAddr + "?user=" + user + "&page=" + page + "&pagesize=" + pagesize;
  57. if (adminTeamCode != null) {
  58. imAddr += ("&adminTeamCode=" + adminTeamCode);
  59. }
  60. if (status != null) {
  61. imAddr += ("&status=" + status);
  62. }
  63. if (reply != null) {
  64. imAddr += ("&reply=" + reply);
  65. }
  66. String response = HttpClientUtil.get(imAddr, "UTF-8");
  67. return response;
  68. }
  69. /**
  70. * 列表接口
  71. * 获取团队内医生的健康咨询状况
  72. * status = 10 已结束的咨询,status=0,reply = 1 已回复 ,status=0,reply=0未回复
  73. *
  74. * @param user 团队就把团队的医生合并起来用,隔开(医生编码)
  75. * @param page
  76. * @param pagesize
  77. * @param status
  78. * @param reply
  79. * @return
  80. */
  81. public static String getConsultByStatus(String user, Integer status, Integer reply, int page, int pagesize) {
  82. String imAddr = im_host + "api/v2/sessions/healthTopics";
  83. imAddr = imAddr + "?user=" + user + "&page=" + page + "&pagesize=" + pagesize;
  84. if (status != null) {
  85. imAddr += ("&status=" + status);
  86. }
  87. if (reply != null) {
  88. imAddr += ("&reply=" + reply);
  89. }
  90. String response = HttpClientUtil.get(imAddr, "UTF-8");
  91. return response;
  92. }
  93. /**
  94. * 发送消息给IM
  95. *
  96. * @param from 来自
  97. * @param contentType 1文字 2图片消息
  98. * @param content 内容
  99. */
  100. public static String sendImMsg(String from, String fromName, String sessionId, String contentType, String content, String businessType) {
  101. String imAddr = im_host + "api/v2/sessions/" + sessionId + "/messages";
  102. JSONObject params = new JSONObject();
  103. params.put("sender_id", from);
  104. params.put("sender_name", fromName);
  105. params.put("content_type", contentType);
  106. params.put("content", content);
  107. params.put("session_id", sessionId);
  108. params.put("business_type", businessType);
  109. String response = HttpClientUtil.postBody(imAddr, params);
  110. return response;
  111. }
  112. /**
  113. * 更新会话状态
  114. *
  115. * @param sessionId 会话ID
  116. * @param status 状态
  117. */
  118. public static String updateSessionStatus(String sessionId, String status) {
  119. String imAddr = im_host + "api/v2/sessions/" + sessionId + "/status?status=" + status + "&sessionId=" + sessionId;
  120. JSONObject params = new JSONObject();
  121. String response = HttpClientUtil.postBody(imAddr, params);
  122. return response;
  123. }
  124. /**
  125. * 更新会话状态
  126. *
  127. * @param sessionId 会话ID
  128. * @param status 状态
  129. */
  130. public static String updateTopicEvaluate(String sessionId, String status) {
  131. String imAddr = im_host + "api/v2/sessions/" + sessionId + "/status?status=" + status + "&sessionId=" + sessionId;
  132. JSONObject params = new JSONObject();
  133. String response = HttpClientUtil.postBody(imAddr, params);
  134. return response;
  135. }
  136. /**
  137. * 发送消息给IM
  138. *
  139. * @param from 来自
  140. * @param contentType 1文字 2图片消息
  141. * @param content 内容
  142. */
  143. public static String sendTopicIM(String from, String fromName, String topicId, String contentType, String content, String agent) {
  144. String url = im_host + "api/v2/sessions/topic/" + topicId + "/messages";
  145. JSONObject params = new JSONObject();
  146. params.put("sender_id", from);
  147. params.put("sender_name", fromName);
  148. params.put("content_type", contentType);
  149. params.put("content", content);
  150. params.put("topic_id", topicId);
  151. params.put("agent", agent);
  152. String response = HttpClientUtil.postBody(url, params);
  153. return response;
  154. }
  155. /**
  156. * 发送进入im消息
  157. *
  158. * @param from
  159. * @param sessionId
  160. * @param topicId
  161. * @return
  162. */
  163. public static String sendIntoTopicIM(String from, String sessionId, String topicId, String content, String intoUser, String intoUserName) {
  164. String url = im_host + "api/v2/sessions/" + sessionId + "/topics/" + topicId + "/into";
  165. JSONObject params = new JSONObject();
  166. params.put("sender_id", from);
  167. params.put("topic_id", topicId);
  168. params.put("into_user", intoUser);
  169. params.put("into_user_name", intoUserName);
  170. params.put("content", content);
  171. String response = HttpClientUtil.postBody(url, params);
  172. return response;
  173. }
  174. /**
  175. * 结束议题
  176. *
  177. * @param topicId 议题ID
  178. * @param endUser 结束人
  179. * @param endUserName 结束人名字
  180. * @param sessionId 会话ID
  181. */
  182. public static JSONObject endTopics(String sessionId, String endUser, String endUserName, String topicId) {
  183. String imAddr = im_host + "api/v2/sessions/" + sessionId + "/topics/" + topicId + "/ended";
  184. JSONObject params = new JSONObject();
  185. params.put("session_id", sessionId);
  186. params.put("end_user", endUser);
  187. params.put("end_user_name", endUserName);
  188. params.put("topic_id", topicId);
  189. String ret = HttpClientUtil.postBody(imAddr, params);
  190. JSONObject obj = null;
  191. try {
  192. obj = new JSONObject(ret);
  193. } catch (Exception e) {
  194. return null;
  195. }
  196. return obj;
  197. }
  198. /**
  199. * 议题邀请人员
  200. *
  201. * @param user 结束人名字
  202. * @param sessionId 会话ID
  203. */
  204. public static void updateTopicUser(String sessionId, String user) {
  205. String imAddr = im_host + "api/v2/sessions/" + sessionId + "/participants/" + user;
  206. JSONObject params = new JSONObject();
  207. params.put("user", user + ":" + 0);
  208. HttpClientUtil.putBody(imAddr, params);
  209. }
  210. /**
  211. * 创建议题
  212. *
  213. * @param topicId 议题ID
  214. * @param topicName 议题名称
  215. * @param participants 成员
  216. */
  217. public static JSONObject createTopics(String sessionId, String topicId, String topicName, JSONObject participants, JSONObject messages, String sessionType) {
  218. String imAddr = im_host + "api/v2/sessions/" + topicId + "/topics";
  219. JSONObject params = new JSONObject();
  220. params.put("topic_id", topicId);
  221. params.put("topic_name", topicName);
  222. params.put("participants", participants.toString());
  223. params.put("messages", messages.toString());
  224. params.put("session_id", sessionId);
  225. params.put("session_type", sessionType);
  226. String ret = HttpClientUtil.postBody(imAddr, params);
  227. JSONObject obj = null;
  228. try {
  229. obj = new JSONObject(ret);
  230. } catch (Exception e) {
  231. return null;
  232. }
  233. return obj;
  234. }
  235. /**
  236. * 创建会话(system)
  237. */
  238. public static JSONObject createSession(JSONObject participants, String sessionType, String sessionName, String sessionId) {
  239. String imAddr = im_host + "api/v2/sessions";
  240. JSONObject params = new JSONObject();
  241. params.put("participants", participants.toString());
  242. params.put("session_name", sessionName);
  243. params.put("session_type", sessionType);
  244. params.put("session_id", sessionId);
  245. String ret = HttpClientUtil.postBody(imAddr, params);
  246. JSONObject obj = null;
  247. try {
  248. obj = new JSONObject(ret);
  249. } catch (Exception e) {
  250. return null;
  251. }
  252. return obj;
  253. }
  254. /**
  255. * 获取会话实例的消息对象
  256. *
  257. * @param senderId
  258. * @param senderName
  259. * @param title
  260. * @param description
  261. * @param images
  262. * @param agent
  263. * @return
  264. */
  265. public static JSONObject getCreateTopicMessage(String senderId, String senderName, String title, String description, String images, String agent) {
  266. JSONObject messages = new JSONObject();
  267. messages.put("description", description);
  268. messages.put("title", title);
  269. messages.put("img", images);
  270. messages.put("sender_id", senderId);
  271. messages.put("sender_name", senderName);
  272. messages.put("agent", agent);
  273. return messages;
  274. }
  275. public static JSONObject getTopicMessage(String topicId, String startMsgId, String endMsgId, int page, int pagesize, String uid) {
  276. String url = im_host
  277. + "api/v2/sessions/topic/" + topicId + "/messages?topic_id=" + topicId + "&end=" + startMsgId
  278. + "&start=" + (endMsgId == null ? "" : endMsgId) + "&page=" + page + "&pagesize=" + pagesize + "&user=" + uid;
  279. try {
  280. String ret = HttpClientUtil.get(url, "UTF-8");
  281. JSONObject obj = new JSONObject(ret);
  282. if (obj.getInt("status") == -1) {
  283. throw new RuntimeException(obj.getString("message"));
  284. } else {
  285. return obj.getJSONObject("data");
  286. }
  287. } catch (Exception e) {
  288. return null;
  289. }
  290. }
  291. public static JSONArray getSessionMessage(String sessionId, String startMsgId, String endMsgId, int page, int pagesize, String uid) {
  292. String url = im_host + "api/v2/sessions/" + sessionId + "/messages?session_id=" + sessionId + "&user=" + uid + "&start_message_id=" + startMsgId + "&end_message_id=" + endMsgId + "&page=" + page + "&pagesize=" + pagesize;
  293. try {
  294. String ret = HttpClientUtil.get(url, "UTF-8");
  295. JSONArray obj = new JSONArray(ret);
  296. return obj;
  297. } catch (Exception e) {
  298. return null;
  299. }
  300. }
  301. /**
  302. * 删除对应的成员信息在MUC模式中
  303. *
  304. * @param userId
  305. * @param oldUserId
  306. * @param sessionId
  307. * @return
  308. */
  309. public static JSONObject deleteMucUser(String userId, String oldUserId, String sessionId) throws Exception {
  310. String url = im_host + "api/v2/sessions/" + sessionId + "/participant/update";
  311. try {
  312. JSONObject params = new JSONObject();
  313. params.put("user_id", userId);
  314. params.put("old_user_id", oldUserId);
  315. params.put("session_id", sessionId);
  316. String ret = HttpClientUtil.postBody(url, params);
  317. JSONObject obj = new JSONObject(ret);
  318. if (obj.getInt("status") == -1) {
  319. throw new RuntimeException("人员更换失败!");
  320. } else {
  321. return obj;
  322. }
  323. } catch (Exception e) {
  324. throw new RuntimeException("人员更换失败!");
  325. }
  326. }
  327. /**
  328. * 获取议题
  329. *
  330. * @param topicId
  331. * @return
  332. */
  333. public static JSONObject getTopic(String topicId) throws Exception {
  334. String url = im_host + "api/v2/sessions/topics/" + topicId + "?topic_id=" + topicId;
  335. try {
  336. String ret = HttpClientUtil.get(url, "utf-8");
  337. JSONObject obj = new JSONObject(ret);
  338. if (obj.getInt("status") == -1) {
  339. throw new RuntimeException("获取议题失败!");
  340. } else {
  341. return obj;
  342. }
  343. } catch (Exception e) {
  344. throw new RuntimeException("获取议题失败!");
  345. }
  346. }
  347. /**
  348. * 获取会话成员
  349. *
  350. * @param sessionId
  351. * @return
  352. * @throws Exception
  353. */
  354. public static JSONArray getParticipants(String sessionId) {
  355. String url = im_host + "api/v2/sessions/" + sessionId + "/participants?session_id=" + sessionId;
  356. try {
  357. String ret = HttpClientUtil.get(url, "utf-8");
  358. return new JSONArray(ret);
  359. } catch (Exception e) {
  360. throw new RuntimeException("获取议题失败!");
  361. }
  362. }
  363. /**
  364. * 获取会话成员
  365. *
  366. * @param sessionId
  367. * @return
  368. * @throws Exception
  369. */
  370. public static JSONArray getSessions(String sessionId) {
  371. String url = im_host + "api/v2/sessions/" + sessionId + "/participants?session_id=" + sessionId;
  372. try {
  373. String ret = HttpClientUtil.get(url, "utf-8");
  374. return new JSONArray(ret);
  375. } catch (Exception e) {
  376. throw new RuntimeException("获取议题失败!");
  377. }
  378. }
  379. public static final String SESSION_TYPE_MUC = "1";
  380. public static final String SESSION_TYPE_P2P = "2";
  381. public static final String SESSION_TYPE_GROUP = "3";
  382. public static final String SESSION_TYPE_SYSTEM = "0";
  383. public static final String SESSION_TYPE_PRESCRIPTION = "5";//续方
  384. public static final String SESSION_STATUS_PROCEEDINGS = "0";
  385. public static final String SESSION_STATUS_END = "1";
  386. public static final String CONTENT_TYPE_TEXT = "1";
  387. }