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
01e55a5d
Commit
01e55a5d
authored
Feb 24, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
非sdk
parent
c4195da7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
1113 additions
and
268 deletions
+1113
-268
core/src/main/java/com/wecloud/im/action/MessageAction.java
+108
-0
core/src/main/java/com/wecloud/im/action/NormalChatAction.java
+9
-9
core/src/main/java/com/wecloud/im/controller/ImClientBlacklistController.java
+0
-32
core/src/main/java/com/wecloud/im/controller/ImClientController.java
+0
-76
core/src/main/java/com/wecloud/im/controller/ImMessageController.java
+6
-6
core/src/main/java/com/wecloud/im/entity/ImClientBlacklist.java
+2
-2
core/src/main/java/com/wecloud/im/entity/ImConversationMembers.java
+6
-0
core/src/main/java/com/wecloud/im/enums/SexEnum.java
+45
-0
core/src/main/java/com/wecloud/im/friend/controller/ImFriendController.java
+2
-2
core/src/main/java/com/wecloud/im/friend/mapper/ImFriendMapper.java
+2
-2
core/src/main/java/com/wecloud/im/friend/service/ImFriendService.java
+3
-3
core/src/main/java/com/wecloud/im/param/ChatContentVo.java
+32
-1
core/src/main/java/com/wecloud/im/service/ImClientBlacklistService.java
+3
-50
core/src/main/java/com/wecloud/im/service/ImMessageService.java
+9
-7
core/src/main/java/com/wecloud/im/service/impl/ImClientBlacklistServiceImpl.java
+8
-39
core/src/main/java/com/wecloud/im/service/impl/ImClientServiceImpl.java
+12
-7
core/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
+0
-0
core/src/main/java/com/wecloud/im/user/controller/FriendController.java
+70
-0
core/src/main/java/com/wecloud/im/user/controller/UserController.java
+81
-4
core/src/main/java/com/wecloud/im/user/controller/VerifyCodeController.java
+1
-11
core/src/main/java/com/wecloud/im/user/entity/User.java
+3
-0
core/src/main/java/com/wecloud/im/user/param/FindUserParam.java
+26
-0
core/src/main/java/com/wecloud/im/user/param/FriendDto.java
+32
-0
core/src/main/java/com/wecloud/im/user/param/GetUserParam.java
+26
-0
core/src/main/java/com/wecloud/im/user/param/LoginSuccessDto.java
+19
-4
core/src/main/java/com/wecloud/im/user/param/ModifyHeadPortraitParam.java
+33
-0
core/src/main/java/com/wecloud/im/user/param/ModifyLandouParam.java
+33
-0
core/src/main/java/com/wecloud/im/user/param/ModifyNicknameParam.java
+33
-0
core/src/main/java/com/wecloud/im/user/param/ModifySexParam.java
+34
-0
core/src/main/java/com/wecloud/im/user/param/RegisterSuccessDto.java
+26
-0
core/src/main/java/com/wecloud/im/user/param/UserBaseDto.java
+50
-0
core/src/main/java/com/wecloud/im/user/service/FriendService.java
+156
-0
core/src/main/java/com/wecloud/im/user/service/UserService.java
+188
-4
core/src/main/java/com/wecloud/rtc/service/impl/RtcServiceImpl.java
+12
-5
core/src/main/java/com/wecloud/utils/RandomUtil.java
+35
-0
core/src/main/resources/mapper/ImFriendMapper.xml
+2
-2
docs/db/feature-cluster增量.sql
+6
-2
No files found.
core/src/main/java/com/wecloud/im/action/MessageAction.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
action
;
import
com.alibaba.fastjson.JSON
;
import
com.wecloud.dispatch.annotation.ActionMapping
;
import
com.wecloud.dispatch.extend.ActionRequest
;
import
com.wecloud.im.param.GetReadersParam
;
import
com.wecloud.im.param.ImHistoryMessagePageParam
;
import
com.wecloud.im.param.MsgDeleteParam
;
import
com.wecloud.im.param.add.ImMsgRecall
;
import
com.wecloud.im.param.add.ImMsgUpdate
;
import
com.wecloud.im.service.ImMessageService
;
import
com.wecloud.im.vo.OfflineMsgDto
;
import
com.wecloud.im.vo.ReaderList
;
import
com.wecloud.im.ws.model.WsResponse
;
import
com.wecloud.im.ws.sender.ChannelSender
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.netty.channel.socket.nio.NioSocketChannel
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
/**
* @Author wenzhida
* @Date 2022/2/23 17:14
* @Description 长连接方式处理消息
*/
@Slf4j
@Component
@ActionMapping
(
value
=
"/imMessage"
)
public
class
MessageAction
{
@Autowired
private
ImMessageService
imMessageService
;
@Autowired
private
ChannelSender
channelSender
;
/**
* 消息撤回
* @param request
* @param msgRecall
* @param reqId
*/
@ActionMapping
(
"/withdraw"
)
public
void
withdraw
(
ActionRequest
request
,
ImMsgRecall
msgRecall
,
String
reqId
)
{
log
.
info
(
"撤回消息内容:{}"
,
JSON
.
toJSONString
(
msgRecall
));
WsResponse
<
Boolean
>
wsResponse
=
new
WsResponse
<>();
wsResponse
.
setData
(
imMessageService
.
withdrawMsg
(
request
,
msgRecall
));
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
request
.
getSenderChannel
(),
wsResponse
);
}
/**
* 删除消息内容
* @param request
* @param msgDeleteParam
* @param reqId
*/
@ActionMapping
(
"/delete"
)
public
void
deleteMsg
(
ActionRequest
request
,
MsgDeleteParam
msgDeleteParam
,
String
reqId
)
{
log
.
info
(
"删除消息内容:{}"
,
JSON
.
toJSONString
(
msgDeleteParam
));
WsResponse
<
Boolean
>
wsResponse
=
new
WsResponse
<>();
wsResponse
.
setData
(
imMessageService
.
deleteMsg
(
request
,
msgDeleteParam
));
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
request
.
getSenderChannel
(),
wsResponse
);
}
/**
* 修改消息体
* @param request
* @param imMsgUpdate
* @param reqId
*/
@ActionMapping
(
"/updateMsgById"
)
public
void
updateMsgById
(
ActionRequest
request
,
ImMsgUpdate
imMsgUpdate
,
String
reqId
)
{
log
.
info
(
"修改消息内容:{}"
,
JSON
.
toJSONString
(
imMsgUpdate
));
WsResponse
<
Boolean
>
wsResponse
=
new
WsResponse
<>();
wsResponse
.
setData
(
imMessageService
.
updateMsgById
(
imMsgUpdate
));
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
request
.
getSenderChannel
(),
wsResponse
);
}
/**
* 查询某个会话历史消息分页列表
* @param request
* @param param
* @param reqId
*/
@ActionMapping
(
"/getHistoryMsg"
)
public
void
getHistoryMsg
(
ActionRequest
request
,
ImHistoryMessagePageParam
param
,
String
reqId
)
{
log
.
info
(
"查询某个会话历史消息分页列表:{}"
,
JSON
.
toJSONString
(
param
));
WsResponse
<
Paging
<
OfflineMsgDto
>>
wsResponse
=
new
WsResponse
<>();
wsResponse
.
setData
(
imMessageService
.
getHistoryMsgConversationId
(
param
));
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
request
.
getSenderChannel
(),
wsResponse
);
}
/**
* 查询某个消息已读client列表和未读client
* @param request
* @param param
* @param reqId
*/
@ActionMapping
(
"/getReaders"
)
public
void
getReaders
(
ActionRequest
request
,
GetReadersParam
param
,
String
reqId
)
{
log
.
info
(
"查询某个消息已读client列表和未读client:{}"
,
JSON
.
toJSONString
(
param
));
WsResponse
<
ReaderList
>
wsResponse
=
new
WsResponse
<>();
wsResponse
.
setData
(
imMessageService
.
getReaders
(
request
,
param
));
channelSender
.
sendMsgLocal
((
NioSocketChannel
)
request
.
getSenderChannel
(),
wsResponse
);
}
}
core/src/main/java/com/wecloud/im/action/NormalChatAction.java
View file @
01e55a5d
...
@@ -261,17 +261,17 @@ public class NormalChatAction {
...
@@ -261,17 +261,17 @@ public class NormalChatAction {
* @return
* @return
*/
*/
private
boolean
black
(
String
reqId
,
ImClient
imClientSender
,
List
<
ImConversationMembers
>
membersList
,
Channel
channel
)
{
private
boolean
black
(
String
reqId
,
ImClient
imClientSender
,
List
<
ImConversationMembers
>
membersList
,
Channel
channel
)
{
Long
meId
=
imClientSender
.
ge
tId
();
String
meClientId
=
imClientSender
.
getClien
tId
();
Long
heId
=
null
;
String
heClientId
;
if
(
membersList
.
get
(
0
).
getFkClientId
().
equals
(
meId
))
{
if
(
membersList
.
get
(
0
).
getFkClientId
().
equals
(
me
Client
Id
))
{
he
Id
=
membersList
.
get
(
1
).
getFk
ClientId
();
he
ClientId
=
membersList
.
get
(
1
).
get
ClientId
();
}
else
{
}
else
{
he
Id
=
membersList
.
get
(
0
).
getFk
ClientId
();
he
ClientId
=
membersList
.
get
(
0
).
get
ClientId
();
}
}
// 判断是否被拉黑
// 判断是否被拉黑
boolean
beBlack
=
imClientBlacklistService
.
isBeBlack
(
he
Id
,
me
Id
);
boolean
beBlack
=
imClientBlacklistService
.
isBeBlack
(
he
ClientId
,
meClient
Id
);
if
(
beBlack
)
{
if
(
beBlack
)
{
log
.
info
(
"被对方拉黑了, meId={},he
Id={}"
,
meId
,
he
Id
);
log
.
info
(
"被对方拉黑了, meId={},he
ClientId={}"
,
meClientId
,
heClient
Id
);
// 响应发送方
// 响应发送方
WsResponse
<
HashMap
<
String
,
Long
>>
responseModel
=
new
WsResponse
<>();
WsResponse
<
HashMap
<
String
,
Long
>>
responseModel
=
new
WsResponse
<>();
...
@@ -287,9 +287,9 @@ public class NormalChatAction {
...
@@ -287,9 +287,9 @@ public class NormalChatAction {
}
}
// 是否把对方拉黑
// 是否把对方拉黑
boolean
black
=
imClientBlacklistService
.
isBeBlack
(
me
Id
,
he
Id
);
boolean
black
=
imClientBlacklistService
.
isBeBlack
(
me
ClientId
,
heClient
Id
);
if
(
black
)
{
if
(
black
)
{
log
.
info
(
"你把对方拉黑了, meId={},he
Id={}"
,
meId
,
he
Id
);
log
.
info
(
"你把对方拉黑了, meId={},he
ClientId={}"
,
meClientId
,
heClient
Id
);
// 响应发送方
// 响应发送方
WsResponse
<
HashMap
<
String
,
Long
>>
responseModel
=
new
WsResponse
<>();
WsResponse
<
HashMap
<
String
,
Long
>>
responseModel
=
new
WsResponse
<>();
ApiResult
<
Boolean
>
result
=
ApiResult
.
result
(
ApiCode
.
IS_TO_BLACK
);
ApiResult
<
Boolean
>
result
=
ApiResult
.
result
(
ApiCode
.
IS_TO_BLACK
);
...
...
core/src/main/java/com/wecloud/im/controller/ImClientBlacklistController.java
View file @
01e55a5d
...
@@ -64,37 +64,5 @@ public class ImClientBlacklistController extends BaseController {
...
@@ -64,37 +64,5 @@ public class ImClientBlacklistController extends BaseController {
return
imClientBlacklistService
.
getImClientBlacklistPageList
(
imClientBlacklistPageParam
);
return
imClientBlacklistService
.
getImClientBlacklistPageList
(
imClientBlacklistPageParam
);
}
}
// /**
// * 修改黑名单
// */
// @PostMapping("/update")
// @OperationLog(name = "修改黑名单", type = OperationLogType.UPDATE)
// @ApiOperation(value = "修改黑名单")
// public ApiResult<Boolean> updateImClientBlacklist(@Validated(Update.class) @RequestBody ImClientBlacklist imClientBlacklist) throws Exception {
// boolean flag = imClientBlacklistService.updateImClientBlacklist(imClientBlacklist);
// return ApiResult.result(flag);
// }
// /**
// * 获取黑名单详情
// */
// @GetMapping("/info/{id}")
// @OperationLog(name = "黑名单详情", type = OperationLogType.INFO)
// @ApiOperation(value = "黑名单详情")
// public ApiResult<ImClientBlacklistQueryVo> getImClientBlacklist(@PathVariable("id") Long id) throws Exception {
// ImClientBlacklistQueryVo imClientBlacklistQueryVo = imClientBlacklistService.getImClientBlacklistById(id);
// return ApiResult.ok(imClientBlacklistQueryVo);
// }
// /**
// * 黑名单分页列表
// */
// @PostMapping("/getPageList")
// @OperationLog(name = "黑名单分页列表", type = OperationLogType.PAGE)
// @ApiOperation(value = "黑名单分页列表")
// public ApiResult<Paging<ImClientBlacklistQueryVo>> getImClientBlacklistPageList(@Validated @RequestBody ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception {
// Paging<ImClientBlacklistQueryVo> paging = imClientBlacklistService.getImClientBlacklistPageList(imClientBlacklistPageParam);
// return ApiResult.ok(paging);
// }
}
}
core/src/main/java/com/wecloud/im/controller/ImClientController.java
View file @
01e55a5d
...
@@ -160,82 +160,6 @@ public class ImClientController extends BaseController {
...
@@ -160,82 +160,6 @@ public class ImClientController extends BaseController {
}
}
return
ApiResult
.
ok
(
imOnlineStatusVos
);
return
ApiResult
.
ok
(
imOnlineStatusVos
);
}
}
//
// /**
// * 获取用户在线状态(批量)
// *
// * @return true:在线, false 不在线
// */
// @PostMapping("/getOnlineStatus")
// @OperationLog(name = "获取用户在线状态", type = OperationLogType.ADD)
// @ApiOperation(value = "获取用户在线状态")
// ApiResult<ImOnlineStatusVo> getOnlinesStatus(String clientId) {
// // shiro线程中获取当前token
// JwtToken curentJwtToken = JwtUtil.getCurentJwtToken();
//
// // 根据appKey查询appid
// ImApplication imApplication = imApplicationService.getOneByAppKey(curentJwtToken.getAppKey());
//
// boolean onlineStatus = mangerChannelService.getOnlineStatus(imApplication.getAppKey(), clientId);
// ImOnlineStatusVo imOnlineStatusVo = new ImOnlineStatusVo();
// imOnlineStatusVo.setStatus(onlineStatus);
// return ApiResult.ok(imOnlineStatusVo);
// }
// /**
// * 添加终端表
// */
// @PostMapping("/add")
// @OperationLog(name = "添加终端表", type = OperationLogType.ADD)
// @ApiOperation(value = "添加终端表")
// public ApiResult<Boolean> addImClient(@Validated(Add.class) @RequestBody ImClient imClient) throws Exception {
// boolean flag = imClientService.saveImClient(imClient);
// return ApiResult.result(flag);
// }
//
// /**
// * 修改终端表
// */
// @PostMapping("/update")
// @OperationLog(name = "修改终端表", type = OperationLogType.UPDATE)
// @ApiOperation(value = "修改终端表")
// public ApiResult<Boolean> updateImClient(@Validated(Update.class) @RequestBody ImClient imClient) throws Exception {
// boolean flag = imClientService.updateImClient(imClient);
// return ApiResult.result(flag);
// }
//
// /**
// * 删除终端表
// */
// @PostMapping("/delete/{id}")
// @OperationLog(name = "删除终端表", type = OperationLogType.DELETE)
// @ApiOperation(value = "删除终端表")
// public ApiResult<Boolean> deleteImClient(@PathVariable("id") Long id) throws Exception {
// boolean flag = imClientService.deleteImClient(id);
// return ApiResult.result(flag);
// }
//
// /**
// * 获取终端表详情
// */
// @GetMapping("/info/{id}")
// @OperationLog(name = "终端表详情", type = OperationLogType.INFO)
// @ApiOperation(value = "终端表详情")
// public ApiResult<ImClientQueryVo> getImClient(@PathVariable("id") Long id) throws Exception {
// ImClientQueryVo imClientQueryVo = imClientService.getImClientById(id);
// return ApiResult.ok(imClientQueryVo);
// }
//
// /**
// * 终端表分页列表
// */
// @PostMapping("/getPageList")
// @OperationLog(name = "终端表分页列表", type = OperationLogType.PAGE)
// @ApiOperation(value = "终端表分页列表")
// public ApiResult<Paging<ImClientQueryVo>> getImClientPageList(@Validated @RequestBody ImClientPageParam imClientPageParam) throws Exception {
// Paging<ImClientQueryVo> paging = imClientService.getImClientPageList(imClientPageParam);
// return ApiResult.ok(paging);
// }
}
}
core/src/main/java/com/wecloud/im/controller/ImMessageController.java
View file @
01e55a5d
...
@@ -49,7 +49,7 @@ public class ImMessageController extends BaseController {
...
@@ -49,7 +49,7 @@ public class ImMessageController extends BaseController {
@PostMapping
(
"/withdraw"
)
@PostMapping
(
"/withdraw"
)
@ApiOperation
(
value
=
"消息撤回"
,
notes
=
"只能撤回客户端自己发送的消息"
)
@ApiOperation
(
value
=
"消息撤回"
,
notes
=
"只能撤回客户端自己发送的消息"
)
public
ApiResult
<
Boolean
>
withdrawMsg
(
@RequestBody
ImMsgRecall
imMsgRecall
)
throws
Exception
{
public
ApiResult
<
Boolean
>
withdrawMsg
(
@RequestBody
ImMsgRecall
imMsgRecall
)
throws
Exception
{
return
imMessageService
.
withdrawMsg
(
imMsgRecall
);
return
ApiResult
.
ok
(
imMessageService
.
withdrawMsg
(
null
,
imMsgRecall
)
);
}
}
/**
/**
...
@@ -62,9 +62,9 @@ public class ImMessageController extends BaseController {
...
@@ -62,9 +62,9 @@ public class ImMessageController extends BaseController {
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
}
if
(
CollectionUtils
.
isEmpty
(
param
.
getMsgIds
()))
{
if
(
CollectionUtils
.
isEmpty
(
param
.
getMsgIds
()))
{
return
ApiResult
.
fail
(
"请选择要删除"
);
return
ApiResult
.
fail
(
"请选择要删除
的消息id
"
);
}
}
return
imMessageService
.
deleteMsg
(
param
);
return
ApiResult
.
ok
(
imMessageService
.
deleteMsg
(
null
,
param
)
);
}
}
/**
/**
...
@@ -73,7 +73,7 @@ public class ImMessageController extends BaseController {
...
@@ -73,7 +73,7 @@ public class ImMessageController extends BaseController {
@PostMapping
(
"/updateMsgById"
)
@PostMapping
(
"/updateMsgById"
)
@ApiOperation
(
value
=
"修改消息体"
,
notes
=
"只能修改客户端自己发送的消息"
)
@ApiOperation
(
value
=
"修改消息体"
,
notes
=
"只能修改客户端自己发送的消息"
)
public
ApiResult
<
Boolean
>
updateMsgById
(
@RequestBody
ImMsgUpdate
imMsgUpdate
)
throws
Exception
{
public
ApiResult
<
Boolean
>
updateMsgById
(
@RequestBody
ImMsgUpdate
imMsgUpdate
)
throws
Exception
{
return
imMessageService
.
updateMsgById
(
imMsgUpdate
);
return
ApiResult
.
ok
(
imMessageService
.
updateMsgById
(
imMsgUpdate
)
);
}
}
/**
/**
...
@@ -92,7 +92,7 @@ public class ImMessageController extends BaseController {
...
@@ -92,7 +92,7 @@ public class ImMessageController extends BaseController {
@PostMapping
(
"/getHistoryMsg"
)
@PostMapping
(
"/getHistoryMsg"
)
@OperationLog
(
name
=
"查询某个会话历史消息分页列表"
,
type
=
OperationLogType
.
PAGE
)
@OperationLog
(
name
=
"查询某个会话历史消息分页列表"
,
type
=
OperationLogType
.
PAGE
)
@ApiOperation
(
value
=
"查询某个会话历史消息分页列表"
)
@ApiOperation
(
value
=
"查询某个会话历史消息分页列表"
)
public
ApiResult
<
Paging
<
OfflineMsgDto
>>
getHistoryMsg
(
@Validated
@RequestBody
ImHistoryMessagePageParam
imHistoryMessagePageParam
)
throws
Exception
{
public
ApiResult
<
Paging
<
OfflineMsgDto
>>
getHistoryMsg
(
@Validated
@RequestBody
ImHistoryMessagePageParam
imHistoryMessagePageParam
)
{
Paging
<
OfflineMsgDto
>
paging
=
imMessageService
.
getHistoryMsgConversationId
(
imHistoryMessagePageParam
);
Paging
<
OfflineMsgDto
>
paging
=
imMessageService
.
getHistoryMsgConversationId
(
imHistoryMessagePageParam
);
return
ApiResult
.
ok
(
paging
);
return
ApiResult
.
ok
(
paging
);
}
}
...
@@ -103,7 +103,7 @@ public class ImMessageController extends BaseController {
...
@@ -103,7 +103,7 @@ public class ImMessageController extends BaseController {
@PostMapping
(
"/getReaders"
)
@PostMapping
(
"/getReaders"
)
@ApiOperation
(
value
=
"查询某个消息已读client列表和未读client"
)
@ApiOperation
(
value
=
"查询某个消息已读client列表和未读client"
)
public
ApiResult
<
ReaderList
>
getReaders
(
@Validated
@RequestBody
GetReadersParam
param
)
{
public
ApiResult
<
ReaderList
>
getReaders
(
@Validated
@RequestBody
GetReadersParam
param
)
{
ReaderList
readerList
=
imMessageService
.
getReaders
(
param
);
ReaderList
readerList
=
imMessageService
.
getReaders
(
null
,
param
);
return
ApiResult
.
ok
(
readerList
);
return
ApiResult
.
ok
(
readerList
);
}
}
...
...
core/src/main/java/com/wecloud/im/entity/ImClientBlacklist.java
View file @
01e55a5d
...
@@ -40,9 +40,9 @@ public class ImClientBlacklist extends BaseEntity {
...
@@ -40,9 +40,9 @@ public class ImClientBlacklist extends BaseEntity {
private
Long
fkAppid
;
private
Long
fkAppid
;
@ApiModelProperty
(
"拉黑者"
)
@ApiModelProperty
(
"拉黑者"
)
private
Long
fkC
lientIdPrevent
;
private
String
c
lientIdPrevent
;
@ApiModelProperty
(
"被拉黑"
)
@ApiModelProperty
(
"被拉黑"
)
private
Long
fkC
lientIdBePrevent
;
private
String
c
lientIdBePrevent
;
}
}
core/src/main/java/com/wecloud/im/entity/ImConversationMembers.java
View file @
01e55a5d
...
@@ -72,4 +72,10 @@ public class ImConversationMembers extends BaseEntity {
...
@@ -72,4 +72,10 @@ public class ImConversationMembers extends BaseEntity {
@ApiModelProperty
(
"禁言开关 1-未禁言 2-禁言"
)
@ApiModelProperty
(
"禁言开关 1-未禁言 2-禁言"
)
private
Integer
muted
;
private
Integer
muted
;
/**
* 客户方提供的唯一id
*/
@ApiModelProperty
(
"客户方提供的唯一id"
)
private
String
clientId
;
}
}
core/src/main/java/com/wecloud/im/enums/SexEnum.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
enums
;
import
io.geekidea.springbootplus.framework.common.enums.BaseEnum
;
/**
* @Author wenzhida
* @Date 2022/2/23 13:44
* @Description 性别枚举
*/
public
enum
SexEnum
implements
BaseEnum
{
/**
* 1 - 男
*/
MAN
(
1
,
"男"
),
/**
* 2 - 女
*/
WOMAN
(
2
,
"女"
),
/**
* 3 - 未知
*/
UNKNOWN
(
3
,
"未知"
);
SexEnum
(
int
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
private
final
Integer
code
;
private
final
String
desc
;
@Override
public
Integer
getCode
()
{
return
this
.
code
;
}
@Override
public
String
getDesc
()
{
return
this
.
desc
;
}
}
core/src/main/java/com/wecloud/im/friend/controller/ImFriendController.java
View file @
01e55a5d
...
@@ -104,7 +104,7 @@ public class ImFriendController extends BaseController {
...
@@ -104,7 +104,7 @@ public class ImFriendController extends BaseController {
if
(
currentClient
==
null
)
{
if
(
currentClient
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
CLIENT_NOT_FOUNT
,
null
);
return
ApiResult
.
fail
(
ApiCode
.
CLIENT_NOT_FOUNT
,
null
);
}
}
List
<
ImFriendApplyDto
>
friendInfo
=
imFriendService
.
get
Unsure
Friends
(
currentClient
);
List
<
ImFriendApplyDto
>
friendInfo
=
imFriendService
.
get
Apply
Friends
(
currentClient
);
return
ApiResult
.
ok
(
friendInfo
);
return
ApiResult
.
ok
(
friendInfo
);
}
}
...
@@ -158,7 +158,7 @@ public class ImFriendController extends BaseController {
...
@@ -158,7 +158,7 @@ public class ImFriendController extends BaseController {
return
ApiResult
.
fail
(
ApiCode
.
CLIENT_NOT_FOUNT
,
null
);
return
ApiResult
.
fail
(
ApiCode
.
CLIENT_NOT_FOUNT
,
null
);
}
}
Paging
<
ImFriendBaseDto
>
friends
=
imFriendService
.
getImFriendPageList
(
currentClient
.
getId
(),
pageParam
);
Paging
<
ImFriendBaseDto
>
friends
=
imFriendService
.
getImFriendPageList
(
currentClient
.
get
Client
Id
(),
pageParam
);
return
ApiResult
.
ok
(
friends
);
return
ApiResult
.
ok
(
friends
);
}
}
...
...
core/src/main/java/com/wecloud/im/friend/mapper/ImFriendMapper.java
View file @
01e55a5d
...
@@ -19,7 +19,7 @@ import java.util.List;
...
@@ -19,7 +19,7 @@ import java.util.List;
@Repository
@Repository
public
interface
ImFriendMapper
extends
BaseMapper
<
ImFriend
>
{
public
interface
ImFriendMapper
extends
BaseMapper
<
ImFriend
>
{
IPage
<
ImFriendBaseDto
>
getImFriendPageList
(
@Param
(
"page"
)
Page
<
ImFriendBaseDto
>
page
,
@Param
(
"clientId"
)
Long
fkC
lientId
);
IPage
<
ImFriendBaseDto
>
getImFriendPageList
(
@Param
(
"page"
)
Page
<
ImFriendBaseDto
>
page
,
@Param
(
"clientId"
)
String
c
lientId
);
/**
/**
* 获取待验证的好友列表
* 获取待验证的好友列表
...
@@ -27,7 +27,7 @@ public interface ImFriendMapper extends BaseMapper<ImFriend> {
...
@@ -27,7 +27,7 @@ public interface ImFriendMapper extends BaseMapper<ImFriend> {
* @param clientId
* @param clientId
* @return
* @return
*/
*/
IPage
<
ImFriendApplyDto
>
get
Unsure
FriendPageList
(
@Param
(
"page"
)
Page
<
ImFriendApplyDto
>
page
,
@Param
(
"clientId"
)
String
clientId
);
IPage
<
ImFriendApplyDto
>
get
Apply
FriendPageList
(
@Param
(
"page"
)
Page
<
ImFriendApplyDto
>
page
,
@Param
(
"clientId"
)
String
clientId
);
ImFriendApplyDto
getFriendInfo
(
@Param
(
"clientId"
)
String
clientId
,
@Param
(
"friendClientId"
)
String
friendClientId
);
ImFriendApplyDto
getFriendInfo
(
@Param
(
"clientId"
)
String
clientId
,
@Param
(
"friendClientId"
)
String
friendClientId
);
...
...
core/src/main/java/com/wecloud/im/friend/service/ImFriendService.java
View file @
01e55a5d
...
@@ -68,11 +68,11 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
...
@@ -68,11 +68,11 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
* @param currentClient
* @param currentClient
* @return
* @return
*/
*/
public
List
<
ImFriendApplyDto
>
get
Unsure
Friends
(
ImClient
currentClient
)
{
public
List
<
ImFriendApplyDto
>
get
Apply
Friends
(
ImClient
currentClient
)
{
ImFriendPageParam
pageParam
=
new
ImFriendPageParam
();
ImFriendPageParam
pageParam
=
new
ImFriendPageParam
();
pageParam
.
setPageSize
(
1000L
);
pageParam
.
setPageSize
(
1000L
);
Page
<
ImFriendApplyDto
>
page
=
new
PageInfo
(
pageParam
,
OrderItem
.
desc
(
getLambdaColumn
(
ImFriend:
:
getCreateTime
)));
Page
<
ImFriendApplyDto
>
page
=
new
PageInfo
(
pageParam
,
OrderItem
.
desc
(
getLambdaColumn
(
ImFriend:
:
getCreateTime
)));
IPage
<
ImFriendApplyDto
>
pageList
=
imFriendMapper
.
get
Unsure
FriendPageList
(
page
,
currentClient
.
getClientId
());
IPage
<
ImFriendApplyDto
>
pageList
=
imFriendMapper
.
get
Apply
FriendPageList
(
page
,
currentClient
.
getClientId
());
return
pageList
.
getRecords
();
return
pageList
.
getRecords
();
}
}
...
@@ -208,7 +208,7 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
...
@@ -208,7 +208,7 @@ public class ImFriendService extends BaseServiceImpl<ImFriendMapper, ImFriend> {
imFriendMapper
.
batchDeleteFriend
(
currentClient
.
getClientId
(),
currentClient
.
getFkAppid
(),
friendClientIds
);
imFriendMapper
.
batchDeleteFriend
(
currentClient
.
getClientId
(),
currentClient
.
getFkAppid
(),
friendClientIds
);
}
}
public
Paging
<
ImFriendBaseDto
>
getImFriendPageList
(
Lo
ng
currentClientId
,
ImFriendPageParam
pageParam
)
{
public
Paging
<
ImFriendBaseDto
>
getImFriendPageList
(
Stri
ng
currentClientId
,
ImFriendPageParam
pageParam
)
{
Page
<
ImFriendBaseDto
>
page
=
new
PageInfo
(
pageParam
,
OrderItem
.
desc
(
getLambdaColumn
(
ImFriend:
:
getFriendName
)));
Page
<
ImFriendBaseDto
>
page
=
new
PageInfo
(
pageParam
,
OrderItem
.
desc
(
getLambdaColumn
(
ImFriend:
:
getFriendName
)));
IPage
<
ImFriendBaseDto
>
pageList
=
imFriendMapper
.
getImFriendPageList
(
page
,
currentClientId
);
IPage
<
ImFriendBaseDto
>
pageList
=
imFriendMapper
.
getImFriendPageList
(
page
,
currentClientId
);
return
new
Paging
<>(
pageList
);
return
new
Paging
<>(
pageList
);
...
...
core/src/main/java/com/wecloud/im/param/ChatContentVo.java
View file @
01e55a5d
...
@@ -7,16 +7,37 @@ import com.wecloud.utils.JsonUtils;
...
@@ -7,16 +7,37 @@ import com.wecloud.utils.JsonUtils;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
/**
/**
* @Description
TODO
* @Description
聊天内容
* @Author lixiaozhong
* @Author lixiaozhong
* @Date 2022/1/26 6:11 下午
* @Date 2022/1/26 6:11 下午
*/
*/
public
class
ChatContentVo
extends
BaseRequest
{
public
class
ChatContentVo
extends
BaseRequest
{
/**
* 客户端请求id
*/
String
reqId
;
/**
* 推送到通知栏对象
*/
PushVO
push
;
PushVO
push
;
/**
* 会话id
*/
@NotNull
@NotNull
Long
toConversation
;
Long
toConversation
;
/**
* 消息类型
*/
@NotNull
@NotNull
Integer
type
;
Integer
type
;
/**
* 发送文本
*/
String
text
;
String
text
;
public
PushVO
getPush
()
{
public
PushVO
getPush
()
{
...
@@ -51,4 +72,14 @@ public class ChatContentVo extends BaseRequest {
...
@@ -51,4 +72,14 @@ public class ChatContentVo extends BaseRequest {
public
void
setText
(
String
text
)
{
public
void
setText
(
String
text
)
{
this
.
text
=
text
;
this
.
text
=
text
;
}
}
@Override
public
String
getReqId
()
{
return
reqId
;
}
@Override
public
void
setReqId
(
String
reqId
)
{
this
.
reqId
=
reqId
;
}
}
}
core/src/main/java/com/wecloud/im/service/ImClientBlacklistService.java
View file @
01e55a5d
...
@@ -20,11 +20,11 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
...
@@ -20,11 +20,11 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
/**
/**
* 当前客户端是否被拉黑
* 当前客户端是否被拉黑
*
*
* @param currentClient 当前客户端
* @param currentClient
Id
当前客户端
* @param toClient 对方客户端
* @param toClient
Id
对方客户端
* @return
* @return
*/
*/
boolean
isBeBlack
(
Long
currentClient
,
Long
toClient
);
boolean
isBeBlack
(
String
currentClientId
,
String
toClientId
);
/**
/**
* 拉入黑名单
* 拉入黑名单
...
@@ -44,53 +44,6 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
...
@@ -44,53 +44,6 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
*/
*/
ApiResult
<
Boolean
>
removeImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
;
ApiResult
<
Boolean
>
removeImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
;
/**
* 保存
*
* @param imClientBlacklist
* @return
* @throws Exception
*/
boolean
saveImClientBlacklist
(
ImClientBlacklist
imClientBlacklist
)
throws
Exception
;
/**
* 修改
*
* @param imClientBlacklist
* @return
* @throws Exception
*/
boolean
updateImClientBlacklist
(
ImClientBlacklist
imClientBlacklist
)
throws
Exception
;
/**
* 删除
*
* @param id
* @return
* @throws Exception
*/
boolean
deleteImClientBlacklist
(
Long
id
)
throws
Exception
;
/**
* 根据ID获取查询对象
*
* @param id
* @return
* @throws Exception
*/
ImClientBlacklistQueryVo
getImClientBlacklistById
(
Long
id
)
throws
Exception
;
// /**
// * 获取分页对象
// *
// * @param imClientBlacklistPageParam
// * @return
// * @throws Exception
// */
// Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception;
/**
/**
* 获取分页对象
* 获取分页对象
*
*
...
...
core/src/main/java/com/wecloud/im/service/ImMessageService.java
View file @
01e55a5d
package
com
.
wecloud
.
im
.
service
;
package
com
.
wecloud
.
im
.
service
;
import
com.wecloud.dispatch.extend.ActionRequest
;
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.ImMessage
;
import
com.wecloud.im.entity.ImMessage
;
...
@@ -48,18 +49,19 @@ public interface ImMessageService extends BaseService<ImMessage> {
...
@@ -48,18 +49,19 @@ public interface ImMessageService extends BaseService<ImMessage> {
ImMessage
saveImMessage
(
ImClientSimpleDto
client
,
long
messageId
,
ChatContentVo
data
);
ImMessage
saveImMessage
(
ImClientSimpleDto
client
,
long
messageId
,
ChatContentVo
data
);
/**
/**
* 消息撤回 只能撤回客户端自己发送的消息
* 消息撤回
*
* @param imMsgRecall
* @param request
* @return
* @return
*/
*/
ApiResult
<
Boolean
>
withdrawMsg
(
ImMsgRecall
imMsgRecall
);
Boolean
withdrawMsg
(
ActionRequest
request
,
ImMsgRecall
imMsgRecall
);
/**
/**
* 删除消息
* 删除消息
* @param param
* @param param
* @return
* @return
*/
*/
ApiResult
<
Boolean
>
deleteMsg
(
MsgDeleteParam
param
);
Boolean
deleteMsg
(
ActionRequest
request
,
MsgDeleteParam
param
);
/**
/**
* 修改消息体
* 修改消息体
...
@@ -67,7 +69,7 @@ public interface ImMessageService extends BaseService<ImMessage> {
...
@@ -67,7 +69,7 @@ public interface ImMessageService extends BaseService<ImMessage> {
* @param imMsgUpdate
* @param imMsgUpdate
* @return
* @return
*/
*/
ApiResult
<
Boolean
>
updateMsgById
(
ImMsgUpdate
imMsgUpdate
);
Boolean
updateMsgById
(
ImMsgUpdate
imMsgUpdate
);
/**
/**
* 查询某个会话历史消息分页列表
* 查询某个会话历史消息分页列表
...
@@ -76,7 +78,7 @@ public interface ImMessageService extends BaseService<ImMessage> {
...
@@ -76,7 +78,7 @@ public interface ImMessageService extends BaseService<ImMessage> {
* @return
* @return
* @throws Exception
* @throws Exception
*/
*/
Paging
<
OfflineMsgDto
>
getHistoryMsgConversationId
(
ImHistoryMessagePageParam
imHistoryMessagePageParam
)
throws
Exception
;
Paging
<
OfflineMsgDto
>
getHistoryMsgConversationId
(
ImHistoryMessagePageParam
imHistoryMessagePageParam
);
/**
/**
* 查询用户所有离线消息
* 查询用户所有离线消息
...
@@ -127,6 +129,6 @@ public interface ImMessageService extends BaseService<ImMessage> {
...
@@ -127,6 +129,6 @@ public interface ImMessageService extends BaseService<ImMessage> {
* @param param
* @param param
* @return
* @return
*/
*/
ReaderList
getReaders
(
GetReadersParam
param
);
ReaderList
getReaders
(
ActionRequest
request
,
GetReadersParam
param
);
}
}
core/src/main/java/com/wecloud/im/service/impl/ImClientBlacklistServiceImpl.java
View file @
01e55a5d
...
@@ -2,7 +2,6 @@ package com.wecloud.im.service.impl;
...
@@ -2,7 +2,6 @@ package com.wecloud.im.service.impl;
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.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClientBlacklist
;
import
com.wecloud.im.entity.ImClientBlacklist
;
...
@@ -12,12 +11,12 @@ import com.wecloud.im.param.ImClientBlacklistQueryVo;
...
@@ -12,12 +11,12 @@ import com.wecloud.im.param.ImClientBlacklistQueryVo;
import
com.wecloud.im.param.add.ImClientBlacklistUpdate
;
import
com.wecloud.im.param.add.ImClientBlacklistUpdate
;
import
com.wecloud.im.service.ImClientBlacklistService
;
import
com.wecloud.im.service.ImClientBlacklistService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.utils.SnowflakeUtil
;
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.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
;
import
com.wecloud.utils.SnowflakeUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -42,10 +41,10 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
...
@@ -42,10 +41,10 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
private
ImClientService
imClientService
;
private
ImClientService
imClientService
;
@Override
@Override
public
boolean
isBeBlack
(
Long
currentClient
,
Long
toClient
)
{
public
boolean
isBeBlack
(
String
currentClientId
,
String
toClientId
)
{
ImClientBlacklist
one
=
this
.
getOne
(
new
QueryWrapper
<
ImClientBlacklist
>().
lambda
()
ImClientBlacklist
one
=
this
.
getOne
(
new
QueryWrapper
<
ImClientBlacklist
>().
lambda
()
.
eq
(
ImClientBlacklist:
:
get
FkClientIdPrevent
,
currentClient
)
.
eq
(
ImClientBlacklist:
:
get
ClientIdPrevent
,
currentClientId
)
.
eq
(
ImClientBlacklist:
:
get
FkClientIdBePrevent
,
toClient
));
.
eq
(
ImClientBlacklist:
:
get
ClientIdBePrevent
,
toClientId
));
return
one
!=
null
;
return
one
!=
null
;
}
}
...
@@ -67,8 +66,8 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
...
@@ -67,8 +66,8 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
imClientBlacklist
.
setId
(
SnowflakeUtil
.
getId
());
imClientBlacklist
.
setId
(
SnowflakeUtil
.
getId
());
imClientBlacklist
.
setCreateTime
(
new
Date
());
imClientBlacklist
.
setCreateTime
(
new
Date
());
imClientBlacklist
.
setFkAppid
(
client
.
getFkAppid
());
imClientBlacklist
.
setFkAppid
(
client
.
getFkAppid
());
imClientBlacklist
.
set
FkClientIdPrevent
(
client
.
ge
tId
());
imClientBlacklist
.
set
ClientIdPrevent
(
client
.
getClien
tId
());
imClientBlacklist
.
set
FkClientIdBePrevent
(
beBlacker
.
ge
tId
());
imClientBlacklist
.
set
ClientIdBePrevent
(
beBlacker
.
getClien
tId
());
this
.
save
(
imClientBlacklist
);
this
.
save
(
imClientBlacklist
);
return
ApiResult
.
ok
();
return
ApiResult
.
ok
();
...
@@ -91,41 +90,11 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
...
@@ -91,41 +90,11 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
}
}
// 删除
// 删除
this
.
remove
(
new
QueryWrapper
<
ImClientBlacklist
>().
lambda
()
this
.
remove
(
new
QueryWrapper
<
ImClientBlacklist
>().
lambda
()
.
eq
(
ImClientBlacklist:
:
get
FkClientIdPrevent
,
client
.
ge
tId
())
.
eq
(
ImClientBlacklist:
:
get
ClientIdPrevent
,
client
.
getClien
tId
())
.
eq
(
ImClientBlacklist:
:
get
FkClientIdBePrevent
,
beBlacker
.
ge
tId
()));
.
eq
(
ImClientBlacklist:
:
get
ClientIdBePrevent
,
beBlacker
.
getClien
tId
()));
return
ApiResult
.
ok
();
return
ApiResult
.
ok
();
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
saveImClientBlacklist
(
ImClientBlacklist
imClientBlacklist
)
throws
Exception
{
return
super
.
save
(
imClientBlacklist
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
updateImClientBlacklist
(
ImClientBlacklist
imClientBlacklist
)
throws
Exception
{
return
super
.
updateById
(
imClientBlacklist
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
deleteImClientBlacklist
(
Long
id
)
throws
Exception
{
return
super
.
removeById
(
id
);
}
@Override
public
ImClientBlacklistQueryVo
getImClientBlacklistById
(
Long
id
)
throws
Exception
{
return
imClientBlacklistMapper
.
getImClientBlacklistById
(
id
);
}
// @Override
// public Paging<ImClientBlacklistQueryVo> getImClientBlacklistPageList(ImClientBlacklistPageParam imClientBlacklistPageParam) throws Exception {
// Page<ImClientBlacklistQueryVo> page = new PageInfo<>(imClientBlacklistPageParam, OrderItem.desc(getLambdaColumn(ImClientBlacklist::getCreateTime)));
// IPage<ImClientBlacklistQueryVo> iPage = imClientBlacklistMapper.getImClientBlacklistPageList(page, imClientBlacklistPageParam);
// return new Paging<ImClientBlacklistQueryVo>(iPage);
// }
@Override
@Override
public
ApiResult
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
ImClientBlacklistPageParam
imClientBlacklistPageParam
)
throws
Exception
{
public
ApiResult
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
ImClientBlacklistPageParam
imClientBlacklistPageParam
)
throws
Exception
{
...
...
core/src/main/java/com/wecloud/im/service/impl/ImClientServiceImpl.java
View file @
01e55a5d
...
@@ -158,13 +158,18 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
...
@@ -158,13 +158,18 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
if
(
currentClient
==
null
)
{
if
(
currentClient
==
null
)
{
throw
new
BusinessException
(
"当前用户登录信息失效"
);
throw
new
BusinessException
(
"当前用户登录信息失效"
);
}
}
List
<
GetInfoListVo
>
infoList
=
imClientMapper
.
getInfoList
(
currentClient
.
getFkAppid
(),
param
.
getConversationId
(),
Lists
.
newArrayList
(
param
.
getClientId
()));
if
(
CollectionUtils
.
isEmpty
(
infoList
))
{
throw
new
BusinessException
(
"群内未查询到该用户信息"
);
}
ClientInfoVo
clientInfoVo
=
new
ClientInfoVo
();
ClientInfoVo
clientInfoVo
=
new
ClientInfoVo
();
BeanUtils
.
copyProperties
(
infoList
.
get
(
0
),
clientInfoVo
);
if
(
param
.
getConversationId
()
!=
null
)
{
List
<
GetInfoListVo
>
infoList
=
imClientMapper
.
getInfoList
(
currentClient
.
getFkAppid
(),
param
.
getConversationId
(),
Lists
.
newArrayList
(
param
.
getClientId
()));
if
(
CollectionUtils
.
isEmpty
(
infoList
))
{
throw
new
BusinessException
(
"群内未查询到该用户信息"
);
}
BeanUtils
.
copyProperties
(
infoList
.
get
(
0
),
clientInfoVo
);
}
else
{
ImClient
imClient
=
this
.
getCacheImClient
(
currentClient
.
getFkAppid
(),
param
.
getClientId
());
BeanUtils
.
copyProperties
(
imClient
,
clientInfoVo
);
}
clientInfoVo
.
setRelation
(
RelationEnum
.
STRANGER
.
getCode
());
clientInfoVo
.
setRelation
(
RelationEnum
.
STRANGER
.
getCode
());
// 查询该好友与自己关系: 陌生人、好友、被拉黑名单
// 查询该好友与自己关系: 陌生人、好友、被拉黑名单
ImFriend
imFriend
=
imFriendService
.
getByKey
(
currentClient
.
getClientId
(),
clientInfoVo
.
getClientId
());
ImFriend
imFriend
=
imFriendService
.
getByKey
(
currentClient
.
getClientId
(),
clientInfoVo
.
getClientId
());
...
@@ -172,7 +177,7 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
...
@@ -172,7 +177,7 @@ public class ImClientServiceImpl extends BaseServiceImpl<ImClientMapper, ImClien
clientInfoVo
.
setRelation
(
RelationEnum
.
FRIEND
.
getCode
());
clientInfoVo
.
setRelation
(
RelationEnum
.
FRIEND
.
getCode
());
}
}
// 查询是否被拉黑
// 查询是否被拉黑
if
(
imClientBlacklistService
.
isBeBlack
(
currentClient
.
get
Id
(),
clientInfoVo
.
ge
tId
()))
{
if
(
imClientBlacklistService
.
isBeBlack
(
currentClient
.
get
ClientId
(),
clientInfoVo
.
getClien
tId
()))
{
clientInfoVo
.
setRelation
(
RelationEnum
.
BE_BLACK
.
getCode
());
clientInfoVo
.
setRelation
(
RelationEnum
.
BE_BLACK
.
getCode
());
}
}
return
clientInfoVo
;
return
clientInfoVo
;
...
...
core/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
View file @
01e55a5d
This diff is collapsed.
Click to expand it.
core/src/main/java/com/wecloud/im/user/controller/FriendController.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
controller
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.friend.param.ImFriendApplyDto
;
import
com.wecloud.im.friend.param.ImFriendBaseParam
;
import
com.wecloud.im.friend.service.ImFriendService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.user.param.FriendDto
;
import
com.wecloud.im.user.service.FriendService
;
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.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.List
;
/**
* @Author wenzhida
* @Date 2022/2/22 23:09
* @Description 非sdk朋友相关控制器
*/
@Slf4j
@RestController
@RequestMapping
(
"/friends"
)
@Api
(
value
=
"好友相关API"
,
tags
=
{
"好友"
})
public
class
FriendController
extends
BaseController
{
@Autowired
private
ImClientService
imClientService
;
@Autowired
private
FriendService
friendService
;
/**
* 查询好友信息,只有自己的好友才查得到
*/
@PostMapping
(
"/info"
)
@ApiOperation
(
value
=
"查询好友信息,只有自己的好友才查得到"
)
public
ApiResult
<
FriendDto
>
getFriendInfo
(
@RequestBody
ImFriendBaseParam
param
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
return
ApiResult
.
ok
(
friendService
.
getFriendInfo
(
param
));
}
@PostMapping
(
"/getFriends"
)
@ApiOperation
(
value
=
"全量获取好友列表"
)
public
ApiResult
<
List
<
FriendDto
>>
getFriends
()
{
return
ApiResult
.
ok
(
friendService
.
getFriends
());
}
/**
* 好友请求列表,最多只返回1000个
*/
@PostMapping
(
"/unsureFriends"
)
@ApiOperation
(
value
=
"获取好友请求列表,最多只返回1000个"
)
public
ApiResult
<
List
<
FriendDto
>>
getUnsureFriends
()
{
List
<
FriendDto
>
applyFriends
=
friendService
.
getApplyFriends
();
return
ApiResult
.
ok
(
applyFriends
);
}
}
core/src/main/java/com/wecloud/im/user/controller/UserController.java
View file @
01e55a5d
...
@@ -2,8 +2,16 @@ package com.wecloud.im.user.controller;
...
@@ -2,8 +2,16 @@ package com.wecloud.im.user.controller;
import
com.wecloud.im.user.param.ChangePhoneParam
;
import
com.wecloud.im.user.param.ChangePhoneParam
;
import
com.wecloud.im.user.param.CheckPhoneParam
;
import
com.wecloud.im.user.param.CheckPhoneParam
;
import
com.wecloud.im.user.param.FindUserParam
;
import
com.wecloud.im.user.param.GetUserParam
;
import
com.wecloud.im.user.param.LoginSuccessDto
;
import
com.wecloud.im.user.param.LoginSuccessDto
;
import
com.wecloud.im.user.param.ModifyHeadPortraitParam
;
import
com.wecloud.im.user.param.ModifyLandouParam
;
import
com.wecloud.im.user.param.ModifyNicknameParam
;
import
com.wecloud.im.user.param.ModifySexParam
;
import
com.wecloud.im.user.param.RegisterSuccessDto
;
import
com.wecloud.im.user.param.ResetPasswordParam
;
import
com.wecloud.im.user.param.ResetPasswordParam
;
import
com.wecloud.im.user.param.UserBaseDto
;
import
com.wecloud.im.user.param.UserLoginParam
;
import
com.wecloud.im.user.param.UserLoginParam
;
import
com.wecloud.im.user.param.UserRegisterParam
;
import
com.wecloud.im.user.param.UserRegisterParam
;
import
com.wecloud.im.user.service.UserService
;
import
com.wecloud.im.user.service.UserService
;
...
@@ -45,12 +53,12 @@ public class UserController extends BaseController {
...
@@ -45,12 +53,12 @@ public class UserController extends BaseController {
@PostMapping
(
"/register"
)
@PostMapping
(
"/register"
)
@ApiOperation
(
value
=
"用户注册接口"
)
@ApiOperation
(
value
=
"用户注册接口"
)
public
ApiResult
<
Login
SuccessDto
>
register
(
@RequestBody
@Validated
UserRegisterParam
param
)
{
public
ApiResult
<
Register
SuccessDto
>
register
(
@RequestBody
@Validated
UserRegisterParam
param
)
{
if
(
param
==
null
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
}
String
userId
=
userService
.
registerUser
(
param
);
String
userId
=
userService
.
registerUser
(
param
);
return
ApiResult
.
ok
(
new
Login
SuccessDto
(
userId
));
return
ApiResult
.
ok
(
new
Register
SuccessDto
(
userId
));
}
}
@PostMapping
(
"/login"
)
@PostMapping
(
"/login"
)
...
@@ -59,8 +67,8 @@ public class UserController extends BaseController {
...
@@ -59,8 +67,8 @@ public class UserController extends BaseController {
if
(
param
==
null
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
}
String
userId
=
userService
.
loginUser
(
param
);
LoginSuccessDto
loginUser
=
userService
.
loginUser
(
param
);
return
ApiResult
.
ok
(
new
LoginSuccessDto
(
userId
)
);
return
ApiResult
.
ok
(
loginUser
);
}
}
@PostMapping
(
"/resetPassword"
)
@PostMapping
(
"/resetPassword"
)
...
@@ -83,5 +91,74 @@ public class UserController extends BaseController {
...
@@ -83,5 +91,74 @@ public class UserController extends BaseController {
return
ApiResult
.
ok
();
return
ApiResult
.
ok
();
}
}
@PostMapping
(
"/myInfo"
)
@ApiOperation
(
value
=
"查找我的信息"
)
public
ApiResult
<
UserBaseDto
>
myInfo
()
{
UserBaseDto
user
=
userService
.
myInfo
();
return
ApiResult
.
ok
(
user
);
}
@PostMapping
(
"/findUser"
)
@ApiOperation
(
value
=
"查找用户"
)
public
ApiResult
<
UserBaseDto
>
findUser
(
@RequestBody
@Validated
FindUserParam
param
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
UserBaseDto
user
=
userService
.
findUser
(
param
);
return
ApiResult
.
ok
(
user
);
}
@PostMapping
(
"/getUserByUserId"
)
@ApiOperation
(
value
=
"根据用户id查找用户信息"
)
public
ApiResult
<
UserBaseDto
>
getUserByUserId
(
@RequestBody
@Validated
GetUserParam
param
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
UserBaseDto
user
=
userService
.
getUserByUserId
(
param
);
return
ApiResult
.
ok
(
user
);
}
@PostMapping
(
"/modifyHeadPortrait"
)
@ApiOperation
(
value
=
"修改头像"
)
public
ApiResult
<
Boolean
>
modifyHeadPortrait
(
@RequestBody
@Validated
ModifyHeadPortraitParam
param
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
userService
.
modifyHeadPortrait
(
param
);
return
ApiResult
.
ok
();
}
@PostMapping
(
"/modifyNickname"
)
@ApiOperation
(
value
=
"修改昵称"
)
public
ApiResult
<
Boolean
>
modifyNickname
(
@RequestBody
@Validated
ModifyNicknameParam
param
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
userService
.
modifyNickname
(
param
);
return
ApiResult
.
ok
();
}
@PostMapping
(
"/modifyLandouNo"
)
@ApiOperation
(
value
=
"修改蓝豆号"
)
public
ApiResult
<
Boolean
>
modifyLandouNo
(
@RequestBody
@Validated
ModifyLandouParam
param
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
userService
.
modifyLandouNo
(
param
);
return
ApiResult
.
ok
();
}
@PostMapping
(
"/modifySex"
)
@ApiOperation
(
value
=
"修改性别"
)
public
ApiResult
<
Boolean
>
modifySex
(
@RequestBody
@Validated
ModifySexParam
param
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
userService
.
modifySex
(
param
);
return
ApiResult
.
ok
();
}
}
}
core/src/main/java/com/wecloud/im/user/controller/VerifyCodeController.java
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
controller
;
package
com
.
wecloud
.
im
.
user
.
controller
;
import
com.wecloud.im.enums.FriendStateEnum
;
import
com.wecloud.im.enums.VerifySceneEnum
;
import
com.wecloud.im.enums.VerifySceneEnum
;
import
com.wecloud.im.user.constant.RedisKeyPrefixConstant
;
import
com.wecloud.im.user.constant.RedisKeyPrefixConstant
;
import
com.wecloud.im.user.param.SendVerifyCodeParam
;
import
com.wecloud.im.user.param.SendVerifyCodeParam
;
...
@@ -47,7 +46,7 @@ public class VerifyCodeController extends BaseController {
...
@@ -47,7 +46,7 @@ public class VerifyCodeController extends BaseController {
if
(
BaseEnum
.
valueOf
(
VerifySceneEnum
.
class
,
param
.
getVerifyScene
())
==
null
)
{
if
(
BaseEnum
.
valueOf
(
VerifySceneEnum
.
class
,
param
.
getVerifyScene
())
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
}
// String verifyCode =
this
.generateVerifyCode();
// String verifyCode =
RandomUtil
.generateVerifyCode();
String
verifyCode
=
"666666"
;
String
verifyCode
=
"666666"
;
String
key
=
new
StringBuilder
(
RedisKeyPrefixConstant
.
VERIFY_CODE_PREFIX
).
append
(
param
.
getVerifyScene
()).
append
(
param
.
getPhone
()).
toString
();
String
key
=
new
StringBuilder
(
RedisKeyPrefixConstant
.
VERIFY_CODE_PREFIX
).
append
(
param
.
getVerifyScene
()).
append
(
param
.
getPhone
()).
toString
();
redisUtils
.
addKey
(
key
,
verifyCode
,
Duration
.
ofSeconds
(
3
*
60
));
redisUtils
.
addKey
(
key
,
verifyCode
,
Duration
.
ofSeconds
(
3
*
60
));
...
@@ -55,15 +54,6 @@ public class VerifyCodeController extends BaseController {
...
@@ -55,15 +54,6 @@ public class VerifyCodeController extends BaseController {
return
ApiResult
.
ok
();
return
ApiResult
.
ok
();
}
}
/**
* 生成短信验证码
* @return
*/
private
String
generateVerifyCode
()
{
Integer
verifyCode
=
(
int
)
((
Math
.
random
()
*
9
+
1
)
*
100000
);
return
verifyCode
.
toString
();
}
}
}
core/src/main/java/com/wecloud/im/user/entity/User.java
View file @
01e55a5d
...
@@ -32,6 +32,9 @@ public class User extends BaseEntity {
...
@@ -32,6 +32,9 @@ public class User extends BaseEntity {
@TableId
(
value
=
"id"
,
type
=
IdType
.
INPUT
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
INPUT
)
private
Long
id
;
private
Long
id
;
@ApiModelProperty
(
"蓝豆号"
)
private
String
idNumber
;
@ApiModelProperty
(
"手机号码"
)
@ApiModelProperty
(
"手机号码"
)
private
String
phone
;
private
String
phone
;
...
...
core/src/main/java/com/wecloud/im/user/param/FindUserParam.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/23 11:14
* @Description 查找用户入参
*/
@Data
public
class
FindUserParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
5511914212981726139L
;
/**
* 查询字符串
*/
@NotNull
(
message
=
"查询字符串不可为空"
)
@ApiModelProperty
(
"查询字符串"
)
private
String
queryStr
;
}
core/src/main/java/com/wecloud/im/user/param/FriendDto.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
com.wecloud.im.friend.param.ImFriendBaseDto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/22 23:20
* @Description 好友出参
*/
@Data
public
class
FriendDto
extends
ImFriendBaseDto
{
private
static
final
long
serialVersionUID
=
5580006330057637138L
;
@ApiModelProperty
(
"蓝豆号"
)
private
String
idNumber
;
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
/**
* 头像路径url
*/
@ApiModelProperty
(
"头像路径url"
)
private
String
headPortrait
;
}
core/src/main/java/com/wecloud/im/user/param/GetUserParam.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/23 11:14
* @Description 查找用户入参
*/
@Data
public
class
GetUserParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
5511914212981726139L
;
/**
* userId
*/
@NotNull
(
message
=
"userId不可为空"
)
@ApiModelProperty
(
"userId"
)
private
String
userId
;
}
core/src/main/java/com/wecloud/im/user/param/LoginSuccessDto.java
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.io.Serializable
;
/**
/**
...
@@ -13,7 +11,6 @@ import java.io.Serializable;
...
@@ -13,7 +11,6 @@ import java.io.Serializable;
* @Description 用户登录成功dto
* @Description 用户登录成功dto
*/
*/
@Data
@Data
@AllArgsConstructor
public
class
LoginSuccessDto
implements
Serializable
{
public
class
LoginSuccessDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
7813920366165375711L
;
private
static
final
long
serialVersionUID
=
7813920366165375711L
;
...
@@ -23,5 +20,23 @@ public class LoginSuccessDto implements Serializable {
...
@@ -23,5 +20,23 @@ public class LoginSuccessDto implements Serializable {
*/
*/
@ApiModelProperty
(
"userId"
)
@ApiModelProperty
(
"userId"
)
private
String
userId
;
private
String
userId
;
@ApiModelProperty
(
"蓝豆号"
)
private
String
idNumber
;
@ApiModelProperty
(
"手机号码"
)
private
String
phone
;
@ApiModelProperty
(
"邮箱号码"
)
private
String
email
;
@ApiModelProperty
(
"性别"
)
private
Integer
sex
;
@ApiModelProperty
(
"头像"
)
private
String
headPortrait
;
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
}
}
core/src/main/java/com/wecloud/im/user/param/ModifyHeadPortraitParam.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/23 15:20
* @Description 修改头像入参
*/
@Data
public
class
ModifyHeadPortraitParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
5394800929946659395L
;
/**
* userId
*/
@NotNull
(
message
=
"userId不可为空"
)
@ApiModelProperty
(
"userId"
)
private
Long
userId
;
/**
* 头像url
*/
@NotNull
(
message
=
"头像url不能为空"
)
@ApiModelProperty
(
"头像url"
)
private
String
headPortrait
;
}
core/src/main/java/com/wecloud/im/user/param/ModifyLandouParam.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/23 15:20
* @Description 修改昵称入参
*/
@Data
public
class
ModifyLandouParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
4266385433321572881L
;
/**
* userId
*/
@NotNull
(
message
=
"userId不可为空"
)
@ApiModelProperty
(
"userId"
)
private
Long
userId
;
/**
* 蓝豆号
*/
@NotNull
(
message
=
"蓝豆号不能为空"
)
@ApiModelProperty
(
"蓝豆号"
)
private
String
landouNo
;
}
core/src/main/java/com/wecloud/im/user/param/ModifyNicknameParam.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/23 15:20
* @Description 修改昵称入参
*/
@Data
public
class
ModifyNicknameParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
4266385433321572881L
;
/**
* userId
*/
@NotNull
(
message
=
"userId不可为空"
)
@ApiModelProperty
(
"userId"
)
private
Long
userId
;
/**
* 昵称
*/
@NotNull
(
message
=
"昵称不能为空"
)
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
}
core/src/main/java/com/wecloud/im/user/param/ModifySexParam.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/23 15:20
* @Description 修改性别入参
*/
@Data
public
class
ModifySexParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3340451953818782194L
;
/**
* userId
*/
@NotNull
(
message
=
"userId不可为空"
)
@ApiModelProperty
(
"userId"
)
private
Long
userId
;
/**
* 性别
* @see com.wecloud.im.enums.SexEnum
*/
@NotNull
(
message
=
"性别不可为空不可为空"
)
@ApiModelProperty
(
"性别 1-男 2-女 3-未知"
)
private
Integer
sex
;
}
core/src/main/java/com/wecloud/im/user/param/RegisterSuccessDto.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/24 11:26
* @Description 用户注册成功dto
*/
@Data
@AllArgsConstructor
public
class
RegisterSuccessDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
7813920366165375711L
;
/**
* userId
*/
@ApiModelProperty
(
"userId"
)
private
String
userId
;
}
core/src/main/java/com/wecloud/im/user/param/UserBaseDto.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
param
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Author wenzhida
* @Date 2022/2/23 11:27
* @Description 用户基本信息
*/
@Data
public
class
UserBaseDto
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
6070534424163538590L
;
/**
* userId
*/
@ApiModelProperty
(
"userId"
)
private
String
userId
;
@ApiModelProperty
(
"蓝豆号"
)
private
String
idNumber
;
/**
* 性别
* @see com.wecloud.im.enums.SexEnum
*/
@ApiModelProperty
(
"性别 1-男 2-女 3-未知"
)
private
Integer
sex
;
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
/**
* 头像路径url
*/
@ApiModelProperty
(
"头像路径url"
)
private
String
headPortrait
;
/**
* 与我关系
* @see com.wecloud.im.enums.RelationEnum
*/
@ApiModelProperty
(
"与我关系 1-陌生人 2-好友 3-被我拉黑"
)
private
Integer
relation
;
}
core/src/main/java/com/wecloud/im/user/service/FriendService.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
service
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.friend.param.ImFriendApplyDto
;
import
com.wecloud.im.friend.param.ImFriendBaseDto
;
import
com.wecloud.im.friend.param.ImFriendBaseParam
;
import
com.wecloud.im.friend.param.ImFriendPageParam
;
import
com.wecloud.im.friend.service.ImFriendService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.user.entity.User
;
import
com.wecloud.im.user.mapper.UserMapper
;
import
com.wecloud.im.user.param.FriendDto
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* @Author wenzhida
* @Date 2022/2/21 17:05
* @Description 用户服务接口
*/
@Service
public
class
FriendService
extends
BaseServiceImpl
<
UserMapper
,
User
>
{
@Autowired
private
ImClientService
imClientService
;
@Autowired
private
ImFriendService
imFriendService
;
@Autowired
private
UserService
userService
;
public
FriendDto
getFriendInfo
(
ImFriendBaseParam
param
)
{
ImClient
currentClient
=
imClientService
.
getCurentClient
();
if
(
currentClient
==
null
)
{
throw
new
BusinessException
(
"当前登录用户未找到"
);
}
ImClient
friendClient
=
imClientService
.
getCacheImClient
(
currentClient
.
getFkAppid
(),
param
.
getFriendClientId
());
if
(
friendClient
==
null
)
{
throw
new
BusinessException
(
"朋友信息未找到"
);
}
ImFriendApplyDto
friendInfo
=
imFriendService
.
getFriendInfo
(
currentClient
.
getClientId
(),
friendClient
.
getClientId
());
if
(
friendInfo
==
null
)
{
throw
new
BusinessException
(
"朋友信息未找到"
);
}
User
user
=
userService
.
getOne
(
new
QueryWrapper
<
User
>().
lambda
()
.
in
(
User:
:
getId
,
friendInfo
.
getFriendClientId
())
);
FriendDto
friendDto
=
new
FriendDto
();
BeanUtils
.
copyProperties
(
friendInfo
,
friendDto
);
if
(
user
!=
null
)
{
friendDto
.
setIdNumber
(
user
.
getIdNumber
());
friendDto
.
setHeadPortrait
(
user
.
getHeadPortrait
());
friendDto
.
setNickname
(
user
.
getNickname
());
}
return
friendDto
;
}
/**
* 全量获取好友列表
*/
public
List
<
FriendDto
>
getFriends
()
{
ImClient
currentClient
=
imClientService
.
getCurentClient
();
if
(
currentClient
==
null
)
{
throw
new
BusinessException
(
"当前登录用户未找到"
);
}
ImFriendPageParam
pageParam
=
new
ImFriendPageParam
();
pageParam
.
setPageIndex
(
1L
);
pageParam
.
setPageSize
(
Long
.
MAX_VALUE
);
Paging
<
ImFriendBaseDto
>
pageFriends
=
imFriendService
.
getImFriendPageList
(
currentClient
.
getClientId
(),
pageParam
);
List
<
FriendDto
>
friendDtoList
=
Lists
.
newArrayList
();
if
(
pageFriends
==
null
||
CollectionUtils
.
isEmpty
(
pageFriends
.
getRecords
()))
{
return
friendDtoList
;
}
List
<
String
>
friendClientIds
=
pageFriends
.
getRecords
().
stream
().
map
(
ImFriendBaseDto:
:
getFriendClientId
).
collect
(
Collectors
.
toList
());
List
<
User
>
userList
=
userService
.
list
(
new
QueryWrapper
<
User
>().
lambda
()
.
in
(
User:
:
getId
,
friendClientIds
)
);
if
(
CollectionUtils
.
isEmpty
(
userList
))
{
return
friendDtoList
;
}
Map
<
String
,
User
>
userMap
=
Maps
.
newHashMap
();
for
(
User
user
:
userList
)
{
userMap
.
put
(
user
.
getId
().
toString
(),
user
);
}
for
(
ImFriendBaseDto
record
:
pageFriends
.
getRecords
())
{
FriendDto
friendDto
=
new
FriendDto
();
BeanUtils
.
copyProperties
(
record
,
friendDto
);
User
user
=
userMap
.
get
(
record
.
getFriendClientId
());
if
(
user
!=
null
)
{
friendDto
.
setIdNumber
(
user
.
getIdNumber
());
friendDto
.
setHeadPortrait
(
user
.
getHeadPortrait
());
friendDto
.
setNickname
(
user
.
getNickname
());
}
friendDtoList
.
add
(
friendDto
);
}
return
friendDtoList
;
}
/**
* 获取好友列表申请
*/
public
List
<
FriendDto
>
getApplyFriends
()
{
ImClient
currentClient
=
imClientService
.
getCurentClient
();
if
(
currentClient
==
null
)
{
throw
new
BusinessException
(
"当前登录用户未找到"
);
}
List
<
ImFriendApplyDto
>
friendInfos
=
imFriendService
.
getApplyFriends
(
currentClient
);
List
<
FriendDto
>
friendDtoList
=
Lists
.
newArrayList
();
if
(
CollectionUtils
.
isEmpty
(
friendInfos
))
{
return
friendDtoList
;
}
List
<
String
>
friendClientIds
=
friendInfos
.
stream
().
map
(
ImFriendBaseDto:
:
getFriendClientId
).
collect
(
Collectors
.
toList
());
List
<
User
>
userList
=
userService
.
list
(
new
QueryWrapper
<
User
>().
lambda
()
.
in
(
User:
:
getId
,
friendClientIds
)
);
if
(
CollectionUtils
.
isEmpty
(
userList
))
{
return
friendDtoList
;
}
Map
<
String
,
User
>
userMap
=
Maps
.
newHashMap
();
for
(
User
user
:
userList
)
{
userMap
.
put
(
user
.
getId
().
toString
(),
user
);
}
for
(
ImFriendApplyDto
record
:
friendInfos
)
{
FriendDto
friendDto
=
new
FriendDto
();
BeanUtils
.
copyProperties
(
record
,
friendDto
);
User
user
=
userMap
.
get
(
record
.
getFriendClientId
());
if
(
user
!=
null
)
{
friendDto
.
setIdNumber
(
user
.
getIdNumber
());
friendDto
.
setHeadPortrait
(
user
.
getHeadPortrait
());
friendDto
.
setNickname
(
user
.
getNickname
());
}
friendDtoList
.
add
(
friendDto
);
}
return
friendDtoList
;
}
}
core/src/main/java/com/wecloud/im/user/service/UserService.java
View file @
01e55a5d
package
com
.
wecloud
.
im
.
user
.
service
;
package
com
.
wecloud
.
im
.
user
.
service
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.google.protobuf.ServiceException
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.enums.FriendStateEnum
;
import
com.wecloud.im.enums.RelationEnum
;
import
com.wecloud.im.enums.VerifySceneEnum
;
import
com.wecloud.im.enums.VerifySceneEnum
;
import
com.wecloud.im.friend.entity.ImFriend
;
import
com.wecloud.im.friend.service.ImFriendService
;
import
com.wecloud.im.service.ImClientBlacklistService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.user.constant.RedisKeyPrefixConstant
;
import
com.wecloud.im.user.constant.RedisKeyPrefixConstant
;
import
com.wecloud.im.user.entity.User
;
import
com.wecloud.im.user.entity.User
;
import
com.wecloud.im.user.mapper.UserMapper
;
import
com.wecloud.im.user.mapper.UserMapper
;
import
com.wecloud.im.user.param.ChangePhoneParam
;
import
com.wecloud.im.user.param.ChangePhoneParam
;
import
com.wecloud.im.user.param.CheckPhoneParam
;
import
com.wecloud.im.user.param.CheckPhoneParam
;
import
com.wecloud.im.user.param.FindUserParam
;
import
com.wecloud.im.user.param.GetUserParam
;
import
com.wecloud.im.user.param.LoginSuccessDto
;
import
com.wecloud.im.user.param.ModifyHeadPortraitParam
;
import
com.wecloud.im.user.param.ModifyLandouParam
;
import
com.wecloud.im.user.param.ModifyNicknameParam
;
import
com.wecloud.im.user.param.ModifySexParam
;
import
com.wecloud.im.user.param.ResetPasswordParam
;
import
com.wecloud.im.user.param.ResetPasswordParam
;
import
com.wecloud.im.user.param.UserBaseDto
;
import
com.wecloud.im.user.param.UserLoginParam
;
import
com.wecloud.im.user.param.UserLoginParam
;
import
com.wecloud.im.user.param.UserRegisterParam
;
import
com.wecloud.im.user.param.UserRegisterParam
;
import
com.wecloud.im.ws.utils.RedisUtils
;
import
com.wecloud.im.ws.utils.RedisUtils
;
import
com.wecloud.utils.AesUtil
;
import
com.wecloud.utils.AesUtil
;
import
com.wecloud.utils.RandomUtil
;
import
com.wecloud.utils.SnowflakeUtil
;
import
com.wecloud.utils.SnowflakeUtil
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
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
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -34,6 +49,15 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
...
@@ -34,6 +49,15 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
@Autowired
@Autowired
private
RedisUtils
redisUtils
;
private
RedisUtils
redisUtils
;
@Autowired
private
ImClientService
imClientService
;
@Autowired
private
ImFriendService
imFriendService
;
@Autowired
private
ImClientBlacklistService
imClientBlacklistService
;
/**
/**
* 校验手机号码是否可使用
* 校验手机号码是否可使用
* @param param
* @param param
...
@@ -61,6 +85,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
...
@@ -61,6 +85,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
}
}
User
user
=
new
User
();
User
user
=
new
User
();
user
.
setId
(
SnowflakeUtil
.
getId
());
user
.
setId
(
SnowflakeUtil
.
getId
());
user
.
setIdNumber
(
this
.
getLandouNo
());
user
.
setPhone
(
param
.
getPhone
());
user
.
setPhone
(
param
.
getPhone
());
user
.
setPassword
(
AesUtil
.
encrypt
(
param
.
getPassword
()));
user
.
setPassword
(
AesUtil
.
encrypt
(
param
.
getPassword
()));
user
.
setCreateTime
(
new
Date
());
user
.
setCreateTime
(
new
Date
());
...
@@ -73,13 +98,19 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
...
@@ -73,13 +98,19 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
* 用户登录
* 用户登录
* @param param
* @param param
*/
*/
public
String
loginUser
(
UserLoginParam
param
)
{
public
LoginSuccessDto
loginUser
(
UserLoginParam
param
)
{
User
user
=
this
.
getOne
(
new
QueryWrapper
<
User
>().
lambda
()
User
user
=
this
.
getOne
(
new
QueryWrapper
<
User
>().
lambda
()
.
eq
(
User:
:
getPhone
,
param
.
getPhone
()));
.
eq
(
User:
:
getPhone
,
param
.
getPhone
()));
if
(
user
==
null
)
{
throw
new
BusinessException
(
"该手机号码还未注册"
);
}
if
(!
param
.
getPassword
().
equals
(
AesUtil
.
decrypt
(
user
.
getPassword
())))
{
if
(!
param
.
getPassword
().
equals
(
AesUtil
.
decrypt
(
user
.
getPassword
())))
{
throw
new
BusinessException
(
"账户或密码错误"
);
throw
new
BusinessException
(
"账户或密码错误"
);
}
}
return
String
.
valueOf
(
user
.
getId
());
LoginSuccessDto
loginSuccessDto
=
new
LoginSuccessDto
();
BeanUtils
.
copyProperties
(
user
,
loginSuccessDto
);
loginSuccessDto
.
setUserId
(
user
.
getId
().
toString
());
return
loginSuccessDto
;
}
}
/**
/**
...
@@ -124,11 +155,148 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
...
@@ -124,11 +155,148 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
}
}
/**
/**
* 查找本人信息
*/
public
UserBaseDto
myInfo
()
{
ImClient
currentClient
=
imClientService
.
getCurentClient
();
User
user
=
this
.
getOne
(
new
QueryWrapper
<
User
>().
lambda
()
.
eq
(
User:
:
getId
,
currentClient
.
getClientId
()));
if
(
user
==
null
)
{
throw
new
BusinessException
(
"账号不存在"
);
}
UserBaseDto
userBaseDto
=
new
UserBaseDto
();
BeanUtils
.
copyProperties
(
user
,
userBaseDto
);
userBaseDto
.
setUserId
(
user
.
getId
().
toString
());
return
userBaseDto
;
}
/**
* 查找用户
* @param param
*/
public
UserBaseDto
findUser
(
FindUserParam
param
)
{
User
user
=
this
.
getOne
(
new
QueryWrapper
<
User
>().
lambda
()
.
eq
(
User:
:
getPhone
,
param
.
getQueryStr
()));
if
(
user
==
null
)
{
throw
new
BusinessException
(
"账号不存在"
);
}
UserBaseDto
userBaseDto
=
new
UserBaseDto
();
BeanUtils
.
copyProperties
(
user
,
userBaseDto
);
userBaseDto
.
setUserId
(
user
.
getId
().
toString
());
userBaseDto
.
setRelation
(
RelationEnum
.
STRANGER
.
getCode
());
// 查询该好友与自己关系: 陌生人、好友、被拉黑名单
ImClient
currentClient
=
imClientService
.
getCurentClient
();
ImFriend
imFriend
=
imFriendService
.
getByKey
(
currentClient
.
getClientId
(),
user
.
getId
().
toString
());
if
(
imFriend
!=
null
&&
FriendStateEnum
.
CONFORM
.
getCode
().
equals
(
imFriend
.
getState
()))
{
userBaseDto
.
setRelation
(
RelationEnum
.
FRIEND
.
getCode
());
}
// 查询是否被拉黑
if
(
imClientBlacklistService
.
isBeBlack
(
currentClient
.
getClientId
(),
user
.
getId
().
toString
()))
{
userBaseDto
.
setRelation
(
RelationEnum
.
BE_BLACK
.
getCode
());
}
return
userBaseDto
;
}
/**
* 查找用户
* @param param
*/
public
UserBaseDto
getUserByUserId
(
GetUserParam
param
)
{
User
user
=
this
.
getOne
(
new
QueryWrapper
<
User
>().
lambda
()
.
eq
(
User:
:
getId
,
param
.
getUserId
()));
if
(
user
==
null
)
{
throw
new
BusinessException
(
"账号不存在"
);
}
UserBaseDto
userBaseDto
=
new
UserBaseDto
();
BeanUtils
.
copyProperties
(
user
,
userBaseDto
);
userBaseDto
.
setUserId
(
user
.
getId
().
toString
());
userBaseDto
.
setRelation
(
RelationEnum
.
STRANGER
.
getCode
());
// 查询该好友与自己关系: 陌生人、好友、被拉黑名单
ImClient
currentClient
=
imClientService
.
getCurentClient
();
ImFriend
imFriend
=
imFriendService
.
getByKey
(
currentClient
.
getClientId
(),
user
.
getId
().
toString
());
if
(
imFriend
!=
null
&&
FriendStateEnum
.
CONFORM
.
getCode
().
equals
(
imFriend
.
getState
()))
{
userBaseDto
.
setRelation
(
RelationEnum
.
FRIEND
.
getCode
());
}
// 查询是否被拉黑
if
(
imClientBlacklistService
.
isBeBlack
(
currentClient
.
getClientId
(),
user
.
getId
().
toString
()))
{
userBaseDto
.
setRelation
(
RelationEnum
.
BE_BLACK
.
getCode
());
}
return
userBaseDto
;
}
/**
* 修改头像
* @param param
*/
public
void
modifyHeadPortrait
(
ModifyHeadPortraitParam
param
)
{
User
user
=
this
.
getById
(
param
.
getUserId
());
if
(
user
==
null
)
{
throw
new
BusinessException
(
"查无用户"
);
}
user
.
setHeadPortrait
(
param
.
getHeadPortrait
());
this
.
updateById
(
user
);
}
/**
* 修改昵称
* @param param
*/
public
void
modifyNickname
(
ModifyNicknameParam
param
)
{
User
user
=
this
.
getById
(
param
.
getUserId
());
if
(
user
==
null
)
{
throw
new
BusinessException
(
"查无用户"
);
}
user
.
setNickname
(
param
.
getNickname
());
this
.
updateById
(
user
);
}
/**
* 修改昵称
* @param param
*/
public
void
modifyLandouNo
(
ModifyLandouParam
param
)
{
User
user
=
this
.
getById
(
param
.
getUserId
());
if
(
user
==
null
)
{
throw
new
BusinessException
(
"查无用户"
);
}
User
userByLando
=
this
.
getByLandouNo
(
param
.
getLandouNo
());
if
(
userByLando
==
null
)
{
throw
new
BusinessException
(
"该蓝豆号已被使用,请更换"
);
}
user
.
setIdNumber
(
param
.
getLandouNo
());
this
.
updateById
(
user
);
}
/**
* 修改性别
* @param param
*/
public
void
modifySex
(
ModifySexParam
param
)
{
User
user
=
this
.
getById
(
param
.
getUserId
());
if
(
user
==
null
)
{
throw
new
BusinessException
(
"查无用户"
);
}
user
.
setSex
(
param
.
getSex
());
this
.
updateById
(
user
);
}
/**
* 根据蓝豆号获取用户
* @param landouNo
* @return
*/
public
User
getByLandouNo
(
String
landouNo
)
{
return
this
.
getOne
(
new
QueryWrapper
<
User
>().
lambda
()
.
eq
(
User:
:
getIdNumber
,
landouNo
));
}
/**
* 校验短信验证码
* 校验短信验证码
* @param verifyCode
* @param verifyCode
* @param redisKey
* @param redisKey
*/
*/
p
ublic
void
verifySMSVerifyCode
(
String
verifyCode
,
String
redisKey
)
{
p
rivate
void
verifySMSVerifyCode
(
String
verifyCode
,
String
redisKey
)
{
String
verifyCodeInRedis
=
redisUtils
.
getKey
(
redisKey
);
String
verifyCodeInRedis
=
redisUtils
.
getKey
(
redisKey
);
if
(
verifyCodeInRedis
==
null
||
!
verifyCodeInRedis
.
equals
(
verifyCode
))
{
if
(
verifyCodeInRedis
==
null
||
!
verifyCodeInRedis
.
equals
(
verifyCode
))
{
throw
new
BusinessException
(
"短信验证码不正确"
);
throw
new
BusinessException
(
"短信验证码不正确"
);
...
@@ -136,4 +304,20 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
...
@@ -136,4 +304,20 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
redisUtils
.
delKey
(
redisKey
);
redisUtils
.
delKey
(
redisKey
);
}
}
/**
* 获取可使用蓝豆号
* @return
*/
private
String
getLandouNo
()
{
String
landouNo
;
do
{
landouNo
=
RandomUtil
.
generateRandomStr
(
8
);
User
user
=
this
.
getByLandouNo
(
landouNo
);
if
(
user
==
null
)
{
break
;
}
}
while
(
true
);
return
landouNo
;
}
}
}
core/src/main/java/com/wecloud/rtc/service/impl/RtcServiceImpl.java
View file @
01e55a5d
...
@@ -142,16 +142,13 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
...
@@ -142,16 +142,13 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
@Override
@Override
public
ApiResult
<
Boolean
>
reject
(
RejectRtcChannelParam
rejectRtcChannelParam
)
{
public
ApiResult
<
Boolean
>
reject
(
RejectRtcChannelParam
rejectRtcChannelParam
)
{
ImClient
client
=
imClientService
.
getCurentClient
();
ImClient
client
=
imClientService
.
getCurentClient
();
// 修改缓存
mangerRtcCacheService
.
leave
(
client
.
getId
(),
rejectRtcChannelParam
.
getChannelId
());
//获取频道内所有client
//获取频道内所有client
List
<
String
>
clientListByRtcChannelId
=
mangerRtcCacheService
.
getClientListByRtcChannelId
(
rejectRtcChannelParam
.
getChannelId
());
List
<
String
>
clientListByRtcChannelId
=
mangerRtcCacheService
.
getClientListByRtcChannelId
(
rejectRtcChannelParam
.
getChannelId
());
// 移除自己
clientListByRtcChannelId
.
remove
(
client
.
getId
().
toString
());
for
(
String
toClientId
:
clientListByRtcChannelId
)
{
for
(
String
toClientId
:
clientListByRtcChannelId
)
{
// ws向接收方发送通知
// ws向接收方发送通知
RtcClientRejectResponse
rtcClientRejectResponse
=
new
RtcClientRejectResponse
();
RtcClientRejectResponse
rtcClientRejectResponse
=
new
RtcClientRejectResponse
();
...
@@ -160,6 +157,16 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
...
@@ -160,6 +157,16 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
rtcClientRejectResponse
.
setTimestamp
(
System
.
currentTimeMillis
());
rtcClientRejectResponse
.
setTimestamp
(
System
.
currentTimeMillis
());
wsRtcWrite
.
clientReject
(
rtcClientRejectResponse
,
Long
.
valueOf
(
toClientId
));
wsRtcWrite
.
clientReject
(
rtcClientRejectResponse
,
Long
.
valueOf
(
toClientId
));
}
}
// 判断频道内是否无其他人了
if
(
CollectionUtils
.
isEmpty
(
clientListByRtcChannelId
))
{
// 移除频道信息
mangerRtcCacheService
.
delChannelInfo
(
rejectRtcChannelParam
.
getChannelId
());
}
else
if
(
clientListByRtcChannelId
.
size
()
==
1
){
// 频道内只有一个人了 -- 删除频道 并将这个人设为离开
mangerRtcCacheService
.
leave
(
Long
.
valueOf
(
clientListByRtcChannelId
.
get
(
0
)),
rejectRtcChannelParam
.
getChannelId
());
mangerRtcCacheService
.
delChannelInfo
(
rejectRtcChannelParam
.
getChannelId
());
}
return
ApiResult
.
ok
(
true
);
return
ApiResult
.
ok
(
true
);
}
}
...
...
core/src/main/java/com/wecloud/utils/RandomUtil.java
0 → 100644
View file @
01e55a5d
package
com
.
wecloud
.
utils
;
/**
* @Author wenzhida
* @Date 2022/2/23 14:57
* @Description 随机工具类
*/
public
class
RandomUtil
{
/**
* 生成短信验证码
* @return
*/
public
static
String
generateVerifyCode
()
{
Integer
verifyCode
=
(
int
)
((
Math
.
random
()
*
9
+
1
)
*
100000
);
return
verifyCode
.
toString
();
}
/**
* 生成随机字符串
* @param length 字符串长度
* @return
*/
public
static
String
generateRandomStr
(
int
length
)
{
String
src
=
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
;
char
[]
m
=
src
.
toCharArray
();
StringBuilder
strSb
=
new
StringBuilder
();
for
(
int
j
=
0
;
j
<
length
;
j
++)
{
char
c
=
m
[(
int
)
(
Math
.
random
()
*
36
)];
strSb
.
append
(
c
);
}
return
strSb
.
toString
();
}
}
core/src/main/resources/mapper/ImFriendMapper.xml
View file @
01e55a5d
...
@@ -23,13 +23,13 @@
...
@@ -23,13 +23,13 @@
where friend.client_id = #{clientId} and friend.state = 2
where friend.client_id = #{clientId} and friend.state = 2
</select>
</select>
<select
id=
"get
Unsure
FriendPageList"
resultType=
"com.wecloud.im.friend.param.ImFriendApplyDto"
>
<select
id=
"get
Apply
FriendPageList"
resultType=
"com.wecloud.im.friend.param.ImFriendApplyDto"
>
select
select
friend.id, client.client_id as friendClientId, friend.friend_name, claimer.client_id as claimerClientId,
friend.id, client.client_id as friendClientId, friend.friend_name, claimer.client_id as claimerClientId,
friend.reject_remark, friend.request_remark, friend.state, friend.create_time
friend.reject_remark, friend.request_remark, friend.state, friend.create_time
from im_friend friend inner join im_client client on friend.client_id_friend = client.client_id
from im_friend friend inner join im_client client on friend.client_id_friend = client.client_id
inner join im_client claimer on friend.client_id_claimer = claimer.client_id
inner join im_client claimer on friend.client_id_claimer = claimer.client_id
where friend.client_id = #{clientId} and friend.
state = 1
where friend.client_id = #{clientId} and friend.
client_id_claimer != #{clientId}
</select>
</select>
<select
id=
"filterNegativeFriends"
resultType=
"java.lang.String"
>
<select
id=
"filterNegativeFriends"
resultType=
"java.lang.String"
>
...
...
docs/db/feature-cluster增量.sql
View file @
01e55a5d
-- 在f
eature-cluster 2021年12月22日之后,需要执行的的sql增量脚本
-- 在f
eature-cluster 2021年12月22日之后,需要执行的的sql增量脚本
...
@@ -73,16 +73,20 @@ ALTER TABLE im_conversation ADD COLUMN muted tinyint NOT NULL DEFAULT '1' COMMEN
...
@@ -73,16 +73,20 @@ ALTER TABLE im_conversation ADD COLUMN muted tinyint NOT NULL DEFAULT '1' COMMEN
ALTER
TABLE
im_conversation_members
ADD
COLUMN
muted
tinyint
NOT
NULL
DEFAULT
'1'
COMMENT
'禁言开关 1-未禁言 2-禁言'
;
ALTER
TABLE
im_conversation_members
ADD
COLUMN
muted
tinyint
NOT
NULL
DEFAULT
'1'
COMMENT
'禁言开关 1-未禁言 2-禁言'
;
ALTER
TABLE
im_conversation_members
ADD
COLUMN
`client_id`
varchar
(
200
)
DEFAULT
NULL
COMMENT
'客户方提供的唯一id'
;
ALTER
TABLE
im_client_blacklist
CHANGE
fk_client_id_prevent
client_id_prevent
varchar
(
32
)
DEFAULT
NULL
COMMENT
'拉黑者'
;
ALTER
TABLE
im_client_blacklist
CHANGE
fk_client_id_be_prevent
client_id_be_prevent
varchar
(
32
)
DEFAULT
NULL
COMMENT
'被拉黑'
;
CREATE
TABLE
`im_user`
CREATE
TABLE
`im_user`
(
(
`id`
bigint
NOT
NULL
COMMENT
'主键id'
,
`id`
bigint
NOT
NULL
COMMENT
'主键id'
,
`id_number`
varchar
(
32
)
NOT
NULL
COMMENT
'蓝豆号'
,
`phone`
varchar
(
32
)
DEFAULT
NULL
COMMENT
'手机号码'
,
`phone`
varchar
(
32
)
DEFAULT
NULL
COMMENT
'手机号码'
,
`id_card_no`
varchar
(
32
)
DEFAULT
NULL
COMMENT
'身份证号码'
,
`id_card_no`
varchar
(
32
)
DEFAULT
NULL
COMMENT
'身份证号码'
,
`email`
varchar
(
32
)
DEFAULT
NULL
COMMENT
'邮箱号码'
,
`email`
varchar
(
32
)
DEFAULT
NULL
COMMENT
'邮箱号码'
,
`password`
varchar
(
32
)
DEFAULT
NULL
COMMENT
'密码'
,
`password`
varchar
(
32
)
DEFAULT
NULL
COMMENT
'密码'
,
`sex`
tinyint
DEFAULT
NULL
COMMENT
'性别 1-男 2-女
'
,
`sex`
tinyint
DEFAULT
3
COMMENT
'性别 1-男 2-女 3-未知
'
,
`head_portrait`
varchar
(
1000
)
DEFAULT
NULL
COMMENT
'头像'
,
`head_portrait`
varchar
(
1000
)
DEFAULT
NULL
COMMENT
'头像'
,
`nickname`
varchar
(
30
)
DEFAULT
NULL
COMMENT
'昵称'
,
`nickname`
varchar
(
30
)
DEFAULT
NULL
COMMENT
'昵称'
,
`create_time`
timestamp
NULL
DEFAULT
NULL
COMMENT
'创建时间'
,
`create_time`
timestamp
NULL
DEFAULT
NULL
COMMENT
'创建时间'
,
...
...
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