From 39db13d8de049cab504fe45e41a60833b9d215df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Thu, 25 Jul 2024 15:32:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E4=BB=85=E5=8F=91=E9=80=81=E5=9C=A8=E7=BA=BF=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=94=AF=E6=8C=81,=E6=B6=88=E6=81=AF=E7=8A=B6=E6=80=81status?= =?UTF-8?q?=3D21?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/zchd/zim/ImChatService.java | 9 +++++++-- src/com/zchd/zim/bean/MessageBean.java | 7 +++++-- src/com/zchd/zim/entity/FriendMessage.java | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/com/zchd/zim/ImChatService.java b/src/com/zchd/zim/ImChatService.java index 92ac412..4cf9c9e 100644 --- a/src/com/zchd/zim/ImChatService.java +++ b/src/com/zchd/zim/ImChatService.java @@ -102,7 +102,8 @@ public class ImChatService extends BaseService { // intCache.incrHm("im:heartbeat:" + uid, "messagecount", -1); // 更新状态失败, 200ms 后重试(当数据未写入的时候,更新失败) Timers.tryDelay(() -> { - FilterNode node = FilterNode.create("senduserid", bean.getSenduserid()).and("receiveuserid", uid); + // FilterNode node = FilterNode.create("senduserid", bean.getSenduserid()).and("receiveuserid", uid); + FilterNode node = FilterNode.create("messageid", bean.getMessageid()); int updateColumn = zimSource.updateColumn(FriendMessage.class, node, ColumnValue.create("status", 10)); return updateColumn != 0; @@ -139,7 +140,8 @@ public class ImChatService extends BaseService { .and("senduserid", NOTEQUAL, userid) .and("createtime", GREATERTHAN, lastAcceptTime) .and("createtime", LESSTHAN, System.currentTimeMillis()) - .and("status", NOTEQUAL, 80); + .and("status", NOTEQUAL, 80) + .and("status", NOTEQUAL, 21); try { List messages = zimSource.queryList(ChannelMessage.class, new Flipper(50, "createtime desc"), node1); @@ -200,6 +202,9 @@ public class ImChatService extends BaseService { } private String getGuserid(int userid) { + if (userid == 0) { + return "0"; + } ImUser user = zimSource.find(ImUser.class, userid); return user.getGuserid(); } diff --git a/src/com/zchd/zim/bean/MessageBean.java b/src/com/zchd/zim/bean/MessageBean.java index 9b1749c..b8d0532 100644 --- a/src/com/zchd/zim/bean/MessageBean.java +++ b/src/com/zchd/zim/bean/MessageBean.java @@ -29,6 +29,9 @@ public class MessageBean { @Comment("[接收群组]{channeltype, channelvalue}") private SubscribeBean receivechannel; + @Column(comment = "[仅在线接收]0否、1是") + private short onlinereceive = 0; + public FriendMessage buildFriendMessage(int senduserid, int userid) { FriendMessage message = new FriendMessage(); message.setContent(content); @@ -36,7 +39,7 @@ public class MessageBean { message.setSenduserid(senduserid); message.setReceiveuserid(userid); message.setCreatetime(System.currentTimeMillis()); - message.setStatus((short) 20); + message.setStatus(onlinereceive == 1 ? (short) 21 : 20); message.setMessageid(Utils.fmt36(senduserid) + "-" + Utils.fmt36(message.getCreatetime())); return message; @@ -50,7 +53,7 @@ public class MessageBean { message.setChanneltype(receivechannel.getChanneltype()); message.setChannelvalue(receivechannel.getChannelvalue()); message.setCreatetime(System.currentTimeMillis()); - message.setStatus((short) 20); + message.setStatus(onlinereceive == 1 ? (short) 21 : 20); message.setMessageid(Utils.fmt36(message.getSenduserid()) + "-" + Utils.fmt36(message.getCreatetime())); return message; } diff --git a/src/com/zchd/zim/entity/FriendMessage.java b/src/com/zchd/zim/entity/FriendMessage.java index bd40741..daef138 100644 --- a/src/com/zchd/zim/entity/FriendMessage.java +++ b/src/com/zchd/zim/entity/FriendMessage.java @@ -32,7 +32,7 @@ public class FriendMessage { @Column(comment = "[创建时间]") private long createtime; - @Column(comment = "[状态]10已发送,20未发送") + @Column(comment = "[状态]10已发送,20未发送,21仅在线发送") private short status; public static FriendMessage buildFriendMessage(String content, int senduserid, int receiveuserid) {