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
05dd4427
Commit
05dd4427
authored
Jun 17, 2021
by
giaogiao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加黑名单功能:
描述: 拉入黑名单后,双方都不能正常发送消息,聊天会话列表不会消失 新增接口: 1.将client拉入黑名单接口 2.将client移除黑名单接口 3.查询黑名单列表
parent
941f2ae7
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
595 additions
and
7 deletions
+595
-7
common/src/main/java/com/wecloud/im/controller/ImClientBlacklistController.java
+102
-0
common/src/main/java/com/wecloud/im/entity/ImClientBlacklist.java
+48
-0
common/src/main/java/com/wecloud/im/mapper/ImClientBlacklistMapper.java
+47
-0
common/src/main/java/com/wecloud/im/param/ImClientBlacklistPageParam.java
+23
-0
common/src/main/java/com/wecloud/im/param/ImClientBlacklistQueryVo.java
+27
-0
common/src/main/java/com/wecloud/im/param/add/ImClientBlacklistUpdate.java
+25
-0
common/src/main/java/com/wecloud/im/service/ImClientBlacklistService.java
+102
-0
common/src/main/java/com/wecloud/im/service/impl/ImClientBlacklistServiceImpl.java
+131
-0
common/src/main/java/com/wecloud/im/tillo/app_ws/strategy/concrete/ImConcreteReceiveStrategy.java
+46
-6
common/src/main/resources/mapper/ImClientBlacklistMapper.xml
+31
-0
config/src/main/resources/static/i18n/messages_zh_CN.properties
+2
-0
framework/src/main/java/io/geekidea/springbootplus/framework/common/api/ApiCode.java
+10
-0
pom.xml
+1
-1
No files found.
common/src/main/java/com/wecloud/im/controller/ImClientBlacklistController.java
0 → 100644
View file @
05dd4427
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
;
import
io.geekidea.springbootplus.framework.core.validator.groups.Add
;
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.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
;
/**
* 黑名单 控制器
*
* @author wei
* @since 2021-06-17
*/
@Slf4j
@RestController
@RequestMapping
(
"/ClientBlacklist"
)
@Api
(
value
=
"黑名单API"
,
tags
=
{
"黑名单"
})
public
class
ImClientBlacklistController
extends
BaseController
{
@Autowired
private
ImClientBlacklistService
imClientBlacklistService
;
/**
* 添加黑名单
*/
@PostMapping
(
"/add"
)
@OperationLog
(
name
=
"拉入黑名单"
,
type
=
OperationLogType
.
ADD
)
@ApiOperation
(
value
=
"拉入黑名单"
)
public
ApiResult
<
Boolean
>
addImClientBlacklist
(
@Validated
(
Add
.
class
)
@RequestBody
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
{
return
imClientBlacklistService
.
addImClientBlacklist
(
imClientBlacklistUpdate
);
}
/**
* 删除黑名单
*/
@PostMapping
(
"/delete"
)
@OperationLog
(
name
=
"移出黑名单"
,
type
=
OperationLogType
.
DELETE
)
@ApiOperation
(
value
=
"移出黑名单"
)
public
ApiResult
<
Boolean
>
deleteImClientBlacklist
(
@RequestBody
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
{
return
imClientBlacklistService
.
removeImClientBlacklist
(
imClientBlacklistUpdate
);
}
/**
* 黑名单分页列表
*/
@PostMapping
(
"/getPageList"
)
@OperationLog
(
name
=
"黑名单分页列表"
,
type
=
OperationLogType
.
PAGE
)
@ApiOperation
(
value
=
"黑名单分页列表"
)
public
ApiResult
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
@RequestBody
ImClientBlacklistPageParam
imClientBlacklistPageParam
)
throws
Exception
{
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);
// }
}
common/src/main/java/com/wecloud/im/entity/ImClientBlacklist.java
0 → 100644
View file @
05dd4427
package
com
.
wecloud
.
im
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
io.geekidea.springbootplus.framework.common.entity.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
/**
* 黑名单
*
* @author wei
* @since 2021-06-17
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"ImClientBlacklist对象"
)
public
class
ImClientBlacklist
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
@NotNull
(
message
=
"客户端id不能为空"
)
@ApiModelProperty
(
"客户端id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
INPUT
)
private
Long
id
;
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"修改时间"
)
private
Date
updateTime
;
@ApiModelProperty
(
"应用appid"
)
private
Long
fkAppid
;
@ApiModelProperty
(
"拉黑者"
)
private
Long
fkClientIdPrevent
;
@ApiModelProperty
(
"被拉黑"
)
private
Long
fkClientIdBePrevent
;
}
common/src/main/java/com/wecloud/im/mapper/ImClientBlacklistMapper.java
0 → 100644
View file @
05dd4427
package
com
.
wecloud
.
im
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.wecloud.im.entity.ImClientBlacklist
;
import
com.wecloud.im.param.ImClientBlacklistQueryVo
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.io.Serializable
;
/**
* 黑名单 Mapper 接口
*
* @author wei
* @since 2021-06-17
*/
@Repository
public
interface
ImClientBlacklistMapper
extends
BaseMapper
<
ImClientBlacklist
>
{
/**
* 查询我的拉黑列表
*
* @param clientId
* @return
*/
Paging
<
ImClientBlacklistQueryVo
>
getImClientBlacklistPageList
(
@Param
(
"page"
)
Page
page
,
@Param
(
"clientId"
)
Long
clientId
);
/**
* 根据ID获取查询对象
*
* @param id
* @return
*/
ImClientBlacklistQueryVo
getImClientBlacklistById
(
Serializable
id
);
// /**
// * 获取分页对象
// *
// * @param page
// * @param imClientBlacklistPageParam
// * @return
// */
// IPage<ImClientBlacklistQueryVo> getImClientBlacklistPageList(@Param("page") Page page, @Param("param") ImClientBlacklistPageParam imClientBlacklistPageParam);
}
common/src/main/java/com/wecloud/im/param/ImClientBlacklistPageParam.java
0 → 100644
View file @
05dd4427
package
com
.
wecloud
.
im
.
param
;
import
io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* <pre>
* 黑名单 分页参数对象
* </pre>
*
* @author wei
* @date 2021-06-17
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"黑名单分页参数"
)
public
class
ImClientBlacklistPageParam
extends
BasePageOrderParam
{
private
static
final
long
serialVersionUID
=
1L
;
}
common/src/main/java/com/wecloud/im/param/ImClientBlacklistQueryVo.java
0 → 100644
View file @
05dd4427
package
com
.
wecloud
.
im
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.experimental.Accessors
;
import
java.io.Serializable
;
/**
* <pre>
* 黑名单 查询结果对象
* </pre>
*
* @author wei
* @date 2021-06-17
*/
@Data
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"ImClientBlacklistQueryVo对象"
)
public
class
ImClientBlacklistQueryVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"被拉黑者id"
)
private
String
clientIdBePrevent
;
}
\ No newline at end of file
common/src/main/java/com/wecloud/im/param/add/ImClientBlacklistUpdate.java
0 → 100644
View file @
05dd4427
package
com
.
wecloud
.
im
.
param
.
add
;
import
io.geekidea.springbootplus.framework.common.entity.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
/**
* 黑名单
*
* @author wei
* @since 2021-06-17
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"ImClientBlacklistUpdate"
)
public
class
ImClientBlacklistUpdate
extends
BaseEntity
{
@ApiModelProperty
(
"被拉黑者id"
)
private
String
clientIdBePrevent
;
}
common/src/main/java/com/wecloud/im/service/ImClientBlacklistService.java
0 → 100644
View file @
05dd4427
package
com
.
wecloud
.
im
.
service
;
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
;
/**
* 黑名单 服务类
*
* @author wei
* @since 2021-06-17
*/
public
interface
ImClientBlacklistService
extends
BaseService
<
ImClientBlacklist
>
{
/**
* 当前客户端是否被拉黑
*
* @param currentClient 当前客户端
* @param toClient 对方客户端
* @return
*/
boolean
isBeBlack
(
Long
currentClient
,
Long
toClient
);
/**
* 拉入黑名单
*
* @param imClientBlacklistUpdate
* @return
* @throws Exception
*/
ApiResult
<
Boolean
>
addImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
;
/**
* 移出黑名单
*
* @param imClientBlacklistUpdate
* @return
* @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;
/**
* 获取分页对象
*
* @return
* @throws Exception
*/
ApiResult
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
ImClientBlacklistPageParam
imClientBlacklistPageParam
)
throws
Exception
;
}
common/src/main/java/com/wecloud/im/service/impl/ImClientBlacklistServiceImpl.java
0 → 100644
View file @
05dd4427
package
com
.
wecloud
.
im
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
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.ImClientBlacklistService
;
import
com.wecloud.im.service.ImClientService
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
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
io.geekidea.springbootplus.framework.shiro.util.SnowflakeUtil
;
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
;
/**
* 黑名单 服务实现类
*
* @author wei
* @since 2021-06-17
*/
@Slf4j
@Service
public
class
ImClientBlacklistServiceImpl
extends
BaseServiceImpl
<
ImClientBlacklistMapper
,
ImClientBlacklist
>
implements
ImClientBlacklistService
{
@Autowired
private
ImClientBlacklistMapper
imClientBlacklistMapper
;
@Autowired
private
ImClientService
imClientService
;
@Override
public
boolean
isBeBlack
(
Long
currentClient
,
Long
toClient
)
{
ImClientBlacklist
one
=
this
.
getOne
(
new
QueryWrapper
<
ImClientBlacklist
>().
lambda
()
.
eq
(
ImClientBlacklist:
:
getFkClientIdPrevent
,
currentClient
)
.
eq
(
ImClientBlacklist:
:
getFkClientIdBePrevent
,
toClient
));
return
one
!=
null
;
}
@Override
public
ApiResult
<
Boolean
>
addImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
{
ImClient
client
=
imClientService
.
getClient
();
ImClient
client1
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
client
.
getFkAppid
())
.
eq
(
ImClient:
:
getClientId
,
imClientBlacklistUpdate
.
getClientIdBePrevent
()));
ImClientBlacklist
imClientBlacklist
=
new
ImClientBlacklist
();
imClientBlacklist
.
setId
(
SnowflakeUtil
.
getId
());
imClientBlacklist
.
setCreateTime
(
new
Date
());
imClientBlacklist
.
setFkAppid
(
client
.
getFkAppid
());
imClientBlacklist
.
setFkClientIdPrevent
(
client
.
getId
());
imClientBlacklist
.
setFkClientIdBePrevent
(
client1
.
getId
());
boolean
save
=
this
.
save
(
imClientBlacklist
);
return
ApiResult
.
ok
();
}
@Override
public
ApiResult
<
Boolean
>
removeImClientBlacklist
(
ImClientBlacklistUpdate
imClientBlacklistUpdate
)
throws
Exception
{
ImClient
client
=
imClientService
.
getClient
();
ImClient
client1
=
imClientService
.
getOne
(
new
QueryWrapper
<
ImClient
>().
lambda
()
.
eq
(
ImClient:
:
getFkAppid
,
client
.
getFkAppid
())
.
eq
(
ImClient:
:
getClientId
,
imClientBlacklistUpdate
.
getClientIdBePrevent
()));
ImClientBlacklist
one
=
this
.
getOne
(
new
QueryWrapper
<
ImClientBlacklist
>().
lambda
()
.
eq
(
ImClientBlacklist:
:
getFkClientIdPrevent
,
client
.
getId
())
.
eq
(
ImClientBlacklist:
:
getFkClientIdBePrevent
,
client1
.
getId
()));
this
.
deleteImClientBlacklist
(
one
.
getId
());
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
public
ApiResult
<
Paging
<
ImClientBlacklistQueryVo
>>
getImClientBlacklistPageList
(
ImClientBlacklistPageParam
imClientBlacklistPageParam
)
throws
Exception
{
Page
<
ImClientBlacklistQueryVo
>
page
=
new
PageInfo
<>(
imClientBlacklistPageParam
,
OrderItem
.
desc
(
getLambdaColumn
(
ImClientBlacklist:
:
getCreateTime
)));
ImClient
client
=
imClientService
.
getClient
();
Paging
<
ImClientBlacklistQueryVo
>
imClientBlacklistPageList
=
imClientBlacklistMapper
.
getImClientBlacklistPageList
(
page
,
client
.
getId
());
return
ApiResult
.
ok
(
imClientBlacklistPageList
);
}
}
common/src/main/java/com/wecloud/im/tillo/app_ws/strategy/concrete/ImConcreteReceiveStrategy.java
View file @
05dd4427
...
...
@@ -10,6 +10,7 @@ import com.wecloud.im.entity.ImInbox;
import
com.wecloud.im.entity.ImMessage
;
import
com.wecloud.im.entity.ImMessageOnlineSend
;
import
com.wecloud.im.service.ImApplicationService
;
import
com.wecloud.im.service.ImClientBlacklistService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.service.ImConversationMembersService
;
import
com.wecloud.im.service.ImInboxService
;
...
...
@@ -44,6 +45,9 @@ import java.util.List;
public
class
ImConcreteReceiveStrategy
extends
AbstractReceiveStrategy
{
@Autowired
private
ImClientBlacklistService
imClientBlacklistService
;
@Autowired
private
WriteDataService
writeDataService
;
@Autowired
...
...
@@ -118,6 +122,7 @@ public class ImConcreteReceiveStrategy extends AbstractReceiveStrategy {
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
toConversationId
)
.
notIn
(
ImConversationMembers:
:
getFkClientId
,
imClientSender
.
getId
())
);
if
(
membersList
.
isEmpty
())
{
...
...
@@ -125,6 +130,40 @@ public class ImConcreteReceiveStrategy extends AbstractReceiveStrategy {
return
;
}
// 判断为单聊
if
(
membersList
.
size
()
==
1
)
{
// 判断是否被拉黑
if
(
imClientBlacklistService
.
isBeBlack
(
membersList
.
get
(
0
).
getId
(),
imClientSender
.
getId
()))
{
log
.
debug
(
"被对方拉黑了"
);
// 响应发送方
ResponseModel
<
HashMap
<
String
,
Long
>>
responseModel
=
new
ResponseModel
<>();
ApiResult
<
Boolean
>
result
=
ApiResult
.
result
(
ApiCode
.
IS_BE_BLACK
);
responseModel
.
setCmd
(
ResponseModel
.
RES
);
responseModel
.
setCode
(
result
.
getCode
());
responseModel
.
setMsg
(
result
.
getMessage
());
responseModel
.
setReqId
(
receiveModel
.
getReqId
());
writeDataService
.
write
(
responseModel
,
appKey
,
clientUniId
);
return
;
}
// 是否把对方拉黑
if
(
imClientBlacklistService
.
isBeBlack
(
imClientSender
.
getId
(),
membersList
.
get
(
0
).
getId
()))
{
log
.
debug
(
"你把对方拉黑了"
);
// 响应发送方
ResponseModel
<
HashMap
<
String
,
Long
>>
responseModel
=
new
ResponseModel
<>();
ApiResult
<
Boolean
>
result
=
ApiResult
.
result
(
ApiCode
.
IS_TO_BLACK
);
responseModel
.
setCmd
(
ResponseModel
.
RES
);
responseModel
.
setCode
(
result
.
getCode
());
responseModel
.
setMsg
(
result
.
getMessage
());
responseModel
.
setReqId
(
receiveModel
.
getReqId
());
writeDataService
.
write
(
responseModel
,
appKey
,
clientUniId
);
return
;
}
}
// 封装响应的实体
ImMessageOnlineSend
imMessageOnlineSend
=
new
ImMessageOnlineSend
();
BeanUtils
.
copyProperties
(
imMessage
,
imMessageOnlineSend
);
...
...
@@ -135,10 +174,11 @@ public class ImConcreteReceiveStrategy extends AbstractReceiveStrategy {
// 遍历发送
for
(
ImConversationMembers
conversationMembers
:
membersList
)
{
// 排除发送者
if
(
conversationMembers
.
getFkClientId
().
equals
(
imClientSender
.
getId
()))
{
continue
;
}
// // 排除发送者自己
// if (conversationMembers.getFkClientId().equals(imClientSender.getId())) {
// membersList.remove(conversationMembers);
// continue;
// }
// 保存收件箱
long
imInboxId
=
SnowflakeUtil
.
getId
();
ImInbox
imInbox
=
new
ImInbox
();
...
...
@@ -161,7 +201,7 @@ public class ImConcreteReceiveStrategy extends AbstractReceiveStrategy {
// 向接收方推送
ResponseModel
<
ImMessageOnlineSend
>
responseModel
=
new
ResponseModel
<>();
responseModel
.
setCmd
(
ResponseModel
.
RES
);
responseModel
.
setCmd
(
ResponseModel
.
ONLINE_MSG
);
ApiResult
<
Boolean
>
result
=
ApiResult
.
result
(
ApiCode
.
SUCCESS
);
responseModel
.
setCode
(
result
.
getCode
());
responseModel
.
setMsg
(
result
.
getMessage
());
...
...
@@ -176,7 +216,7 @@ public class ImConcreteReceiveStrategy extends AbstractReceiveStrategy {
// 响应发送方消息id等信息
ResponseModel
<
HashMap
<
String
,
Long
>>
responseModel
=
new
ResponseModel
<>();
ApiResult
<
Boolean
>
result
=
ApiResult
.
result
(
ApiCode
.
SUCCESS
);
responseModel
.
setCmd
(
ResponseModel
.
ONLINE_MSG
);
responseModel
.
setCmd
(
ResponseModel
.
RES
);
responseModel
.
setCode
(
result
.
getCode
());
responseModel
.
setMsg
(
result
.
getMessage
());
...
...
common/src/main/resources/mapper/ImClientBlacklistMapper.xml
0 → 100644
View file @
05dd4427
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.wecloud.im.mapper.ImClientBlacklistMapper"
>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id
, create_time, update_time, fk_appid, fk_client_id_prevent, fk_client_id_be_prevent
</sql>
<select
id=
"getImClientBlacklistById"
resultType=
"com.wecloud.im.param.ImClientBlacklistQueryVo"
>
select
<include
refid=
"Base_Column_List"
/>
from im_client_blacklist where id = #{id}
</select>
<select
id=
"getImClientBlacklistPageList"
resultType=
"com.wecloud.im.param.ImClientBlacklistQueryVo"
>
SELECT im_client.client_id AS clientIdBePrevent
FROM im_client_blacklist
INNER JOIN im_client ON im_client.id = im_client_blacklist.fk_client_id_be_prevent
WHERE im_client_blacklist.fk_client_id_prevent = #{clientId}
</select>
<!-- <select id="getImClientBlacklistPageList" parameterType="com.wecloud.im.param.ImClientBlacklistPageParam"-->
<!-- resultType="com.wecloud.im.param.ImClientBlacklistQueryVo">-->
<!-- select-->
<!-- <include refid="Base_Column_List"/>-->
<!-- from im_client_blacklist-->
<!-- </select>-->
</mapper>
config/src/main/resources/static/i18n/messages_zh_CN.properties
View file @
05dd4427
...
...
@@ -77,3 +77,5 @@ api.response.code.JWTDECODE_EXCEPTION=Token解析异常
api.response.code.HTTP_REQUEST_METHOD_NOT_SUPPORTED_EXCEPTION
=
默认的异常处理
api.response.code.REPETITION_CONVERSATION
=
已有会话,不能重复创建会话
api.response.code.CLIENT_NOT_FOUNT
=
成员不存在,不能创建会话
api.response.code.IS_BE_BLACK
=
被对方拉黑
api.response.code.IS_TO_BLACK
=
你把对方拉黑
framework/src/main/java/io/geekidea/springbootplus/framework/common/api/ApiCode.java
View file @
05dd4427
...
...
@@ -114,6 +114,16 @@ public enum ApiCode {
*/
CLIENT_NOT_FOUNT
(
6011
,
"api.response.code.CLIENT_NOT_FOUNT"
),
/**
* 被对方拉黑
*/
IS_BE_BLACK
(
6012
,
"api.response.code.IS_BE_BLACK"
),
/**
* 你把对方拉黑
*/
IS_TO_BLACK
(
6013
,
"api.response.code.IS_TO_BLACK"
),
;
private
final
int
code
;
...
...
pom.xml
View file @
05dd4427
...
...
@@ -9,7 +9,7 @@
<version>
2.0
</version>
<packaging>
pom
</packaging>
<name>
SiEn
</name>
<name>
WC_IM
</name>
<url>
https://github.com/geekidea/spring-boot-plus
</url>
<properties>
...
...
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