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
bc4eb4f3
Commit
bc4eb4f3
authored
Dec 01, 2021
by
hweeeeeei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加接口:添加或修改会话拓展字段
parent
f24e05e5
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
185 additions
and
6 deletions
+185
-6
common/src/main/java/com/wecloud/im/controller/ImConversationController.java
+28
-4
common/src/main/java/com/wecloud/im/param/add/ImClientLeaveConversation.java
+22
-0
common/src/main/java/com/wecloud/im/param/add/ImConversationAttrUpdate.java
+31
-0
common/src/main/java/com/wecloud/im/param/add/ImConversationNameUpdate.java
+29
-0
common/src/main/java/com/wecloud/im/service/ImConversationService.java
+17
-1
common/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+58
-1
No files found.
common/src/main/java/com/wecloud/im/controller/ImConversationController.java
View file @
bc4eb4f3
package
com
.
wecloud
.
im
.
controller
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationCreate
;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.MyConversationListVo
;
...
...
@@ -34,20 +37,41 @@ public class ImConversationController extends BaseController {
@Autowired
private
ImConversationService
imConversationService
;
/**
* 添加或修改会话名称
*/
@PostMapping
(
"/saveOrUpdateName"
)
@ApiOperation
(
value
=
"添加或修改会话名称"
,
notes
=
""
)
public
ApiResult
<
Boolean
>
saveOrUpdateName
(
@RequestBody
ImConversationNameUpdate
imConversationNameUpdate
)
throws
Exception
{
return
imConversationService
.
saveOrUpdateName
(
imConversationNameUpdate
);
}
/**
*
TODO
添加或修改会话拓展字段
* 添加或修改会话拓展字段
*/
@PostMapping
(
"/saveOrUpdateAttr"
)
@ApiOperation
(
value
=
"添加或修改会话拓展字段"
,
notes
=
""
)
public
ApiResult
<
Boolean
>
saveOrUpdateAttr
(
@RequestBody
ImConversationAttrUpdate
imConversationAttrUpdate
)
throws
Exception
{
return
imConversationService
.
saveOrUpdateAttr
(
imConversationAttrUpdate
);
}
/**
*
TODO
退出会话
*
client
退出会话
*/
@PostMapping
(
"/leave"
)
@ApiOperation
(
value
=
"client退出会话"
,
notes
=
""
)
public
ApiResult
<
Boolean
>
leaveConversation
(
@RequestBody
ImClientLeaveConversation
imClientToConversation
)
throws
Exception
{
return
imConversationService
.
leaveConversation
(
imClientToConversation
);
}
/**
* 将client从会话移除
*/
@PostMapping
(
"delClient"
)
@PostMapping
(
"
/
delClient"
)
@ApiOperation
(
value
=
"将client从会话移除"
,
notes
=
""
)
public
ApiResult
<
Boolean
>
delClientToConversation
(
@RequestBody
ImClientToConversation
imClientToConversation
)
throws
Exception
{
return
imConversationService
.
delClientToConversation
(
imClientToConversation
);
...
...
@@ -57,7 +81,7 @@ public class ImConversationController extends BaseController {
/**
* 将用户添加进会话
*/
@PostMapping
(
"addClient"
)
@PostMapping
(
"
/
addClient"
)
@ApiOperation
(
value
=
"将用户添加进会话"
,
notes
=
""
)
public
ApiResult
<
Boolean
>
addClientToConversation
(
@RequestBody
ImClientToConversation
imClientToConversation
)
throws
Exception
{
return
imConversationService
.
addClientToConversation
(
imClientToConversation
);
...
...
common/src/main/java/com/wecloud/im/param/add/ImClientLeaveConversation.java
0 → 100644
View file @
bc4eb4f3
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
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"ImClientLeaveConversation"
)
public
class
ImClientLeaveConversation
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"会话表id"
)
private
Long
conversationId
;
}
common/src/main/java/com/wecloud/im/param/add/ImConversationAttrUpdate.java
0 → 100644
View file @
bc4eb4f3
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
=
"ImConversationAttrUpdate"
)
public
class
ImConversationAttrUpdate
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/ImConversationNameUpdate.java
0 → 100644
View file @
bc4eb4f3
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-05-07
*/
@Data
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"ImConversationNameUpdate"
)
public
class
ImConversationNameUpdate
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"对话的名字,可为群组命名。"
)
private
String
name
;
@ApiModelProperty
(
"会话表id"
)
private
Long
conversationId
;
}
common/src/main/java/com/wecloud/im/service/ImConversationService.java
View file @
bc4eb4f3
...
...
@@ -4,9 +4,12 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationCreate
;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.MyConversationListVo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
...
...
@@ -51,7 +54,6 @@ public interface ImConversationService extends BaseService<ImConversation> {
*/
ApiResult
<
Boolean
>
addClientToConversation
(
ImClientToConversation
imClientToConversation
);
/**
* 将client从会话移除
*
...
...
@@ -60,6 +62,20 @@ public interface ImConversationService extends BaseService<ImConversation> {
*/
ApiResult
<
Boolean
>
delClientToConversation
(
ImClientToConversation
imClientToConversation
)
throws
Exception
;
/**
* client退出会话
*/
ApiResult
<
Boolean
>
leaveConversation
(
ImClientLeaveConversation
imClientToConversation
)
throws
Exception
;
/**
* 添加或修改会话名称
*/
ApiResult
<
Boolean
>
saveOrUpdateName
(
ImConversationNameUpdate
imConversationNameUpdate
)
throws
Exception
;
/**
* 添加或修改会话拓展字段
*/
ApiResult
<
Boolean
>
saveOrUpdateAttr
(
ImConversationAttrUpdate
imConversationAttrUpdate
)
throws
Exception
;
/**
* 修改
...
...
common/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
bc4eb4f3
...
...
@@ -16,9 +16,12 @@ import com.wecloud.im.entity.ImMessageOnlineSend;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationCreate
;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.service.ImApplicationService
;
import
com.wecloud.im.service.ImClientService
;
import
com.wecloud.im.service.ImConversationMembersService
;
...
...
@@ -379,7 +382,7 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
.
eq
(
ImConversationMembers:
:
getFkClientId
,
client2
.
getId
())
);
//
已经在该会话
则跳过
// 则跳过
imConversationMembersService
.
deleteImConversationMembers
(
members
.
getId
());
// ws移除事件通知给群内其他人 ----------
...
...
@@ -451,6 +454,60 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
@Override
public
ApiResult
<
Boolean
>
leaveConversation
(
ImClientLeaveConversation
imClientToConversation
)
throws
Exception
{
return
null
;
}
@Override
public
ApiResult
<
Boolean
>
saveOrUpdateName
(
ImConversationNameUpdate
imConversationNameUpdate
)
throws
Exception
{
return
null
;
}
@Override
public
ApiResult
<
Boolean
>
saveOrUpdateAttr
(
ImConversationAttrUpdate
imConversationAttrUpdate
)
throws
Exception
{
// shiro线程中获取当前token
JwtToken
curentJwtToken
=
JwtUtil
.
getCurentJwtToken
();
// 根据appKey查询application
ImApplication
imApplication
=
imApplicationService
.
getOneByAppKey
(
curentJwtToken
.
getAppKey
());
ImClient
imClientSender
=
imClientService
.
getCurentClient
();
// 判断是否为群主
ImConversation
imConversationById
=
imConversationService
.
getById
(
imConversationAttrUpdate
.
getConversationId
());
if
(
imConversationById
==
null
||
!
imConversationById
.
getCreator
().
equals
(
imClientSender
.
getId
()))
{
return
ApiResult
.
result
(
false
);
}
// 查询该会话所有成员
List
<
ImConversationMembers
>
membersList
=
imConversationMembersService
.
list
(
new
QueryWrapper
<
ImConversationMembers
>().
lambda
()
.
eq
(
ImConversationMembers:
:
getFkConversationId
,
imConversationAttrUpdate
.
getConversationId
())
.
notIn
(
ImConversationMembers:
:
getId
,
imClientSender
.
getId
())
);
JsonMapper
jsonMapper
=
new
JsonMapper
();
try
{
String
attributes
=
jsonMapper
.
writeValueAsString
(
imConversationAttrUpdate
.
getAttributes
());
imConversationById
.
setAttributes
(
attributes
);
}
catch
(
JsonProcessingException
e
)
{
e
.
printStackTrace
();
return
ApiResult
.
fail
();
}
boolean
b
=
imConversationService
.
updateById
(
imConversationById
);
if
(
b
)
{
return
ApiResult
.
ok
();
}
else
{
return
ApiResult
.
fail
();
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
boolean
updateImConversation
(
ImConversation
imConversation
)
throws
Exception
{
...
...
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