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
ca10024b
Commit
ca10024b
authored
Apr 28, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加群成员互加好友接口
parent
5625a334
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
85 additions
and
10 deletions
+85
-10
core/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
+30
-0
core/src/main/java/com/wecloud/im/friend/param/ImFriendApplyParam.java
+3
-2
core/src/main/java/com/wecloud/im/service/ImConversationMembersService.java
+12
-0
core/src/main/java/com/wecloud/im/service/impl/ImConversationMembersServiceImpl.java
+40
-8
No files found.
core/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
View file @
ca10024b
package
com
.
wecloud
.
im
.
controller
;
import
io.geekidea.springbootplus.framework.common.api.ApiCode
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.List
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
@@ -15,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.wecloud.im.friend.param.ImFriendApplyParam
;
import
com.wecloud.im.param.ChatSettingParam
;
import
com.wecloud.im.param.ImConvMemeClientRemarkNameParam
;
import
com.wecloud.im.param.ListConversationMembersParam
;
...
...
@@ -87,5 +91,31 @@ public class ImConversationMembersController extends BaseController {
return
ApiResult
.
ok
(
imConversationMembersService
.
chatSetting
(
param
));
}
/**
* 群成员添加haoyou
* @Author luozh
* @Date 2022年04月28日 11:40:44
* @param
* @Return
*/
@ApiOperation
(
value
=
"群成员添加好友"
)
@PostMapping
(
"/addUser"
)
public
ApiResult
<
Boolean
>
addUser
(
@RequestBody
ImFriendApplyParam
param
)
{
if
(
param
.
getConversationId
()
==
null
)
{
throw
new
BusinessException
(
ApiCode
.
PARAMETER_EXCEPTION
.
getCode
(),
"参数: conversationId 不能为空"
);
}
if
(
StringUtils
.
isBlank
(
param
.
getFriendName
()))
{
throw
new
BusinessException
(
ApiCode
.
PARAMETER_EXCEPTION
.
getCode
(),
"参数: friendName 不能为空"
);
}
if
(
StringUtils
.
isBlank
(
param
.
getClientId
()))
{
throw
new
BusinessException
(
ApiCode
.
PARAMETER_EXCEPTION
.
getCode
(),
"参数: clientId 不能为空"
);
}
if
(
StringUtils
.
isBlank
(
param
.
getFriendClientId
()))
{
throw
new
BusinessException
(
ApiCode
.
PARAMETER_EXCEPTION
.
getCode
(),
"参数: friendClientId 不能为空"
);
}
return
ApiResult
.
ok
(
imConversationMembersService
.
addUser
(
param
));
}
}
core/src/main/java/com/wecloud/im/friend/param/ImFriendApplyParam.java
View file @
ca10024b
...
...
@@ -3,8 +3,6 @@ package com.wecloud.im.friend.param;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Description 申请好友入参
* @Author lixiaozhong
...
...
@@ -14,6 +12,9 @@ import java.io.Serializable;
public
class
ImFriendApplyParam
extends
ImFriendBaseParam
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"会话id,群成员添加好友时传参"
)
private
Long
conversationId
;
@ApiModelProperty
(
"备注好友名称"
)
private
String
friendName
;
...
...
core/src/main/java/com/wecloud/im/service/ImConversationMembersService.java
View file @
ca10024b
...
...
@@ -6,8 +6,11 @@ import io.geekidea.springbootplus.framework.core.pagination.Paging;
import
java.util.List
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImConversationMembers
;
import
com.wecloud.im.friend.param.ImFriendApplyParam
;
import
com.wecloud.im.param.ApiImConversationMembersPageParam
;
import
com.wecloud.im.param.ApiImConversationMembersQueryVo
;
import
com.wecloud.im.param.ChatSettingParam
;
...
...
@@ -131,4 +134,13 @@ public interface ImConversationMembersService extends BaseService<ImConversation
* @Return
*/
Boolean
chatSetting
(
ChatSettingParam
param
);
/**
* 群成员添加好友
* @Author luozh
* @Date 2022年04月28日 11:48:42
* @param param
* @Return
*/
Boolean
addUser
(
@RequestBody
ImFriendApplyParam
param
);
}
core/src/main/java/com/wecloud/im/service/impl/ImConversationMembersServiceImpl.java
View file @
ca10024b
...
...
@@ -9,6 +9,7 @@ import io.geekidea.springbootplus.framework.core.pagination.Paging;
import
io.geekidea.springbootplus.framework.shiro.util.SecurityUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -26,8 +27,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.google.common.collect.Maps
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.entity.ImConversationMembers
;
import
com.wecloud.im.entity.ImMessageOnlineSend
;
import
com.wecloud.im.friend.param.ImFriendApplyParam
;
import
com.wecloud.im.friend.service.ImFriendService
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.mapper.ImConversationMembersMapper
;
import
com.wecloud.im.param.ApiImConversationMembersPageParam
;
...
...
@@ -41,11 +45,9 @@ import com.wecloud.im.param.ListConversationMembersParam;
import
com.wecloud.im.param.SetAdminsParam
;
import
com.wecloud.im.param.add.ImConversationMemAttrUpdate
;
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.ws.enums.MsgTypeEnum
;
import
com.wecloud.im.ws.enums.WsResponseCmdEnum
;
...
...
@@ -79,17 +81,14 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
private
ImClientService
imClientService
;
@Autowired
private
ImApplicationService
imApplicationService
;
@Autowired
private
ImMessageService
imMessageService
;
@Autowired
private
ImConversationMembersMapper
imConversationMembersMapper
;
@Autowired
private
ContextService
contextService
;
@Autowired
private
ImFriendService
imFriendService
;
@Override
public
ApiResult
<
List
<
ApiImConversationMembersQueryVo
>>
getRestApiImConversationMembersList
(
ApiImConversationMembersPageParam
apiImConversationMembersPageParam
,
ImApplication
imApplication
)
{
...
...
@@ -290,4 +289,37 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
return
result
;
}
@Override
public
Boolean
addUser
(
ImFriendApplyParam
param
)
{
Long
appId
=
SecurityUtils
.
getCurrentAppId
();
Long
conversationId
=
param
.
getConversationId
();
// 判断会话是否存在
ImConversation
conversation
=
imConversationService
.
getById
(
conversationId
);
if
(
conversation
==
null
)
{
throw
new
BusinessException
(
"会话不存在"
);
}
// 判断会话是否开启禁止群成员互加好友
boolean
forbidAddFriend
=
conversation
.
getForbidAddFriend
();
if
(
forbidAddFriend
)
{
throw
new
BusinessException
(
"群主/管理员开启了禁止群成员互加好友"
);
}
// 判断是否同一个会话成员
List
<
String
>
memberClientIds
=
new
ArrayList
<>();
memberClientIds
.
add
(
param
.
getClientId
());
memberClientIds
.
add
(
param
.
getFriendClientId
());
List
<
ImConversationMembers
>
members
=
list
(
Wrappers
.<
ImConversationMembers
>
lambdaQuery
()
.
eq
(
ImConversationMembers:
:
getFkAppid
,
appId
)
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
conversationId
)
.
in
(
ImConversationMembers:
:
getClientId
,
memberClientIds
));
if
(
members
.
size
()
!=
2
)
{
throw
new
BusinessException
(
"好友不属于同一个群"
);
}
// 校验通过,调用imFriendService apply方法
ImClient
initiator
=
imClientService
.
getCacheImClient
(
appId
,
param
.
getClientId
());
ImClient
recipient
=
imClientService
.
getCacheImClient
(
appId
,
param
.
getFriendClientId
());
return
imFriendService
.
applyFriend
(
initiator
,
recipient
,
param
.
getFriendName
(),
param
.
getRequestRemark
());
}
}
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