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
f4d9f105
Commit
f4d9f105
authored
Mar 10, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改群成员昵称事件下发
parent
04045995
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
74 additions
and
39 deletions
+74
-39
core/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
+2
-1
core/src/main/java/com/wecloud/im/service/ImConversationMembersService.java
+6
-1
core/src/main/java/com/wecloud/im/service/impl/ImConversationMembersServiceImpl.java
+63
-37
core/src/main/java/com/wecloud/im/ws/enums/MsgTypeEnum.java
+3
-0
No files found.
core/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
View file @
f4d9f105
...
@@ -40,7 +40,8 @@ public class ImConversationMembersController extends BaseController {
...
@@ -40,7 +40,8 @@ public class ImConversationMembersController extends BaseController {
@PostMapping
(
"/updateClientRemarkName"
)
@PostMapping
(
"/updateClientRemarkName"
)
@ApiOperation
(
value
=
"添加或修改会话成员备注"
,
notes
=
"权限:目前只有client成员自己有权限操作"
)
@ApiOperation
(
value
=
"添加或修改会话成员备注"
,
notes
=
"权限:目前只有client成员自己有权限操作"
)
public
ApiResult
<
Boolean
>
saveOrUpdateClientRemarkName
(
@RequestBody
ImConvMemeClientRemarkNameParam
imConvMemeClientRemarkNameParam
)
throws
Exception
{
public
ApiResult
<
Boolean
>
saveOrUpdateClientRemarkName
(
@RequestBody
ImConvMemeClientRemarkNameParam
imConvMemeClientRemarkNameParam
)
throws
Exception
{
return
imConversationMembersService
.
saveOrUpdateClientRemarkName
(
imConvMemeClientRemarkNameParam
);
imConversationMembersService
.
saveOrUpdateClientRemarkName
(
imConvMemeClientRemarkNameParam
);
return
ApiResult
.
ok
();
}
}
...
...
core/src/main/java/com/wecloud/im/service/ImConversationMembersService.java
View file @
f4d9f105
...
@@ -36,7 +36,12 @@ public interface ImConversationMembersService extends BaseService<ImConversation
...
@@ -36,7 +36,12 @@ public interface ImConversationMembersService extends BaseService<ImConversation
ApiResult
<
List
<
ApiImConversationMembersQueryVo
>>
getRestApiImConversationMembersList
(
ApiImConversationMembersPageParam
apiImConversationMembersPageParam
,
ImApplication
imApplication
);
ApiResult
<
List
<
ApiImConversationMembersQueryVo
>>
getRestApiImConversationMembersList
(
ApiImConversationMembersPageParam
apiImConversationMembersPageParam
,
ImApplication
imApplication
);
ApiResult
<
Boolean
>
saveOrUpdateClientRemarkName
(
ImConvMemeClientRemarkNameParam
imConvMemeClientRemarkNameParam
);
/**
* 添加或修改会话成员备注
* @param param
* @return
*/
void
saveOrUpdateClientRemarkName
(
ImConvMemeClientRemarkNameParam
param
);
/**
/**
...
...
core/src/main/java/com/wecloud/im/service/impl/ImConversationMembersServiceImpl.java
View file @
f4d9f105
package
com
.
wecloud
.
im
.
service
.
impl
;
package
com
.
wecloud
.
im
.
service
.
impl
;
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
;
...
@@ -7,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...
@@ -7,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImConversationMembers
;
import
com.wecloud.im.entity.ImConversationMembers
;
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.ApiImConversationMembersPageParam
;
import
com.wecloud.im.param.ApiImConversationMembersPageParam
;
...
@@ -23,9 +25,14 @@ import com.wecloud.im.service.ImConversationMembersService;
...
@@ -23,9 +25,14 @@ import com.wecloud.im.service.ImConversationMembersService;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImMessageService
;
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.WsResponseCmdEnum
;
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.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
io.geekidea.springbootplus.framework.core.pagination.PageInfo
;
import
io.geekidea.springbootplus.framework.core.pagination.PageInfo
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
...
@@ -36,7 +43,10 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -36,7 +43,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* 会话成员表 服务实现类
* 会话成员表 服务实现类
...
@@ -81,51 +91,67 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
...
@@ -81,51 +91,67 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ApiResult
<
Boolean
>
saveOrUpdateClientRemarkName
(
ImConvMemeClientRemarkNameParam
imConvMemeClientRemarkNameParam
)
{
public
void
saveOrUpdateClientRemarkName
(
ImConvMemeClientRemarkNameParam
param
)
{
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
// shiro线程中获取当前token
JwtToken
curentJwtToken
=
JwtUtil
.
getCurrentJwtToken
();
// 根据appKey查询application
ImApplication
imApplication
=
imApplicationService
.
getCacheAppByAppKey
(
curentJwtToken
.
getAppKey
());
ImClient
imClientSender
=
imClientService
.
getCurrentClient
();
// 查询该成员
// 查询该成员
ImConversationMembers
imConversationMember
=
imConversationMembersService
.
getOne
(
ImConversationMembers
imConversationMember
=
imConversationMembersService
.
getOne
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkAppid
,
imApplication
.
getI
d
())
.
eq
(
ImConversationMembers:
:
getFkAppid
,
currentClient
.
getFkAppi
d
())
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
imConvMemeClientRemarkNameP
aram
.
getConversationId
())
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
p
aram
.
getConversationId
())
.
eq
(
ImConversationMembers:
:
getFkClientId
,
imClientSender
.
getId
())
.
eq
(
ImConversationMembers:
:
getFkClientId
,
currentClient
.
getId
())
);
);
if
(
imConversationMember
==
null
)
{
if
(
imConversationMember
==
null
)
{
return
ApiResult
.
fail
(
);
throw
new
BusinessException
(
"未查询到会话成员信息"
);
}
}
imConversationMember
.
setClientRemarkName
(
param
.
getClientRemarkName
());
// // 查询该会话所有成员
// List<ImConversationMembers> membersList = imConversationMembersService.list(
// new QueryWrapper<ImConversationMembers>().lambda()
// .eq(ImConversationMembers::getFkAppid, imApplication.getId())
// .eq(ImConversationMembers::getFkConversationId, imConversationAttrUpdate.getConversationId())
// .notIn(ImConversationMembers::getId, imClientSender.getId())
// );
imConversationMember
.
setClientRemarkName
(
imConvMemeClientRemarkNameParam
.
getClientRemarkName
());
boolean
b
=
imConversationMembersService
.
updateById
(
imConversationMember
);
boolean
b
=
imConversationMembersService
.
updateById
(
imConversationMember
);
if
(
b
)
{
if
(!
b
)
{
throw
new
BusinessException
(
"修改群成员备注失败"
);
//TODO ws下发群成员备注变动事件
}
// 查询该会话所有成员
return
ApiResult
.
ok
();
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
}
else
{
.
eq
(
ImConversationMembers:
:
getFkAppid
,
currentClient
.
getFkAppid
())
return
ApiResult
.
fail
();
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
param
.
getConversationId
())
.
ne
(
ImConversationMembers:
:
getFkClientId
,
currentClient
.
getId
())
);
for
(
ImConversationMembers
member
:
membersList
)
{
// 不关心事件是否发送成功
try
{
// 给所有成员下发事件消息
ImClient
imClientReceiver
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
currentClient
.
getFkAppid
())
.
eq
(
ImClient:
:
getId
,
member
.
getFkClientId
()));
if
(
imClientReceiver
==
null
)
{
continue
;
}
// 封装响应的实体
ImMessageOnlineSend
imMessageOnlineSend
=
new
ImMessageOnlineSend
();
imMessageOnlineSend
.
setCreateTime
(
new
Date
());
imMessageOnlineSend
.
setType
(
MsgTypeEnum
.
CONVERSATION_DISBAND
.
getUriCode
());
imMessageOnlineSend
.
setSender
(
currentClient
.
getClientId
());
Map
<
String
,
Object
>
content
=
new
HashMap
<>();
content
.
put
(
"operator"
,
currentClient
.
getClientId
());
content
.
put
(
"remarkName"
,
param
.
getClientRemarkName
());
imMessageOnlineSend
.
setContent
(
content
);
imMessageOnlineSend
.
setConversationId
(
param
.
getConversationId
());
imMessageOnlineSend
.
setWithdraw
(
Boolean
.
FALSE
);
imMessageOnlineSend
.
setEvent
(
Boolean
.
TRUE
);
// 向接收方推送
WsResponse
<
ImMessageOnlineSend
>
responseModel
=
new
WsResponse
<>();
responseModel
.
setCmd
(
WsResponseCmdEnum
.
CONVERSATION_EVENT_MSG
.
getCmdCode
());
ApiResult
<
Boolean
>
result
=
ApiResult
.
result
(
ApiCode
.
SUCCESS
);
responseModel
.
setCode
(
result
.
getCode
());
responseModel
.
setMsg
(
result
.
getMessage
());
responseModel
.
setData
(
imMessageOnlineSend
);
responseModel
.
setReqId
(
null
);
channelSender
.
sendMsg
(
responseModel
,
imClientReceiver
.
getId
());
}
catch
(
Exception
e
)
{
log
.
info
(
"下发解散群事件失败,接收人 {}"
,
JSON
.
toJSONString
(
member
));
}
}
}
}
}
@Override
@Override
...
...
core/src/main/java/com/wecloud/im/ws/enums/MsgTypeEnum.java
View file @
f4d9f105
...
@@ -51,6 +51,9 @@ public enum MsgTypeEnum {
...
@@ -51,6 +51,9 @@ public enum MsgTypeEnum {
// 群聊取消禁言 -1020
// 群聊取消禁言 -1020
CONVERSATION_MUTED_CANCEL
(-
1020
),
CONVERSATION_MUTED_CANCEL
(-
1020
),
// 群成员备注修改 -1021
CONVERSATION_MEMBER_NAME_MODIFY
(-
1021
),
;
;
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