Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wecloud_im_server
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hewei
wecloud_im_server
Commits
a48fd21b
Commit
a48fd21b
authored
Apr 26, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加设置会话置顶 设置会话免打扰接口
parent
47b8b698
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
416 additions
and
35 deletions
+416
-35
core/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
+47
-6
core/src/main/java/com/wecloud/im/entity/ImConversationMembers.java
+9
-0
core/src/main/java/com/wecloud/im/param/SetConversationDoNotDisturbParam.java
+26
-0
core/src/main/java/com/wecloud/im/param/SetConversationTopParam.java
+25
-0
core/src/main/java/com/wecloud/im/service/ImConversationMembersService.java
+29
-5
core/src/main/java/com/wecloud/im/service/impl/ImConversationMembersServiceImpl.java
+59
-16
docs/db/wecloud_im.sql
+16
-7
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+10
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
+22
-0
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
+23
-1
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImConversationOperation.java
+84
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/SetConversationDoNotDisturbRequest.java
+33
-0
im-sdk/src/main/java/com/wecloud/im/sdk/model/SetConversationTopRequest.java
+33
-0
No files found.
core/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
View file @
a48fd21b
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
();
}
}
}
core/src/main/java/com/wecloud/im/entity/ImConversationMembers.java
View file @
a48fd21b
...
@@ -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
;
}
}
core/src/main/java/com/wecloud/im/param/SetConversationDoNotDisturbParam.java
0 → 100644
View file @
a48fd21b
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
;
}
core/src/main/java/com/wecloud/im/param/SetConversationTopParam.java
0 → 100644
View file @
a48fd21b
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
;
}
core/src/main/java/com/wecloud/im/service/ImConversationMembersService.java
View file @
a48fd21b
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
);
}
}
core/src/main/java/com/wecloud/im/service/impl/ImConversationMembersServiceImpl.java
View file @
a48fd21b
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
));
}
}
}
docs/db/wecloud_im.sql
View file @
a48fd21b
...
@@ -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开启'
;
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
a48fd21b
...
@@ -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"
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudIm.java
View file @
a48fd21b
...
@@ -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
);
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/WecloudImClient.java
View file @
a48fd21b
...
@@ -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
);
}
}
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/internal/WecloudImConversationOperation.java
0 → 100644
View file @
a48fd21b
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
;
}
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/SetConversationDoNotDisturbRequest.java
0 → 100644
View file @
a48fd21b
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
;
}
im-sdk/src/main/java/com/wecloud/im/sdk/model/SetConversationTopRequest.java
0 → 100644
View file @
a48fd21b
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
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment