Commit a48fd21b by 罗长华

添加设置会话置顶 设置会话免打扰接口

parent 47b8b698
package com.wecloud.im.controller; package com.wecloud.im.controller;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.service.ImConversationMembersService;
import com.wecloud.im.vo.ConversationMemberVo;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController; import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.geekidea.springbootplus.framework.shiro.util.SecurityUtils;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -17,7 +16,13 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -17,7 +16,13 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.SetConversationDoNotDisturbParam;
import com.wecloud.im.param.SetConversationTopParam;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.service.ImConversationMembersService;
import com.wecloud.im.vo.ConversationMemberVo;
/** /**
* 会话成员表 控制器 * 会话成员表 控制器
...@@ -71,5 +76,41 @@ public class ImConversationMembersController extends BaseController { ...@@ -71,5 +76,41 @@ public class ImConversationMembersController extends BaseController {
return ApiResult.ok(imConversationMembersService.getImConversationMembersList(listConversationMembersParam)); return ApiResult.ok(imConversationMembersService.getImConversationMembersList(listConversationMembersParam));
} }
/**
* 会话置顶
* @Author luozh
* @Date 2022年04月26日 11:48:59
* @param
* @Return
*/
@ApiOperation(value = "会话置顶")
@PostMapping("/sdk/setTop")
public ApiResult<Boolean> setTop(@RequestBody SetConversationTopParam param) {
Long appId = SecurityUtils.getCurrentAppId();
String clientId = param.getClientId();
Long conversationId = param.getConversationId();
Boolean top = param.getTop();
imConversationMembersService.setTop(appId, clientId, conversationId, top);
return ApiResult.ok();
}
/**
* 设置免打扰
* @Author luozh
* @Date 2022年04月26日 11:49:55
* @param
* @Return
*/
@ApiOperation(value = "会话免打扰")
@PostMapping("/sdk/setDoNotDisturb")
public ApiResult<Boolean> setDoNotDisturb(@RequestBody SetConversationDoNotDisturbParam param) {
Long appId = SecurityUtils.getCurrentAppId();
String clientId = param.getClientId();
Long conversationId = param.getConversationId();
Boolean doNotDisturb = param.getDoNotDisturb();
imConversationMembersService.setDoNotDisturb(appId, clientId, conversationId, doNotDisturb);
return ApiResult.ok();
}
} }
...@@ -12,6 +12,7 @@ import java.util.Date; ...@@ -12,6 +12,7 @@ import java.util.Date;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
/** /**
...@@ -80,4 +81,12 @@ public class ImConversationMembers extends BaseEntity { ...@@ -80,4 +81,12 @@ public class ImConversationMembers extends BaseEntity {
@ApiModelProperty("客户方提供的唯一id") @ApiModelProperty("客户方提供的唯一id")
private String clientId; private String clientId;
@ApiModelProperty("免打扰开关 0-关闭 1开启")
@TableField("is_do_not_disturb")
private Boolean doNotDisturb;
@ApiModelProperty("置顶开关 0-关闭 1开启")
@TableField("is_top")
private Boolean top;
} }
package com.wecloud.im.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 设置会话免打扰入参
* @Author luozh
* @Date 2022年04月26日 11:54
* @Version 1.0
*/
@Data
@ApiModel("设置会话免打扰入参")
public class SetConversationDoNotDisturbParam {
@ApiModelProperty("客户端id")
String clientId;
@ApiModelProperty("会话id")
Long conversationId;
@ApiModelProperty("是否免打扰")
Boolean doNotDisturb;
}
package com.wecloud.im.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 设置会话置顶入参
* @Author luozh
* @Date 2022年04月26日 11:52
* @Version 1.0
*/
@Data
public class SetConversationTopParam {
@ApiModelProperty("客户端id")
String clientId;
@ApiModelProperty("会话id")
Long conversationId;
@ApiModelProperty("是否免打扰")
private Boolean top;
}
package com.wecloud.im.service; package com.wecloud.im.service;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.param.*;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.vo.ConversationMemberVo;
import io.geekidea.springbootplus.framework.common.api.ApiResult; import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.service.BaseService; import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging; import io.geekidea.springbootplus.framework.core.pagination.Paging;
import java.util.List; import java.util.List;
import com.wecloud.im.entity.ImApplication;
import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.param.ApiImConversationMembersPageParam;
import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ImConversationMembersPageParam;
import com.wecloud.im.param.ImConversationMembersQueryVo;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.vo.ConversationMemberVo;
/** /**
* 会话成员表 服务类 * 会话成员表 服务类
* *
...@@ -115,4 +122,21 @@ public interface ImConversationMembersService extends BaseService<ImConversation ...@@ -115,4 +122,21 @@ public interface ImConversationMembersService extends BaseService<ImConversation
*/ */
void setAdminsForConversation(SetAdminsParam param, List<Long> fkClientIds); void setAdminsForConversation(SetAdminsParam param, List<Long> fkClientIds);
/**
* 置顶
* @Author luozh
* @Date 2022年04月25日 06:24:43
* @param
* @Return
*/
Boolean setTop(Long appId, String clientId, Long conversationId, Boolean top);
/**
* 设置免打扰
* @Author luozh
* @Date 2022年04月25日 06:24:43
* @param
* @Return
*/
Boolean setDoNotDisturb(Long appId, String clientId, Long conversationId, Boolean doNotDisturb);
} }
package com.wecloud.im.service.impl; package com.wecloud.im.service.impl;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
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 lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.wecloud.im.entity.ImApplication; import com.wecloud.im.entity.ImApplication;
...@@ -12,29 +29,26 @@ import com.wecloud.im.entity.ImConversationMembers; ...@@ -12,29 +29,26 @@ import com.wecloud.im.entity.ImConversationMembers;
import com.wecloud.im.entity.ImMessageOnlineSend; import com.wecloud.im.entity.ImMessageOnlineSend;
import com.wecloud.im.mapper.ImConversationMapper; import com.wecloud.im.mapper.ImConversationMapper;
import com.wecloud.im.mapper.ImConversationMembersMapper; import com.wecloud.im.mapper.ImConversationMembersMapper;
import com.wecloud.im.param.*; import com.wecloud.im.param.ApiImConversationMembersPageParam;
import com.wecloud.im.param.ApiImConversationMembersQueryVo;
import com.wecloud.im.param.ImConvMemeClientRemarkNameParam;
import com.wecloud.im.param.ImConversationMembersPageParam;
import com.wecloud.im.param.ImConversationMembersQueryVo;
import com.wecloud.im.param.ListConversationMembersParam;
import com.wecloud.im.param.SetAdminsParam;
import com.wecloud.im.param.add.ImConversationMemAttrUpdate; import com.wecloud.im.param.add.ImConversationMemAttrUpdate;
import com.wecloud.im.service.*; import com.wecloud.im.service.ContextService;
import com.wecloud.im.service.ImApplicationService;
import com.wecloud.im.service.ImClientService;
import com.wecloud.im.service.ImConversationMembersService;
import com.wecloud.im.service.ImConversationService;
import com.wecloud.im.service.ImMessageService;
import com.wecloud.im.vo.ConversationMemberVo; import com.wecloud.im.vo.ConversationMemberVo;
import com.wecloud.im.ws.enums.MsgTypeEnum; import com.wecloud.im.ws.enums.MsgTypeEnum;
import com.wecloud.im.ws.enums.WsResponseCmdEnum; import com.wecloud.im.ws.enums.WsResponseCmdEnum;
import com.wecloud.im.ws.model.WsResponse; import com.wecloud.im.ws.model.WsResponse;
import com.wecloud.im.ws.sender.ChannelSender; import com.wecloud.im.ws.sender.ChannelSender;
import com.wecloud.utils.JsonUtils; import com.wecloud.utils.JsonUtils;
import io.geekidea.springbootplus.framework.common.api.ApiCode;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* 会话成员表 服务实现类 * 会话成员表 服务实现类
...@@ -244,4 +258,33 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa ...@@ -244,4 +258,33 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
imConversationMembersMapper.setAdminsForConversation(param.getConversationId(), fkClientIds, role); imConversationMembersMapper.setAdminsForConversation(param.getConversationId(), fkClientIds, role);
} }
@Override
public Boolean setTop(Long appId, String clientId, Long conversationId, Boolean top) {
// 找到对应的会话
ImConversationMembers conversation =
baseMapper.selectOne(Wrappers.<ImConversationMembers>lambdaQuery()
.eq(ImConversationMembers::getClientId, clientId)
.eq(ImConversationMembers::getFkConversationId, conversationId)
.eq(ImConversationMembers::getFkAppid, appId));
if (conversation == null) {
throw new BusinessException("会话不存在");
}
return update(Wrappers.<ImConversationMembers>lambdaUpdate().eq(ImConversationMembers::getId, conversation.getId()).set(ImConversationMembers::getTop, top));
}
@Override
public Boolean setDoNotDisturb(Long appId, String clientId, Long conversationId, Boolean doNotDisturb) {
// 找到对应的会话
ImConversationMembers conversation =
baseMapper.selectOne(Wrappers.<ImConversationMembers>lambdaQuery()
.eq(ImConversationMembers::getClientId, clientId)
.eq(ImConversationMembers::getFkConversationId, conversationId)
.eq(ImConversationMembers::getFkAppid, appId));
if (conversation == null) {
throw new BusinessException("会话不存在");
}
return update(Wrappers.<ImConversationMembers>lambdaUpdate().eq(ImConversationMembers::getId,
conversation.getId()).set(ImConversationMembers::getDoNotDisturb, doNotDisturb));
}
} }
...@@ -200,16 +200,25 @@ CREATE TABLE `im_rtc_log` ...@@ -200,16 +200,25 @@ CREATE TABLE `im_rtc_log`
( (
`id` bigint(20) NOT NULL COMMENT 'rtc记录id', `id` bigint(20) NOT NULL COMMENT 'rtc记录id',
`fk_appid` bigint(20) NOT NULL COMMENT '应用appid', `fk_appid` bigint(20) NOT NULL COMMENT '应用appid',
`fk_channel_id` bigint(20) DEFAULT NULL COMMENT '频道id', `fk_channel_id` bigint(20) DEFAULT NULL COMMENT '频道id',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间', `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_date` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `update_date` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`fk_conversation` bigint(20) DEFAULT NULL COMMENT '外键 会话id 可为空', `fk_conversation` bigint(20) DEFAULT NULL COMMENT '外键 会话id 可为空',
`client_id` bigint(20) DEFAULT NULL COMMENT '事件主体客户端id', `client_id` bigint(20) DEFAULT NULL COMMENT '事件主体客户端id',
`event_type` int(1) DEFAULT NULL COMMENT '事件类型 1成为房主, 2加入频道,3退出频道,4拒绝邀请 ,5上传sdp, 6上传candidate', `event_type` int(1) DEFAULT NULL COMMENT '事件类型 1成为房主, 2加入频道,3退出频道,4拒绝邀请 ,5上传sdp, 6上传candidate',
`remark` text COMMENT '备注', `remark` text COMMENT '备注',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='RTC日志记录表'; ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='RTC日志记录表';
SET SET
FOREIGN_KEY_CHECKS = 1; FOREIGN_KEY_CHECKS = 1;
alter table im_application
add COLUMN `online_status_subscribe_url` varchar(512) DEFAULT '' COMMENT '在线状态订阅地址';
alter table im_application
add COLUMN `full_message_subscribe_url` varchar(512) DEFAULT '' COMMENT '全量消息订阅地址';
alter table `im_conversation_members`
add column `is_do_not_disturb` tinyint(1) unsigned default 0 comment '免打扰开关 0-关闭 1开启';
alter table `im_conversation_members`
add column `is_top` tinyint(1) unsigned default 0 comment '置顶开关 0-关闭 1开启';
...@@ -36,5 +36,15 @@ public class ResourcePathConstants { ...@@ -36,5 +36,15 @@ public class ResourcePathConstants {
*/ */
public static final String GET_FRIENDS = "/api/friend/sdk/getFriends"; public static final String GET_FRIENDS = "/api/friend/sdk/getFriends";
/**
* 设置会话置顶
*/
public static final String SET_CONVERSATION_TOP = "/api/imConversationMembers/sdk/setTop";
/**
* 设置会话免打扰
*/
public static final String SET_CONVERSATION_DO_NOT_DISTURB = "/api/imConversationMembers/sdk/setDoNotDisturb";
} }
...@@ -67,4 +67,26 @@ public interface WecloudIm { ...@@ -67,4 +67,26 @@ public interface WecloudIm {
* @Return * @Return
*/ */
List<Friend> getFriends(String userId); List<Friend> getFriends(String userId);
/**
* 设置会话置顶
* @Author luozh
* @Date 2022年04月26日 03:33:44
* @param userId 用户id
* @param conversationId 会话id
* @param top 是否置
* @Return
*/
Boolean setConversationTop(String userId, Long conversationId, Boolean top);
/**
* 设置会话免打扰
* @Author luozh
* @Date 2022年04月26日 03:33:44
* @param userId 用户id
* @param conversationId 会话id
* @param doNotDisturb 是否免打扰
* @Return
*/
Boolean setConversationDoNotDisturb(String userId, Long conversationId, Boolean doNotDisturb);
} }
...@@ -4,6 +4,7 @@ import java.net.URL; ...@@ -4,6 +4,7 @@ import java.net.URL;
import java.util.List; import java.util.List;
import com.wecloud.im.sdk.internal.WecloudImClientOperation; import com.wecloud.im.sdk.internal.WecloudImClientOperation;
import com.wecloud.im.sdk.internal.WecloudImConversationOperation;
import com.wecloud.im.sdk.model.ClientLoginRequest; import com.wecloud.im.sdk.model.ClientLoginRequest;
import com.wecloud.im.sdk.model.Friend; import com.wecloud.im.sdk.model.Friend;
import com.wecloud.im.sdk.model.GetFriendsRequest; import com.wecloud.im.sdk.model.GetFriendsRequest;
...@@ -11,6 +12,8 @@ import com.wecloud.im.sdk.model.GetUnsureFriendsRequest; ...@@ -11,6 +12,8 @@ import com.wecloud.im.sdk.model.GetUnsureFriendsRequest;
import com.wecloud.im.sdk.model.ImClient; import com.wecloud.im.sdk.model.ImClient;
import com.wecloud.im.sdk.model.ModifyUserRequest; import com.wecloud.im.sdk.model.ModifyUserRequest;
import com.wecloud.im.sdk.model.RegisterClientRequest; import com.wecloud.im.sdk.model.RegisterClientRequest;
import com.wecloud.im.sdk.model.SetConversationDoNotDisturbRequest;
import com.wecloud.im.sdk.model.SetConversationTopRequest;
import com.wecloud.im.sdk.model.Token; import com.wecloud.im.sdk.model.Token;
import com.wecloud.im.sdk.model.UnsureFriend; import com.wecloud.im.sdk.model.UnsureFriend;
...@@ -37,9 +40,11 @@ public class WecloudImClient implements WecloudIm { ...@@ -37,9 +40,11 @@ public class WecloudImClient implements WecloudIm {
*/ */
private String appSecret; private String appSecret;
/* The miscellaneous OSS operations */ /* The miscellaneous IM operations */
private WecloudImClientOperation imClientOperation; private WecloudImClientOperation imClientOperation;
private WecloudImConversationOperation imConversationOperation;
public WecloudImClient(URL apiDomain, String appKey, String appSecret) { public WecloudImClient(URL apiDomain, String appKey, String appSecret) {
this.apiDomain = apiDomain; this.apiDomain = apiDomain;
this.appKey = appKey; this.appKey = appKey;
...@@ -86,7 +91,24 @@ public class WecloudImClient implements WecloudIm { ...@@ -86,7 +91,24 @@ public class WecloudImClient implements WecloudIm {
return imClientOperation.getFriends(getFriendsRequest); return imClientOperation.getFriends(getFriendsRequest);
} }
@Override
public Boolean setConversationTop(String userId, Long conversationId, Boolean top) {
SetConversationTopRequest setConversationTopRequest =
SetConversationTopRequest.builder().userId(userId).conversationId(conversationId).top(top).build();
return imConversationOperation.setConversationTop(setConversationTopRequest);
}
@Override
public Boolean setConversationDoNotDisturb(String userId, Long conversationId, Boolean doNotDisturb) {
SetConversationDoNotDisturbRequest setConversationDoNotDisturbRequest =
SetConversationDoNotDisturbRequest.builder().userId(userId).conversationId(conversationId).doNotDisturb(doNotDisturb).build();
return imConversationOperation.setConversationDoNotDisturb(setConversationDoNotDisturbRequest);
}
private void initOperations() { private void initOperations() {
this.imClientOperation = new WecloudImClientOperation(apiDomain, appKey, appSecret); this.imClientOperation = new WecloudImClientOperation(apiDomain, appKey, appSecret);
this.imConversationOperation = new WecloudImConversationOperation(apiDomain, appKey, appSecret);
} }
} }
package com.wecloud.im.sdk.internal;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import com.wecloud.im.sdk.common.HttpMethod;
import com.wecloud.im.sdk.common.RequestMessage;
import com.wecloud.im.sdk.model.SetConversationDoNotDisturbRequest;
import com.wecloud.im.sdk.model.SetConversationTopRequest;
import static com.wecloud.im.sdk.ResourcePathConstants.REGISTER_CLIENT_URL;
import static com.wecloud.im.sdk.utils.CodingUtils.assertParameterNotNull;
/**
* client
* @Author luozh
* @Date 2022年04月13日 15:26
* @Version 1.0
*/
public class WecloudImConversationOperation extends WecloudImOperation {
public WecloudImConversationOperation(URL apiDomain, String appKey, String appSecret) {
super(apiDomain, appKey, appSecret);
}
/**
* 设置会话置顶
* @Author luozh
* @Date 2022年04月26日 03:57:51
* @param setConversationTopRequest
* @Return
*/
public Boolean setConversationTop(SetConversationTopRequest setConversationTopRequest) {
String userId = setConversationTopRequest.getUserId();
Long conversationId = setConversationTopRequest.getConversationId();
Boolean top = setConversationTopRequest.getTop();
// 参数校验
assertParameterNotNull(userId, "userId");
assertParameterNotNull(conversationId, "conversationId");
assertParameterNotNull(top, "top");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("clientId", userId);
param.put("conversationId", conversationId.toString());
param.put("top", top.toString());
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(REGISTER_CLIENT_URL)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(setConversationTopRequest).build();
doOperation(request);
return true;
}
/**
* 设置会话免打扰
* @Author luozh
* @Date 2022年04月26日 03:58:10
* @param setConversationDoNotDisturbRequest 设置会话免打扰
* @Return
*/
public Boolean setConversationDoNotDisturb(SetConversationDoNotDisturbRequest setConversationDoNotDisturbRequest) {
String userId = setConversationDoNotDisturbRequest.getUserId();
Long conversationId = setConversationDoNotDisturbRequest.getConversationId();
Boolean doNotDisturb = setConversationDoNotDisturbRequest.getDoNotDisturb();
// 参数校验
assertParameterNotNull(userId, "userId");
assertParameterNotNull(conversationId, "conversationId");
assertParameterNotNull(doNotDisturb, "doNotDisturb");
// 校验通过 构建参数
Map<String, String> param = new HashMap<>();
param.put("clientId", userId);
param.put("conversationId", conversationId.toString());
param.put("doNotDisturb", doNotDisturb.toString());
// 发送请求
RequestMessage request = new WecloudRequestMessageBuilder().setEndpoint(REGISTER_CLIENT_URL)
.setMethod(HttpMethod.POST).setParameters(param)
.setOriginalRequest(setConversationDoNotDisturbRequest).build();
doOperation(request);
return true;
}
}
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 设置会话免打扰入参
* @Author luozh
* @Date 2022年04月26日 11:54
* @Version 1.0
*/
@Builder
@EqualsAndHashCode(callSuper = true)
@Data
public class SetConversationDoNotDisturbRequest extends WebServiceRequest {
/**
* 客户端id
*/
String userId;
/**
* 会话id
*/
Long conversationId;
/**
* 是否免打扰
*/
Boolean doNotDisturb;
}
package com.wecloud.im.sdk.model;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 设置会话置顶入参
* @Author luozh
* @Date 2022年04月26日 11:52
* @Version 1.0
*/
@Builder
@EqualsAndHashCode(callSuper = true)
@Data
public class SetConversationTopRequest extends WebServiceRequest {
/**
* 客户端id
*/
String userId;
/**
* 会话id
*/
Long conversationId;
/**
* 是否免打扰
*/
private Boolean top;
}
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