From 9fa13702199f9a738ccb0c2243da303ddce87086 Mon Sep 17 00:00:00 2001 From: imhao183 Date: Tue, 9 Feb 2021 14:58:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E7=94=A8=E6=88=B7=E5=A5=BD=E5=8F=8B=E5=85=B3=E7=B3=BB?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/admin/RelationGetAction.java | 61 +++++++++++++++++++ .../java/cn/wildfirechat/common/APIPath.java | 1 + .../cn/wildfirechat/pojos/RelationPojo.java | 10 +++ .../main/java/cn/wildfirechat/sdk/Main.java | 16 +++-- .../cn/wildfirechat/sdk/RelationAdmin.java | 6 ++ 5 files changed, 90 insertions(+), 4 deletions(-) create mode 100755 broker/src/main/java/com/xiaoleilu/loServer/action/admin/RelationGetAction.java create mode 100644 common/src/main/java/cn/wildfirechat/pojos/RelationPojo.java diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/RelationGetAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/RelationGetAction.java new file mode 100755 index 00000000..05a31132 --- /dev/null +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/RelationGetAction.java @@ -0,0 +1,61 @@ +/* + * 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 com.xiaoleilu.loServer.action.admin; + +import cn.wildfirechat.common.APIPath; +import cn.wildfirechat.pojos.InputUserId; +import cn.wildfirechat.pojos.OutputStringList; +import cn.wildfirechat.pojos.RelationPojo; +import cn.wildfirechat.pojos.StringPairPojo; +import com.google.gson.Gson; +import com.xiaoleilu.loServer.RestResult; +import com.xiaoleilu.loServer.annotation.HttpMethod; +import com.xiaoleilu.loServer.annotation.Route; +import com.xiaoleilu.loServer.handler.Request; +import com.xiaoleilu.loServer.handler.Response; +import com.xiaoleilu.loServer.model.FriendData; +import io.netty.handler.codec.http.FullHttpRequest; +import io.netty.handler.codec.http.HttpResponseStatus; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; + +@Route(APIPath.Relation_Get) +@HttpMethod("POST") +public class RelationGetAction extends AdminAction { + + @Override + public boolean isTransactionAction() { + return true; + } + + @Override + public boolean action(Request request, Response response) { + if (request.getNettyRequest() instanceof FullHttpRequest) { + StringPairPojo input = getRequestBody(request.getNettyRequest(), StringPairPojo.class); + FriendData data = messagesStore.getFriendData(input.getFirst(), input.getSecond()); + + RelationPojo out = new RelationPojo(); + out.userId = input.getFirst(); + out.targetId = input.getSecond(); + if(data != null ) { + out.isFriend = data.getState() == 0; + out.isBlacked = data.getBlacked() == 1; + out.alias = data.getAlias(); + out.extra = data.getExtra(); + } + + response.setStatus(HttpResponseStatus.OK); + RestResult result = RestResult.ok(out); + response.setContent(new Gson().toJson(result)); + } + return true; + } +} diff --git a/common/src/main/java/cn/wildfirechat/common/APIPath.java b/common/src/main/java/cn/wildfirechat/common/APIPath.java index 714104c5..a2f8ae68 100644 --- a/common/src/main/java/cn/wildfirechat/common/APIPath.java +++ b/common/src/main/java/cn/wildfirechat/common/APIPath.java @@ -40,6 +40,7 @@ public interface APIPath { String Friend_Set_Alias = "/admin/friend/set_alias"; String Friend_Send_Request = "/admin/friend/send_request"; String Friend_Get_Requests = "/admin/friend/get_requests"; + String Relation_Get = "/admin/relation/get"; String Msg_Send = "/admin/message/send"; String Msg_Recall = "/admin/message/recall"; diff --git a/common/src/main/java/cn/wildfirechat/pojos/RelationPojo.java b/common/src/main/java/cn/wildfirechat/pojos/RelationPojo.java new file mode 100644 index 00000000..11b4bc93 --- /dev/null +++ b/common/src/main/java/cn/wildfirechat/pojos/RelationPojo.java @@ -0,0 +1,10 @@ +package cn.wildfirechat.pojos; + +public class RelationPojo { + public String userId; + public String targetId; + public boolean isFriend; + public boolean isBlacked; + public String alias; + public String extra; +} diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java index c5db2abe..4068ec92 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/Main.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/Main.java @@ -331,17 +331,25 @@ public class Main { String alias = "hello" + System.currentTimeMillis(); IMResult updateFriendAlias = RelationAdmin.updateFriendAlias("ff1", "ff2", alias); if (updateFriendAlias != null && updateFriendAlias.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { - System.out.println("update friend status success"); + System.out.println("update friend alias success"); } else { - System.out.println("update friend status failure"); + System.out.println("update friend alias failure"); System.exit(-1); } IMResult getFriendAlias = RelationAdmin.getFriendAlias("ff1", "ff2"); if (getFriendAlias != null && getFriendAlias.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS && getFriendAlias.getResult().getAlias().equals(alias)) { - System.out.println("update friend status success"); + System.out.println("get friend alias success"); } else { - System.out.println("update friend status failure"); + System.out.println("get friend alias failure"); + System.exit(-1); + } + + IMResult getRelation = RelationAdmin.getRelation("ff1", "ff2"); + if (getRelation != null && getRelation.getErrorCode() == ErrorCode.ERROR_CODE_SUCCESS) { + System.out.println("get friend relation success"); + } else { + System.out.println("get friend relation failure"); System.exit(-1); } } diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/RelationAdmin.java b/sdk/src/main/java/cn/wildfirechat/sdk/RelationAdmin.java index 8c6dadd9..d304b34c 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/RelationAdmin.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/RelationAdmin.java @@ -65,4 +65,10 @@ public class RelationAdmin { input.setForce(force); return AdminHttpUtils.httpJsonPost(path, input, Void.class); } + + public static IMResult getRelation(String userId, String targetId) throws Exception { + String path = APIPath.Relation_Get; + StringPairPojo input = new StringPairPojo(userId, targetId); + return AdminHttpUtils.httpJsonPost(path, input, RelationPojo.class); + } }