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
Commit
1b9e0512
authored
Dec 02, 2021
by
hweeeeeei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加接口:添加或修改会话成员拓展字段
parent
b546e7e9
Hide 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
;
package
com
.
wecloud
.
im
.
controller
;
import
com.wecloud.im.param.add.ImConversationMemAttrUpdate
;
import
com.wecloud.im.service.ImConversationMembersService
;
import
com.wecloud.im.service.ImConversationMembersService
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.geekidea.springbootplus.framework.common.controller.BaseController
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
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.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
...
@@ -23,6 +28,15 @@ public class ImConversationMembersController extends BaseController {
...
@@ -23,6 +28,15 @@ public class ImConversationMembersController extends BaseController {
@Autowired
@Autowired
private
ImConversationMembersService
imConversationMembersService
;
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 {
...
@@ -48,6 +48,9 @@ public class ImConversationMembers extends BaseEntity {
@ApiModelProperty
(
"客户端id"
)
@ApiModelProperty
(
"客户端id"
)
private
Long
fkClientId
;
private
Long
fkClientId
;
@ApiModelProperty
(
"可选 自定义属性,供开发者扩展使用。"
)
private
String
attributes
;
@NotNull
(
message
=
"单向删除(隐藏)会话, 0不显示, 1显示不能为空"
)
@NotNull
(
message
=
"单向删除(隐藏)会话, 0不显示, 1显示不能为空"
)
@ApiModelProperty
(
"单向删除(隐藏)会话, 0不显示, 1显示"
)
@ApiModelProperty
(
"单向删除(隐藏)会话, 0不显示, 1显示"
)
private
Long
displayStatus
;
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;
...
@@ -7,6 +7,8 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
lombok.experimental.Accessors
;
import
java.util.HashMap
;
/**
/**
* 自定义透传内容
* 自定义透传内容
*
*
...
@@ -20,8 +22,13 @@ public class ImMsgSendToOnlineClient extends BaseEntity {
...
@@ -20,8 +22,13 @@ public class ImMsgSendToOnlineClient extends BaseEntity {
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
value
=
"自定义透传内容"
,
required
=
true
)
// @ApiModelProperty(value = "自定义透传内容", required = true)
private
String
content
;
// private String content;
@ApiModelProperty
(
value
=
"自定义透传内容 ,为任意参数名称和类型的对象,供开发者扩展使用。"
,
required
=
true
)
private
HashMap
content
;
@ApiModelProperty
(
value
=
"会话id"
,
required
=
true
)
@ApiModelProperty
(
value
=
"会话id"
,
required
=
true
)
private
Long
conversationId
;
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;
...
@@ -6,6 +6,7 @@ import com.wecloud.im.param.ApiImConversationMembersPageParam;
import
com.wecloud.im.param.ApiImConversationMembersQueryVo
;
import
com.wecloud.im.param.ApiImConversationMembersQueryVo
;
import
com.wecloud.im.param.ImConversationMembersPageParam
;
import
com.wecloud.im.param.ImConversationMembersPageParam
;
import
com.wecloud.im.param.ImConversationMembersQueryVo
;
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.api.ApiResult
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.common.service.BaseService
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
...
@@ -24,6 +25,8 @@ public interface ImConversationMembersService extends BaseService<ImConversation
...
@@ -24,6 +25,8 @@ public interface ImConversationMembersService extends BaseService<ImConversation
ApiResult
<
List
<
ApiImConversationMembersQueryVo
>>
getRestApiImConversationMembersList
(
ApiImConversationMembersPageParam
apiImConversationMembersPageParam
,
ImApplication
imApplication
);
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
;
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.IPage
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
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.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.json.JsonMapper
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImApplication
;
import
com.wecloud.im.entity.ImClient
;
import
com.wecloud.im.entity.ImConversationMembers
;
import
com.wecloud.im.entity.ImConversationMembers
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.mapper.ImConversationMembersMapper
;
import
com.wecloud.im.mapper.ImConversationMembersMapper
;
import
com.wecloud.im.param.ApiImConversationMembersPageParam
;
import
com.wecloud.im.param.ApiImConversationMembersPageParam
;
import
com.wecloud.im.param.ApiImConversationMembersQueryVo
;
import
com.wecloud.im.param.ApiImConversationMembersQueryVo
;
import
com.wecloud.im.param.ImConversationMembersPageParam
;
import
com.wecloud.im.param.ImConversationMembersPageParam
;
import
com.wecloud.im.param.ImConversationMembersQueryVo
;
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.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.api.ApiResult
;
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
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
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
;
...
@@ -32,6 +45,30 @@ import java.util.List;
...
@@ -32,6 +45,30 @@ import java.util.List;
@Service
@Service
public
class
ImConversationMembersServiceImpl
extends
BaseServiceImpl
<
ImConversationMembersMapper
,
ImConversationMembers
>
implements
ImConversationMembersService
{
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
@Autowired
private
ImConversationMembersMapper
imConversationMembersMapper
;
private
ImConversationMembersMapper
imConversationMembersMapper
;
...
@@ -42,6 +79,62 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
...
@@ -42,6 +79,62 @@ public class ImConversationMembersServiceImpl extends BaseServiceImpl<ImConversa
return
ApiResult
.
ok
(
restApiImConversationMembersList
);
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
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
@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
...
@@ -646,8 +646,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
if
(
b
)
{
if
(
b
)
{
//TODO 下发群变动事件
//TODO ws下发群属性变动事件
return
ApiResult
.
ok
();
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;
...
@@ -55,6 +55,8 @@ import java.util.List;
@Service
@Service
public
class
ImMessageServiceImpl
extends
BaseServiceImpl
<
ImMessageMapper
,
ImMessage
>
implements
ImMessageService
{
public
class
ImMessageServiceImpl
extends
BaseServiceImpl
<
ImMessageMapper
,
ImMessage
>
implements
ImMessageService
{
// private static final JsonMapper JSON_MAPPER = new JsonMapper();
@Autowired
@Autowired
private
ImMessageMapper
imMessageMapper
;
private
ImMessageMapper
imMessageMapper
;
...
@@ -95,7 +97,17 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
...
@@ -95,7 +97,17 @@ public class ImMessageServiceImpl extends BaseServiceImpl<ImMessageMapper, ImMes
ImApiMessageOnlineSend
imApiMessageOnlineSend
=
new
ImApiMessageOnlineSend
();
ImApiMessageOnlineSend
imApiMessageOnlineSend
=
new
ImApiMessageOnlineSend
();
imApiMessageOnlineSend
.
setCreateTime
(
new
Date
());
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
());
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