Commit 8e96e57d by 罗长华

SDK增加pageBlacklist接口

parent 5bba08b3
......@@ -70,5 +70,17 @@ public class ImClientBlacklistController extends BaseController {
return ApiResult.ok(blacklist);
}
/**
* 黑名单分页列表sdk用
*/
@PostMapping("/sdk/pageBlacklist")
@OperationLog(name = "黑名单分页列表", type = OperationLogType.PAGE)
@ApiOperation(value = "黑名单分页列表")
public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageListSdk(@RequestBody ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception {
Paging<ImClientBlacklistQueryVo> blacklist =
imClientBlacklistService.getImClientBlacklistPageListSdk(imClientBlacklistPageParam);
return ApiResult.ok(blacklist);
}
}
......@@ -19,5 +19,8 @@ import lombok.experimental.Accessors;
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "黑名单分页参数")
public class ImClientBlacklistPageParam extends BasePageOrderParam {
private String clientId;
private static final long serialVersionUID = 1L;
}
......@@ -3,7 +3,6 @@ package com.wecloud.im.service;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import com.wecloud.dispatch.extend.ActionRequest;
import com.wecloud.im.entity.ImClientBlacklist;
import com.wecloud.im.param.ImClientBlacklistPageParam;
import com.wecloud.im.param.ImClientBlacklistQueryVo;
......@@ -53,4 +52,12 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
*/
Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam);
/**
* 获取分页对象
*
* @return
* @throws Exception
*/
Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageListSdk(ImClientBlacklistPageParam imClientBlacklistPageParam);
}
......@@ -4,12 +4,11 @@ import io.geekidea.springbootplus.framework.common.exception.BusinessException;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.Paging;
import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -101,11 +100,26 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Override
public Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam) {
Page<ImClientBlacklistQueryVo> page = new PageInfo<>(imClientBlacklistPageParam);
ImClient currentClient = contextService.getImClientIfNotNullOrThrow();
IPage<ImClientBlacklistQueryVo> imClientBlacklistPageList = imClientBlacklistMapper.getImClientBlacklistPageList(page, currentClient.getClientId());
return getImClientBlacklistPageList(currentClient, imClientBlacklistPageParam);
}
@Override
public Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageListSdk(ImClientBlacklistPageParam imClientBlacklistPageParam) {
Long appId = SecurityUtils.getCurrentAppId();
ImClient client = imClientService.getCacheImClient(appId, imClientBlacklistPageParam.getClientId());
if (client == null) {
throw new BusinessException("客户端不存在");
}
return getImClientBlacklistPageList(client, imClientBlacklistPageParam);
}
private Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ImClient client,
ImClientBlacklistPageParam imClientBlacklistPageParam) {
Page<ImClientBlacklistQueryVo> page = new PageInfo<>(imClientBlacklistPageParam);
IPage<ImClientBlacklistQueryVo> imClientBlacklistPageList = imClientBlacklistMapper.getImClientBlacklistPageList(page, client.getClientId());
Paging<ImClientBlacklistQueryVo> imClientBlacklistQueryVoPaging = new Paging<>(imClientBlacklistPageList);
return imClientBlacklistQueryVoPaging;
}
}
......@@ -47,6 +47,11 @@ public class ResourcePathConstants {
public static final String FRIEND_REQUEST = "/api/friend/sdk/apply";
/**
* 好友请求
*/
public static final String PAGE_BLACKLIST_REQUEST = "/api/imClient/sdk/pageBlacklist";
/**
* 群成员互加好友
*/
public static final String GROUP_MEMBERS_FRIEND_REQUEST = "/api/imConversationMembers/addUser";
......
......@@ -2,6 +2,9 @@ package com.wecloud.im.sdk;
import java.util.List;
import cn.hutool.db.PageResult;
import com.wecloud.im.sdk.model.Blacklist;
import com.wecloud.im.sdk.model.ChatRoomMember;
import com.wecloud.im.sdk.model.Conversation;
import com.wecloud.im.sdk.model.Friend;
......@@ -75,6 +78,15 @@ public interface WecloudIm {
List<Friend> getFriends(String userId);
/**
* 获取黑名单列表
* @Author luozh
* @Date 2022年05月07日 05:23:40
* @param userId
* @Return
*/
PageResult<Blacklist> pageBlacklist(Long pageIndex, Long pageSize, String userId);
/**
* 设置会话置顶
* @Author luozh
* @Date 2022年04月26日 03:33:44
......@@ -169,4 +181,5 @@ public interface WecloudIm {
*/
Boolean publishPrivateStatusMessage(PrivateChatStatusMessage privateChatStatusMessage);
}
......@@ -5,10 +5,12 @@ import java.util.List;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.db.PageResult;
import com.wecloud.im.sdk.internal.WecloudImClientOperation;
import com.wecloud.im.sdk.internal.WecloudImConversationOperation;
import com.wecloud.im.sdk.internal.WecloudImMessageOperation;
import com.wecloud.im.sdk.model.Blacklist;
import com.wecloud.im.sdk.model.ChatRoomMember;
import com.wecloud.im.sdk.model.ClientLoginRequest;
import com.wecloud.im.sdk.model.Conversation;
......@@ -23,6 +25,7 @@ import com.wecloud.im.sdk.model.ImClient;
import com.wecloud.im.sdk.model.ListChatRoomMemberRequest;
import com.wecloud.im.sdk.model.ListConversationRequest;
import com.wecloud.im.sdk.model.ModifyUserRequest;
import com.wecloud.im.sdk.model.PageBlacklistRequest;
import com.wecloud.im.sdk.model.PrivateChatMessage;
import com.wecloud.im.sdk.model.PrivateChatStatusMessage;
import com.wecloud.im.sdk.model.PublishGroupChatMessageRequest;
......@@ -112,6 +115,13 @@ public class WecloudImClient implements WecloudIm {
}
@Override
public PageResult<Blacklist> pageBlacklist(Long pageIndex, Long pageSize, String userId) {
PageBlacklistRequest pageBlacklistRequest =
PageBlacklistRequest.builder().pageSize(pageSize).pageIndex(pageIndex).userId(userId).build();
return imClientOperation.pageBlacklist(pageBlacklistRequest);
}
@Override
public Boolean friendRequest(String userId, String friendId, String friendName, String requestRemark) {
FriendRequestRequest friendRequestRequest =
FriendRequestRequest.builder().userId(userId).friendId(friendId).friendName(friendName).requestRemark(requestRemark).build();
......
package com.wecloud.im.sdk.internal;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import cn.hutool.db.PageResult;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.Blacklist;
import com.wecloud.im.sdk.model.ChatRoomMember;
import com.wecloud.im.sdk.model.ClientLoginRequest;
import com.wecloud.im.sdk.model.Conversation;
......@@ -15,16 +24,11 @@ import com.wecloud.im.sdk.model.ImClient;
import com.wecloud.im.sdk.model.ListChatRoomMemberRequest;
import com.wecloud.im.sdk.model.ListConversationRequest;
import com.wecloud.im.sdk.model.ModifyUserRequest;
import com.wecloud.im.sdk.model.PageBlacklistRequest;
import com.wecloud.im.sdk.model.RegisterClientRequest;
import com.wecloud.im.sdk.model.Token;
import com.wecloud.im.sdk.model.UnsureFriend;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import static com.wecloud.im.sdk.ResourcePathConstants.FRIEND_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_FRIENDS;
import static com.wecloud.im.sdk.ResourcePathConstants.GET_TOKEN_URL;
......@@ -32,6 +36,7 @@ import static com.wecloud.im.sdk.ResourcePathConstants.GET_UNSURE_FRIENDS;
import static com.wecloud.im.sdk.ResourcePathConstants.LIST_CHAT_ROOM_MEMBER_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.LIST_CONVERSATION_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.MODIFY_USER_URL;
import static com.wecloud.im.sdk.ResourcePathConstants.PAGE_BLACKLIST_REQUEST;
import static com.wecloud.im.sdk.ResourcePathConstants.REGISTER_CLIENT_URL;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotBlank;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull;
......@@ -249,4 +254,31 @@ public class WecloudImClientOperation extends WecloudImOperation {
return conversations;
}
public PageResult<Blacklist> pageBlacklist(PageBlacklistRequest pageBlacklistRequest) {
// 参数校验
assertParameterNotNull(pageBlacklistRequest.getUserId(), "userId");
// 校验通过 构建参数
if (pageBlacklistRequest.getPageIndex() == null) {
pageBlacklistRequest.setPageIndex(1L);
}
if (pageBlacklistRequest.getPageSize() == null) {
pageBlacklistRequest.setPageSize(10L);
}
Map<String, String> param = new HashMap<>();
param.put("clientId", pageBlacklistRequest.getUserId());
param.put("pageIndex", pageBlacklistRequest.getPageIndex() + "");
param.put("pageSize", pageBlacklistRequest.getPageSize() + "");
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(PAGE_BLACKLIST_REQUEST)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(pageBlacklistRequest).build();
Object result = doOperation(request);
TypeReference<PageResult<Blacklist>> typeReference = new TypeReference<PageResult<Blacklist>>() {
};
PageResult<Blacklist> blacklistPage = JSON.parseObject(JSON.toJSONString(result), typeReference);
return blacklistPage;
}
}
package com.wecloud.im.sdk.model;
import lombok.Data;
import java.io.Serializable;
/**
*
* @Author luozh
* @Date 2022年05月07日 17:22
* @Version 1.0
*/
@Data
public class Blacklist implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 被拉黑者id
*/
private String clientIdBePrevent;
}
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
* @Author luozh
* @Date 2022年05月07日 17:25
* @Version 1.0
*/
@EqualsAndHashCode(callSuper = true)
@Builder
@Data
public class PageBlacklistRequest extends WebServiceRequest {
private Long pageIndex;
private Long pageSize;
private String userId;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment