diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/BlockUserAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/BlockUserAction.java index 68159743..26db43b5 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/BlockUserAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/BlockUserAction.java @@ -23,7 +23,7 @@ import io.netty.handler.codec.http.HttpResponseStatus; import io.netty.util.internal.StringUtil; import cn.wildfirechat.common.ErrorCode; -@Route(APIPath.User_Status) +@Route(APIPath.User_Update_Block_Status) @HttpMethod("POST") public class BlockUserAction extends AdminAction { diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/CheckUserOnlineAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/CheckUserOnlineAction.java index db9ed3fc..23ea382c 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/CheckUserOnlineAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/CheckUserOnlineAction.java @@ -20,7 +20,7 @@ import io.netty.handler.codec.http.FullHttpRequest; import io.netty.util.internal.StringUtil; import cn.wildfirechat.common.ErrorCode; -@Route(APIPath.User_Online_Status) +@Route(APIPath.User_Get_Online_Status) @HttpMethod("POST") public class CheckUserOnlineAction extends AdminAction { diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/DismissGroupAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/DismissGroupAction.java index 7ef950e9..4f8f7e6b 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/DismissGroupAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/DismissGroupAction.java @@ -16,7 +16,7 @@ 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 cn.wildfirechat.pojos.InputDismissGroupMember; +import cn.wildfirechat.pojos.InputDismissGroup; import io.moquette.persistence.RPCCenter; import io.moquette.persistence.TargetEntry; import io.netty.buffer.ByteBuf; @@ -40,7 +40,7 @@ public class DismissGroupAction extends AdminAction { @Override public boolean action(Request request, Response response) { if (request.getNettyRequest() instanceof FullHttpRequest) { - InputDismissGroupMember inputDismissGroup = getRequestBody(request.getNettyRequest(), InputDismissGroupMember.class); + InputDismissGroup inputDismissGroup = getRequestBody(request.getNettyRequest(), InputDismissGroup.class); if (inputDismissGroup.isValide()) { RPCCenter.getInstance().sendRequest(inputDismissGroup.getOperator(), null, IMTopic.AddGroupMemberTopic, inputDismissGroup.toProtoGroupRequest().toByteArray(), inputDismissGroup.getOperator(), TargetEntry.Type.TARGET_TYPE_USER, new RPCCenter.Callback() { @Override diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetIMTokenAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetIMTokenAction.java index 978f74f1..45617196 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetIMTokenAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetIMTokenAction.java @@ -25,7 +25,7 @@ import win.liyufan.im.IMTopic; import java.util.Base64; import java.util.concurrent.Executor; -@Route(APIPath.Get_User_Token) +@Route(APIPath.User_Get_Token) @HttpMethod("POST") public class GetIMTokenAction extends AdminAction { diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserAction.java index 446455e9..a8ec9ffc 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserAction.java @@ -23,7 +23,7 @@ import io.netty.handler.codec.http.HttpResponseStatus; import io.netty.util.internal.StringUtil; import cn.wildfirechat.common.ErrorCode; -@Route(APIPath.Get_User_Info) +@Route(APIPath.User_Get_Info) @HttpMethod("POST") public class GetUserAction extends AdminAction { diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserBlockListAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserBlockListAction.java index 0c4bcaa2..df8de4e2 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserBlockListAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserBlockListAction.java @@ -18,7 +18,7 @@ import com.xiaoleilu.loServer.handler.Response; import io.netty.handler.codec.http.FullHttpRequest; import io.netty.handler.codec.http.HttpResponseStatus; -@Route(APIPath.User_Status_List) +@Route(APIPath.User_Get_Blocked_List) @HttpMethod("POST") public class GetUserBlockListAction extends AdminAction { diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserBlockStatusAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserBlockStatusAction.java index 1263076c..9cd76f17 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserBlockStatusAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/GetUserBlockStatusAction.java @@ -22,7 +22,7 @@ import io.netty.handler.codec.http.HttpResponseStatus; import io.netty.util.internal.StringUtil; import cn.wildfirechat.common.ErrorCode; -@Route(APIPath.User_Check_Status) +@Route(APIPath.User_Check_Block_Status) @HttpMethod("POST") public class GetUserBlockStatusAction extends AdminAction { diff --git a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/TransferGroupAction.java b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/TransferGroupAction.java index bb4638a3..b8ee82b2 100755 --- a/broker/src/main/java/com/xiaoleilu/loServer/action/admin/TransferGroupAction.java +++ b/broker/src/main/java/com/xiaoleilu/loServer/action/admin/TransferGroupAction.java @@ -28,7 +28,7 @@ import win.liyufan.im.IMTopic; import java.util.concurrent.Executor; -@Route(APIPath.Group_Owner) +@Route(APIPath.Group_Transfer) @HttpMethod("POST") public class TransferGroupAction extends AdminAction { diff --git a/common/src/main/java/cn.wildfirechat.pojos/InputDismissGroupMember.java b/common/src/main/java/cn.wildfirechat.pojos/InputDismissGroup.java similarity index 95% rename from common/src/main/java/cn.wildfirechat.pojos/InputDismissGroupMember.java rename to common/src/main/java/cn.wildfirechat.pojos/InputDismissGroup.java index c1bc1586..050f461d 100755 --- a/common/src/main/java/cn.wildfirechat.pojos/InputDismissGroupMember.java +++ b/common/src/main/java/cn.wildfirechat.pojos/InputDismissGroup.java @@ -14,7 +14,7 @@ import io.netty.util.internal.StringUtil; import java.util.List; -public class InputDismissGroupMember extends InputGroupBase { +public class InputDismissGroup extends InputGroupBase { private String group_id; diff --git a/common/src/main/java/cn.wildfirechat.pojos/InputGroupBase.java b/common/src/main/java/cn.wildfirechat.pojos/InputGroupBase.java index ce24f948..62584825 100755 --- a/common/src/main/java/cn.wildfirechat.pojos/InputGroupBase.java +++ b/common/src/main/java/cn.wildfirechat.pojos/InputGroupBase.java @@ -20,6 +20,10 @@ public class InputGroupBase { return operator; } + public void setOperator(String operator) { + this.operator = operator; + } + public List getTo_lines() { return to_lines; } diff --git a/common/src/main/java/cn.wildfirechat.pojos/OutputUserBlockStatusList.java b/common/src/main/java/cn.wildfirechat.pojos/OutputUserBlockStatusList.java new file mode 100755 index 00000000..6dc4a9f1 --- /dev/null +++ b/common/src/main/java/cn.wildfirechat.pojos/OutputUserBlockStatusList.java @@ -0,0 +1,24 @@ +/* + * 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; + + +import java.util.List; + +public class OutputUserBlockStatusList { + private List statusList; + + public List getStatusList() { + return statusList; + } + + public void setStatusList(List statusList) { + this.statusList = statusList; + } +} diff --git a/common/src/main/java/cn/wildfirechat/common/APIPath.java b/common/src/main/java/cn/wildfirechat/common/APIPath.java index 38373513..a16f6084 100644 --- a/common/src/main/java/cn/wildfirechat/common/APIPath.java +++ b/common/src/main/java/cn/wildfirechat/common/APIPath.java @@ -14,12 +14,12 @@ public interface APIPath { String Sensitive_Del = "/admin/sensitive/del"; String Sensitive_Query = "/admin/sensitive/query"; - String Get_User_Token = "/admin/user/token"; - String User_Status = "/admin/user/status"; - String Get_User_Info = "/admin/user/info"; - String User_Status_List = "/admin/user/statuslist"; - String User_Check_Status = "/admin/user/checkstatus"; - String User_Online_Status = "/admin/user/onlinestatus"; + String User_Get_Token = "/admin/user/get_token"; + String User_Update_Block_Status = "/admin/user/update_block_status"; + String User_Get_Info = "/admin/user/get_info"; + String User_Get_Blocked_List = "/admin/user/get_blocked_list"; + String User_Check_Block_Status = "/admin/user/check_block_status"; + String User_Get_Online_Status = "/admin/user/onlinestatus"; String Friend_Status = "/admin/friend/status"; @@ -29,9 +29,9 @@ public interface APIPath { String Msg_Recall = "/admin/message/recall"; String Group_Dismiss = "/admin/group/del"; + String Group_Transfer = "/admin/group/transfer"; String Group_Member_Add = "/admin/group/member/add"; String Group_Member_Kickoff = "/admin/group/member/del"; - String Group_Owner = "/admin/group/owner"; String Channel_Message_Send = "/channel/message/send"; diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/GroupAdmin.java b/sdk/src/main/java/cn/wildfirechat/sdk/GroupAdmin.java new file mode 100644 index 00000000..9f5ef749 --- /dev/null +++ b/sdk/src/main/java/cn/wildfirechat/sdk/GroupAdmin.java @@ -0,0 +1,71 @@ +package cn.wildfirechat.sdk; + +import cn.wildfirechat.common.APIPath; +import cn.wildfirechat.pojos.*; +import cn.wildfirechat.sdk.model.IMResult; + +import java.util.ArrayList; +import java.util.List; + +public class GroupAdmin { + public static IMResult createGroup(String operator, PojoGroupInfo group_info, List members, List to_lines, MessagePayload notify_message) throws Exception { + String path = APIPath.Create_Group; + PojoGroup pojoGroup = new PojoGroup(); + pojoGroup.setGroup_info(group_info); + pojoGroup.setMembers(members); + InputCreateGroup createGroup = new InputCreateGroup(); + createGroup.setGroup(pojoGroup); + createGroup.setOperator(operator); + createGroup.setTo_lines(to_lines); + createGroup.setNotify_message(notify_message); + + return HttpUtils.httpJsonPost(path, createGroup, OutputCreateGroupResult.class); + } + + public static IMResult dismissGroup(String operator, String groupId, List to_lines, MessagePayload notify_message) throws Exception { + String path = APIPath.Group_Dismiss; + InputDismissGroup dismissGroup = new InputDismissGroup(); + dismissGroup.setOperator(operator); + dismissGroup.setGroup_id(groupId); + dismissGroup.setTo_lines(to_lines); + dismissGroup.setNotify_message(notify_message); + return HttpUtils.httpJsonPost(path, dismissGroup, Void.class); + } + + public static IMResult transferGroup(String operator, String groupId, String newOwner, List to_lines, MessagePayload notify_message) throws Exception { + String path = APIPath.Group_Transfer; + InputTransferGroup transferGroup = new InputTransferGroup(); + transferGroup.setGroup_id(groupId); + transferGroup.setNew_owner(newOwner); + transferGroup.setTo_lines(to_lines); + transferGroup.setNotify_message(notify_message); + return HttpUtils.httpJsonPost(path, transferGroup, Void.class); + } + + public static IMResult addGroupMembers(String operator, String groupId, List groupMemberIds, List to_lines, MessagePayload notify_message) throws Exception { + String path = APIPath.Group_Member_Add; + InputAddGroupMember addGroupMember = new InputAddGroupMember(); + addGroupMember.setGroup_id(groupId); + List members = new ArrayList<>(); + for (String mid : groupMemberIds) { + PojoGroupMember m = new PojoGroupMember(); + m.setMember_id(mid); + members.add(m); + } + addGroupMember.setMembers(members); + addGroupMember.setTo_lines(to_lines); + addGroupMember.setNotify_message(notify_message); + return HttpUtils.httpJsonPost(path, addGroupMember, Void.class); + } + + public static IMResult kickoffGroupMembers(String operator, String groupId, List groupMemberIds, List to_lines, MessagePayload notify_message) throws Exception { + String path = APIPath.Group_Member_Kickoff; + InputKickoffGroupMember kickoffGroupMember = new InputKickoffGroupMember(); + kickoffGroupMember.setGroup_id(groupId); + kickoffGroupMember.setMembers(groupMemberIds); + kickoffGroupMember.setTo_lines(to_lines); + kickoffGroupMember.setNotify_message(notify_message); + return HttpUtils.httpJsonPost(path, kickoffGroupMember, Void.class); + } + +} diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/HttpUtils.java b/sdk/src/main/java/cn/wildfirechat/sdk/HttpUtils.java index be9b8c5c..a37fabb1 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/HttpUtils.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/HttpUtils.java @@ -54,7 +54,10 @@ public class HttpUtils { post.setHeader("timestamp", "" + timestamp); post.setHeader("sign", sign); - String jsonStr = new Gson().toJson(object); + String jsonStr = null; + if (object != null) { + jsonStr = new Gson().toJson(object); + } LOG.info("http request content: {}", jsonStr); StringEntity entity = new StringEntity(jsonStr, Charset.forName("UTF-8")); diff --git a/sdk/src/main/java/cn/wildfirechat/sdk/UserAdmin.java b/sdk/src/main/java/cn/wildfirechat/sdk/UserAdmin.java index 7abbf558..b27fa288 100644 --- a/sdk/src/main/java/cn/wildfirechat/sdk/UserAdmin.java +++ b/sdk/src/main/java/cn/wildfirechat/sdk/UserAdmin.java @@ -4,9 +4,11 @@ import cn.wildfirechat.common.APIPath; import cn.wildfirechat.pojos.*; import cn.wildfirechat.sdk.model.IMResult; +import java.util.List; + public class UserAdmin { public static IMResult getUserByName(String mobile) throws Exception { - String path = APIPath.Get_User_Info; + String path = APIPath.User_Get_Info; InputGetUserInfo getUserInfo = new InputGetUserInfo(null, mobile); return HttpUtils.httpJsonPost(path, getUserInfo, InputOutputUserInfo.class); } @@ -17,8 +19,36 @@ public class UserAdmin { } public static IMResult getUserToken(String userId, String clientId) throws Exception { - String path = APIPath.Get_User_Token; + String path = APIPath.User_Get_Token; InputGetToken getToken = new InputGetToken(userId, clientId); return HttpUtils.httpJsonPost(path, getToken, OutputGetIMTokenData.class); } + + public static IMResult updateUserBlockStatus(String userId, int block) throws Exception { + String path = APIPath.User_Update_Block_Status; + InputOutputUserBlockStatus blockStatus = new InputOutputUserBlockStatus(userId, block); + return HttpUtils.httpJsonPost(path, blockStatus, Void.class); + } + + public static IMResult checkUserBlockStatus(String userId) throws Exception { + String path = APIPath.User_Update_Block_Status; + InputGetUserInfo getUserInfo = new InputGetUserInfo(userId, null); + return HttpUtils.httpJsonPost(path, getUserInfo, OutputUserStatus.class); + } + + public static IMResult getBlockedList() throws Exception { + String path = APIPath.User_Get_Blocked_List; + return HttpUtils.httpJsonPost(path, null, OutputUserBlockStatusList.class); + } + + //not implement +// public static IMResult getUserOnlineStatus(String userId) throws Exception { +// String path = APIPath.User_Get_Online_Status; +// InputGetUserInfo inputGetUserInfo = new InputGetUserInfo(userId, null); +// return HttpUtils.httpJsonPost(path, null, OutputUserBlockStatusList.class); +// } + + + + }