|  | @ -1,751 +0,0 @@
 | 
												
													
														
															|  | package com.yihu.jw.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;
 |  | 
 | 
												
													
														
															|  | 		}
 |  | 
 | 
												
													
														
															|  | 	}
 |  | 
 | 
												
													
														
															|  | 	
 |  | 
 | 
												
													
														
															|  | 	/**
 |  | 
 | 
												
													
														
															|  | 	 * 发送消息
 |  | 
 | 
												
													
														
															|  | 	 * @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 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);
 |  | 
 | 
												
													
														
															|  | 		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 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 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_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 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;
 |  | 
 | 
												
													
														
															|  | 		}
 |  | 
 | 
												
													
														
															|  | 	}
 |  | 
 | 
												
													
														
															|  | 	
 |  | 
 | 
												
													
														
															|  | 	/**
 |  | 
 | 
												
													
														
															|  | 	 *获取所有会话未读消息数。
 |  | 
 | 
												
													
														
															|  | 	 * @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;
 |  | 
 | 
												
													
														
															|  | //		}
 |  | 
 | 
												
													
														
															|  | 	}
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | }
 |  | 
 |