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
1b9e0512
You need to sign in or sign up before continuing.
Commit
1b9e0512
authored
Dec 02, 2021
by
hweeeeeei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加接口:添加或修改会话成员拓展字段
parent
b546e7e9
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
167 additions
and
5 deletions
+167
-5
common/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
+14
-0
common/src/main/java/com/wecloud/im/entity/ImConversationMembers.java
+3
-0
common/src/main/java/com/wecloud/im/param/add/ImConversationMemAttrUpdate.java
+31
-0
common/src/main/java/com/wecloud/im/param/add/ImMsgSendToOnlineClient.java
+9
-2
common/src/main/java/com/wecloud/im/service/ImConversationMembersService.java
+3
-0
common/src/main/java/com/wecloud/im/service/impl/ImConversationMembersServiceImpl.java
+93
-0
common/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+1
-2
common/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
+13
-1
No files found.
common/src/main/java/com/wecloud/im/controller/ImConversationMembersController.java
View file @
1b9e0512
package
com
.
wecloud
.
im
.
controller
;
import
com.wecloud.im.param.add.ImConversationMemAttrUpdate
;
import
com.wecloud.im.service.ImConversationMembersService
;
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
;
...
...
@@ -23,6 +28,15 @@ public class ImConversationMembersController extends BaseController {
@Autowired
private
ImConversationMembersService
imConversationMembersService
;
/**
* 添加或修改会话成员拓展字段
*/
@PostMapping
(
"/saveOrUpdateAttr"
)
@ApiOperation
(
value
=
"添加或修改会话成员拓展字段"
,
notes
=
"权限:目前只有client成员自己有权限操作"
)
public
ApiResult
<
Boolean
>
saveOrUpdateAttr
(
@RequestBody
ImConversationMemAttrUpdate
imConversationMemAttrUpdate
)
throws
Exception
{
return
imConversationMembersService
.
saveOrUpdateAttr
(
imConversationMemAttrUpdate
);
}
// /**
// * 添加会话成员表
...
...
common/src/main/java/com/wecloud/im/entity/ImConversationMembers.java
View file @
1b9e0512
...
...
@@ -48,6 +48,9 @@ public class ImConversationMembers extends BaseEntity {
@ApiModelProperty
(
"客户端id"
)
private
Long
fkClientId
;
@ApiModelProperty
(
"可选 自定义属性,供开发者扩展使用。"
)
private
String
attributes
;
@NotNull
(
message
=
"单向删除(隐藏)会话, 0不显示, 1显示不能为空"
)
@ApiModelProperty
(
"单向删除(隐藏)会话, 0不显示, 1显示"
)
private
Long
displayStatus
;
...
...
common/src/main/java/com/wecloud/im/param/add/ImConversationMemAttrUpdate.java
0 → 100644
View file @
1b9e0512
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
;
import
java.util.HashMap
;
/**
* 会话表
*
* @author wei
* @since 2021-05-07
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"ImConversationMemAttrUpdate"
)
public
class
ImConversationMemAttrUpdate
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"json格式,自定义属性,供开发者扩展使用。"
)
private
HashMap
attributes
;
@ApiModelProperty
(
"会话表id"
)
private
Long
conversationId
;
}
common/src/main/java/com/wecloud/im/param/add/ImMsgSendToOnlineClient.java
View file @
1b9e0512
...
...
@@ -7,6 +7,8 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
java.util.HashMap
;
/**
* 自定义透传内容
*
...
...
@@ -20,8 +22,13 @@ public class ImMsgSendToOnlineClient extends BaseEntity {
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"自定义透传内容"
,
required
=
true
)
private
String
content
;
// @ApiModelProperty(value = "自定义透传内容", required = true)
// private String content;
@ApiModelProperty
(
value
=
"自定义透传内容 ,为任意参数名称和类型的对象,供开发者扩展使用。"
,
required
=
true
)
private
HashMap
content
;
@ApiModelProperty
(
value
=
"会话id"
,
required
=
true
)
private
Long
conversationId
;
...
...
common/src/main/java/com/wecloud/im/service/ImConversationMembersService.java
View file @
1b9e0512
...
...
@@ -6,6 +6,7 @@ import com.wecloud.im.param.ApiImConversationMembersPageParam;
import
com.wecloud.im.param.ApiImConversationMembersQueryVo
;
import
com.wecloud.im.param.ImConversationMembersPageParam
;
import
com.wecloud.im.param.ImConversationMembersQueryVo
;
import
com.wecloud.im.param.add.ImConversationMemAttrUpdate
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
...
...
@@ -24,6 +25,8 @@ public interface ImConversationMembersService extends BaseService<ImConversation
ApiResult
<
List
<
ApiImConversationMembersQueryVo
>>
getRestApiImConversationMembersList
(
ApiImConversationMembersPageParam
apiImConversationMembersPageParam
,
ImApplication
imApplication
);
ApiResult
<
Boolean
>
saveOrUpdateAttr
(
ImConversationMemAttrUpdate
imConversationMemAttrUpdate
);
/**
* 保存
*
...
...
common/src/main/java/com/wecloud/im/service/impl/ImConversationMembersServiceImpl.java
View file @
1b9e0512
package
com
.
wecloud
.
im
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.json.JsonMapper
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImConversationMembers
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.mapper.ImConversationMembersMapper
;
import
com.wecloud.im.param.ApiImConversationMembersPageParam
;
import
com.wecloud.im.param.ApiImConversationMembersQueryVo
;
import
com.wecloud.im.param.ImConversationMembersPageParam
;
import
com.wecloud.im.param.ImConversationMembersQueryVo
;
import
com.wecloud.im.param.add.ImConversationMemAttrUpdate
;
import
com.wecloud.im.service.ImApplicationService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.service.ImConversationMembersService
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImMessageService
;
import
com.wecloud.im.ws.service.WriteDataService
;
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.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -32,6 +45,30 @@ import java.util.List;
@Service
public
class
ImConversationMembersServiceImpl
extends
BaseServiceImpl
<
ImConversationMembersMapper
,
ImConversationMembers
>
implements
ImConversationMembersService
{
// private static final JsonMapper JSON_MAPPER = new JsonMapper();
@Autowired
private
WriteDataService
writeDataService
;
@Autowired
private
ImConversationMapper
imConversationMapper
;
@Autowired
private
ImConversationMembersService
imConversationMembersService
;
@Autowired
private
ImConversationService
imConversationService
;
@Autowired
private
ImClientService
imClientService
;
@Autowired
private
ImApplicationService
imApplicationService
;
@Autowired
private
ImMessageService
imMessageService
;
@Autowired
private
ImConversationMembersMapper
imConversationMembersMapper
;
...
...
@@ -42,6 +79,62 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
return
ApiResult
.
ok
(
restApiImConversationMembersList
);
}
@Override
public
ApiResult
<
Boolean
>
saveOrUpdateAttr
(
ImConversationMemAttrUpdate
imConversationMemAttrUpdate
)
{
// shiro线程中获取当前token
JwtToken
curentJwtToken
=
JwtUtil
.
getCurentJwtToken
();
// 根据appKey查询application
ImApplication
imApplication
=
imApplicationService
.
getOneByAppKey
(
curentJwtToken
.
getAppKey
());
ImClient
imClientSender
=
imClientService
.
getCurentClient
();
// 查询该成员
ImConversationMembers
imConversationMember
=
imConversationMembersService
.
getOne
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkAppid
,
imApplication
.
getId
())
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
imConversationMemAttrUpdate
.
getConversationId
())
.
eq
(
ImConversationMembers:
:
getId
,
imClientSender
.
getId
())
);
if
(
imConversationMember
==
null
)
{
return
ApiResult
.
fail
();
}
// // 查询该会话所有成员
// List<ImConversationMembers> membersList = imConversationMembersService.list(
// new QueryWrapper<ImConversationMembers>().lambda()
// .eq(ImConversationMembers::getFkAppid, imApplication.getId())
// .eq(ImConversationMembers::getFkConversationId, imConversationAttrUpdate.getConversationId())
// .notIn(ImConversationMembers::getId, imClientSender.getId())
// );
JsonMapper
jsonMapper
=
new
JsonMapper
();
try
{
String
attributes
=
jsonMapper
.
writeValueAsString
(
imConversationMemAttrUpdate
.
getAttributes
());
imConversationMember
.
setAttributes
(
attributes
);
}
catch
(
JsonProcessingException
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
fail
();
}
boolean
b
=
imConversationMembersService
.
updateById
(
imConversationMember
);
if
(
b
)
{
//TODO ws下发群成员属性变动事件
return
ApiResult
.
ok
();
}
else
{
return
ApiResult
.
fail
();
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
...
...
common/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
1b9e0512
...
...
@@ -646,8 +646,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
if
(
b
)
{
//TODO 下发群变动事件
//TODO ws下发群属性变动事件
return
ApiResult
.
ok
();
...
...
common/src/main/java/com/wecloud/im/service/impl/ImMessageServiceImpl.java
View file @
1b9e0512
...
...
@@ -55,6 +55,8 @@ import java.util.List;
@Service
public
class
ImMessageServiceImpl
extends
BaseServiceImpl
<
ImMessageMapper
,
ImMessage
>
implements
ImMessageService
{
// private static final JsonMapper JSON_MAPPER = new JsonMapper();
@Autowired
private
ImMessageMapper
imMessageMapper
;
...
...
@@ -95,7 +97,17 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
ImApiMessageOnlineSend
imApiMessageOnlineSend
=
new
ImApiMessageOnlineSend
();
imApiMessageOnlineSend
.
setCreateTime
(
new
Date
());
imApiMessageOnlineSend
.
setContent
(
imMsgSendToOnlineClient
.
getContent
());
JsonMapper
jsonMapper
=
new
JsonMapper
();
try
{
String
attributes
=
jsonMapper
.
writeValueAsString
(
imMsgSendToOnlineClient
.
getContent
());
imApiMessageOnlineSend
.
setContent
(
attributes
);
}
catch
(
JsonProcessingException
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
fail
();
}
imApiMessageOnlineSend
.
setConversationId
(
imMsgSendToOnlineClient
.
getConversationId
());
...
...
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