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
e41cb659
Commit
e41cb659
authored
Feb 14, 2022
by
Future
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
根据会话id查询指定会话信息
parent
a44a3640
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
82 additions
and
16 deletions
+82
-16
bootstrap/src/test/java/io/geekidea/springbootplus/test/ImConversationTest.java
+2
-2
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
+14
-3
core/src/main/java/com/wecloud/im/mapper/ImConversationMapper.java
+2
-2
core/src/main/java/com/wecloud/im/param/ImConversationQueryParam.java
+25
-0
core/src/main/java/com/wecloud/im/service/ImConversationService.java
+10
-2
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
+24
-5
core/src/main/java/com/wecloud/im/vo/ConversationVo.java
+1
-1
core/src/main/resources/mapper/ImConversationMapper.xml
+4
-1
No files found.
bootstrap/src/test/java/io/geekidea/springbootplus/test/ImConversationTest.java
View file @
e41cb659
...
@@ -2,7 +2,7 @@ package io.geekidea.springbootplus.test;
...
@@ -2,7 +2,7 @@ package io.geekidea.springbootplus.test;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.vo.
MyConversationList
Vo
;
import
com.wecloud.im.vo.
Conversation
Vo
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -23,7 +23,7 @@ public class ImConversationTest {
...
@@ -23,7 +23,7 @@ public class ImConversationTest {
@Test
@Test
public
void
listConversation
()
{
public
void
listConversation
()
{
List
<
MyConversationListVo
>
myImConversationList
=
imConversationMapper
.
getMyImConversationListAndMsgCount
(
1394579719625773056L
);
List
<
ConversationVo
>
myImConversationList
=
imConversationMapper
.
getMyImConversationListAndMsgCount
(
1394579719625773056L
,
null
);
List
<
ImConversation
>
myImConversationList1
=
imConversationMapper
.
getMyImConversationList
(
1394579719625773056L
);
List
<
ImConversation
>
myImConversationList1
=
imConversationMapper
.
getMyImConversationList
(
1394579719625773056L
);
...
...
core/src/main/java/com/wecloud/im/controller/ImConversationController.java
View file @
e41cb659
package
com
.
wecloud
.
im
.
controller
;
package
com
.
wecloud
.
im
.
controller
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
import
com.wecloud.im.param.add.ImConversationAttrUpdate
;
...
@@ -8,7 +9,7 @@ import com.wecloud.im.param.add.ImConversationDisplayUpdate;
...
@@ -8,7 +9,7 @@ import com.wecloud.im.param.add.ImConversationDisplayUpdate;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.
MyConversationList
Vo
;
import
com.wecloud.im.vo.
Conversation
Vo
;
import
io.geekidea.springbootplus.framework.common.api.ApiResult
;
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
;
...
@@ -101,12 +102,22 @@ public class ImConversationController extends BaseController {
...
@@ -101,12 +102,22 @@ public class ImConversationController extends BaseController {
*/
*/
@PostMapping
(
"/getList"
)
@PostMapping
(
"/getList"
)
@ApiOperation
(
value
=
"查询加入的会话列表"
,
notes
=
"查询用户加入的非隐藏状态的会话列表 与每个会话的未读条数 成员"
)
@ApiOperation
(
value
=
"查询加入的会话列表"
,
notes
=
"查询用户加入的非隐藏状态的会话列表 与每个会话的未读条数 成员"
)
public
ApiResult
<
List
<
MyConversationList
Vo
>>
getMyImConversationListAndMsgCount
()
throws
Exception
{
public
ApiResult
<
List
<
Conversation
Vo
>>
getMyImConversationListAndMsgCount
()
throws
Exception
{
List
<
MyConversationList
Vo
>
conversationList
=
imConversationService
.
getMyImConversationListAndMsgCount
();
List
<
Conversation
Vo
>
conversationList
=
imConversationService
.
getMyImConversationListAndMsgCount
();
return
ApiResult
.
ok
(
conversationList
);
return
ApiResult
.
ok
(
conversationList
);
}
}
/**
/**
* 根据会话id查询指定会话信息
*/
@PostMapping
(
"/info"
)
@ApiOperation
(
value
=
"根据会话id查询指定会话信息"
,
notes
=
"根据会话id查询指定会话信息 与每个会话的未读条数"
)
public
ApiResult
<
ConversationVo
>
info
(
ImConversationQueryParam
param
)
throws
Exception
{
ConversationVo
conversationVo
=
imConversationService
.
infoImConversationAndMsgCount
(
param
);
return
ApiResult
.
ok
(
conversationVo
);
}
/**
* 批量修改单向隐藏或显示会话
* 批量修改单向隐藏或显示会话
*/
*/
@PostMapping
(
"/displayUpdate"
)
@PostMapping
(
"/displayUpdate"
)
...
...
core/src/main/java/com/wecloud/im/mapper/ImConversationMapper.java
View file @
e41cb659
...
@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...
@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.vo.
MyConversationList
Vo
;
import
com.wecloud.im.vo.
Conversation
Vo
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -46,7 +46,7 @@ public interface ImConversationMapper extends BaseMapper<ImConversation> {
...
@@ -46,7 +46,7 @@ public interface ImConversationMapper extends BaseMapper<ImConversation> {
* @param clientId
* @param clientId
* @return
* @return
*/
*/
List
<
MyConversationListVo
>
getMyImConversationListAndMsgCount
(
@Param
(
"clientId"
)
Long
client
Id
);
List
<
ConversationVo
>
getMyImConversationListAndMsgCount
(
@Param
(
"clientId"
)
Long
clientId
,
@Param
(
"conversationId"
)
Long
conversation
Id
);
/**
/**
* 查询用户加入的所有会话
* 查询用户加入的所有会话
...
...
core/src/main/java/com/wecloud/im/param/ImConversationQueryParam.java
0 → 100644
View file @
e41cb659
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
;
/**
* @Author wenzhida
* @Date 2022/2/14 16:52
* @Description 会话信息获取入参
*/
@Data
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"会话信息获取入参"
)
public
class
ImConversationQueryParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
302200332780152186L
;
@ApiModelProperty
(
"会话id"
)
private
Long
id
;
}
core/src/main/java/com/wecloud/im/service/ImConversationService.java
View file @
e41cb659
...
@@ -3,6 +3,7 @@ package com.wecloud.im.service;
...
@@ -3,6 +3,7 @@ package com.wecloud.im.service;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.entity.ImConversation
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
...
@@ -11,7 +12,7 @@ import com.wecloud.im.param.add.ImConversationCreate;
...
@@ -11,7 +12,7 @@ import com.wecloud.im.param.add.ImConversationCreate;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationDisplayUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.param.add.ImConversationNameUpdate
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.
MyConversationList
Vo
;
import
com.wecloud.im.vo.
Conversation
Vo
;
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
;
...
@@ -127,7 +128,14 @@ public interface ImConversationService extends BaseService<ImConversation> {
...
@@ -127,7 +128,14 @@ public interface ImConversationService extends BaseService<ImConversation> {
* @return
* @return
* @throws Exception
* @throws Exception
*/
*/
List
<
MyConversationListVo
>
getMyImConversationListAndMsgCount
()
throws
Exception
;
List
<
ConversationVo
>
getMyImConversationListAndMsgCount
()
throws
Exception
;
/**
* 根据会话id查询单个会话信息 与会话的未读条数
* @param param
* @return
*/
ConversationVo
infoImConversationAndMsgCount
(
ImConversationQueryParam
param
)
throws
Exception
;
/**
/**
* 获取加入的所有会话
* 获取加入的所有会话
...
...
core/src/main/java/com/wecloud/im/service/impl/ImConversationServiceImpl.java
View file @
e41cb659
...
@@ -14,6 +14,7 @@ import com.wecloud.im.entity.ImMessageOnlineSend;
...
@@ -14,6 +14,7 @@ import com.wecloud.im.entity.ImMessageOnlineSend;
import
com.wecloud.im.enums.ChatTypeEnum
;
import
com.wecloud.im.enums.ChatTypeEnum
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.mapper.ImConversationMapper
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationPageParam
;
import
com.wecloud.im.param.ImConversationQueryParam
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.ImConversationQueryVo
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientLeaveConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
import
com.wecloud.im.param.add.ImClientToConversation
;
...
@@ -27,7 +28,7 @@ import com.wecloud.im.service.ImConversationMembersService;
...
@@ -27,7 +28,7 @@ import com.wecloud.im.service.ImConversationMembersService;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImConversationService
;
import
com.wecloud.im.service.ImMessageService
;
import
com.wecloud.im.service.ImMessageService
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.ImConversationCreateVo
;
import
com.wecloud.im.vo.
MyConversationList
Vo
;
import
com.wecloud.im.vo.
Conversation
Vo
;
import
com.wecloud.im.vo.OfflineMsgDto
;
import
com.wecloud.im.vo.OfflineMsgDto
;
import
com.wecloud.im.ws.enums.MsgTypeEnum
;
import
com.wecloud.im.ws.enums.MsgTypeEnum
;
import
com.wecloud.im.ws.enums.WsResponseCmdEnum
;
import
com.wecloud.im.ws.enums.WsResponseCmdEnum
;
...
@@ -44,6 +45,7 @@ import io.geekidea.springbootplus.framework.core.pagination.Paging;
...
@@ -44,6 +45,7 @@ import io.geekidea.springbootplus.framework.core.pagination.Paging;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.jwt.JwtToken
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
io.geekidea.springbootplus.framework.shiro.util.JwtUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheConfig
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.CacheEvict
;
...
@@ -810,18 +812,18 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -810,18 +812,18 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
}
@Override
@Override
public
List
<
MyConversationList
Vo
>
getMyImConversationListAndMsgCount
()
throws
Exception
{
public
List
<
Conversation
Vo
>
getMyImConversationListAndMsgCount
()
throws
Exception
{
ImClient
client
=
imClientService
.
getCurentClient
();
ImClient
client
=
imClientService
.
getCurentClient
();
// 查询用户加入的所有会话 与每个会话的未读条数 成员
// 查询用户加入的所有会话 与每个会话的未读条数 成员
List
<
MyConversationListVo
>
myImConversationListAndMsgCount
=
imConversationMapper
.
getMyImConversationListAndMsgCount
(
client
.
getId
()
);
List
<
ConversationVo
>
myImConversationListAndMsgCount
=
imConversationMapper
.
getMyImConversationListAndMsgCount
(
client
.
getId
(),
null
);
// 返回的
// 返回的
List
<
MyConversationList
Vo
>
myImConversationListAndMsgCountNew
=
new
ArrayList
<>();
List
<
Conversation
Vo
>
myImConversationListAndMsgCountNew
=
new
ArrayList
<>();
// 转换json格式
// 转换json格式
for
(
MyConversationList
Vo
myconversationlistvo
:
myImConversationListAndMsgCount
)
{
for
(
Conversation
Vo
myconversationlistvo
:
myImConversationListAndMsgCount
)
{
HashMap
attributess
=
JsonUtils
.
json2Map
(
myconversationlistvo
.
getAttribute
());
HashMap
attributess
=
JsonUtils
.
json2Map
(
myconversationlistvo
.
getAttribute
());
myconversationlistvo
.
setAttributes
(
attributess
);
myconversationlistvo
.
setAttributes
(
attributess
);
...
@@ -836,6 +838,23 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
...
@@ -836,6 +838,23 @@ public class ImConversationServiceImpl extends BaseServiceImpl<ImConversationMap
}
}
@Override
public
ConversationVo
infoImConversationAndMsgCount
(
ImConversationQueryParam
param
)
throws
Exception
{
ImClient
client
=
imClientService
.
getCurentClient
();
// 查询用户加入的所有会话 与每个会话的未读条数 成员
List
<
ConversationVo
>
conversationList
=
imConversationMapper
.
getMyImConversationListAndMsgCount
(
client
.
getId
(),
param
.
getId
());
if
(
CollectionUtils
.
isEmpty
(
conversationList
))
{
return
null
;
}
ConversationVo
conversationVo
=
conversationList
.
get
(
0
);
HashMap
attributess
=
JsonUtils
.
json2Map
(
conversationVo
.
getAttribute
());
conversationVo
.
setAttributes
(
attributess
);
// 查询会话的最后一条消息
OfflineMsgDto
lastMsg
=
imMessageService
.
getLastMsgByConversationId
(
conversationVo
.
getId
());
conversationVo
.
setLastMsg
(
lastMsg
);
return
conversationVo
;
}
@Override
@Override
public
List
<
ImConversation
>
getMyImConversationList
()
throws
Exception
{
public
List
<
ImConversation
>
getMyImConversationList
()
throws
Exception
{
...
...
core/src/main/java/com/wecloud/im/vo/
MyConversationList
Vo.java
→
core/src/main/java/com/wecloud/im/vo/
Conversation
Vo.java
View file @
e41cb659
...
@@ -21,7 +21,7 @@ import java.util.HashMap;
...
@@ -21,7 +21,7 @@ import java.util.HashMap;
@Data
@Data
@Accessors
(
chain
=
true
)
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"MyConversationListVo"
)
@ApiModel
(
value
=
"MyConversationListVo"
)
public
class
MyConversationList
Vo
implements
Serializable
{
public
class
Conversation
Vo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"会话id"
)
@ApiModelProperty
(
"会话id"
)
...
...
core/src/main/resources/mapper/ImConversationMapper.xml
View file @
e41cb659
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<include
refid=
"Base_Column_List"
/>
<include
refid=
"Base_Column_List"
/>
from im_conversation
from im_conversation
</select>
</select>
<select
id=
"getMyImConversationListAndMsgCount"
resultType=
"com.wecloud.im.vo.
MyConversationList
Vo"
>
<select
id=
"getMyImConversationListAndMsgCount"
resultType=
"com.wecloud.im.vo.
Conversation
Vo"
>
SELECT imConversation.id,
SELECT imConversation.id,
imConversation.create_time,
imConversation.create_time,
imConversation.`name`,
imConversation.`name`,
...
@@ -46,6 +46,9 @@
...
@@ -46,6 +46,9 @@
INNER JOIN im_client AS im_client ON im_client.id = imConversation.creator
INNER JOIN im_client AS im_client ON im_client.id = imConversation.creator
WHERE imConversationMembers.fk_client_id = #{clientId}
WHERE imConversationMembers.fk_client_id = #{clientId}
AND imConversationMembers.display_status = 1
AND imConversationMembers.display_status = 1
<if
test=
"conversationId != null"
>
AND imConversation.id = #{conversationId}
</if>
GROUP BY imConversation.id
GROUP BY imConversation.id
</select>
</select>
...
...
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