所有的db接口返回值,统一由errCode,errMsg,data字段转换为字符串异步返回
CREATE TABLE `local_chat_logs` (`client_msg_id` char(64),`server_msg_id` char(64),`send_id` char(64),`recv_id` char(64),`sender_platform_id` integer,`sender_nick_name` varchar(255),`sender_face_url` varchar(255),`session_type` integer,`msg_from` integer,`content_type` integer,`content` varchar(1000),`is_read` numeric,`status` integer,`seq` integer DEFAULT 0,`send_time` integer,`create_time` integer,`attached_info` varchar(1024),`ex` varchar(1024),`is_react` numeric,`is_external_extensions` numeric,`msg_first_modify_time` integer,PRIMARY KEY (`client_msg_id`))
-
表结构特别说明
字段名 |
类型 |
说明 |
is_read |
bool |
true已读,false 未读 |
输入参数 |
类型 |
说明 |
备注 |
clientMsgID |
string |
消息ID |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
如果获取不到消息也需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
LocalChatLog(消息表对象数据) |
对象转换成string |
参考sql语句说明: |
|
|
|
SELECT * FROM `local_chat_logs` WHERE client_msg_id = "063031b86f8e503c6038efb2b835f216" LIMIT 1
输入参数 |
类型 |
说明 |
备注 |
sourceID |
string |
关于某人的ID也可能是写扩散模式下群ID |
|
sessionType |
number |
会话类型,单聊1、读扩散群2、大群为3 |
|
count |
number |
获取消息的数量 |
|
startTime |
number |
消息发送时间,毫秒 |
|
isReverse |
boolean |
消息为正向拉取还是反向拉取 |
默认情况为false,即为正向拉取(从新消息到老消息),order by 后面的排序规则为send_time DESC 降序排列,send_time为 <;当为true的情况,即为反向拉取,order by 后面的排序规则为send_time ASC 升序排列,send_time为 > |
loginUserID |
string |
用户登录ID |
需要根据会话的类型和sourceID判断,当sessionType为1并且sourceID为登录者ID时候,搜索sql为 AND |
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
[]LocalChatLog(消息表对象数组数据) |
|
参考sql语句说明:
-- 1、sessionType == 1 && sourceID == d.loginUserID
SELECT * FROM `local_chat_logs` WHERE send_id = "812146266" And recv_id = "812146266" AND status <=1 And session_type = 3 And send_time < 1664357584025 ORDER BY send_time DESC LIMIT 30;
-- 注:其中status固定为3
-- 2、其他场景
SELECT * FROM `local_chat_logs` WHERE send_id = "812146266" OR recv_id = "812146266" AND status <=1 And session_type = 3 And send_time < 1664357584025 ORDER BY send_time DESC LIMIT 30;
输入参数 |
类型 |
说明 |
备注 |
sourceID |
string |
关于某人的ID也可能是写扩散模式下群ID |
|
sessionType |
number |
会话类型,单聊1、读扩散群2、大群为3 |
|
count |
number |
获取消息的数量 |
|
isReverse |
boolean |
消息为正向拉取还是反向拉取 |
默认情况为false,即为正向拉取(从新消息到老消息),order by 后面的排序规则为send_time DESC 降序排列,当为true的情况,即为反向拉取,order by 后面的排序规则为send_time ASC 升序排列 |
loginUserID |
string |
用户登录ID |
需要根据会话的类型和sourceID判断,当sessionType为1并且sourceID为登录者ID时候,搜索sql为 AND |
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
[]LocalChatLog(消息表对象数组数据) |
|
参考sql语句说明:
-- 1、sessionType == 1 && sourceID == d.loginUserID
SELECT * FROM `local_chat_logs` WHERE send_id = "812146266" And recv_id = "812146266" AND status <=3 And session_type = 1 ORDER BY send_time DESC LIMIT 30;
-- 注:其中status固定为3
-- 2、其他场景
SELECT * FROM `local_chat_logs` WHERE send_id = "812146266" OR recv_id = "812146266" AND status <=3 And session_type = 1 ORDER BY send_time DESC LIMIT 30;
无输入参数
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
[]LocalChatLog(消息表对象数组数据) |
对象数组转换成string |
参考sql语句说明:
select * from local_chat_logs where status = 1;
-- 消息状态:
-- MsgStatusSending = 1
-- MsgStatusSendSuccess = 2
-- MsgStatusSendFailed = 3
-- MsgStatusHasDeleted = 4
-- MsgStatusRevoked = 5
-- MsgStatusFiltered = 6
无输入参数
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
number |
消息表中最大seq |
|
参考sql语句说明:
SELECT IFNULL(max(seq),0) FROM `local_chat_logs`;
- updateMessageTimeAndStatus
输入参数 |
类型 |
说明 |
备注 |
clientMsgID |
string |
客户端消息ID |
|
serverMsgID |
string |
服务器消息ID |
|
sendTime |
number |
消息发送时间,毫秒 |
|
status |
number |
消息状态,参照前面 |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
如果没更新到任何一行消息也返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
参考sql语句说明:
UPDATE `local_chat_logs` SET `server_msg_id`="75dee2fbd6c4f28e7895f8410be4984f",`status`=2,`send_time`=1663658950513 WHERE client_msg_id="985261c57242cf647753839854038154" And seq=0;
BatchUpdateMessageList
输入参数 |
类型 |
说明 |
备注 |
clientMsgID |
string |
客户端消息ID |
|
args |
object |
更新字段参数对象 |
内部是kv,k为字段名,v为需要更新的字段内容Js实现db接口简要说明 |
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
如果没更新到任何一行消息也返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
参考sql语句说明:
UPDATE `local_chat_logs` SET `server_msg_id`="8c6dc2ace8ff5706880018de43916c39",`recv_id`="2041671273",`session_type`=1,`status`=2,`seq`=14 WHERE `client_msg_id` = "6edad80249cc0cf626edb88e64f8fb6d";
输入参数 |
类型 |
说明 |
备注 |
messageList |
string |
[]LocalChatLog(消息表对象数组数据) |
对象数组转换成string |
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
参考sql语句说明:
INSERT INTO `local_chat_logs` (`client_msg_id`,`server_msg_id`,`send_id`,`recv_id`,`sender_platform_id`,`sender_nick_name`,`sender_face_url`,`session_type`,`msg_from`,`content_type`,`content`,`is_read`,`status`,`seq`,`send_time`,`create_time`,`attached_info`,`ex`) VALUES ("01d22adafe309482391fc54f728c96a7","5cb3ecb6092843e9376fd229a72b24e0","3045326383","openIMAdmin",0,"","",1,200,1303,"{\"detail\":\"CgozMDQ1MzI2Mzgz\",\"defaultTips\":\"remove a blocked user\",\"jsonDetail\":\"{\\"userID\\":\\"3045326383\\"}\"}",false,6,1,1663557189653,1663557189652,"",""),("3492347bc55280d3c5c32398f78eae50","2b0a01eff07f502da31751fb459966bc","3045326383","openIMAdmin",0,"","",1,200,1303,"{\"detail\":\"CgozMDQ1MzI2Mzgz\",\"defaultTips\":\"remove a blocked user\",\"jsonDetail\":\"{\\"userID\\":\\"3045326383\\"}\"}",false,6,2,1663557324330,1663557324329,"","");
输入参数 |
类型 |
说明 |
备注 |
message |
string |
LocalChatLog(消息表对象) |
对象转换成string |
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
参考sql语句说明:
INSERT INTO `local_chat_logs` (`client_msg_id`,`server_msg_id`,`send_id`,`recv_id`,`sender_platform_id`,`sender_nick_name`,`sender_face_url`,`session_type`,`msg_from`,`content_type`,`content`,`is_read`,`status`,`seq`,`send_time`,`create_time`,`attached_info`,`ex`) VALUES ("6edad80249cc0cf626edb88e64f8fb6d","","3045326383","2041671273",1,"Gordon111","ic_avatar_01",1,100,101,"Single chat test3045326383:2041671273:",false,1,0,1663658716992,1663658716992,"","");
输入参数 |
类型 |
说明 |
备注 |
msgIDList |
string |
消息ID列表 |
对象转换成string |
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
参考sql语句说明:
SELECT * FROM `local_sg_chat_logs_4280368097` WHERE client_msg_id IN ("d9ef1e4e63394b856b8a781ef0234b49","00da0b5471f0bca5a41c92e09419f9dc") ORDER BY send_time DESC;
输入参数 |
类型 |
说明 |
备注 |
contentType |
string |
消息类型列表,为整型数组转换后的string |
|
keywordList |
string |
关键字列表,为字符串数组转换后的string |
|
keywordListMatchType |
0为or匹配, 1为and匹配 |
|
|
sourceID |
string |
|
来源id 可以为用户和普通群群ID |
startTime |
number |
开始时间戳 |
|
endTime |
number |
结束时间戳 |
|
sessionType |
number |
会话类型 |
|
offset |
number |
偏移数 |
|
count |
number |
获取总数 |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
[]LocalChatLog(消息表对象数组数据)转换后的string |
|
参考sql语句说明:
SELECT * FROM `local_chat_logs` WHERE session_type==1 And (send_id=="1889848740" OR recv_id=="1889848740") And send_time between 0 and 1666766907000 AND status <=3 And content_type IN (101,106) And (content like '%1%') ORDER BY send_time DESC LIMIT 20 OFFSET 0;
- searchMessageByContentType
输入参数 |
类型 |
说明 |
备注 |
contentType |
string |
消息类型列表,为整型数组转换后的string |
|
sourceID |
string |
源ID, 可以为用户, 普通群id |
|
startTime |
number |
开始时间戳 |
|
endTime |
number |
结束时间戳 |
|
sessionType |
number |
会话类型 |
不能填3 |
offset |
number |
偏移数 |
|
count |
number |
获取总数 |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
[]LocalChatLog(消息表对象数组数据)转换后的string |
|
参考sql语句说明:
SELECT * FROM `local_chat_logs` WHERE session_type==1 And (send_id=="3433303585" OR recv_id=="3433303585") And send_time between 0 and 1666767929000 AND status <=3 And content_type IN (101,106) ORDER BY send_time DESC LIMIT 20 OFFSET 0;
- searchMessageByContentTypeAndKeyword
输入参数 |
类型 |
说明 |
备注 |
contentType |
string |
消息类型列表,为整型数组转换后的string |
|
keywordList |
string |
关键字列表,为字符串数组转换后的string |
|
keywordListMatchType |
0为or匹配, 1为and匹配 |
|
|
startTime |
number |
开始时间戳 |
|
endTime |
number |
结束时间戳 |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
[]LocalChatLog(消息表对象数组数据)转换后的string |
|
参考sql语句说明:
SELECT * FROM `local_chat_logs` WHERE send_time between 0 and 1666769211000 AND status <=3 And content_type IN (101,106) ORDER BY send_time DESC
输入参数 |
类型 |
说明 |
备注 |
clientMsgID |
string |
id |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
bool |
是否存在 |
|
参考sql语句说明:
SELECT count(*) FROM `local_chat_logs` WHERE client_msg_id == "xxx";
- isExistsInErrChatLogBySeq
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
bool |
是否存在 |
|
参考sql语句说明:
SELECT count(*) FROM `local_err_chat_logs` WHERE seq == 1;
输入参数 |
类型 |
说明 |
备注 |
seq |
uint32 |
id |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
bool |
是否存在 |
|
参考sql语句说明:
SELECT count(*) FROM `local_chat_logs` WHERE seq == 1;
- UpdateGroupMessageHasRead
| 输入参数 | 类型 | 说明 |备注|
| --------- | ------------------------------------------------------------ | ----- |-----------------------|
| msgIDList | string | 消息ID列表转换后的string |
|sessionType | int | 不能为3 |
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
UPDATE `local_chat_logs` SET `is_read`=1 WHERE session_type=2 AND client_msg_id in ("a43fe26849cf4f9225262297967979f1")
输入参数 |
类型 |
说明 |
备注 |
msgIDList |
[]string |
id |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
|
|
参考sql语句说明:
SELECT * FROM `local_chat_logs` WHERE client_msg_id IN ("a43fe26849cf4f9225262297967979f1") ORDER BY send_time DESC
输入参数 |
类型 |
说明 |
备注 |
sendID |
string |
|
|
nickname |
string |
|
|
sType |
int |
sessionType |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
参考sql语句说明:
UPDATE `local_chat_logs` SET `sender_nick_name`="xx" WHERE send_id = "ss" and session_type = 1 and sender_nick_name != "xx"
输入参数 |
类型 |
说明 |
备注 |
sendID |
string |
|
|
faceURL |
string |
|
|
sType |
int |
sessionType |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
参考sql语句说明:
UPDATE `local_chat_logs` SET `sender_face_url`="xx" WHERE send_id = "ss" and session_type = 1 and sender_face_url != "xx"
- updateMsgSenderFaceURLAndSenderNickname
输入参数 |
类型 |
说明 |
备注 |
sendID |
string |
|
|
faceURL |
string |
|
|
nickname |
string |
|
|
sType |
int |
sessionType |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
string |
可为"" |
|
参考sql语句说明:
UPDATE `local_chat_logs` SET `sender_face_url`="xx",`sender_nick_name`="" WHERE send_id = "ss" and session_type = 1
输入参数 |
类型 |
说明 |
备注 |
clientMsgID |
string |
id |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到报错 |
errMsg |
string |
详细的err信息 |
|
data |
uint32 |
uint32 |
|
参考sql语句说明:
SELECT `seq` FROM `local_chat_logs` WHERE client_msg_id="ss" LIMIT 1
输入参数 |
类型 |
说明 |
备注 |
groupID |
string |
id |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
[]uint32 |
|
|
参考sql语句说明:
SELECT `seq` FROM `local_chat_logs` WHERE recv_id="ss"
- getMsgSeqListByPeerUserID
输入参数 |
类型 |
说明 |
备注 |
userID |
string |
id |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
[]uint32 |
|
|
参考sql语句说明:
SELECT `seq` FROM `local_chat_logs` WHERE recv_id="ss" or send_id="ss"
- getMsgSeqListBySelfUserID
输入参数 |
类型 |
说明 |
备注 |
userID |
string |
id |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
[]uint32 |
|
|
参考sql语句说明:
SELECT `seq` FROM `local_chat_logs` WHERE recv_id="ss" and send_id="ss"
local_err_chat_logs表
CREATE TABLE "local_err_chat_logs" (
"seq" integer,
"client_msg_id" char(64),
"server_msg_id" char(64),
"send_id" char(64),
"recv_id" char(64),
"sender_platform_id" integer,
"sender_nick_name" varchar(255),
"sender_face_url" varchar(255),
"session_type" integer,
"msg_from" integer,
"content_type" integer,
"content" varchar(1000),
"is_read" numeric,
"status" integer,
"send_time" integer,
"create_time" integer,
"attached_info" varchar(1024),
"ex" varchar(1024),
PRIMARY KEY ("seq")
);
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
uint32 |
|
|
SELECT IFNULL(max(seq),0) FROM `local_err_chat_logs`
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
[]uint32 |
没有返回空列表 |
|
SELECT `seq` FROM `local_err_chat_logs`
输入参数 |
类型 |
说明 |
备注 |
messageList |
[]LocalErrChatLog |
|
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
[]uint32 |
没有返回空列表 |
|
INSERT INTO `local_err_chat_logs` (`client_msg_id`,`server_msg_id`,`send_id`,`recv_id`,`sender_platform_id`,`sender_nick_name`,`sender_face_url`,`session_type`,`msg_from`,`content_type`,`content`,`is_read`,`status`,`send_time`,`create_time`,`attached_info`,`ex`,`seq`) VALUES ("1","1","1","1",0,"1","1",0,0,0,"",false,0,0,0,"","",1) RETURNING `seq`
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
[]uint32 |
没有返回空列表 |
|
UPDATE `local_chat_logs` SET `content`="",`status`=4
- getAllUnDeleteMessageSeqList
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
[]uint32 |
没有返回空列表 |
|
SELECT `seq` FROM `local_chat_logs` WHERE status != 4
- updateSingleMessageHasRead
输入参数 |
类型 |
说明 |
备注 |
sendID |
string |
|
|
msgIDList |
[]string |
|
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
[]uint32 |
没有返回空列表 |
|
UPDATE `local_chat_logs` SET `is_read`=1 WHERE send_id="s" AND session_type=1 AND client_msg_id in ("sss")
- updateGroupMessageHasRead
输入参数 |
类型 |
说明 |
备注 |
sessionType |
number |
|
|
msgIDList |
[]string |
|
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
|
errMsg |
string |
详细的err信息 |
|
data |
number |
|
|
UPDATE `local_chat_logs` SET `is_read`=1 WHERE session_type=3 AND client_msg_id in ("12","ds")
- updateMessageStatusBySourceID
输入参数 |
类型 |
说明 |
备注 |
sourceID |
string |
关于某人的ID也可能是写扩散模式下群ID |
|
status |
number |
消息状态值 |
|
sessionType |
number |
会话类型,单聊1、读扩散群2、大群为3 |
|
loginUserID |
string |
用户登录ID |
需要根据会话的类型和sourceID判断,当sessionType为1并且sourceID为登录者ID时候,sql为 AND |
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
如果没更新到任何一行消息也返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
number |
可为"" |
|
-- 1、sessionType == 1 && sourceID == d.loginUserID
UPDATE `local_chat_logs` SET `status`=4, WHERE session_type=1 AND send_id= "ss" AND recv_id="ss"
-- 2、
UPDATE `local_chat_logs` SET `status`=4, WHERE session_type=1 AND (send_id= "ss" or recv_id="ss")
- searchAllMessageByContentType
输入参数 |
类型 |
说明 |
备注 |
contentType |
number |
消息类型 |
|
返回参数 |
类型 |
说明 |
备注 |
errCode |
number |
自定义即可,0成功,非0失败 |
获取不到的时候返回空数组不需要返回错误 |
errMsg |
string |
详细的err信息 |
|
data |
string |
[]LocalChatLog(消息表对象数组数据) |
数组转换成string |
参考sql语句说明: |
|
|
|
SELECT * FROM `local_chat_logs` WHERE content_type = 114