|
@ -17,954 +17,971 @@ 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"),
|
|
|
KnowCommonQuestion("知识库-常见问题","3001"),
|
|
|
KnowCommonCustomer("知识库-客服欢迎","3008"),
|
|
|
KnowCommonQuestions("知识库-常见问题集","3002"),
|
|
|
KnowCommonDict("知识库-字典","3003"),
|
|
|
KnowDeptDoctor("知识库-科室医生","3004"),
|
|
|
KnowSymptomsDisease("知识库-疾病症状","3005"),
|
|
|
KnowSymptomsDiseaseQ("知识库-疾病症状问题","3006"),
|
|
|
KnowSymptomsDiseaseA("知识库-疾病症状回答","3007");
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送消息给IM
|
|
|
*
|
|
|
* @param from 来自
|
|
|
* @param contentType 1文字 2图片消息
|
|
|
* @param content 内容
|
|
|
*/
|
|
|
public static String sendImMsg(String from, String fromName, String sessionId, String contentType, String content, String businessType) {
|
|
|
@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"),
|
|
|
KnowCommonQuestion("知识库-常见问题", "3001"),
|
|
|
KnowCommonCustomer("知识库-客服欢迎", "3008"),
|
|
|
KnowCommonQuestions("知识库-常见问题集", "3002"),
|
|
|
KnowCommonDict("知识库-字典", "3003"),
|
|
|
KnowDeptDoctor("知识库-科室医生", "3004"),
|
|
|
KnowSymptomsDisease("知识库-疾病症状", "3005"),
|
|
|
KnowSymptomsDiseaseQ("知识库-疾病症状问题", "3006"),
|
|
|
KnowSymptomsDiseaseA("知识库-疾病症状回答", "3007");
|
|
|
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送消息给IM
|
|
|
*
|
|
|
* @param from 来自
|
|
|
* @param contentType 1文字 2图片消息
|
|
|
* @param content 内容
|
|
|
*/
|
|
|
public static String sendImMsg(String from, String fromName, String sessionId, String contentType, String content, String businessType) {
|
|
|
// String imAddr = im_host + "api/v2/sessions/" + sessionId + "/messages";//原本的
|
|
|
|
|
|
String host = ImService.im_host ;
|
|
|
String imAddr = 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",null);
|
|
|
String host = ImService.im_host;
|
|
|
String imAddr = 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", null);
|
|
|
// String response = HttpClientUtil.postBody(imAddr, params);
|
|
|
String response = com.yihu.jw.util.http.HttpClientUtil.postBodyStatic(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;
|
|
|
}
|
|
|
|
|
|
public Integer sessionStatus(String sessionId) {
|
|
|
String url = im_host + "api/v2/sessions/isExist?session_id="+sessionId;
|
|
|
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 session_id = obj.getString("sessionId");
|
|
|
Integer sessionStatus = obj.getInteger("sessionStatus");
|
|
|
return sessionStatus;
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
return null;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 创建会话(system)
|
|
|
*/
|
|
|
public static JSONObject createSession(JSONObject participants, String sessionType, String sessionName, String sessionId) {
|
|
|
String response = com.yihu.jw.util.http.HttpClientUtil.postBodyStatic(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) {
|
|
|
JSONObject obj = new JSONObject();
|
|
|
try {
|
|
|
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);
|
|
|
obj = JSON.parseObject(ret);
|
|
|
return obj;
|
|
|
} catch (Exception e) {
|
|
|
System.out.println("创建议题失败:topicId=>" + topicId);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 判断会话是否存在
|
|
|
*/
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
public Integer sessionStatus(String sessionId) {
|
|
|
String url = im_host + "api/v2/sessions/isExist?session_id=" + sessionId;
|
|
|
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 session_id = obj.getString("sessionId");
|
|
|
Integer sessionStatus = obj.getInteger("sessionStatus");
|
|
|
return sessionStatus;
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
return null;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 创建会话(system)
|
|
|
*/
|
|
|
public static JSONObject createSession(JSONObject participants, String sessionType, String sessionName, String sessionId) {
|
|
|
// String imAddr = im_host + "api/v2/sessions";
|
|
|
String imAddr = ImService.im_host + "/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 imAddr = ImService.im_host + "/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);
|
|
|
String ret = com.yihu.jw.util.http.HttpClientUtil.postBodyStatic(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 = com.yihu.jw.util.http.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 SESSION_TYPE_HealthConsult = "25";//老人在线咨询
|
|
|
|
|
|
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 ret = com.yihu.jw.util.http.HttpClientUtil.postBodyStatic(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 = com.yihu.jw.util.http.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 SESSION_TYPE_HealthConsult = "25";//老人在线咨询
|
|
|
|
|
|
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);
|
|
|
String ret = HttpClientUtil.get(url, "utf-8");
|
|
|
JSONObject obj = JSON.parseObject(ret);
|
|
|
// if(obj.getInteger("count") ==200){
|
|
|
return obj.getInteger("count");
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取所有会话未读消息数。
|
|
|
*
|
|
|
* @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");
|
|
|
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);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取某个会话某个对象的未读消息数。
|
|
|
*
|
|
|
* @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");
|
|
|
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;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*按会话类型、会话状态获取会话列表
|
|
|
* @param user_id
|
|
|
* @param page
|
|
|
* @param size
|
|
|
* @param type
|
|
|
* @param status 不传为获取所有状态
|
|
|
* @param name
|
|
|
* @param search_type 仅当type为2时有效 1与医生p2p会话 2与患者p2p
|
|
|
* @return
|
|
|
*/
|
|
|
public String getSessionListByType(String user_id, String page, String size, String type, String status, String name,String search_type){
|
|
|
String url = im_host + "api/v2/sessions/sessionListByType?user_id="+user_id+"&page="+page+"&size="+size+"&type="+type+"&status="+(status==null?"":status)+"&name="+(name==null?"":name)+"&search_type="+(search_type==null?"":search_type);
|
|
|
String ret = HttpClientUtil.get(url, "utf-8");
|
|
|
return ret;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取会话未读消息数量
|
|
|
*
|
|
|
* @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;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 按会话类型、会话状态获取会话列表
|
|
|
*
|
|
|
* @param user_id
|
|
|
* @param page
|
|
|
* @param size
|
|
|
* @param type
|
|
|
* @param status 不传为获取所有状态
|
|
|
* @param name
|
|
|
* @param search_type 仅当type为2时有效 1与医生p2p会话 2与患者p2p
|
|
|
* @return
|
|
|
*/
|
|
|
public String getSessionListByType(String user_id, String page, String size, String type, String status, String name, String search_type) {
|
|
|
String url = im_host + "api/v2/sessions/sessionListByType?user_id=" + user_id + "&page=" + page + "&size=" + size + "&type=" + type + "&status=" + (status == null ? "" : status) + "&name=" + (name == null ? "" : name) + "&search_type=" + (search_type == null ? "" : search_type);
|
|
|
String ret = HttpClientUtil.get(url, "utf-8");
|
|
|
return ret;
|
|
|
}
|
|
|
}
|