| 
					
				 | 
			
			
				@ -0,0 +1,895 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.security.utils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.http.HttpClientUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.NameValuePair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.message.BasicNameValuePair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * IM工具类 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @author huangwenjie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Component 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class ImUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private HttpClientUtil HttpClientUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					@Value("${im.im_list_get}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					private String im_host; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public enum ContentType { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						plainText("信息", "1"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						image("图片信息", "2"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						audio("创建处方", "3"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						article("文章信息", "4"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						goTo("跳转信息,求组其他医生或者邀请其他医生发送的推送消息", "5"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						topicBegin("议题开始", "6"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						topicEnd("议题结束", "7"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						personalCard("个人名片", "18"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						messageForward("消息转发", "19"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						topicInto("进入议题", "14"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						video("视频", "12"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						system("系统消息", "13"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						prescriptionCheck("续方审核消息消息", "15"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						prescriptionBloodStatus("续方咨询血糖血压咨询消息", "16"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						prescriptionFollowupContent("续方咨询随访问卷消息", "17"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Rehabilitation("康复计划发送","20"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Reservation("转诊预约发送","21"), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Know("已知悉","22"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						private String name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						private String value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ContentType(String name, String value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							this.name = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							this.value = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						public String getName() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						public void setName(String name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							this.name = name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						public String getValue() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						public void setValue(String value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							this.value = value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String sendMDTSocketMessageToDoctor(String targetUserId, String message) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/message/doctorSystemMessage"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("targetUserId", targetUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("message", message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String response = HttpClientUtil.postBody(imAddr,params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String sendPcManageMessageToPc(String clientType, String message) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/message/cloudCarePcManageMessage"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("clientType", clientType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("message", message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String response = HttpClientUtil.postBody(imAddr,params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String sendPatientSystemMessage(String targetUserId, String message) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/message/patientSystemMessage"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("targetUserId", targetUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("message", message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String response = HttpClientUtil.postBody(imAddr,params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 发送消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param senderId 发送者的code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param receiverId 接受者code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param contentType 消息类型 1二维码内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param content 消息内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String sendMessage(String senderId,String receiverId,String contentType,String content){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/message/send"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("sender_id", senderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("sender_name", receiverId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("content_type", contentType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("content", content); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String response = HttpClientUtil.postBody(imAddr, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取医生统计数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 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,String patientName,String startTime,String endTime,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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (patientName != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&patientName=" + patientName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (startTime != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&startTime=" + startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (endTime != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&endTime=" + endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						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医生发起的求助 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String getConsultCountByStatusAndType(String user,Integer status,Integer reply,Integer type,String patientName,String startTime,String endTime){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/sessions/topicListCountByType"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						imAddr = imAddr + "?user="+user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (status != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&status=" + status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (reply != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&reply=" + reply); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (type != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&type=" + type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (patientName != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&patientName=" + patientName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (startTime != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&startTime=" + startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (endTime != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							imAddr += ("&endTime=" + endTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						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 extend) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/sessions/" + sessionId + "/messages"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						System.out.println("im地址"+imAddr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("extend",extend); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						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 contentType 1文字 2图片消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param content     内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String sendTopicIM(String from, String fromName, String topicId, String contentType, String content, String agent,String patient_name,int patient_sex,int patient_age) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						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("patient_name", patient_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("patient_sex", patient_sex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("patient_age", patient_age); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						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消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * IM: ParticipantUpdate:'/:session_id/participant/update' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @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 sessionId 会话id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param user 新增的成员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param oldUserId  删除的成员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String updateParticipant(String sessionId, String user,String oldUserId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/sessions/" + sessionId + "/participant/update"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("session_id", sessionId ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("user_id", user ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(!StringUtils.isEmpty(oldUserId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							params.put("old_user_id", oldUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return HttpClientUtil.postBody(imAddr, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 更新会话成员(新增或删除) 活跃成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sessionId 会话id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param user 新增的成员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param oldUserId  删除的成员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String updateParticipantNew(String sessionId, String user,String oldUserId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/sessions/" + sessionId + "/participant/updateNew"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("session_id", sessionId ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("user_id", user ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(!StringUtils.isEmpty(oldUserId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							params.put("old_user_id", oldUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return HttpClientUtil.postBody(imAddr, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 更新消息内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sessionId 会话id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sessionType 会话类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param msgId  消息id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param content  消息内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String updateMessage(String sessionId, String sessionType,String msgId,String content) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v2/sessions/" + sessionId + "/messages/"+ msgId +"/update"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("session_id", sessionId ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("session_type", sessionType ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("message_id", msgId ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.put("content", content ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return HttpClientUtil.postBody(imAddr, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 结束议题 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @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 = JSON.parseObject(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 = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return obj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 判断会话是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public Boolean sessionIsExist(String sessionId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						Boolean re = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/isExist?session_id="+sessionId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String ret = HttpClientUtil.get(url, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject obj = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							obj = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if(obj.getInteger("status") ==200&&sessionId.equals(obj.getString("sessionId"))){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								String sessionStatus = obj.getString("sessionId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								if (StringUtils.isNoneBlank(sessionStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									String sessionStatusUrl = im_host + "api/v2/sessions/"+sessionId+"/status?status=0&sessionId="+sessionId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
									String rs = HttpClientUtil.postBody(sessionStatusUrl, object); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								re = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return re; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 创建会话(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 = JSON.parseObject(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 = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (obj.getInteger("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 = JSON.parseArray(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 = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (obj.getInteger("status") == -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								throw new RuntimeException("人员更换失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								return obj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException("人员更换失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 删除会话人员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sessionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param participants 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public JSONObject deleteParticipants(String sessionId,String participants){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url  = im_host+"api/v2/sessions/"+sessionId+"/participants/"+participants; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String rs = HttpClientUtil.doDelete(url,null,null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject obj = JSONObject.parseObject(rs); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if (obj.getInteger("status")==-1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException("删除会话人员失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return obj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取议题 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @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 = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							if (obj.getInteger("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 JSON.parseArray(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException("获取会话成员!sessionId =" + sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取会话成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @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 JSON.parseArray(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException("获取议题失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public JSONObject cleanMessageToRedis(String sessionId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/message/dataMessage?sessionId="+sessionId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String ret = HttpClientUtil.get(url,"utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException("操作失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public JSONObject cleanMessageLastFetchTime(String sessionId,String userId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/message/cleanMessageLastFetchTimeToRedis?sessionId="+sessionId+"&userId="+userId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String ret = HttpClientUtil.get(url,"utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException("操作失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 根据session和userid获取单个会话 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sessionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param userId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public JSONObject getSingleSessionInfo(String sessionId,String userId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/" + sessionId + "/session?user_id=" + userId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String ret = HttpClientUtil.get(url,"utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException("操作失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 发送消息给IM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param from        来自 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param contentType 1文字 2图片消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param content     内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String sendIM(String from, String to, String contentType, String content) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String imAddr = im_host + "api/v1/chats/pm"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						List<NameValuePair> params = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.add(new BasicNameValuePair("from", from)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.add(new BasicNameValuePair("to", to)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.add(new BasicNameValuePair("contentType", contentType)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						params.add(new BasicNameValuePair("content", content)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String response = HttpClientUtil.post(imAddr, params, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					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_TYPE_KANGFU = "18";//续方 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_EXAMINATION = "9";//在线复诊-图文 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_ONDOOR_NURSING = "11";//上门护理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_COLLABORATION_HOSPITAL = "12";///互联网医院协同门诊 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_GUIDANCE_HOSPITAL = "14";//互联网医院居民导诊聊天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_GENERAL_EXPERT = "15";//全科医生发起求助专科医生的专家咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_EXAMINATION_VIDEO = "16";//在线复诊-视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_MUC_VIDEO = "17";//专家-视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_GUIDANCE_ASSISTANT = "18";//导诊助手 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_STATUS_PROCEEDINGS = "0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_STATUS_END = "1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_EMERGENCY_ASSISTANCE = "20";//紧急救助 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_DOOR_COACH = "21";//上门辅导(上门预约) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_SECURITY_WARN = "22";//安防咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_ONLINE = "23";//新生儿在线咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String SESSION_TYPE_ONLINEAged = "24";//老人在线咨询 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static final String CONTENT_TYPE_TEXT = "1"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *按会话类型获取会话总数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param userid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public Integer sessionCountByType(String userid,Integer type,Integer status){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/sessionCountByType?user_id="+userid+"&type="+type+"&status="+status; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String ret = HttpClientUtil.get(url,"utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject obj = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						if(obj.getInteger("status") ==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return obj.getInteger("count"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public Integer SessionsUnreadMessageCountByUserId(String userid){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/unread_message_count?user_id="+userid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		String url = "http://ehr.yihu.com/api/v2/sessions/unread_message_count?user_id="+userid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String ret = HttpClientUtil.get(url,"utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject obj = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		if(obj.getInteger("count") ==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return obj.getInteger("count"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//			return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *获取所有会话未读消息数。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param userid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public Integer SessionsUnreadMessageCount(String userid,String type){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/unread_message_count?user_id="+userid+"&type="+type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String ret = HttpClientUtil.get(url,"utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject obj = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		if(obj.getInteger("count") ==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return obj.getInteger("count"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//			return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 *获取某个会话某个对象的未读消息数。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public Integer UserSessionsUnreadMessageCount(String session,String userid){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/"+session+"/unread_message_count?user_id="+userid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String ret = HttpClientUtil.get(url,"utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						JSONObject obj = JSON.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		if(obj.getInteger("count") ==200){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return obj.getInteger("count"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		}else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//			return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取会话未读消息数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param sessionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param userId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public JSONObject getSessionUnreadMessageCount(String sessionId, String userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/" + sessionId + "/unread_message_count?user_id=" + userId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							String ret = HttpClientUtil.get(url, "utf-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return  JSONObject.parseObject(ret); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException("获取会话成员!sessionId =" + sessionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取在线人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * helper 助老员,teacher 教师,child 幼儿,olderWx 老人公众号,olderPad 老人平板 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String getOnlineCountByType(String type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/getOnlineCountByType?type="+type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String ret = HttpClientUtil.get(url, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取在线人数列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * helper 助老员,teacher 教师,child 幼儿,olderWx 老人公众号,olderPad 老人平板 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String getOnlineListByType(String type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/getOnlineListByType?type="+type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String ret = HttpClientUtil.get(url, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 获取在线状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * helper 助老员,teacher 教师,child 幼儿,older 老人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * 返回 {"status":200,"data":1} data>0 说明在线 data =0 不在线 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public String findByUserIdAndType(String userId,String type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String url = im_host + "api/v2/sessions/findByUserIdAndType?userId="+userId+"&type="+type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						String ret = HttpClientUtil.get(url, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |