123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450 |
- package com.yihu.wlyy.util;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- /**
- * Created by 卓 on 2017/1/13.
- */
- @Component
- public class ImUtill {
- @Autowired
- private HttpClientUtil HttpClientUtil;
- @Value("${im.im_list_get}")
- private String im_host;
- /**
- * 获取医生统计数据
- * status reply 为空值是是该医生总咨询量
- *
- * @param user 团队就把团队的医生合并起来用,隔开(医生编码)
- * @param adminTeamCode
- * @param status
- * @param reply
- * @return
- */
- public String getConsultData(String user, Integer adminTeamCode, Integer status, Integer reply) {
- String imAddr = im_host + "api/v2/sessions/topics/count/reply";
- imAddr = imAddr + "?user=" + user;
- if (status != null) {
- imAddr += ("&status=" + status);
- }
- if (adminTeamCode != null) {
- imAddr += ("&adminTeamCode=" + adminTeamCode);
- }
- if (reply != null) {
- imAddr += ("&reply=" + reply);
- }
- String response = HttpClientUtil.get(imAddr, "UTF-8");
- return response;
- }
- public void updateTopics(String topicId, String jsonValue) {
- String imAddr = im_host + "api/v2/sessions/" + topicId + "/topics";
- JSONObject params = new JSONObject();
- params.put("topic_id", topicId);
- params.put("data", jsonValue);
- HttpClientUtil.putBody(imAddr, params);
- }
- /**
- * 当前医生下当前团队列表接口
- * 获取团队内医生的健康咨询状况
- * status = 10 已结束的咨询,status=0,reply = 1 已回复 ,status=0,reply=0未回复
- *
- * @param user 团队就把团队的医生合并起来用,隔开(医生编码)
- * @param adminTeamCode 行政团队code
- * @param page
- * @param pagesize
- * @param status
- * @param reply
- * @return
- */
- public String getTeamConsultByStatus(String user, Integer adminTeamCode, Integer status, Integer reply, int page, int pagesize) {
- String imAddr = im_host + "api/v2/sessions/healthTeamTopics";
- imAddr = imAddr + "?user=" + user + "&page=" + page + "&pagesize=" + pagesize;
- if (adminTeamCode != null) {
- imAddr += ("&adminTeamCode=" + adminTeamCode);
- }
- if (status != null) {
- imAddr += ("&status=" + status);
- }
- if (reply != null) {
- imAddr += ("&reply=" + reply);
- }
- String response = HttpClientUtil.get(imAddr, "UTF-8");
- return response;
- }
- /**
- * 列表接口
- * 获取团队内医生的健康咨询状况
- * status = 10 已结束的咨询,status=0,reply = 1 已回复 ,status=0,reply=0未回复
- *
- * @param user 团队就把团队的医生合并起来用,隔开(医生编码)
- * @param page
- * @param pagesize
- * @param status
- * @param reply
- * @return
- */
- public String getConsultByStatus(String user, Integer status, Integer reply, int page, int pagesize) {
- String imAddr = im_host + "api/v2/sessions/healthTopics";
- imAddr = imAddr + "?user=" + user + "&page=" + page + "&pagesize=" + pagesize;
- if (status != null) {
- imAddr += ("&status=" + status);
- }
- if (reply != null) {
- imAddr += ("&reply=" + reply);
- }
- String response = HttpClientUtil.get(imAddr, "UTF-8");
- return response;
- }
- /**
- * 咨询列表
- * @param user
- * @param status status = 10 已结束的咨询,status=0,reply = 1 已回复 ,status=0,reply=0未回复
- * @param reply
- * @param type 1、三师咨询,2、家庭医生咨询,6、患者名医咨询 7医生名医咨询 8续方咨询 10医生发起的求助
- * @param page
- * @param pagesize
- * @return
- */
- public String getConsultByStatusAndType(String user,Integer status,Integer reply,Integer type,int page,int pagesize){
- String imAddr = im_host + "api/v2/sessions/topicListByType";
- imAddr = imAddr + "?user="+user + "&page=" + page + "&pagesize=" + pagesize;
- if (status != null) {
- imAddr += ("&status=" + status);
- }
- if (reply != null) {
- imAddr += ("&reply=" + reply);
- }
- if (type != null) {
- imAddr += ("&type=" + type);
- }
- String response = HttpClientUtil.get(imAddr, "UTF-8");
- return response;
- }
- /**
- * 发送消息给IM
- *
- * @param from 来自
- * @param contentType 1文字 2图片消息
- * @param content 内容
- */
- public String sendImMsg(String from, String fromName, String sessionId, String contentType, String content, String businessType) {
- String imAddr = im_host + "api/v2/sessions/" + sessionId + "/messages";
- JSONObject params = new JSONObject();
- params.put("sender_id", from);
- params.put("sender_name", fromName);
- params.put("content_type", contentType);
- params.put("content", content);
- params.put("session_id", sessionId);
- params.put("business_type", businessType);
- String response = HttpClientUtil.postBody(imAddr, params);
- return response;
- }
- /**
- * 更新会话状态
- *
- * @param sessionId 会话ID
- * @param status 状态
- */
- public String updateSessionStatus(String sessionId, String status) {
- String imAddr = im_host + "api/v2/sessions/" + sessionId + "/status?status=" + status + "&sessionId=" + sessionId;
- JSONObject params = new JSONObject();
- String response = HttpClientUtil.postBody(imAddr, params);
- return response;
- }
- /**
- * 更新会话状态
- *
- * @param sessionId 会话ID
- * @param status 状态
- */
- public String updateTopicEvaluate(String sessionId, String status) {
- String imAddr = im_host + "api/v2/sessions/" + sessionId + "/status?status=" + status + "&sessionId=" + sessionId;
- JSONObject params = new JSONObject();
- String response = HttpClientUtil.postBody(imAddr, params);
- return response;
- }
- /**
- * 发送消息给IM
- *
- * @param from 来自
- * @param contentType 1文字 2图片消息
- * @param content 内容
- */
- public String sendTopicIM(String from, String fromName, String topicId, String contentType, String content, String agent) {
- String url = im_host + "api/v2/sessions/topic/" + topicId + "/messages";
- JSONObject params = new JSONObject();
- params.put("sender_id", from);
- params.put("sender_name", fromName);
- params.put("content_type", contentType);
- params.put("content", content);
- params.put("topic_id", topicId);
- params.put("agent", agent);
- String response = HttpClientUtil.postBody(url, params);
- return response;
- }
- /**
- * 发送进入im消息
- *
- * @param from
- * @param sessionId
- * @param topicId
- * @return
- */
- public String sendIntoTopicIM(String from, String sessionId, String topicId, String content, String intoUser, String intoUserName) {
- String url = im_host + "api/v2/sessions/" + sessionId + "/topics/" + topicId + "/into";
- JSONObject params = new JSONObject();
- params.put("sender_id", from);
- params.put("topic_id", topicId);
- params.put("into_user", intoUser);
- params.put("into_user_name", intoUserName);
- params.put("content", content);
- String response = HttpClientUtil.postBody(url, params);
- return response;
- }
- /**
- * 结束议题
- *
- * @param topicId 议题ID
- * @param endUser 结束人
- * @param endUserName 结束人名字
- * @param sessionId 会话ID
- */
- public JSONObject endTopics(String sessionId, String endUser, String endUserName, String topicId) {
- String imAddr = im_host + "api/v2/sessions/" + sessionId + "/topics/" + topicId + "/ended";
- JSONObject params = new JSONObject();
- params.put("session_id", sessionId);
- params.put("end_user", endUser);
- params.put("end_user_name", endUserName);
- params.put("topic_id", topicId);
- String ret = HttpClientUtil.postBody(imAddr, params);
- JSONObject obj = null;
- try {
- obj = new JSONObject(ret);
- } catch (Exception e) {
- return null;
- }
- return obj;
- }
- /**
- * 议题邀请人员
- *
- * @param user 结束人名字
- * @param sessionId 会话ID
- */
- public void updateTopicUser(String sessionId, String user) {
- String imAddr = im_host + "api/v2/sessions/" + sessionId + "/participants/" + user;
- JSONObject params = new JSONObject();
- params.put("user", user + ":" + 0);
- HttpClientUtil.putBody(imAddr, params);
- }
- /**
- * 创建议题
- *
- * @param topicId 议题ID
- * @param topicName 议题名称
- * @param participants 成员
- */
- public JSONObject createTopics(String sessionId, String topicId, String topicName, JSONObject participants, JSONObject messages, String sessionType) {
- String imAddr = im_host + "api/v2/sessions/" + topicId + "/topics";
- JSONObject params = new JSONObject();
- params.put("topic_id", topicId);
- params.put("topic_name", topicName);
- params.put("participants", participants.toString());
- params.put("messages", messages.toString());
- params.put("session_id", sessionId);
- params.put("session_type", sessionType);
- String ret = HttpClientUtil.postBody(imAddr, params);
- JSONObject obj = null;
- try {
- obj = new JSONObject(ret);
- } catch (Exception e) {
- return null;
- }
- return obj;
- }
- /**
- * 创建会话(system)
- */
- public JSONObject createSession(JSONObject participants, String sessionType, String sessionName, String sessionId) {
- String imAddr = im_host + "api/v2/sessions";
- JSONObject params = new JSONObject();
- params.put("participants", participants.toString());
- params.put("session_name", sessionName);
- params.put("session_type", sessionType);
- params.put("session_id", sessionId);
- String ret = HttpClientUtil.postBody(imAddr, params);
- JSONObject obj = null;
- try {
- obj = new JSONObject(ret);
- } catch (Exception e) {
- return null;
- }
- return obj;
- }
- /**
- * 获取会话实例的消息对象
- *
- * @param senderId
- * @param senderName
- * @param title
- * @param description
- * @param images
- * @param agent
- * @return
- */
- public JSONObject getCreateTopicMessage(String senderId, String senderName, String title, String description, String images, String agent) {
- JSONObject messages = new JSONObject();
- messages.put("description", description);
- messages.put("title", title);
- messages.put("img", images);
- messages.put("sender_id", senderId);
- messages.put("sender_name", senderName);
- messages.put("agent", agent);
- return messages;
- }
- public JSONObject getTopicMessage(String topicId, String startMsgId, String endMsgId, int page, int pagesize, String uid) {
- String url = im_host
- + "api/v2/sessions/topic/" + topicId + "/messages?topic_id=" + topicId + "&end=" + startMsgId
- + "&start=" + (endMsgId == null ? "" : endMsgId) + "&page=" + page + "&pagesize=" + pagesize + "&user=" + uid;
- try {
- String ret = HttpClientUtil.get(url, "UTF-8");
- JSONObject obj = new JSONObject(ret);
- if (obj.getInt("status") == -1) {
- throw new RuntimeException(obj.getString("message"));
- } else {
- return obj.getJSONObject("data");
- }
- } catch (Exception e) {
- return null;
- }
- }
- public JSONArray getSessionMessage(String sessionId, String startMsgId, String endMsgId, int page, int pagesize, String uid) {
- 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;
- try {
- String ret = HttpClientUtil.get(url, "UTF-8");
- JSONArray obj = new JSONArray(ret);
- return obj;
- } catch (Exception e) {
- return null;
- }
- }
- /**
- * 删除对应的成员信息在MUC模式中
- *
- * @param userId
- * @param oldUserId
- * @param sessionId
- * @return
- */
- public JSONObject deleteMucUser(String userId, String oldUserId, String sessionId) throws Exception {
- String url = im_host + "api/v2/sessions/" + sessionId + "/participant/update";
- try {
- JSONObject params = new JSONObject();
- params.put("user_id", userId);
- params.put("old_user_id", oldUserId);
- params.put("session_id", sessionId);
- String ret = HttpClientUtil.postBody(url, params);
- JSONObject obj = new JSONObject(ret);
- if (obj.getInt("status") == -1) {
- throw new RuntimeException("人员更换失败!");
- } else {
- return obj;
- }
- } catch (Exception e) {
- throw new RuntimeException("人员更换失败!");
- }
- }
- /**
- * 获取议题
- *
- * @param topicId
- * @return
- */
- public JSONObject getTopic(String topicId) throws Exception {
- String url = im_host + "api/v2/sessions/topics/" + topicId + "?topic_id=" + topicId;
- try {
- String ret = HttpClientUtil.get(url, "utf-8");
- JSONObject obj = new JSONObject(ret);
- if (obj.getInt("status") == -1) {
- throw new RuntimeException("获取议题失败!");
- } else {
- return obj;
- }
- } catch (Exception e) {
- throw new RuntimeException("获取议题失败!");
- }
- }
- /**
- * 获取会话成员
- *
- * @param sessionId
- * @return
- * @throws Exception
- */
- public JSONArray getParticipants(String sessionId) {
- String url = im_host + "api/v2/sessions/" + sessionId + "/participants?session_id=" + sessionId;
- try {
- String ret = HttpClientUtil.get(url, "utf-8");
- return new JSONArray(ret);
- } catch (Exception e) {
- throw new RuntimeException("获取议题失败!");
- }
- }
- /**
- * 获取会话成员
- *
- * @param sessionId
- * @return
- * @throws Exception
- */
- public JSONArray getSessions(String sessionId) {
- String url = im_host + "api/v2/sessions/" + sessionId + "/participants?session_id=" + sessionId;
- try {
- String ret = HttpClientUtil.get(url, "utf-8");
- return new JSONArray(ret);
- } catch (Exception e) {
- throw new RuntimeException("获取议题失败!");
- }
- }
- public static final String SESSION_TYPE_MUC = "1";
- public static final String SESSION_TYPE_P2P = "2";
- public static final String SESSION_TYPE_GROUP = "3";
- public static final String SESSION_TYPE_SYSTEM = "0";
- public static final String SESSION_TYPE_PRESCRIPTION = "8";//续方
- public static final String SESSION_STATUS_PROCEEDINGS = "0";
- public static final String SESSION_STATUS_END = "1";
- public static final String CONTENT_TYPE_TEXT = "1";
- }
|