diff --git a/common/src/main/java/cn/wildfirechat/common/APIPath.java b/common/src/main/java/cn/wildfirechat/common/APIPath.java index 2b70cc37..4462df65 100644 --- a/common/src/main/java/cn/wildfirechat/common/APIPath.java +++ b/common/src/main/java/cn/wildfirechat/common/APIPath.java @@ -39,6 +39,7 @@ public interface APIPath { String Msg_Send = "/admin/message/send"; String Msg_Recall = "/admin/message/recall"; + String Msg_Delete = "/admin/message/delete"; String Msg_Broadcast = "/admin/message/broadcast"; String Msg_Multicast = "/admin/message/multicast"; diff --git a/common/src/main/java/cn/wildfirechat/pojos/DeleteMessageData.java b/common/src/main/java/cn/wildfirechat/pojos/DeleteMessageData.java new file mode 100644 index 00000000..8c71ccb9 --- /dev/null +++ b/common/src/main/java/cn/wildfirechat/pojos/DeleteMessageData.java @@ -0,0 +1,21 @@ +/* + * This file is part of the Wildfire Chat package. + * (c) Heavyrain2012 + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +package cn.wildfirechat.pojos; + +public class DeleteMessageData { + private long messageUid; + + public long getMessageUid() { + return messageUid; + } + + public void setMessageUid(long messageUid) { + this.messageUid = messageUid; + } +} diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java index bd373ceb..513764d2 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java @@ -465,6 +465,13 @@ public class Main { System.exit(-1); } + voidIMResult = MessageAdmin.deleteMessage(resultSendMessage.getResult().getMessageUid()); + if (voidIMResult != null && voidIMResult.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("delete message success"); + } else { + System.out.println("delete message failure"); + System.exit(-1); + } IMResult resultBroadcastMessage = MessageAdmin.broadcastMessage("user1", 0, payload); if (resultBroadcastMessage != null && resultBroadcastMessage.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/MessageAdmin.java b/sdk/src/main/java/cn/wildfirechat/sdk/MessageAdmin.java index c1d6087e..6d6a77f4 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/MessageAdmin.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/MessageAdmin.java @@ -25,6 +25,30 @@ public class MessageAdmin { return AdminHttpUtils.httpJsonPost(path, messageData, Void.class); } + public static IMResult deleteMessage(long messageUid) throws Exception { + String path = APIPath.Msg_Delete; + DeleteMessageData deleteMessageData = new DeleteMessageData(); + deleteMessageData.setMessageUid(messageUid); + return AdminHttpUtils.httpJsonPost(path, deleteMessageData, Void.class); + } + + + + /** + * 撤回群发或者广播的消息 + * @param target 目标用户 + * @param messageUid 消息唯一ID + * @return + * @throws Exception + */ + public static IMResult recallBroadcastOrMulticastMessage(String target, long messageUid) throws Exception { + String path = APIPath.Msg_Recall; + RecallMessageData messageData = new RecallMessageData(); + messageData.setOperator(target); + messageData.setMessageUid(messageUid); + return AdminHttpUtils.httpJsonPost(path, messageData, Void.class); + } + public static IMResult broadcastMessage(String sender, int line, MessagePayload payload) throws Exception { String path = APIPath.Msg_Broadcast; BroadMessageData messageData = new BroadMessageData();