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
8c1ad78b
Commit
8c1ad78b
authored
May 11, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
群头像设置接口提供
parent
953bf923
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
101 additions
and
8 deletions
+101
-8
core/src/main/java/com/wecloud/im/action/ConversationAction.java
+14
-3
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
+12
-0
core/src/main/java/com/wecloud/im/entity/ImConversation.java
+3
-0
core/src/main/java/com/wecloud/im/param/SetGroupPortraitParam.java
+22
-0
core/src/main/java/com/wecloud/im/service/ImConversationService.java
+9
-1
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+38
-4
core/src/main/java/com/wecloud/im/ws/enums/MsgTypeEnum.java
+3
-0
No files found.
core/src/main/java/com/wecloud/im/action/ConversationAction.java
View file @
8c1ad78b
...
@@ -12,6 +12,7 @@ import com.wecloud.im.param.ListConversationParam;
...
@@ -12,6 +12,7 @@ import com.wecloud.im.param.ListConversationParam;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetGroupPortraitParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
...
@@ -25,7 +26,6 @@ import com.wecloud.im.vo.ConversationVo;
...
@@ -25,7 +26,6 @@ import com.wecloud.im.vo.ConversationVo;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.ws.model.WsResponse
;
import
com.wecloud.im.ws.model.WsResponse
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
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
;
...
@@ -33,8 +33,6 @@ import org.apache.commons.collections4.CollectionUtils;
...
@@ -33,8 +33,6 @@ import org.apache.commons.collections4.CollectionUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
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.RequestBody
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -250,6 +248,19 @@ public class ConversationAction {
...
@@ -250,6 +248,19 @@ public class ConversationAction {
}
}
/**
/**
* 群头像设置
*/
@ActionMapping
(
"/setGroupPortrait"
)
@ApiOperation
(
value
=
"群头像设置"
,
notes
=
"权限:群主和管理员有权限操作"
)
public
WsResponse
<
Map
<
String
,
Boolean
>>
setGroupPortrait
(
@Validated
SetGroupPortraitParam
data
)
{
log
.
info
(
"群头像设置入参 {}"
,
JSON
.
toJSONString
(
data
));
Boolean
r
=
imConversationService
.
setGroupPortrait
(
data
);
Map
<
String
,
Boolean
>
result
=
new
HashMap
<>();
result
.
put
(
"result"
,
r
);
return
WsResponse
.
ok
(
result
);
}
/**
* 用户进入聊天室
* 用户进入聊天室
*/
*/
@ActionMapping
(
"/intoChatRoom"
)
@ActionMapping
(
"/intoChatRoom"
)
...
...
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
View file @
8c1ad78b
...
@@ -11,6 +11,7 @@ import com.wecloud.im.param.ListConversationParam;
...
@@ -11,6 +11,7 @@ import com.wecloud.im.param.ListConversationParam;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetGroupPortraitParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
...
@@ -221,6 +222,17 @@ public class ImConversationController extends BaseController {
...
@@ -221,6 +222,17 @@ public class ImConversationController extends BaseController {
return
ApiResult
.
ok
(
result
);
return
ApiResult
.
ok
(
result
);
}
}
/**
* 群头像设置
*/
@PostMapping
(
"/setGroupPortrait"
)
@ApiOperation
(
value
=
"群头像设置"
,
notes
=
"权限:群主和管理员有权限操作"
)
public
ApiResult
<
Boolean
>
setGroupPortrait
(
@RequestBody
@Validated
SetGroupPortraitParam
param
)
{
log
.
info
(
"群头像设置入参 {}"
,
JSON
.
toJSONString
(
param
));
Boolean
result
=
imConversationService
.
setGroupPortrait
(
param
);
return
ApiResult
.
ok
(
result
);
}
/**
/**
* 用户进入聊天室
* 用户进入聊天室
...
...
core/src/main/java/com/wecloud/im/entity/ImConversation.java
View file @
8c1ad78b
...
@@ -63,6 +63,9 @@ public class ImConversation extends BaseEntity {
...
@@ -63,6 +63,9 @@ public class ImConversation extends BaseEntity {
@ApiModelProperty
(
"可选 对话的名字,可为群组命名。"
)
@ApiModelProperty
(
"可选 对话的名字,可为群组命名。"
)
private
String
name
;
private
String
name
;
@ApiModelProperty
(
"群头像"
)
private
String
groupPortrait
;
@ApiModelProperty
(
"可选 自定义属性,供开发者扩展使用。"
)
@ApiModelProperty
(
"可选 自定义属性,供开发者扩展使用。"
)
private
String
attributes
;
private
String
attributes
;
...
...
core/src/main/java/com/wecloud/im/param/SetGroupPortraitParam.java
0 → 100644
View file @
8c1ad78b
package
com
.
wecloud
.
im
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @Author Future
* @Date 2022/5/11 19:19
* @Description 设置群头像入参
*/
@Data
public
class
SetGroupPortraitParam
{
@NotNull
@ApiModelProperty
(
"会话id"
)
private
Long
conversationId
;
@ApiModelProperty
(
"群头像图片地址"
)
private
String
groupPortrait
;
}
core/src/main/java/com/wecloud/im/service/ImConversationService.java
View file @
8c1ad78b
package
com
.
wecloud
.
im
.
service
;
package
com
.
wecloud
.
im
.
service
;
import
com.wecloud.im.param.SetGroupPortraitParam
;
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
;
...
@@ -225,13 +226,20 @@ public interface ImConversationService extends BaseService<ImConversation> {
...
@@ -225,13 +226,20 @@ public interface ImConversationService extends BaseService<ImConversation> {
Long
getRepetitionConversationAttributes
(
Long
clientId1
,
Long
clientId2
,
String
attributes
);
Long
getRepetitionConversationAttributes
(
Long
clientId1
,
Long
clientId2
,
String
attributes
);
/**
/**
* 群
禁言
* 群
聊设置
* @param param
* @param param
* @return
* @return
*/
*/
Boolean
groupChatSetting
(
GroupChatSettingParam
param
);
Boolean
groupChatSetting
(
GroupChatSettingParam
param
);
/**
/**
* 群头像设置
* @param param
* @return
*/
Boolean
setGroupPortrait
(
SetGroupPortraitParam
param
);
/**
* 用户主动进入聊天室
* 用户主动进入聊天室
* @param param
* @param param
* @return
* @return
...
...
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
8c1ad78b
...
@@ -32,6 +32,7 @@ import com.wecloud.im.param.ListConversationParam;
...
@@ -32,6 +32,7 @@ import com.wecloud.im.param.ListConversationParam;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupMemberParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.MutedGroupParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.SetGroupPortraitParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.TransferOwnerParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
...
@@ -1096,9 +1097,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1096,9 +1097,9 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
}
// 保存事件消息
// 保存事件消息
ImMessage
imMessage
=
new
ImMessage
();
ImMessage
imMessage
=
new
ImMessage
();
HashMap
<
String
,
String
>
content
=
Maps
.
newHashMap
();
HashMap
<
String
,
Object
>
contentMap
=
Maps
.
newHashMap
();
content
.
put
(
"attributes"
,
imConversation
.
getAttributes
());
content
Map
.
put
(
"attributes"
,
imConversation
.
getAttributes
());
imMessage
.
setContent
(
JsonUtils
.
encodeJson
(
content
));
imMessage
.
setContent
(
JsonUtils
.
encodeJson
(
content
Map
));
imMessage
.
setId
(
SnowflakeUtil
.
getId
());
imMessage
.
setId
(
SnowflakeUtil
.
getId
());
imMessage
.
setMsgType
(
MsgTypeEnum
.
CONVERSATION_EXPAND_FIELD_CHANGE
.
getUriCode
());
imMessage
.
setMsgType
(
MsgTypeEnum
.
CONVERSATION_EXPAND_FIELD_CHANGE
.
getUriCode
());
imMessage
.
setCreateTime
(
new
Date
());
imMessage
.
setCreateTime
(
new
Date
());
...
@@ -1113,7 +1114,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1113,7 +1114,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
for
(
String
key
:
chatRoomMembers
.
keySet
())
{
for
(
String
key
:
chatRoomMembers
.
keySet
())
{
Long
fkClientId
=
Long
.
valueOf
(
key
.
split
(
RedisUtils
.
SPLIT
)[
0
]);
Long
fkClientId
=
Long
.
valueOf
(
key
.
split
(
RedisUtils
.
SPLIT
)[
0
]);
sendEventMsgToMember
(
imConversation
.
getId
(),
currentClient
.
getFkAppid
(),
currentClient
.
getClientId
(),
sendEventMsgToMember
(
imConversation
.
getId
(),
currentClient
.
getFkAppid
(),
currentClient
.
getClientId
(),
fkClientId
,
null
,
imMessage
);
fkClientId
,
contentMap
,
imMessage
);
}
}
}
}
...
@@ -1284,6 +1285,39 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -1284,6 +1285,39 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
}
@Override
@Override
public
Boolean
setGroupPortrait
(
SetGroupPortraitParam
param
)
{
// 获取当前client
ImClient
currentClient
=
contextService
.
getImClientIfNotNullOrThrow
();
if
(!
imConversationService
.
isBelongToRole
(
currentClient
.
getClientId
(),
param
.
getConversationId
(),
Lists
.
newArrayList
(
GroupRoleEnum
.
OWNER
.
getCode
(),
GroupRoleEnum
.
ADMIN
.
getCode
())))
{
// 当前操作人不属于群主或管理人员
throw
new
BusinessException
(
"操作人既不是群主也不是群管理员,无权限操作"
);
}
ImConversation
imConversation
=
imConversationService
.
getById
(
param
.
getConversationId
());
imConversation
.
setGroupPortrait
(
param
.
getGroupPortrait
());
boolean
success
=
imConversationService
.
updateById
(
imConversation
);
if
(
success
)
{
// 删除redis中该会话的缓存
deleteCacheImConversationById
(
param
.
getConversationId
());
// 查询该会话所有成员
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkAppid
,
currentClient
.
getFkAppid
())
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
param
.
getConversationId
())
.
ne
(
ImConversationMembers:
:
getFkClientId
,
currentClient
.
getId
())
);
ImMessage
message
=
new
ImMessage
();
message
.
setWithdraw
(
Boolean
.
FALSE
);
message
.
setEvent
(
Boolean
.
TRUE
);
message
.
setMsgType
(
MsgTypeEnum
.
CONVERSATION_SET_GROUP_PORTRAIT
.
getUriCode
());
sendMsgToMembers
(
param
.
getConversationId
(),
membersList
,
currentClient
.
getFkAppid
(),
currentClient
.
getClientId
(),
null
,
message
);
}
else
{
throw
new
BusinessException
(
"修改错误"
);
}
return
true
;
}
@Override
public
Boolean
intoChatRoom
(
IntoChatRoomParam
param
)
{
public
Boolean
intoChatRoom
(
IntoChatRoomParam
param
)
{
if
(
param
.
getPlatform
()
==
null
)
{
if
(
param
.
getPlatform
()
==
null
)
{
throw
new
BusinessException
(
"平台入参不可为空"
);
throw
new
BusinessException
(
"平台入参不可为空"
);
...
...
core/src/main/java/com/wecloud/im/ws/enums/MsgTypeEnum.java
View file @
8c1ad78b
...
@@ -89,6 +89,9 @@ public enum MsgTypeEnum {
...
@@ -89,6 +89,9 @@ public enum MsgTypeEnum {
// 取消禁止群成员发链接
// 取消禁止群成员发链接
CONVERSATION_FORBID_SEND_LINK_CANCEL
(-
1029
),
CONVERSATION_FORBID_SEND_LINK_CANCEL
(-
1029
),
// 修改群头像
CONVERSATION_SET_GROUP_PORTRAIT
(-
1031
),
;
;
private
final
int
uriCode
;
private
final
int
uriCode
;
...
...
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