新增:消息仅发送在线用户支持,消息状态status=21
This commit is contained in:
parent
621c205b6c
commit
39db13d8de
@ -102,7 +102,8 @@ public class ImChatService extends BaseService {
|
|||||||
// intCache.incrHm("im:heartbeat:" + uid, "messagecount", -1);
|
// intCache.incrHm("im:heartbeat:" + uid, "messagecount", -1);
|
||||||
// 更新状态失败, 200ms 后重试(当数据未写入的时候,更新失败)
|
// 更新状态失败, 200ms 后重试(当数据未写入的时候,更新失败)
|
||||||
Timers.tryDelay(() -> {
|
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));
|
int updateColumn = zimSource.updateColumn(FriendMessage.class, node, ColumnValue.create("status", 10));
|
||||||
|
|
||||||
return updateColumn != 0;
|
return updateColumn != 0;
|
||||||
@ -139,7 +140,8 @@ public class ImChatService extends BaseService {
|
|||||||
.and("senduserid", NOTEQUAL, userid)
|
.and("senduserid", NOTEQUAL, userid)
|
||||||
.and("createtime", GREATERTHAN, lastAcceptTime)
|
.and("createtime", GREATERTHAN, lastAcceptTime)
|
||||||
.and("createtime", LESSTHAN, System.currentTimeMillis())
|
.and("createtime", LESSTHAN, System.currentTimeMillis())
|
||||||
.and("status", NOTEQUAL, 80);
|
.and("status", NOTEQUAL, 80)
|
||||||
|
.and("status", NOTEQUAL, 21);
|
||||||
try {
|
try {
|
||||||
List<ChannelMessage> messages = zimSource.queryList(ChannelMessage.class, new Flipper(50, "createtime desc"), node1);
|
List<ChannelMessage> 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) {
|
private String getGuserid(int userid) {
|
||||||
|
if (userid == 0) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
ImUser user = zimSource.find(ImUser.class, userid);
|
ImUser user = zimSource.find(ImUser.class, userid);
|
||||||
return user.getGuserid();
|
return user.getGuserid();
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,9 @@ public class MessageBean {
|
|||||||
@Comment("[接收群组]{channeltype, channelvalue}")
|
@Comment("[接收群组]{channeltype, channelvalue}")
|
||||||
private SubscribeBean receivechannel;
|
private SubscribeBean receivechannel;
|
||||||
|
|
||||||
|
@Column(comment = "[仅在线接收]0否、1是")
|
||||||
|
private short onlinereceive = 0;
|
||||||
|
|
||||||
public FriendMessage buildFriendMessage(int senduserid, int userid) {
|
public FriendMessage buildFriendMessage(int senduserid, int userid) {
|
||||||
FriendMessage message = new FriendMessage();
|
FriendMessage message = new FriendMessage();
|
||||||
message.setContent(content);
|
message.setContent(content);
|
||||||
@ -36,7 +39,7 @@ public class MessageBean {
|
|||||||
message.setSenduserid(senduserid);
|
message.setSenduserid(senduserid);
|
||||||
message.setReceiveuserid(userid);
|
message.setReceiveuserid(userid);
|
||||||
message.setCreatetime(System.currentTimeMillis());
|
message.setCreatetime(System.currentTimeMillis());
|
||||||
message.setStatus((short) 20);
|
message.setStatus(onlinereceive == 1 ? (short) 21 : 20);
|
||||||
message.setMessageid(Utils.fmt36(senduserid) + "-" + Utils.fmt36(message.getCreatetime()));
|
message.setMessageid(Utils.fmt36(senduserid) + "-" + Utils.fmt36(message.getCreatetime()));
|
||||||
|
|
||||||
return message;
|
return message;
|
||||||
@ -50,7 +53,7 @@ public class MessageBean {
|
|||||||
message.setChanneltype(receivechannel.getChanneltype());
|
message.setChanneltype(receivechannel.getChanneltype());
|
||||||
message.setChannelvalue(receivechannel.getChannelvalue());
|
message.setChannelvalue(receivechannel.getChannelvalue());
|
||||||
message.setCreatetime(System.currentTimeMillis());
|
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()));
|
message.setMessageid(Utils.fmt36(message.getSenduserid()) + "-" + Utils.fmt36(message.getCreatetime()));
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ public class FriendMessage {
|
|||||||
@Column(comment = "[创建时间]")
|
@Column(comment = "[创建时间]")
|
||||||
private long createtime;
|
private long createtime;
|
||||||
|
|
||||||
@Column(comment = "[状态]10已发送,20未发送")
|
@Column(comment = "[状态]10已发送,20未发送,21仅在线发送")
|
||||||
private short status;
|
private short status;
|
||||||
|
|
||||||
public static FriendMessage buildFriendMessage(String content, int senduserid, int receiveuserid) {
|
public static FriendMessage buildFriendMessage(String content, int senduserid, int receiveuserid) {
|
||||||
|
Loading…
Reference in New Issue
Block a user