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
d3e7633d
Commit
d3e7633d
authored
May 13, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成groupChatSettingForSdk接口
parent
7f6f9a9f
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
60 additions
and
13 deletions
+60
-13
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
+11
-0
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+48
-12
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
+1
-1
No files found.
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
View file @
d3e7633d
...
...
@@ -225,6 +225,17 @@ public class ImConversationController extends BaseController {
}
/**
* 群聊设置
*/
@PostMapping
(
"/groupChatSettingForSdk"
)
@ApiOperation
(
value
=
"群聊设置"
,
notes
=
""
)
public
ApiResult
<
Boolean
>
groupChatSettingForSdk
(
@RequestBody
@Validated
GroupChatSettingParam
param
)
{
log
.
info
(
"群聊设置入参 {}"
,
JSON
.
toJSONString
(
param
));
Boolean
result
=
imConversationService
.
groupChatSettingForSdk
(
param
);
return
ApiResult
.
ok
(
result
);
}
/**
* 群头像设置
*/
@PostMapping
(
"/setGroupPortrait"
)
...
...
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
d3e7633d
...
...
@@ -98,6 +98,10 @@ import static com.wecloud.im.ws.enums.MsgTypeEnum.CONVERSATION_FORBID_SEND_LINK;
import
static
com
.
wecloud
.
im
.
ws
.
enums
.
MsgTypeEnum
.
CONVERSATION_FORBID_SEND_LINK_CANCEL
;
import
static
com
.
wecloud
.
im
.
ws
.
enums
.
MsgTypeEnum
.
CONVERSATION_FORBID_SEND_PIC
;
import
static
com
.
wecloud
.
im
.
ws
.
enums
.
MsgTypeEnum
.
CONVERSATION_FORBID_SEND_PIC_CANCEL
;
import
static
com
.
wecloud
.
im
.
ws
.
enums
.
MsgTypeEnum
.
CONVERSATION_MUTED
;
import
static
com
.
wecloud
.
im
.
ws
.
enums
.
MsgTypeEnum
.
CONVERSATION_MUTED_CANCEL
;
import
static
com
.
wecloud
.
im
.
ws
.
enums
.
MsgTypeEnum
.
CONVERSATION_NAME_CHANGE
;
import
static
com
.
wecloud
.
im
.
ws
.
enums
.
MsgTypeEnum
.
CONVERSATION_SET_GROUP_PORTRAIT
;
/**
* 会话表 服务实现类
...
...
@@ -793,7 +797,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
imConversationMapper
.
updateById
(
muteGroupParam
);
deleteCacheImConversationById
(
param
.
getConversationId
());
// 下发事件通知 开启、取消 群禁言
Integer
msgType
=
MutedEnum
.
NO
.
getCode
().
equals
(
param
.
getMutedType
())
?
MsgTypeEnum
.
CONVERSATION_MUTED_CANCEL
.
getUriCode
()
:
MsgTypeEnum
.
CONVERSATION_MUTED
.
getUriCode
();
Integer
msgType
=
MutedEnum
.
NO
.
getCode
().
equals
(
param
.
getMutedType
())
?
CONVERSATION_MUTED_CANCEL
.
getUriCode
()
:
MsgTypeEnum
.
CONVERSATION_MUTED
.
getUriCode
();
return
true
;
}
...
...
@@ -1101,28 +1105,48 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
private
Boolean
groupChatSetting
(
ImApplication
application
,
ImClient
operatorClient
,
ImConversation
conversation
,
GroupChatSettingParam
param
)
{
// 根据类型处理
GroupChatSettingTypeEnum
typeEnum
=
param
.
getType
();
Boolean
on
=
param
.
getOn
();
switch
(
typeEnum
)
{
case
FORBID_ADD_FRIEND:
conversation
.
setForbidAddFriend
(
param
.
getOn
()
);
conversation
.
setForbidAddFriend
(
on
);
break
;
case
FORBID_SEND_PIC:
conversation
.
setForbidSendPic
(
param
.
getOn
()
);
conversation
.
setForbidSendPic
(
on
);
break
;
case
FORBID_SEND_LINK:
conversation
.
setForbidSendLink
(
param
.
getOn
());
conversation
.
setForbidSendLink
(
on
);
break
;
case
HEAD_PORTRAIT:
conversation
.
setHeadPortrait
(
param
.
getHeadPortrait
());
break
;
case
NAME:
conversation
.
setName
(
param
.
getHeadPortrait
());
break
;
case
MUTED:
int
muted
=
1
;
if
(
on
)
{
muted
=
2
;
}
conversation
.
setMuted
(
muted
);
break
;
default
:
throw
new
BusinessException
(
"设置类型错误"
);
}
// 更新会话
imConversationMapper
.
updateById
(
conversation
);
deleteCacheImConversationById
(
param
.
getGroupId
());
// 发送群聊配置变化消息
MsgTypeEnum
msgType
=
getMsgType
(
typeEnum
,
param
.
getOn
());
sendConversationSettingChangeMsg
(
application
,
operatorClient
,
conversation
,
msgType
);
boolean
success
=
updateById
(
conversation
);
if
(
success
)
{
// 删除redis中该会话的缓存
deleteCacheImConversationById
(
conversation
.
getId
());
// 查询该会话所有成员
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
().
eq
(
ImConversationMembers:
:
getFkAppid
,
application
.
getId
())
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
conversation
.
getId
()).
ne
(
ImConversationMembers:
:
getFkClientId
,
operatorClient
.
getId
()));
// 发送群聊配置变化消息
MsgTypeEnum
msgType
=
getMsgType
(
typeEnum
,
param
.
getOn
());
sendConversationSettingChangeMsg
(
application
,
operatorClient
,
conversation
,
msgType
);
}
return
true
;
return
success
;
}
@Override
...
...
@@ -1247,7 +1271,6 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
// ws 退出事件通知给房间内其他人 ----------
// 生成消息id
long
messageId
=
SnowflakeUtil
.
getId
();
ImMessage
imMessage
=
MessageBuilder
.
buildEventMessage
(
MsgTypeEnum
.
LEAVE_CONVERSATION
,
imApplication
,
currentClient
,
imConversation
,
""
);
// 遍历发送给已在群内的成员
List
<
Long
>
fkClientIds
=
chatRoomMembers
.
keySet
().
stream
().
map
(
key
->
Long
.
valueOf
(
key
.
split
(
RedisUtils
.
SPLIT
)[
0
])).
collect
(
Collectors
.
toList
());
...
...
@@ -1358,6 +1381,19 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
msgType
=
CONVERSATION_FORBID_SEND_LINK_CANCEL
;
}
break
;
case
HEAD_PORTRAIT:
msgType
=
CONVERSATION_SET_GROUP_PORTRAIT
;
break
;
case
NAME:
msgType
=
CONVERSATION_NAME_CHANGE
;
break
;
case
MUTED:
if
(
on
)
{
msgType
=
CONVERSATION_MUTED
;
}
else
{
msgType
=
CONVERSATION_MUTED_CANCEL
;
}
break
;
default
:
throw
new
BusinessException
(
"设置类型错误"
);
}
...
...
im-sdk/src/main/java/com/wecloud/im/sdk/ResourcePathConstants.java
View file @
d3e7633d
...
...
@@ -114,7 +114,7 @@ public class ResourcePathConstants {
/**
* 群设置请求
*/
public
static
final
String
GROUP_SETTING_REQUEST
=
""
;
public
static
final
String
GROUP_SETTING_REQUEST
=
"
/api/conversation/groupChatSettingForSdk
"
;
/**
* 用户关系请求
...
...
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