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
0ce048a0
Commit
0ce048a0
authored
Apr 02, 2022
by
罗长华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、改造ImClient和ImBlacklist -> websocket
parent
7238ef14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
371 additions
and
133 deletions
+371
-133
core/src/main/java/com/wecloud/im/action/BlacklistAction.java
+68
-0
core/src/main/java/com/wecloud/im/action/ClientAction.java
+155
-0
core/src/main/java/com/wecloud/im/controller/ImClientBlacklistController.java
+13
-7
core/src/main/java/com/wecloud/im/controller/ImClientController.java
+28
-26
core/src/main/java/com/wecloud/im/externalaccess/service/UserService.java
+12
-11
core/src/main/java/com/wecloud/im/service/ImClientBlacklistService.java
+7
-6
core/src/main/java/com/wecloud/im/service/ImClientService.java
+18
-16
core/src/main/java/com/wecloud/im/service/impl/ImClientBlacklistServiceImpl.java
+26
-26
core/src/main/java/com/wecloud/im/service/impl/ImClientServiceImpl.java
+44
-41
No files found.
core/src/main/java/com/wecloud/im/action/BlacklistAction.java
0 → 100644
View file @
0ce048a0
package
com
.
wecloud
.
im
.
action
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.geekidea.springbootplus.framework.log.annotation.OperationLog
;
import
io.geekidea.springbootplus.framework.log.enums.OperationLogType
;
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.stereotype.Component
;
import
com.wecloud.dispatch.annotation.ActionMapping
;
import
com.wecloud.dispatch.extend.ActionRequest
;
import
com.wecloud.im.param.ImClientBlacklistPageParam
;
import
com.wecloud.im.param.ImClientBlacklistQueryVo
;
import
com.wecloud.im.param.add.ImClientBlacklistUpdate
;
import
com.wecloud.im.service.ImClientBlacklistService
;
import
com.wecloud.im.ws.model.WsResponse
;
/**
* ws 黑名单
* @Author luozh
* @Date 2022年04月02日 09:20
* @Version 1.0
*/
@Slf4j
@Component
@ActionMapping
(
value
=
"/blacklist"
)
@Api
(
value
=
"ws-黑名单API"
,
tags
=
{
"黑名单"
})
public
class
BlacklistAction
{
@Autowired
private
ImClientBlacklistService
imClientBlacklistService
;
/**
* 添加黑名单
*/
@ActionMapping
(
"/add"
)
@ApiOperation
(
value
=
"拉入黑名单"
)
public
WsResponse
<
Boolean
>
addImClientBlacklist
(
ActionRequest
request
,
ImClientBlacklistUpdate
data
)
{
imClientBlacklistService
.
addImClientBlacklist
(
request
,
data
);
return
WsResponse
.
ok
();
}
/**
* 删除黑名单
*/
@ActionMapping
(
"/delete"
)
@ApiOperation
(
value
=
"移出黑名单"
)
public
WsResponse
<
Boolean
>
deleteImClientBlacklist
(
ActionRequest
request
,
ImClientBlacklistUpdate
data
)
{
imClientBlacklistService
.
removeImClientBlacklist
(
request
,
data
);
return
WsResponse
.
ok
();
}
/**
* 黑名单分页列表
*/
@ActionMapping
(
"/getPageList"
)
@OperationLog
(
name
=
"黑名单分页列表"
,
type
=
OperationLogType
.
PAGE
)
@ApiOperation
(
value
=
"黑名单分页列表"
)
public
WsResponse
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
ActionRequest
request
,
ImClientBlacklistPageParam
data
)
{
Paging
<
ImClientBlacklistQueryVo
>
blacklist
=
imClientBlacklistService
.
getImClientBlacklistPageList
(
request
,
data
);
return
WsResponse
.
ok
(
blacklist
);
}
}
core/src/main/java/com/wecloud/im/action/ClientAction.java
0 → 100644
View file @
0ce048a0
package
com
.
wecloud
.
im
.
action
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
com.alibaba.fastjson.JSON
;
import
com.wecloud.dispatch.annotation.ActionMapping
;
import
com.wecloud.dispatch.extend.ActionRequest
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.param.ClientInfoParam
;
import
com.wecloud.im.param.GetClientInfoParam
;
import
com.wecloud.im.param.GetOnlineStatusParam
;
import
com.wecloud.im.param.LogoutParam
;
import
com.wecloud.im.param.add.ImClientHeadPortraitAdd
;
import
com.wecloud.im.param.add.ImClientHeadPortraitAndNicknameUpdate
;
import
com.wecloud.im.param.add.ImClientNicknameAdd
;
import
com.wecloud.im.service.ContextService
;
import
com.wecloud.im.service.ImApplicationService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.vo.ClientInfoVo
;
import
com.wecloud.im.vo.GetInfoListVo
;
import
com.wecloud.im.vo.ImOnlineStatusVo
;
import
com.wecloud.im.vo.MyInfoVo
;
import
com.wecloud.im.ws.cache.UserStateCacheManager
;
import
com.wecloud.im.ws.model.WsResponse
;
/**
* 终端 action
* @Author luozh
* @Date 2022年04月02日 15:14
* @Version 1.0
*/
@Slf4j
@Component
@ActionMapping
(
"/client"
)
@Api
(
value
=
"ws-终端"
,
tags
=
{
"终端"
})
public
class
ClientAction
{
@Autowired
private
ImClientService
imClientService
;
@Autowired
private
UserStateCacheManager
userStateCacheManager
;
@Autowired
private
ImApplicationService
imApplicationService
;
@Autowired
private
ContextService
contextService
;
/**
* 查询我的信息
*/
@ActionMapping
(
"/myInfo"
)
@ApiOperation
(
value
=
"查询我的信息"
)
public
WsResponse
<
MyInfoVo
>
myInfo
(
ActionRequest
request
)
{
MyInfoVo
myInfo
=
imClientService
.
getMyInfo
(
request
);
return
WsResponse
.
ok
(
myInfo
);
}
@ActionMapping
(
"/infoList"
)
@ApiOperation
(
value
=
"根据id获取Client的头像昵称"
)
public
WsResponse
<
List
<
GetInfoListVo
>>
getInfoList
(
ActionRequest
request
,
GetClientInfoParam
data
)
throws
Exception
{
return
WsResponse
.
ok
(
imClientService
.
getInfoList
(
request
,
data
));
}
/**
* 查询用户信息 用户可能是好友、陌生人、被拉黑名单的人
*/
@ActionMapping
(
"/clientInfo"
)
@ApiOperation
(
value
=
"查询用户信息 用户可能是好友、陌生人、被拉黑名单的人"
)
public
WsResponse
<
ClientInfoVo
>
getClientInfo
(
ActionRequest
request
,
ClientInfoParam
data
)
{
ClientInfoVo
clientInfoVo
=
imClientService
.
getClientInfo
(
request
,
data
);
return
WsResponse
.
ok
(
clientInfoVo
);
}
@ActionMapping
(
"/updateHeadAndNickname"
)
@ApiOperation
(
value
=
"添加或修改头像和昵称"
)
public
WsResponse
<
Boolean
>
updateHeadAndNickname
(
ActionRequest
request
,
ImClientHeadPortraitAndNicknameUpdate
data
)
throws
Exception
{
log
.
info
(
"添加或修改头像和昵称入参 {}"
,
JSON
.
toJSONString
(
data
));
boolean
flag
=
imClientService
.
updateHeadAndNickname
(
request
,
data
);
return
WsResponse
.
ok
(
flag
);
}
@ActionMapping
(
"/updateHeadPortrait"
)
@ApiOperation
(
value
=
"添加或修改头像"
)
public
WsResponse
<
Boolean
>
updateHeadPortrait
(
ActionRequest
request
,
ImClientHeadPortraitAdd
data
)
throws
Exception
{
log
.
info
(
"添加或修改头像入参 {}"
,
JSON
.
toJSONString
(
data
));
boolean
flag
=
imClientService
.
updateHeadPortrait
(
request
,
data
);
return
WsResponse
.
ok
(
flag
);
}
@ActionMapping
(
"/updateNickname"
)
@ApiOperation
(
value
=
"添加或修改主昵称"
)
public
WsResponse
<
Boolean
>
updateNickname
(
ActionRequest
request
,
ImClientNicknameAdd
data
)
throws
Exception
{
log
.
info
(
"添加或修改主昵称入参 {}"
,
JSON
.
toJSONString
(
data
));
boolean
flag
=
imClientService
.
updateNickname
(
request
,
data
);
return
WsResponse
.
ok
(
flag
);
}
/**
* 退出登陆
*
* @return
* @throws Exception
*/
@ActionMapping
(
"/logout"
)
@ApiOperation
(
value
=
"退出登陆 清除推送token等"
)
public
WsResponse
<
Boolean
>
logout
(
ActionRequest
request
,
LogoutParam
param
)
{
log
.
info
(
"退出登陆入参 {}"
,
JSON
.
toJSONString
(
param
));
boolean
flag
=
imClientService
.
logout
(
request
,
param
);
return
WsResponse
.
ok
(
flag
);
}
/**
* 获取用户在线状态(批量)
*
* @return true:在线, false 不在线
*/
@ActionMapping
(
"/onlineStatus"
)
@ApiOperation
(
value
=
"获取用户在线状态(批量)"
)
public
WsResponse
<
List
<
ImOnlineStatusVo
>>
getOnlineStatus
(
ActionRequest
request
,
GetOnlineStatusParam
getOnlineStatusParam
)
{
// shiro线程中获取当前token
ImClient
imClient
=
contextService
.
getImClientIfNotNullOrThrow
(
request
);
ImApplication
imApplication
=
contextService
.
getImApplicationIfNotNullOrThrow
(
imClient
.
getFkAppid
());
ArrayList
<
ImOnlineStatusVo
>
imOnlineStatusVos
=
new
ArrayList
<>();
for
(
String
clientId
:
getOnlineStatusParam
.
getClientIds
())
{
ImOnlineStatusVo
imOnlineStatusVo
=
new
ImOnlineStatusVo
();
// todo 需要改成批量
ImClient
client
=
imClientService
.
getCacheImClient
(
imApplication
.
getId
(),
clientId
);
imOnlineStatusVo
.
setStatus
(
userStateCacheManager
.
isOnline
(
client
.
getId
()));
imOnlineStatusVo
.
setClientId
(
clientId
);
imOnlineStatusVos
.
add
(
imOnlineStatusVo
);
}
return
WsResponse
.
ok
(
imOnlineStatusVos
);
}
}
core/src/main/java/com/wecloud/im/controller/ImClientBlacklistController.java
View file @
0ce048a0
package
com
.
wecloud
.
im
.
controller
;
import
com.wecloud.im.param.ImClientBlacklistPageParam
;
import
com.wecloud.im.param.ImClientBlacklistQueryVo
;
import
com.wecloud.im.param.add.ImClientBlacklistUpdate
;
import
com.wecloud.im.service.ImClientBlacklistService
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
...
...
@@ -13,6 +9,7 @@ import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
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.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
@@ -20,6 +17,11 @@ 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.param.ImClientBlacklistPageParam
;
import
com.wecloud.im.param.ImClientBlacklistQueryVo
;
import
com.wecloud.im.param.add.ImClientBlacklistUpdate
;
import
com.wecloud.im.service.ImClientBlacklistService
;
/**
* 黑名单 控制器
*
...
...
@@ -41,7 +43,8 @@ public class ImClientBlacklistController extends BaseController {
@PostMapping
(
"/add"
)
@ApiOperation
(
value
=
"拉入黑名单"
)
public
ApiResult
<
Boolean
>
addImClientBlacklist
(
@Validated
(
Add
.
class
)
@RequestBody
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
{
return
imClientBlacklistService
.
addImClientBlacklist
(
imClientBlacklistUpdate
);
imClientBlacklistService
.
addImClientBlacklist
(
null
,
imClientBlacklistUpdate
);
return
ApiResult
.
ok
();
}
...
...
@@ -51,7 +54,8 @@ public class ImClientBlacklistController extends BaseController {
@PostMapping
(
"/delete"
)
@ApiOperation
(
value
=
"移出黑名单"
)
public
ApiResult
<
Boolean
>
deleteImClientBlacklist
(
@RequestBody
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
{
return
imClientBlacklistService
.
removeImClientBlacklist
(
imClientBlacklistUpdate
);
imClientBlacklistService
.
removeImClientBlacklist
(
null
,
imClientBlacklistUpdate
);
return
ApiResult
.
ok
();
}
/**
...
...
@@ -61,7 +65,9 @@ public class ImClientBlacklistController extends BaseController {
@OperationLog
(
name
=
"黑名单分页列表"
,
type
=
OperationLogType
.
PAGE
)
@ApiOperation
(
value
=
"黑名单分页列表"
)
public
ApiResult
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
@RequestBody
ImClientBlacklistPageParam
imClientBlacklistPageParam
)
throws
Exception
{
return
imClientBlacklistService
.
getImClientBlacklistPageList
(
imClientBlacklistPageParam
);
Paging
<
ImClientBlacklistQueryVo
>
blacklist
=
imClientBlacklistService
.
getImClientBlacklistPageList
(
null
,
imClientBlacklistPageParam
);
return
ApiResult
.
ok
(
blacklist
);
}
}
...
...
core/src/main/java/com/wecloud/im/controller/ImClientController.java
View file @
0ce048a0
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.core.validator.groups.Add
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
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
com.alibaba.fastjson.JSON
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
...
...
@@ -18,24 +38,6 @@ import com.wecloud.im.vo.GetInfoListVo;
import
com.wecloud.im.vo.ImOnlineStatusVo
;
import
com.wecloud.im.vo.MyInfoVo
;
import
com.wecloud.im.ws.cache.UserStateCacheManager
;
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.core.validator.groups.Add
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
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.validation.annotation.Validated
;
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.ArrayList
;
import
java.util.List
;
/**
* 终端表 控制器
...
...
@@ -64,7 +66,7 @@ public class ImClientController extends BaseController {
@PostMapping
(
"/myInfo"
)
@ApiOperation
(
value
=
"查询我的信息"
)
public
ApiResult
<
MyInfoVo
>
myInfo
()
{
MyInfoVo
myInfo
=
imClientService
.
getMyInfo
();
MyInfoVo
myInfo
=
imClientService
.
getMyInfo
(
null
);
return
ApiResult
.
ok
(
myInfo
);
}
...
...
@@ -72,7 +74,7 @@ public class ImClientController extends BaseController {
@PostMapping
(
"/infoList"
)
@ApiOperation
(
value
=
"根据id获取Client的头像昵称"
)
public
ApiResult
<
List
<
GetInfoListVo
>>
getInfoList
(
@Validated
(
Add
.
class
)
@RequestBody
GetClientInfoParam
getClientInfoParam
)
throws
Exception
{
return
imClientService
.
getInfoList
(
getClientInfoParam
);
return
ApiResult
.
ok
(
imClientService
.
getInfoList
(
null
,
getClientInfoParam
)
);
}
/**
...
...
@@ -81,10 +83,10 @@ public class ImClientController extends BaseController {
@PostMapping
(
"/clientInfo"
)
@ApiOperation
(
value
=
"查询用户信息 用户可能是好友、陌生人、被拉黑名单的人"
)
public
ApiResult
<
ClientInfoVo
>
getClientInfo
(
@RequestBody
ClientInfoParam
param
)
{
if
(
param
==
null
)
{
if
(
param
==
null
)
{
return
ApiResult
.
fail
(
ApiCode
.
PARAMETER_EXCEPTION
,
null
);
}
ClientInfoVo
clientInfoVo
=
imClientService
.
getClientInfo
(
param
);
ClientInfoVo
clientInfoVo
=
imClientService
.
getClientInfo
(
null
,
param
);
return
ApiResult
.
ok
(
clientInfoVo
);
}
...
...
@@ -105,7 +107,7 @@ public class ImClientController extends BaseController {
@ApiOperation
(
value
=
"添加或修改头像和昵称"
)
public
ApiResult
<
Boolean
>
updateHeadAndNickname
(
@Validated
(
Add
.
class
)
@RequestBody
ImClientHeadPortraitAndNicknameUpdate
imClientHeadPortraitAndNicknameUpdate
)
throws
Exception
{
log
.
info
(
"添加或修改头像和昵称入参 {}"
,
JSON
.
toJSONString
(
imClientHeadPortraitAndNicknameUpdate
));
boolean
flag
=
imClientService
.
updateHeadAndNickname
(
imClientHeadPortraitAndNicknameUpdate
);
boolean
flag
=
imClientService
.
updateHeadAndNickname
(
null
,
imClientHeadPortraitAndNicknameUpdate
);
return
ApiResult
.
result
(
flag
);
}
...
...
@@ -114,7 +116,7 @@ public class ImClientController extends BaseController {
@ApiOperation
(
value
=
"添加或修改头像"
)
public
ApiResult
<
Boolean
>
updateHeadPortrait
(
@Validated
(
Add
.
class
)
@RequestBody
ImClientHeadPortraitAdd
imClientHeadPortraitAdd
)
throws
Exception
{
log
.
info
(
"添加或修改头像入参 {}"
,
JSON
.
toJSONString
(
imClientHeadPortraitAdd
));
boolean
flag
=
imClientService
.
updateHeadPortrait
(
imClientHeadPortraitAdd
);
boolean
flag
=
imClientService
.
updateHeadPortrait
(
null
,
imClientHeadPortraitAdd
);
return
ApiResult
.
result
(
flag
);
}
...
...
@@ -122,7 +124,7 @@ public class ImClientController extends BaseController {
@ApiOperation
(
value
=
"添加或修改主昵称"
)
public
ApiResult
<
Boolean
>
updateNickname
(
@Validated
(
Add
.
class
)
@RequestBody
ImClientNicknameAdd
imClientNicknameAdd
)
throws
Exception
{
log
.
info
(
"添加或修改主昵称入参 {}"
,
JSON
.
toJSONString
(
imClientNicknameAdd
));
boolean
flag
=
imClientService
.
updateNickname
(
imClientNicknameAdd
);
boolean
flag
=
imClientService
.
updateNickname
(
null
,
imClientNicknameAdd
);
return
ApiResult
.
result
(
flag
);
}
...
...
@@ -137,7 +139,7 @@ public class ImClientController extends BaseController {
@ApiOperation
(
value
=
"退出登陆 清除推送token等"
)
public
ApiResult
<
Boolean
>
logout
(
@RequestBody
@Validated
LogoutParam
param
)
{
log
.
info
(
"退出登陆入参 {}"
,
JSON
.
toJSONString
(
param
));
boolean
flag
=
imClientService
.
logout
(
param
);
boolean
flag
=
imClientService
.
logout
(
null
,
param
);
return
ApiResult
.
result
(
flag
);
}
...
...
core/src/main/java/com/wecloud/im/externalaccess/service/UserService.java
View file @
0ce048a0
package
com
.
wecloud
.
im
.
externalaccess
.
service
;
import
cn.hutool.core.lang.Snowflake
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
java.util.Date
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.wecloud.im.constant.NumberConstant
;
import
com.wecloud.im.constant.RedisKeyPrefixConstant
;
...
...
@@ -37,14 +46,6 @@ import com.wecloud.im.ws.utils.RedisUtils;
import
com.wecloud.utils.AesUtil
;
import
com.wecloud.utils.RandomUtil
;
import
com.wecloud.utils.SnowflakeUtil
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
/**
* @Author wenzhida
...
...
@@ -297,7 +298,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
this
.
updateById
(
user
);
ImClientHeadPortraitAdd
imClientHeadPortraitAdd
=
new
ImClientHeadPortraitAdd
();
imClientHeadPortraitAdd
.
setHeadPortrait
(
param
.
getHeadPortrait
());
imClientService
.
updateHeadPortrait
(
imClientHeadPortraitAdd
);
imClientService
.
updateHeadPortrait
(
null
,
imClientHeadPortraitAdd
);
}
/**
...
...
@@ -318,7 +319,7 @@ public class UserService extends BaseServiceImpl<UserMapper, User> {
this
.
updateById
(
user
);
ImClientNicknameUpdate
imClientNicknameUpdate
=
new
ImClientNicknameUpdate
();
imClientNicknameUpdate
.
setNickname
(
param
.
getNickname
());
imClientService
.
updateNickname
(
imClientNicknameUpdate
);
imClientService
.
updateNickname
(
null
,
imClientNicknameUpdate
);
}
/**
...
...
core/src/main/java/com/wecloud/im/service/ImClientBlacklistService.java
View file @
0ce048a0
package
com
.
wecloud
.
im
.
service
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
com.wecloud.dispatch.extend.ActionRequest
;
import
com.wecloud.im.entity.ImClientBlacklist
;
import
com.wecloud.im.param.ImClientBlacklistPageParam
;
import
com.wecloud.im.param.ImClientBlacklistQueryVo
;
import
com.wecloud.im.param.add.ImClientBlacklistUpdate
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
/**
* 黑名单 服务类
...
...
@@ -33,7 +34,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return
* @throws Exception
*/
ApiResult
<
Boolean
>
addImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
);
Boolean
addImClientBlacklist
(
ActionRequest
request
,
ImClientBlacklistUpdate
imClientBlacklistUpdate
);
/**
* 移出黑名单
...
...
@@ -42,7 +43,7 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return
* @throws Exception
*/
ApiResult
<
Boolean
>
removeImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
);
Boolean
removeImClientBlacklist
(
ActionRequest
request
,
ImClientBlacklistUpdate
imClientBlacklistUpdate
);
/**
* 获取分页对象
...
...
@@ -50,6 +51,6 @@ public interface ImClientBlacklistService extends BaseService<ImClientBlacklist>
* @return
* @throws Exception
*/
ApiResult
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
ImClientBlacklistPageParam
imClientBlacklistPageParam
);
Paging
<
ImClientBlacklistQueryVo
>
getImClientBlacklistPageList
(
ActionRequest
request
,
ImClientBlacklistPageParam
imClientBlacklistPageParam
);
}
core/src/main/java/com/wecloud/im/service/ImClientService.java
View file @
0ce048a0
package
com
.
wecloud
.
im
.
service
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
java.util.List
;
import
com.wecloud.dispatch.extend.ActionRequest
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.param.ClientInfoParam
;
import
com.wecloud.im.param.GetClientInfoParam
;
...
...
@@ -15,11 +22,6 @@ import com.wecloud.im.param.add.ImClientNicknameUpdate;
import
com.wecloud.im.vo.ClientInfoVo
;
import
com.wecloud.im.vo.GetInfoListVo
;
import
com.wecloud.im.vo.MyInfoVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
java.util.List
;
/**
* 终端表 服务类
...
...
@@ -33,23 +35,23 @@ public interface ImClientService extends BaseService<ImClient> {
* 查询我的信息
* @return
*/
MyInfoVo
getMyInfo
();
MyInfoVo
getMyInfo
(
ActionRequest
request
);
/**
* 更新头像
* @param imClientHeadPortraitAdd
* @return
*/
boolean
updateHeadPortrait
(
ImClientHeadPortraitAdd
imClientHeadPortraitAdd
);
boolean
updateHeadPortrait
(
ActionRequest
request
,
ImClientHeadPortraitAdd
imClientHeadPortraitAdd
);
/**
* 修改昵称
* @param imClientNicknameUpdate
* @return
*/
boolean
updateNickname
(
ImClientNicknameUpdate
imClientNicknameUpdate
);
boolean
updateNickname
(
ActionRequest
request
,
ImClientNicknameUpdate
imClientNicknameUpdate
);
boolean
updateHeadAndNickname
(
ImClientHeadPortraitAndNicknameUpdate
imClientHeadPortraitAndNicknameUpdate
);
boolean
updateHeadAndNickname
(
ActionRequest
request
,
ImClientHeadPortraitAndNicknameUpdate
imClientHeadPortraitAndNicknameUpdate
);
/**
...
...
@@ -59,17 +61,17 @@ public interface ImClientService extends BaseService<ImClient> {
* @return
* @throws Exception
*/
ApiResult
<
List
<
GetInfoListVo
>>
getInfoList
(
GetClientInfoParam
getClientInfoParam
)
throws
Exception
;
List
<
GetInfoListVo
>
getInfoList
(
ActionRequest
request
,
GetClientInfoParam
getClientInfoParam
)
throws
Exception
;
/**
* 获取群里成员信息
* @param param
* @return
*/
ClientInfoVo
getClientInfo
(
ClientInfoParam
param
);
ClientInfoVo
getClientInfo
(
ActionRequest
request
,
ClientInfoParam
param
);
boolean
updateNickname
(
ImClientNicknameAdd
imClientNicknameAdd
)
throws
Exception
;
boolean
updateNickname
(
ActionRequest
request
,
ImClientNicknameAdd
imClientNicknameAdd
)
throws
Exception
;
/**
* 保存
...
...
@@ -93,7 +95,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @param param
* @return
*/
boolean
logout
(
LogoutParam
param
);
boolean
logout
(
ActionRequest
request
,
LogoutParam
param
);
/**
...
...
@@ -103,7 +105,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @return
* @throws Exception
*/
boolean
updateImClient
(
ImClient
imClient
)
throws
Exception
;
boolean
updateImClient
(
ImClient
imClient
)
throws
Exception
;
/**
* 删除
...
...
@@ -112,7 +114,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @return
* @throws Exception
*/
boolean
deleteImClient
(
Long
id
)
throws
Exception
;
boolean
deleteImClient
(
Long
id
)
throws
Exception
;
/**
* 获取分页对象
...
...
@@ -121,7 +123,7 @@ public interface ImClientService extends BaseService<ImClient> {
* @return
* @throws Exception
*/
Paging
<
ImClientQueryVo
>
getImClientPageList
(
ImClientPageParam
imClientPageParam
)
throws
Exception
;
Paging
<
ImClientQueryVo
>
getImClientPageList
(
ActionRequest
request
,
ImClientPageParam
imClientPageParam
)
throws
Exception
;
/**
...
...
core/src/main/java/com/wecloud/im/service/impl/ImClientBlacklistServiceImpl.java
View file @
0ce048a0
package
com
.
wecloud
.
im
.
service
.
impl
;
import
io.geekidea.springbootplus.framework.common.exception.BusinessException
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
io.geekidea.springbootplus.framework.core.pagination.PageInfo
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.Date
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.wecloud.dispatch.extend.ActionRequest
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImClientBlacklist
;
import
com.wecloud.im.mapper.ImClientBlacklistMapper
;
import
com.wecloud.im.param.ImClientBlacklistPageParam
;
import
com.wecloud.im.param.ImClientBlacklistQueryVo
;
import
com.wecloud.im.param.add.ImClientBlacklistUpdate
;
import
com.wecloud.im.service.ContextService
;
import
com.wecloud.im.service.ImClientBlacklistService
;
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.exception.BusinessException
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
io.geekidea.springbootplus.framework.core.pagination.PageInfo
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
/**
* 黑名单 服务实现类
...
...
@@ -40,6 +43,9 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Autowired
private
ImClientService
imClientService
;
@Autowired
private
ContextService
contextService
;
@Override
public
boolean
isBeBlack
(
String
currentClientId
,
String
toClientId
)
{
ImClientBlacklist
one
=
this
.
getOne
(
new
QueryWrapper
<
ImClientBlacklist
>().
lambda
()
...
...
@@ -51,11 +57,8 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ApiResult
<
Boolean
>
addImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
{
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
if
(
currentClient
==
null
)
{
throw
new
BusinessException
(
"当前用户登录信息失效"
);
}
public
Boolean
addImClientBlacklist
(
ActionRequest
request
,
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
{
ImClient
currentClient
=
contextService
.
getImClientIfNotNullOrThrow
(
request
);
ImClient
beBlacker
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
currentClient
.
getFkAppid
())
.
eq
(
ImClient:
:
getClientId
,
imClientBlacklistUpdate
.
getClientIdBePrevent
()));
...
...
@@ -70,17 +73,14 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
imClientBlacklist
.
setClientIdBePrevent
(
beBlacker
.
getClientId
());
this
.
save
(
imClientBlacklist
);
return
ApiResult
.
ok
()
;
return
true
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
ApiResult
<
Boolean
>
removeImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
{
public
Boolean
removeImClientBlacklist
(
ActionRequest
request
,
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
{
// 操作者
ImClient
currentClient
=
imClientService
.
getCurrentClient
();
if
(
currentClient
==
null
)
{
throw
new
BusinessException
(
"当前用户登录信息失效"
);
}
ImClient
currentClient
=
contextService
.
getImClientIfNotNullOrThrow
(
request
);
// 被拉黑者
ImClient
beBlacker
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
currentClient
.
getFkAppid
())
...
...
@@ -92,16 +92,16 @@ public class ImClientBlacklistServiceImpl extends BaseServiceImpl<ImClientBlackl
this
.
remove
(
new
QueryWrapper
<
ImClientBlacklist
>().
lambda
()
.
eq
(
ImClientBlacklist:
:
getClientIdPrevent
,
currentClient
.
getClientId
())
.
eq
(
ImClientBlacklist:
:
getClientIdBePrevent
,
beBlacker
.
getClientId
()));
return
ApiResult
.
ok
()
;
return
true
;
}
@Override
public
ApiResult
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
ImClientBlacklistPageParam
imClientBlacklistPageParam
)
{
public
Paging
<
ImClientBlacklistQueryVo
>
getImClientBlacklistPageList
(
ActionRequest
request
,
ImClientBlacklistPageParam
imClientBlacklistPageParam
)
{
Page
<
ImClientBlacklistQueryVo
>
page
=
new
PageInfo
<>(
imClientBlacklistPageParam
);
ImClient
currentClient
=
imClientService
.
getCurrentClient
(
);
ImClient
currentClient
=
contextService
.
getImClientIfNotNullOrThrow
(
request
);
IPage
<
ImClientBlacklistQueryVo
>
imClientBlacklistPageList
=
imClientBlacklistMapper
.
getImClientBlacklistPageList
(
page
,
currentClient
.
getClientId
());
Paging
<
ImClientBlacklistQueryVo
>
imClientBlacklistQueryVoPaging
=
new
Paging
<>(
imClientBlacklistPageList
);
return
ApiResult
.
ok
(
imClientBlacklistQueryVoPaging
)
;
return
imClientBlacklistQueryVoPaging
;
}
}
core/src/main/java/com/wecloud/im/service/impl/ImClientServiceImpl.java
View file @
0ce048a0
This diff is collapsed.
Click to expand it.
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