123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686 |
- /*
- IM客户端SDK。此SDK可以连接开发、测试或生产环境,根据需要配置环境参数以连接到不同的服务器。
- */
- var isProd = true; // 连接生产环境
- var isDemo = false; // 连接公司演示或开发测试环境
- // 服务器列表
- var servers = {
- //dev: "http://192.168.131.109:3008",
- dev: "http://27.154.233.186:3000",
- demo: "http://ehr.yihu.com",
- //prod: "http://120.41.253.95:3000"
- prod:"http://125.73.45.32:3000"
- };
- // REST接口相对路径
- var restPath = {
- login: "/api/v1/users/login",
- logout: "/api/v1/users/logout",
- status: "/api/v1/users/:user_id/status",
- sendGroupMsg: "/api/v1/chats/gm",
- getGroupMsg: "/api/v1/chats/gm",
- getGroupUnreadMsg: "/api/v1/chats/gm/unread",
- getGroupImgMsg: "/api/v1/chats/gm/images",
-
- sendOneByOne: "/api/v1/chats/pm",
- getOneByOneMsg: "/api/v1/chats/pm",
- getOneByOneUnreadMsg: "/api/v1/chats/pm/unread",
- getGroupStatistic: "/api/v1/chats/gm/statistic",
- getBadgeNumber: "/api/v1/application/badge_no",
- getRecentContacts: "/api/v1/chats/recent",
-
- getDDoctorImInfo: "/api/v1/chats/list/doctor",//搜索消息页的医生im列表
- getDPatientImInfo: "/api/v1/chats/list/patient",//搜索消息页的居民im列表
- getGroupsMemberAvatars: "/api/v1/groups/member/avatars",//搜索讨论组的组员头像
- getSearchPatient: "/api/v1/chats/search/patient",//搜索消息页居民im-搜索接口
- getSearchDoctor: "/api/v1/chats/search/doctor",//搜索消息页的居民im-搜索接口
- getSearchZKList:"/api/v1/chats/list",//搜索专科医生的Im列表
- getSearchPatientList: "/api/v1/chats/search/patient/list",//搜索居民im的详情列表
- getSearchPatientAll: "/api/v1/chats/search/patient/all",//搜索居民im的查看更多列表( type参数:1、医生和患者 2、聊天记录 3、群聊)
- getSearchDoctorList: "/api/v1/chats/search/doctor/content/list",//搜索医生im的详情列表
- getSearchDoctorAll: "/api/v1/chats/search/doctor/list",//搜索医生im的查看更多列表(type参数: type = 1 查询聊过的医生; type = 2 查询群组标题和人员包含的群聊 ; type = 3 查询聊天关键字)
- getWeiDuMessageCount: "/api/v1/chats/msg/amount",//获取医生im和居民im的未读消息数
-
- consultFinish: "/api/v1/chats/pm/finished",
-
- getHealthConsult: "/api/v2/sessions/topics",
- updateConsultStatus :"/api/v2/sessions/sessionId/topics"
-
- };
- //api/v1/groups/member/avatars?groups
- var actualServer;
- if (isProd === true) {
- actualServer = servers.prod;
- } else if (isDemo === true) {
- actualServer = servers.demo;
- } else {
- actualServer = servers.dev;
- }
- // REST接口实际路径
- var endpoints = {
- login: actualServer + restPath.login,
- logout: actualServer + restPath.logout,
- updateStatus: actualServer + restPath.status,
- sendGroupMsg: actualServer + restPath.sendGroupMsg,
- getGroupMsg: actualServer + restPath.getGroupMsg,
- getGroupUnreadMsg: actualServer + restPath.getGroupUnreadMsg,
- getGroupImgMsg: actualServer + restPath.getGroupImgMsg,
-
- getGroupStatistic: actualServer + restPath.getGroupStatistic,
- getBadgeNumber: actualServer + restPath.getBadgeNumber,
-
- getPrivateMsg: actualServer + restPath.getOneByOneMsg,
- getPrivateUnreadMsg: actualServer + restPath.getOneByOneUnreadMsg,
-
- sendPrivateMsg: actualServer + restPath.sendOneByOne,
- getRecentContacts: actualServer + restPath.getRecentContacts,
-
- getDDoctorImInfo: actualServer + restPath.getDDoctorImInfo,
- getDPatientImInfo: actualServer + restPath.getDPatientImInfo,
- getGroupsMemberAvatars :actualServer + restPath.getGroupsMemberAvatars,
- getSearchPatient: actualServer + restPath.getSearchPatient,
- getSearchDoctor: actualServer + restPath.getSearchDoctor,
- getSearchZKList: actualServer + restPath.getSearchZKList,
- getSearchPatientList: actualServer + restPath.getSearchPatientList,
- getSearchPatientAll: actualServer + restPath.getSearchPatientAll,
- getSearchDoctorList: actualServer + restPath.getSearchDoctorList,
- getSearchDoctorAll: actualServer + restPath.getSearchDoctorAll,
- getWeiDuMessageCount: actualServer + restPath.getWeiDuMessageCount,
-
- consultFinish: actualServer + restPath.consultFinish,
-
- getHealthConsult: actualServer + restPath.getHealthConsult,
- updateConsultStatus: actualServer + restPath.updateConsultStatus
- };
- // 本地临时缓存Key
- var plusStorageKey = {
- userId: "im_userid"
- };
- var im = {
- // 登录
- login: function (userId, token, client_id, platform) {
- console.log("IM - Login: " + userId);
- console.log('endpoints.login'+endpoints.login);
- console.log(JSON.stringify({user_id: userId, token: token, client_id: client_id, platform: platform}));
- plus.storage.setItem(plusStorageKey.userId, userId);
- $.ajax({
- type: "get",
- url: endpoints.login,
- data: {user_id: userId, token: token, client_id: client_id, platform: platform},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- },
- error: function (msg) {
- console.log(JSON.stringify(msg));
- }
- });
- },
- // 退出
- logout: function (userId) {
- plus.storage.removeItem(plusStorageKey.userId);
- $.ajax({
- type: "get",
- url: endpoints.logout,
- data: {user_id: userId},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- },
- error: function (msg) {
- }
- });
- },
- // 更新用户在线状态
- updateStatus: function (userId, status) {
- //alert(endpoints.updateStatus.replace(':user_id', userId));
- if(userId == undefined || userId == "")return;
- $.ajax({
- type: "post",
- url: endpoints.updateStatus.replace(':user_id', userId),
- data: {user_id: userId, status: status},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log("logout:"+JSON.stringify(data));
-
-
- },
- error: function (msg) {
- console.log("logout:"+JSON.stringify(msg));
- }
- });
- },
- // 发送群组消息
- sendGroupMsg: function (userId, groupId, content, type, handler, group_type, err) {
- function send() {
- $.ajax({
- type: "post",
- url: endpoints.sendGroupMsg,
- data: {at: "", from: userId, group: groupId, groupType: group_type, contentType: type, content: content},
- async: true,
- dataType: "json",
- success: function (data) {
- if(handler) handler(data);
- },
- error: function (msg) {
- console.log(JSON.stringify(msg));
- if(err)
- err(msg);
- else{
- mui.toast("发送失败")
- }
- }
- });
- }
- checkLogin(send);
- },
- // 获取组消息
- getGroupMsg: function (uid, groupId, start, count, handler, contentType, end) {
- var p = {user_id: uid, group_id: groupId, count: count}
- if(start>0)
- p.message_start_id = start;
- if(end)
- p.message_end_id = end;
- if(contentType)
- p.content_type = contentType;
-
- $.ajax({
- type: "get",
- url: endpoints.getGroupMsg,
- data: p,
- async: true,
- dataType: "json",
- success: function (data) {
- if(handler) handler(data);
- },
- error: function (msg) {
- console.log("getGroupMsg:"+ JSON.stringify(msg));
- mui.toast('获取消息失败');
- }
- });
- },
- // 获取组未读消息
- getGroupUnreadMsg: function (uid, groupId, handler) {
- $.ajax({
- type: "get",
- url: endpoints.getGroupUnreadMsg,
- data: {user_id: uid, group_id: groupId},
- async: true,
- dataType: "json",
- success: function (data) {
- if(handler) handler(data);
- },
- error: function (msg) {
- console.log("getGroupUnreadMsg:"+ JSON.stringify(msg));
- mui.toast("获取消息失败");
- }
- });
- },
- // 获取组图片消息
- getGroupImgMsg: function (uid, groupId, handler) {
- $.ajax({
- type: "get",
- url: endpoints.getGroupImgMsg,
- data: {user_id: uid, group_id: groupId},
- async: true,
- dataType: "json",
- success: function (data) {
- if(handler) handler(data);
- },
- error: function (msg) {
- console.log(JSON.stringify(msg));
- mui.toast("获取消息失败");
- }
- });
- },
- // 获取组消息数
- getGroupInfo: function (uid, gid, handler) {
- $.ajax({
- type: "get",
- url: endpoints.getGroupStatistic,
- data: {user_id: uid, group_id: gid},
- async: true,
- dataType: "json",
- success: function (data) {
- handler(data);
- },
- error: function (msg) {
- handler(msg);
- }
- });
- },
- // 发送私信
- sendPrivateMsg: function (from_uid, to_uid, content, type, success,error) {
- function send() {
- $.ajax({
- type: "post",
- url: endpoints.sendPrivateMsg,
- data: {from: from_uid, to: to_uid, content: content, contentType: type},
- async: true,
- dataType: "json",
- success: function (data) {
- if(success) success(data);
- },
- error: function (data) {
- console.log(JSON.stringify(data));
- if(error) error(data);
- mui.toast("发送失败")
- }
- });
- }
- checkLogin(send);
- },
- // 获取私信
- getPrivateMsg: function (uid, peer_uid, start, count, handler, type, end) {
- var p = {user_id: uid, peer_id: peer_uid, count: count}
- if(start>0)
- p.message_start_id = start;
- if(end)
- p.message_end_id = end;
- if(type)
- p.content_type = type;
-
- $.ajax({
- type: "get",
- url: endpoints.getPrivateMsg,
- data: p,
- async: true,
- dataType: "json",
- success: function (data) {
- if(handler) handler(data);
- },
- error: function (msg) {
- mui.toast("获取聊天信息失败")
- }
- });
- },
- getPrivateUnreadMsg: function (uid, peer_uid, handler) {
- $.ajax({
- type: "get",
- url: endpoints.getPrivateUnreadMsg,
- data: {user_id: uid, peer_id: peer_uid},
- async: true,
- dataType: "json",
- success: function (data) {
- if(handler) handler(data);
- },
- error: function (msg) {
- if(handler) handler(msg);
- }
- });
- },
- // 获取私信
- getPrivateMsgWithCallback: function (uid, peer_uid, start, count, handler) {
- $.ajax({
- type: "get",
- url: endpoints.getPrivateMsg,
- data: {user_id: uid, peer_id: peer_uid, message_start_id: start, count: count},
- async: true,
- dataType: "json",
- success: function (data) {
- handler(data);
- },
- error: function (msg) {
- handler(msg);
- }
- });
- },
-
- // 获取应用角标数
- getBadgeNumber: function (userId, handler) {
- $.ajax({
- type: "get",
- url: endpoints.getBadgeNumber,
- data: {user_id: userId},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (handler) handler(data);
- },
- error: function (msg) {
- console.log('error');
- if (handler) handler(msg);
- }
- });
- },
- // 获取最近联系人
- getRecentContacts: function(userId, days,success,error) {
- $.ajax({
- type: "get",
- url: endpoints.getRecentContacts,
- data: {user_id: userId,days: days || 7},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- // 获取医生与居民的IM记录
- getDPatientInfo: function (userId, handler, errHandle) {
- $.ajax({
- type: "get",
- url: endpoints.getDPatientImInfo,
- data: {user_id: userId},
- async: true,
- dataType: "json",
- timeout: 5000,
- success: function (data) {
- console.log(JSON.stringify(data));
- if (handler) handler(data);
- },
- error: function (msg) {
- console.log('error');
- if (errHandle) errHandle(msg);
- }
- });
- },
- // 获取医生与医生的IM记录
- getDDoctorImInfo: function (userId, handler, errHandle) {
- $.ajax({
- type: "get",
- url: endpoints.getDDoctorImInfo,
- data: {user_id: userId},
- async: true,
- dataType: "json",
- timeout: 5000,
- success: function (data) {
- console.log(JSON.stringify(data));
- if (handler) handler(data);
- },
- error: function (msg) {
- console.log('error');
- if (errHandle) errHandle(msg);
- }
- });
- },
- getGroupsMemberAvatars: function(groups,handler, errHandle){
- $.ajax({
- type: "get",
- url: endpoints.getGroupsMemberAvatars,
- data: {groups: groups},
- async: true,
- dataType: "json",
- timeout: 5000,
- success: function (data) {
- console.log(JSON.stringify(data));
- if (handler) handler(data);
- },
- error: function (msg) {
- console.log('error');
- if (errHandle) errHandle(msg);
- }
- });
- },
- getSearchPatient: function(userId,userRole,keyWord,handler){
- $.ajax({
- type: "get",
- url: endpoints.getSearchPatient,
- data: {user_id: userId,user_role:userRole,keyword:keyWord},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (handler) handler(data);
- },
- error: function (msg) {
- console.log('error');
- if (handler) handler(msg);
- }
- });
- },
- getSearchDoctor: function(userId,keyWord,success,error){
- $.ajax({
- type: "get",
- url: endpoints.getSearchDoctor,
- data: {user_id: userId,keyword:keyWord},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- consultFinish: function(user_id, peer_id, success, error){
- $.ajax({
- type: "get",
- url: endpoints.consultFinish,
- data: {doctor_id: user_id, patient_id:peer_id},
- async: true,
- dataType: "json",
- success: function (data) {
- if (success) success(data);
- },
- error: function (msg) {
- console.log(msg);
- if (error) error(msg);
- }
- });
- },
- getSearchZKList:function(userId,success,error){
- $.ajax({
- type: "get",
- url: endpoints.getSearchZKList,
- data: {user_id: userId},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- getSearchPatientList: function(userId,keyWord,type,userRole,groupId,success,error){
- $.ajax({
- type: "get",
- url: endpoints.getSearchPatientList,
- data: {user_id: userId,keyword:keyWord,type:type,user_role:userRole,group_id:groupId},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- getSearchPatientAll: function(userId,keyWord,type,userRole,success,error){
- $.ajax({
- type: "get",
- url: endpoints.getSearchPatientAll,
- data: {user_id: userId,keyword:keyWord,type:type,user_role:userRole},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- getSearchDoctorList: function(userId,keyWord,type,groupCode,success,error){
- $.ajax({
- type: "get",
- url: endpoints.getSearchDoctorList,
- data: {user_id: userId,keyword:keyWord,type:type,groupcode:groupCode},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- getSearchDoctorAll: function(userId,keyWord,type,success,error){
- $.ajax({
- type: "get",
- url: endpoints.getSearchDoctorAll,
- data: {user_id: userId,keyword:keyWord,type:type},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- getWeiDuMessageCount :function(userId,success,error){
- $.ajax({
- type: "get",
- url: endpoints.getWeiDuMessageCount,
- data: {user_id: userId},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- getHealthConsult :function(user,status,page,pagesize,success,error){
- $.ajax({
- type: "get",
- url: endpoints.getHealthConsult,
- data: {user: user,status:status,page:page,pagesize:pagesize},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
- updateConsultStatus :function(sessionId,id,status,success,error){
- endpoints.updateConsultStatus = endpoints.updateConsultStatus.replace("sessionId",sessionId);
- $.ajax({
- type: "put",
- url: endpoints.updateConsultStatus,
- data: {topic_id:id,data:JSON.stringify({status:status})},
- async: true,
- dataType: "json",
- success: function (data) {
- console.log(JSON.stringify(data));
- if (success) success(data);
- },
- error: function (msg) {
- console.log('error');
- if (error) error(msg);
- }
- });
- },
-
- };
- /*
- 执行业务接口前,调用此函数判断当前用户是否在线。
- */
- function checkLogin(callback) {
- /*sendPost("/doctor/islive", {}, null, function (res) {
- if (res.status == 200) {
- callback();
- }
- })*/
- callback();
- }
- im.sendGroup = im.sendGroupMsg;
- im.getGroup = im.getGroupMsg;
- im.getgroupchatinfo = im.getGroupInfo
- im.sendOneByOne = im.sendPrivateMsg
- im.getOneByOneMsg = im.getPrivateMsg
- im.getBadgeNumber = im.getBadgeNumber
- im.getDPatientInfo = im.getDPatientInfo
- im.getDDoctorImInfo = im.getDDoctorImInfo
- im.getGroupsMemberAvatars = im.getGroupsMemberAvatars
- im.getSearchPatient = im.getSearchPatient
- im.getSearchDoctor = im.getSearchDoctor
- im.getSearchZKList = im.getSearchZKList
- im.getSearchPatientList = im.getSearchPatientList
- im.getSearchPatientAll = im.getSearchPatientAll
- im.getSearchDoctorList = im.getSearchDoctorList
- im.getSearchDoctorAll = im.getSearchDoctorAll
- im.getWeiDuMessageCount = im.getWeiDuMessageCount
- im.getHealthConsult = im.getHealthConsult
- im.updateConsultStatus = im.updateConsultStatus
|