From 3696b666f42fccceee74d53c07bfb874f63dc461 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=AE=89=E6=B5=A9=E6=B5=A9?= <1036606149@qq.com>
Date: Wed, 13 Mar 2024 21:43:05 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9Aim=20=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97=E7=AE=80=E5=8D=95=E5=AE=9E=E7=8E=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 -
...ler.java => ImConversationController.java} | 44 +++++------
...eqVO.java => ImConversationPageReqVO.java} | 4 +-
...nRespVO.java => ImConversationRespVO.java} | 4 +-
...eqVO.java => ImConversationSaveReqVO.java} | 4 +-
.../admin/inbox/InboxController.java | 8 +-
...ntroller.java => ImMessageController.java} | 48 ++++++------
...PageReqVO.java => ImMessagePageReqVO.java} | 8 +-
...essageRespVO.java => ImMessageRespVO.java} | 8 +-
...SaveReqVO.java => ImMessageSaveReqVO.java} | 9 +--
...versationDO.java => ImConversationDO.java} | 4 +-
.../inbox/{InboxDO.java => ImInboxDO.java} | 2 +-
.../{MessageDO.java => ImMessageDO.java} | 8 +-
.../conversation/ConversationMapper.java | 26 +++----
.../im/dal/mysql/inbox/InboxMapper.java | 18 ++---
.../im/dal/mysql/message/ImMessageMapper.java | 35 +++++++++
.../im/dal/mysql/message/MessageMapper.java | 35 ---------
...ervice.java => ImConversationService.java} | 16 ++--
...pl.java => ImConversationServiceImpl.java} | 20 ++---
.../module/im/service/inbox/InboxService.java | 6 +-
.../im/service/inbox/InboxServiceImpl.java | 10 +--
...sageService.java => ImMessageService.java} | 20 ++---
.../service/message/ImMessageServiceImpl.java | 75 +++++++++++++++++++
.../service/message/MessageServiceImpl.java | 75 -------------------
.../websocket/ImWebSocketMessageListener.java | 62 +++++++++++++--
.../websocket/message/ImReceiveMessage.java | 12 +--
.../im/websocket/message/ImSendMessage.java | 14 ++--
...{MessageMapper.xml => ImMessageMapper.xml} | 2 +-
...ava => ImConversationServiceImplTest.java} | 37 ++++-----
.../service/inbox/InboxServiceImplTest.java | 21 ++----
...est.java => ImMessageServiceImplTest.java} | 73 ++++++++----------
.../system/api/user/dto/AdminUserRespDTO.java | 5 ++
.../src/main/resources/application-local.yaml | 16 ++--
.../src/main/resources/application.yaml | 2 +-
34 files changed, 385 insertions(+), 348 deletions(-)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/{ConversationController.java => ImConversationController.java} (65%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/{ConversationPageReqVO.java => ImConversationPageReqVO.java} (93%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/{ConversationRespVO.java => ImConversationRespVO.java} (96%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/{ConversationSaveReqVO.java => ImConversationSaveReqVO.java} (95%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/{MessageController.java => ImMessageController.java} (61%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/{MessagePageReqVO.java => ImMessagePageReqVO.java} (91%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/{MessageRespVO.java => ImMessageRespVO.java} (95%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/{MessageSaveReqVO.java => ImMessageSaveReqVO.java} (93%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/{ConversationDO.java => ImConversationDO.java} (93%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/{InboxDO.java => ImInboxDO.java} (95%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/{MessageDO.java => ImMessageDO.java} (91%)
create mode 100755 yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/message/ImMessageMapper.java
delete mode 100755 yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/message/MessageMapper.java
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/{ConversationService.java => ImConversationService.java} (64%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/{ConversationServiceImpl.java => ImConversationServiceImpl.java} (70%)
rename yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/{MessageService.java => ImMessageService.java} (55%)
create mode 100755 yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageServiceImpl.java
delete mode 100755 yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/MessageServiceImpl.java
rename yudao-module-im/yudao-module-im-biz/src/main/resources/mapper/message/{MessageMapper.xml => ImMessageMapper.xml} (95%)
rename yudao-module-im/yudao-module-im-biz/src/test/java/cn/iocoder/yudao/module/im/service/conversation/{ConversationServiceImplTest.java => ImConversationServiceImplTest.java} (75%)
rename yudao-module-im/yudao-module-im-biz/src/test/java/cn/iocoder/yudao/module/im/service/message/{MessageServiceImplTest.java => ImMessageServiceImplTest.java} (60%)
diff --git a/pom.xml b/pom.xml
index bb462a717e..f50a519c08 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,8 +15,6 @@
yudao-module-system
yudao-module-infra
- yudao-module-im
- yudao-module-im/yudao-module-im-api
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ConversationController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ImConversationController.java
similarity index 65%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ConversationController.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ImConversationController.java
index 266c026eed..c704cbcce2 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ConversationController.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ImConversationController.java
@@ -6,11 +6,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ConversationPageReqVO;
-import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ConversationRespVO;
-import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ConversationSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ConversationDO;
-import cn.iocoder.yudao.module.im.service.conversation.ConversationService;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationPageReqVO;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationRespVO;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationSaveReqVO;
+import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ImConversationDO;
+import cn.iocoder.yudao.module.im.service.conversation.ImConversationService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -31,23 +31,23 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E
@RestController
@RequestMapping("/im/conversation")
@Validated
-public class ConversationController {
+public class ImConversationController {
@Resource
- private ConversationService conversationService;
+ private ImConversationService imConversationService;
@PostMapping("/create")
@Operation(summary = "创建会话")
@PreAuthorize("@ss.hasPermission('im:conversation:create')")
- public CommonResult createConversation(@Valid @RequestBody ConversationSaveReqVO createReqVO) {
- return success(conversationService.createConversation(createReqVO));
+ public CommonResult createConversation(@Valid @RequestBody ImConversationSaveReqVO createReqVO) {
+ return success(imConversationService.createConversation(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新会话")
@PreAuthorize("@ss.hasPermission('im:conversation:update')")
- public CommonResult updateConversation(@Valid @RequestBody ConversationSaveReqVO updateReqVO) {
- conversationService.updateConversation(updateReqVO);
+ public CommonResult updateConversation(@Valid @RequestBody ImConversationSaveReqVO updateReqVO) {
+ imConversationService.updateConversation(updateReqVO);
return success(true);
}
@@ -56,7 +56,7 @@ public class ConversationController {
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('im:conversation:delete')")
public CommonResult deleteConversation(@RequestParam("id") Long id) {
- conversationService.deleteConversation(id);
+ imConversationService.deleteConversation(id);
return success(true);
}
@@ -64,30 +64,30 @@ public class ConversationController {
@Operation(summary = "获得会话")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('im:conversation:query')")
- public CommonResult getConversation(@RequestParam("id") Long id) {
- ConversationDO conversation = conversationService.getConversation(id);
- return success(BeanUtils.toBean(conversation, ConversationRespVO.class));
+ public CommonResult getConversation(@RequestParam("id") Long id) {
+ ImConversationDO conversation = imConversationService.getConversation(id);
+ return success(BeanUtils.toBean(conversation, ImConversationRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得会话分页")
@PreAuthorize("@ss.hasPermission('im:conversation:query')")
- public CommonResult> getConversationPage(@Valid ConversationPageReqVO pageReqVO) {
- PageResult pageResult = conversationService.getConversationPage(pageReqVO);
- return success(BeanUtils.toBean(pageResult, ConversationRespVO.class));
+ public CommonResult> getConversationPage(@Valid ImConversationPageReqVO pageReqVO) {
+ PageResult pageResult = imConversationService.getConversationPage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, ImConversationRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出会话 Excel")
@PreAuthorize("@ss.hasPermission('im:conversation:export')")
@OperateLog(type = EXPORT)
- public void exportConversationExcel(@Valid ConversationPageReqVO pageReqVO,
+ public void exportConversationExcel(@Valid ImConversationPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
- List list = conversationService.getConversationPage(pageReqVO).getList();
+ List list = imConversationService.getConversationPage(pageReqVO).getList();
// 导出 Excel
- ExcelUtils.write(response, "会话.xls", "数据", ConversationRespVO.class,
- BeanUtils.toBean(list, ConversationRespVO.class));
+ ExcelUtils.write(response, "会话.xls", "数据", ImConversationRespVO.class,
+ BeanUtils.toBean(list, ImConversationRespVO.class));
}
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationPageReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationPageReqVO.java
similarity index 93%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationPageReqVO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationPageReqVO.java
index 3325a64055..152be2980b 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationPageReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationPageReqVO.java
@@ -15,13 +15,13 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
-public class ConversationPageReqVO extends PageParam {
+public class ImConversationPageReqVO extends PageParam {
@Schema(description = "所属用户", example = "11545")
private Long userId;
@Schema(description = "类型:1 单聊;2 群聊;4 通知会话(预留)", example = "1")
- private Boolean conversationType;
+ private Integer conversationType;
@Schema(description = "单聊时,用户编号;群聊时,群编号", example = "21454")
private String targetId;
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationRespVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationRespVO.java
similarity index 96%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationRespVO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationRespVO.java
index 6ffbb7c00a..682ce2e811 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationRespVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationRespVO.java
@@ -10,7 +10,7 @@ import java.time.LocalDateTime;
@Schema(description = "管理后台 - 会话 Response VO")
@Data
@ExcelIgnoreUnannotated
-public class ConversationRespVO {
+public class ImConversationRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13905")
@ExcelProperty("编号")
@@ -22,7 +22,7 @@ public class ConversationRespVO {
@Schema(description = "类型:1 单聊;2 群聊;4 通知会话(预留)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("类型:1 单聊;2 群聊;4 通知会话(预留)")
- private Boolean conversationType;
+ private Integer conversationType;
@Schema(description = "单聊时,用户编号;群聊时,群编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21454")
@ExcelProperty("单聊时,用户编号;群聊时,群编号")
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationSaveReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationSaveReqVO.java
similarity index 95%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationSaveReqVO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationSaveReqVO.java
index 932fd5b489..4282846597 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ConversationSaveReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/vo/ImConversationSaveReqVO.java
@@ -9,7 +9,7 @@ import java.time.LocalDateTime;
@Schema(description = "管理后台 - 会话新增/修改 Request VO")
@Data
-public class ConversationSaveReqVO {
+public class ImConversationSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13905")
private Long id;
@@ -20,7 +20,7 @@ public class ConversationSaveReqVO {
@Schema(description = "类型:1 单聊;2 群聊;4 通知会话(预留)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "类型:1 单聊;2 群聊;4 通知会话(预留)不能为空")
- private Boolean conversationType;
+ private Integer conversationType;
@Schema(description = "单聊时,用户编号;群聊时,群编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21454")
@NotEmpty(message = "单聊时,用户编号;群聊时,群编号不能为空")
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/inbox/InboxController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/inbox/InboxController.java
index 03e6083040..63a62f1869 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/inbox/InboxController.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/inbox/InboxController.java
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import cn.iocoder.yudao.module.im.controller.admin.inbox.vo.InboxPageReqVO;
import cn.iocoder.yudao.module.im.controller.admin.inbox.vo.InboxRespVO;
import cn.iocoder.yudao.module.im.controller.admin.inbox.vo.InboxSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.inbox.InboxDO;
+import cn.iocoder.yudao.module.im.dal.dataobject.inbox.ImInboxDO;
import cn.iocoder.yudao.module.im.service.inbox.InboxService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@@ -65,7 +65,7 @@ public class InboxController {
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('im:inbox:query')")
public CommonResult getInbox(@RequestParam("id") Long id) {
- InboxDO inbox = inboxService.getInbox(id);
+ ImInboxDO inbox = inboxService.getInbox(id);
return success(BeanUtils.toBean(inbox, InboxRespVO.class));
}
@@ -73,7 +73,7 @@ public class InboxController {
@Operation(summary = "获得收件箱分页")
@PreAuthorize("@ss.hasPermission('im:inbox:query')")
public CommonResult> getInboxPage(@Valid InboxPageReqVO pageReqVO) {
- PageResult pageResult = inboxService.getInboxPage(pageReqVO);
+ PageResult pageResult = inboxService.getInboxPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, InboxRespVO.class));
}
@@ -84,7 +84,7 @@ public class InboxController {
public void exportInboxExcel(@Valid InboxPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
- List list = inboxService.getInboxPage(pageReqVO).getList();
+ List list = inboxService.getInboxPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "收件箱.xls", "数据", InboxRespVO.class,
BeanUtils.toBean(list, InboxRespVO.class));
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/MessageController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImMessageController.java
similarity index 61%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/MessageController.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImMessageController.java
index 788488a03b..f0ca03d17b 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/MessageController.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImMessageController.java
@@ -6,11 +6,11 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.module.im.controller.admin.message.vo.MessagePageReqVO;
-import cn.iocoder.yudao.module.im.controller.admin.message.vo.MessageRespVO;
-import cn.iocoder.yudao.module.im.controller.admin.message.vo.MessageSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.message.MessageDO;
-import cn.iocoder.yudao.module.im.service.message.MessageService;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessagePageReqVO;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageRespVO;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageSaveReqVO;
+import cn.iocoder.yudao.module.im.dal.dataobject.message.ImMessageDO;
+import cn.iocoder.yudao.module.im.service.message.ImMessageService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -31,23 +31,23 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E
@RestController
@RequestMapping("/im/message")
@Validated
-public class MessageController {
+public class ImMessageController {
@Resource
- private MessageService messageService;
+ private ImMessageService imMessageService;
@PostMapping("/create")
@Operation(summary = "创建消息")
@PreAuthorize("@ss.hasPermission('im:message:create')")
- public CommonResult createMessage(@Valid @RequestBody MessageSaveReqVO createReqVO) {
- return success(messageService.createMessage(createReqVO));
+ public CommonResult createMessage(@Valid @RequestBody ImMessageSaveReqVO createReqVO) {
+ return success(imMessageService.createMessage(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新消息")
@PreAuthorize("@ss.hasPermission('im:message:update')")
- public CommonResult updateMessage(@Valid @RequestBody MessageSaveReqVO updateReqVO) {
- messageService.updateMessage(updateReqVO);
+ public CommonResult updateMessage(@Valid @RequestBody ImMessageSaveReqVO updateReqVO) {
+ imMessageService.updateMessage(updateReqVO);
return success(true);
}
@@ -56,7 +56,7 @@ public class MessageController {
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('im:message:delete')")
public CommonResult deleteMessage(@RequestParam("id") Long id) {
- messageService.deleteMessage(id);
+ imMessageService.deleteMessage(id);
return success(true);
}
@@ -64,36 +64,36 @@ public class MessageController {
@Operation(summary = "获得消息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('im:message:query')")
- public CommonResult getMessage(@RequestParam("id") Long id) {
- MessageDO message = messageService.getMessage(id);
- return success(BeanUtils.toBean(message, MessageRespVO.class));
+ public CommonResult getMessage(@RequestParam("id") Long id) {
+ ImMessageDO message = imMessageService.getMessage(id);
+ return success(BeanUtils.toBean(message, ImMessageRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得消息分页")
@PreAuthorize("@ss.hasPermission('im:message:query')")
- public CommonResult> getMessagePage(@Valid MessagePageReqVO pageReqVO) {
- PageResult pageResult = messageService.getMessagePage(pageReqVO);
- return success(BeanUtils.toBean(pageResult, MessageRespVO.class));
+ public CommonResult> getMessagePage(@Valid ImMessagePageReqVO pageReqVO) {
+ PageResult pageResult = imMessageService.getMessagePage(pageReqVO);
+ return success(BeanUtils.toBean(pageResult, ImMessageRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出消息 Excel")
@PreAuthorize("@ss.hasPermission('im:message:export')")
@OperateLog(type = EXPORT)
- public void exportMessageExcel(@Valid MessagePageReqVO pageReqVO,
+ public void exportMessageExcel(@Valid ImMessagePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
- List list = messageService.getMessagePage(pageReqVO).getList();
+ List list = imMessageService.getMessagePage(pageReqVO).getList();
// 导出 Excel
- ExcelUtils.write(response, "消息.xls", "数据", MessageRespVO.class,
- BeanUtils.toBean(list, MessageRespVO.class));
+ ExcelUtils.write(response, "消息.xls", "数据", ImMessageRespVO.class,
+ BeanUtils.toBean(list, ImMessageRespVO.class));
}
@PostMapping("/send")
@Operation(summary = "发送私聊消息")
- public CommonResult sendMessage(@Valid @RequestBody MessageSaveReqVO messageSaveReqVO) {
- return success(messageService.sendPrivateMessage(messageSaveReqVO));
+ public CommonResult sendMessage(@Valid @RequestBody ImMessageSaveReqVO imMessageSaveReqVO) {
+ return success(imMessageService.sendPrivateMessage(imMessageSaveReqVO));
}
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessagePageReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessagePageReqVO.java
similarity index 91%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessagePageReqVO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessagePageReqVO.java
index 96ffd87c59..78649d1d4f 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessagePageReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessagePageReqVO.java
@@ -15,7 +15,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
-public class MessagePageReqVO extends PageParam {
+public class ImMessagePageReqVO extends PageParam {
@Schema(description = "客户端消息编号 uuid,用于排重", example = "3331")
private String clientMessageId;
@@ -33,13 +33,13 @@ public class MessagePageReqVO extends PageParam {
private String senderAvatar;
@Schema(description = "会话类型", example = "2")
- private Boolean conversationType;
+ private Integer conversationType;
@Schema(description = "会话标志")
private String conversationNo;
@Schema(description = "消息类型", example = "1")
- private Boolean contentType;
+ private Integer contentType;
@Schema(description = "消息内容")
private String content;
@@ -49,7 +49,7 @@ public class MessagePageReqVO extends PageParam {
private LocalDateTime[] sendTime;
@Schema(description = "消息来源 100-用户发送;200-系统发送(一般是通知);")
- private Boolean sendFrom;
+ private Integer sendFrom;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageRespVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageRespVO.java
similarity index 95%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageRespVO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageRespVO.java
index 2949ade767..e732c94e67 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageRespVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageRespVO.java
@@ -10,7 +10,7 @@ import java.time.LocalDateTime;
@Schema(description = "管理后台 - 消息 Response VO")
@Data
@ExcelIgnoreUnannotated
-public class MessageRespVO {
+public class ImMessageRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30713")
@ExcelProperty("编号")
@@ -38,7 +38,7 @@ public class MessageRespVO {
@Schema(description = "会话类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("会话类型")
- private Boolean conversationType;
+ private Integer conversationType;
@Schema(description = "会话标志", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("会话标志")
@@ -46,7 +46,7 @@ public class MessageRespVO {
@Schema(description = "消息类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("消息类型")
- private Boolean contentType;
+ private Integer contentType;
@Schema(description = "消息内容", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("消息内容")
@@ -58,7 +58,7 @@ public class MessageRespVO {
@Schema(description = "消息来源 100-用户发送;200-系统发送(一般是通知);", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("消息来源 100-用户发送;200-系统发送(一般是通知);")
- private Boolean sendFrom;
+ private Integer sendFrom;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageSaveReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageSaveReqVO.java
similarity index 93%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageSaveReqVO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageSaveReqVO.java
index 55ccd14327..cea5573b6b 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/MessageSaveReqVO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageSaveReqVO.java
@@ -9,7 +9,7 @@ import java.time.LocalDateTime;
@Schema(description = "管理后台 - 消息新增/修改 Request VO")
@Data
-public class MessageSaveReqVO {
+public class ImMessageSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "30713")
private Long id;
@@ -36,7 +36,7 @@ public class MessageSaveReqVO {
@Schema(description = "会话类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "会话类型不能为空")
- private Boolean conversationType;
+ private Integer conversationType;
@Schema(description = "会话标志", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "会话标志不能为空")
@@ -44,18 +44,17 @@ public class MessageSaveReqVO {
@Schema(description = "消息类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "消息类型不能为空")
- private Boolean contentType;
+ private Integer contentType;
@Schema(description = "消息内容", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "消息内容不能为空")
private String content;
@Schema(description = "发送时间", requiredMode = Schema.RequiredMode.REQUIRED)
- @NotNull(message = "发送时间不能为空")
private LocalDateTime sendTime;
@Schema(description = "消息来源 100-用户发送;200-系统发送(一般是通知);", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "消息来源 100-用户发送;200-系统发送(一般是通知);不能为空")
- private Boolean sendFrom;
+ private Integer sendFrom;
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ConversationDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ImConversationDO.java
similarity index 93%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ConversationDO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ImConversationDO.java
index 12a083245c..822b78f450 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ConversationDO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/conversation/ImConversationDO.java
@@ -21,7 +21,7 @@ import java.time.LocalDateTime;
@Builder
@NoArgsConstructor
@AllArgsConstructor
-public class ConversationDO extends BaseDO {
+public class ImConversationDO extends BaseDO {
/**
* 编号
@@ -35,7 +35,7 @@ public class ConversationDO extends BaseDO {
/**
* 类型:1 单聊;2 群聊;4 通知会话(预留)
*/
- private Boolean conversationType;
+ private Integer conversationType;
/**
* 单聊时,用户编号;群聊时,群编号
*/
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/InboxDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/ImInboxDO.java
similarity index 95%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/InboxDO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/ImInboxDO.java
index fd60ea1735..20dd94c77a 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/InboxDO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/inbox/ImInboxDO.java
@@ -19,7 +19,7 @@ import lombok.*;
@Builder
@NoArgsConstructor
@AllArgsConstructor
-public class InboxDO extends BaseDO {
+public class ImInboxDO extends BaseDO {
/**
* 编号
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/MessageDO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImMessageDO.java
similarity index 91%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/MessageDO.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImMessageDO.java
index 98a289c13e..14e88c1cac 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/MessageDO.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/dataobject/message/ImMessageDO.java
@@ -21,7 +21,7 @@ import java.time.LocalDateTime;
@Builder
@NoArgsConstructor
@AllArgsConstructor
-public class MessageDO extends BaseDO {
+public class ImMessageDO extends BaseDO {
/**
* 编号
@@ -51,7 +51,7 @@ public class MessageDO extends BaseDO {
/**
* 会话类型
*/
- private Boolean conversationType;
+ private Integer conversationType;
/**
* 会话标志
*/
@@ -59,7 +59,7 @@ public class MessageDO extends BaseDO {
/**
* 消息类型
*/
- private Boolean contentType;
+ private Integer contentType;
/**
* 消息内容
*/
@@ -71,6 +71,6 @@ public class MessageDO extends BaseDO {
/**
* 消息来源 100-用户发送;200-系统发送(一般是通知);
*/
- private Boolean sendFrom;
+ private Integer sendFrom;
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/conversation/ConversationMapper.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/conversation/ConversationMapper.java
index e371d99d7d..a93257f32c 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/conversation/ConversationMapper.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/conversation/ConversationMapper.java
@@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.im.dal.mysql.conversation;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ConversationPageReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ConversationDO;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationPageReqVO;
+import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ImConversationDO;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -13,18 +13,18 @@ import org.apache.ibatis.annotations.Mapper;
* @author 芋道源码
*/
@Mapper
-public interface ConversationMapper extends BaseMapperX {
+public interface ConversationMapper extends BaseMapperX {
- default PageResult selectPage(ConversationPageReqVO reqVO) {
- return selectPage(reqVO, new LambdaQueryWrapperX()
- .eqIfPresent(ConversationDO::getUserId, reqVO.getUserId())
- .eqIfPresent(ConversationDO::getConversationType, reqVO.getConversationType())
- .eqIfPresent(ConversationDO::getTargetId, reqVO.getTargetId())
- .eqIfPresent(ConversationDO::getNo, reqVO.getNo())
- .eqIfPresent(ConversationDO::getPinned, reqVO.getPinned())
- .betweenIfPresent(ConversationDO::getLastReadTime, reqVO.getLastReadTime())
- .betweenIfPresent(ConversationDO::getCreateTime, reqVO.getCreateTime())
- .orderByDesc(ConversationDO::getId));
+ default PageResult selectPage(ImConversationPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(ImConversationDO::getUserId, reqVO.getUserId())
+ .eqIfPresent(ImConversationDO::getConversationType, reqVO.getConversationType())
+ .eqIfPresent(ImConversationDO::getTargetId, reqVO.getTargetId())
+ .eqIfPresent(ImConversationDO::getNo, reqVO.getNo())
+ .eqIfPresent(ImConversationDO::getPinned, reqVO.getPinned())
+ .betweenIfPresent(ImConversationDO::getLastReadTime, reqVO.getLastReadTime())
+ .betweenIfPresent(ImConversationDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(ImConversationDO::getId));
}
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/inbox/InboxMapper.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/inbox/InboxMapper.java
index 1b0822b775..fe861c5532 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/inbox/InboxMapper.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/inbox/InboxMapper.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.im.controller.admin.inbox.vo.InboxPageReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.inbox.InboxDO;
+import cn.iocoder.yudao.module.im.dal.dataobject.inbox.ImInboxDO;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -13,15 +13,15 @@ import org.apache.ibatis.annotations.Mapper;
* @author 芋道源码
*/
@Mapper
-public interface InboxMapper extends BaseMapperX {
+public interface InboxMapper extends BaseMapperX {
- default PageResult selectPage(InboxPageReqVO reqVO) {
- return selectPage(reqVO, new LambdaQueryWrapperX()
- .eqIfPresent(InboxDO::getUserId, reqVO.getUserId())
- .eqIfPresent(InboxDO::getMessageId, reqVO.getMessageId())
- .eqIfPresent(InboxDO::getSequence, reqVO.getSequence())
- .betweenIfPresent(InboxDO::getCreateTime, reqVO.getCreateTime())
- .orderByDesc(InboxDO::getId));
+ default PageResult selectPage(InboxPageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(ImInboxDO::getUserId, reqVO.getUserId())
+ .eqIfPresent(ImInboxDO::getMessageId, reqVO.getMessageId())
+ .eqIfPresent(ImInboxDO::getSequence, reqVO.getSequence())
+ .betweenIfPresent(ImInboxDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(ImInboxDO::getId));
}
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/message/ImMessageMapper.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/message/ImMessageMapper.java
new file mode 100755
index 0000000000..6fee3642d3
--- /dev/null
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/message/ImMessageMapper.java
@@ -0,0 +1,35 @@
+package cn.iocoder.yudao.module.im.dal.mysql.message;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessagePageReqVO;
+import cn.iocoder.yudao.module.im.dal.dataobject.message.ImMessageDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 消息 Mapper
+ *
+ * @author 芋道源码
+ */
+@Mapper
+public interface ImMessageMapper extends BaseMapperX {
+
+ default PageResult selectPage(ImMessagePageReqVO reqVO) {
+ return selectPage(reqVO, new LambdaQueryWrapperX()
+ .eqIfPresent(ImMessageDO::getClientMessageId, reqVO.getClientMessageId())
+ .eqIfPresent(ImMessageDO::getSenderId, reqVO.getSenderId())
+ .eqIfPresent(ImMessageDO::getReceiverId, reqVO.getReceiverId())
+ .likeIfPresent(ImMessageDO::getSenderNickname, reqVO.getSenderNickname())
+ .eqIfPresent(ImMessageDO::getSenderAvatar, reqVO.getSenderAvatar())
+ .eqIfPresent(ImMessageDO::getConversationType, reqVO.getConversationType())
+ .eqIfPresent(ImMessageDO::getConversationNo, reqVO.getConversationNo())
+ .eqIfPresent(ImMessageDO::getContentType, reqVO.getContentType())
+ .eqIfPresent(ImMessageDO::getContent, reqVO.getContent())
+ .betweenIfPresent(ImMessageDO::getSendTime, reqVO.getSendTime())
+ .eqIfPresent(ImMessageDO::getSendFrom, reqVO.getSendFrom())
+ .betweenIfPresent(ImMessageDO::getCreateTime, reqVO.getCreateTime())
+ .orderByDesc(ImMessageDO::getId));
+ }
+
+}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/message/MessageMapper.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/message/MessageMapper.java
deleted file mode 100755
index ac54b46ca3..0000000000
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/dal/mysql/message/MessageMapper.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package cn.iocoder.yudao.module.im.dal.mysql.message;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import cn.iocoder.yudao.module.im.controller.admin.message.vo.MessagePageReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.message.MessageDO;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 消息 Mapper
- *
- * @author 芋道源码
- */
-@Mapper
-public interface MessageMapper extends BaseMapperX {
-
- default PageResult selectPage(MessagePageReqVO reqVO) {
- return selectPage(reqVO, new LambdaQueryWrapperX()
- .eqIfPresent(MessageDO::getClientMessageId, reqVO.getClientMessageId())
- .eqIfPresent(MessageDO::getSenderId, reqVO.getSenderId())
- .eqIfPresent(MessageDO::getReceiverId, reqVO.getReceiverId())
- .likeIfPresent(MessageDO::getSenderNickname, reqVO.getSenderNickname())
- .eqIfPresent(MessageDO::getSenderAvatar, reqVO.getSenderAvatar())
- .eqIfPresent(MessageDO::getConversationType, reqVO.getConversationType())
- .eqIfPresent(MessageDO::getConversationNo, reqVO.getConversationNo())
- .eqIfPresent(MessageDO::getContentType, reqVO.getContentType())
- .eqIfPresent(MessageDO::getContent, reqVO.getContent())
- .betweenIfPresent(MessageDO::getSendTime, reqVO.getSendTime())
- .eqIfPresent(MessageDO::getSendFrom, reqVO.getSendFrom())
- .betweenIfPresent(MessageDO::getCreateTime, reqVO.getCreateTime())
- .orderByDesc(MessageDO::getId));
- }
-
-}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ConversationService.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationService.java
similarity index 64%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ConversationService.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationService.java
index 61175b1788..0980a92e50 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ConversationService.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationService.java
@@ -1,9 +1,9 @@
package cn.iocoder.yudao.module.im.service.conversation;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ConversationPageReqVO;
-import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ConversationSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ConversationDO;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationPageReqVO;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationSaveReqVO;
+import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ImConversationDO;
import jakarta.validation.Valid;
/**
@@ -11,7 +11,7 @@ import jakarta.validation.Valid;
*
* @author 芋道源码
*/
-public interface ConversationService {
+public interface ImConversationService {
/**
* 创建会话
@@ -19,14 +19,14 @@ public interface ConversationService {
* @param createReqVO 创建信息
* @return 编号
*/
- Long createConversation(@Valid ConversationSaveReqVO createReqVO);
+ Long createConversation(@Valid ImConversationSaveReqVO createReqVO);
/**
* 更新会话
*
* @param updateReqVO 更新信息
*/
- void updateConversation(@Valid ConversationSaveReqVO updateReqVO);
+ void updateConversation(@Valid ImConversationSaveReqVO updateReqVO);
/**
* 删除会话
@@ -41,7 +41,7 @@ public interface ConversationService {
* @param id 编号
* @return 会话
*/
- ConversationDO getConversation(Long id);
+ ImConversationDO getConversation(Long id);
/**
* 获得会话分页
@@ -49,6 +49,6 @@ public interface ConversationService {
* @param pageReqVO 分页查询
* @return 会话分页
*/
- PageResult getConversationPage(ConversationPageReqVO pageReqVO);
+ PageResult getConversationPage(ImConversationPageReqVO pageReqVO);
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ConversationServiceImpl.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationServiceImpl.java
similarity index 70%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ConversationServiceImpl.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationServiceImpl.java
index 9ede7d5127..8ff151441e 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ConversationServiceImpl.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationServiceImpl.java
@@ -2,9 +2,9 @@ package cn.iocoder.yudao.module.im.service.conversation;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ConversationPageReqVO;
-import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ConversationSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ConversationDO;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationPageReqVO;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationSaveReqVO;
+import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ImConversationDO;
import cn.iocoder.yudao.module.im.dal.mysql.conversation.ConversationMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@@ -20,26 +20,26 @@ import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.CONVERSATION_N
*/
@Service
@Validated
-public class ConversationServiceImpl implements ConversationService {
+public class ImConversationServiceImpl implements ImConversationService {
@Resource
private ConversationMapper conversationMapper;
@Override
- public Long createConversation(ConversationSaveReqVO createReqVO) {
+ public Long createConversation(ImConversationSaveReqVO createReqVO) {
// 插入
- ConversationDO conversation = BeanUtils.toBean(createReqVO, ConversationDO.class);
+ ImConversationDO conversation = BeanUtils.toBean(createReqVO, ImConversationDO.class);
conversationMapper.insert(conversation);
// 返回
return conversation.getId();
}
@Override
- public void updateConversation(ConversationSaveReqVO updateReqVO) {
+ public void updateConversation(ImConversationSaveReqVO updateReqVO) {
// 校验存在
validateConversationExists(updateReqVO.getId());
// 更新
- ConversationDO updateObj = BeanUtils.toBean(updateReqVO, ConversationDO.class);
+ ImConversationDO updateObj = BeanUtils.toBean(updateReqVO, ImConversationDO.class);
conversationMapper.updateById(updateObj);
}
@@ -58,12 +58,12 @@ public class ConversationServiceImpl implements ConversationService {
}
@Override
- public ConversationDO getConversation(Long id) {
+ public ImConversationDO getConversation(Long id) {
return conversationMapper.selectById(id);
}
@Override
- public PageResult getConversationPage(ConversationPageReqVO pageReqVO) {
+ public PageResult getConversationPage(ImConversationPageReqVO pageReqVO) {
return conversationMapper.selectPage(pageReqVO);
}
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/inbox/InboxService.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/inbox/InboxService.java
index c61af653e3..ba28404d39 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/inbox/InboxService.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/inbox/InboxService.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.im.service.inbox;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.im.controller.admin.inbox.vo.InboxPageReqVO;
import cn.iocoder.yudao.module.im.controller.admin.inbox.vo.InboxSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.inbox.InboxDO;
+import cn.iocoder.yudao.module.im.dal.dataobject.inbox.ImInboxDO;
import jakarta.validation.Valid;
/**
@@ -41,7 +41,7 @@ public interface InboxService {
* @param id 编号
* @return 收件箱
*/
- InboxDO getInbox(Long id);
+ ImInboxDO getInbox(Long id);
/**
* 获得收件箱分页
@@ -49,6 +49,6 @@ public interface InboxService {
* @param pageReqVO 分页查询
* @return 收件箱分页
*/
- PageResult getInboxPage(InboxPageReqVO pageReqVO);
+ PageResult getInboxPage(InboxPageReqVO pageReqVO);
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/inbox/InboxServiceImpl.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/inbox/InboxServiceImpl.java
index 35d1191b4d..350cde3624 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/inbox/InboxServiceImpl.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/inbox/InboxServiceImpl.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.im.controller.admin.inbox.vo.InboxPageReqVO;
import cn.iocoder.yudao.module.im.controller.admin.inbox.vo.InboxSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.inbox.InboxDO;
+import cn.iocoder.yudao.module.im.dal.dataobject.inbox.ImInboxDO;
import cn.iocoder.yudao.module.im.dal.mysql.inbox.InboxMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@@ -28,7 +28,7 @@ public class InboxServiceImpl implements InboxService {
@Override
public Long createInbox(InboxSaveReqVO createReqVO) {
// 插入
- InboxDO inbox = BeanUtils.toBean(createReqVO, InboxDO.class);
+ ImInboxDO inbox = BeanUtils.toBean(createReqVO, ImInboxDO.class);
inboxMapper.insert(inbox);
// 返回
return inbox.getId();
@@ -39,7 +39,7 @@ public class InboxServiceImpl implements InboxService {
// 校验存在
validateInboxExists(updateReqVO.getId());
// 更新
- InboxDO updateObj = BeanUtils.toBean(updateReqVO, InboxDO.class);
+ ImInboxDO updateObj = BeanUtils.toBean(updateReqVO, ImInboxDO.class);
inboxMapper.updateById(updateObj);
}
@@ -58,12 +58,12 @@ public class InboxServiceImpl implements InboxService {
}
@Override
- public InboxDO getInbox(Long id) {
+ public ImInboxDO getInbox(Long id) {
return inboxMapper.selectById(id);
}
@Override
- public PageResult getInboxPage(InboxPageReqVO pageReqVO) {
+ public PageResult getInboxPage(InboxPageReqVO pageReqVO) {
return inboxMapper.selectPage(pageReqVO);
}
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/MessageService.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageService.java
similarity index 55%
rename from yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/MessageService.java
rename to yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageService.java
index 5981dbdcca..37af3a10da 100755
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/MessageService.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageService.java
@@ -1,9 +1,9 @@
package cn.iocoder.yudao.module.im.service.message;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.module.im.controller.admin.message.vo.MessagePageReqVO;
-import cn.iocoder.yudao.module.im.controller.admin.message.vo.MessageSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.message.MessageDO;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessagePageReqVO;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageSaveReqVO;
+import cn.iocoder.yudao.module.im.dal.dataobject.message.ImMessageDO;
import jakarta.validation.Valid;
/**
@@ -11,7 +11,7 @@ import jakarta.validation.Valid;
*
* @author 芋道源码
*/
-public interface MessageService {
+public interface ImMessageService {
/**
* 创建消息
@@ -19,14 +19,14 @@ public interface MessageService {
* @param createReqVO 创建信息
* @return 编号
*/
- Long createMessage(@Valid MessageSaveReqVO createReqVO);
+ Long createMessage(@Valid ImMessageSaveReqVO createReqVO);
/**
* 更新消息
*
* @param updateReqVO 更新信息
*/
- void updateMessage(@Valid MessageSaveReqVO updateReqVO);
+ void updateMessage(@Valid ImMessageSaveReqVO updateReqVO);
/**
* 删除消息
@@ -41,7 +41,7 @@ public interface MessageService {
* @param id 编号
* @return 消息
*/
- MessageDO getMessage(Long id);
+ ImMessageDO getMessage(Long id);
/**
* 获得消息分页
@@ -49,12 +49,12 @@ public interface MessageService {
* @param pageReqVO 分页查询
* @return 消息分页
*/
- PageResult getMessagePage(MessagePageReqVO pageReqVO);
+ PageResult getMessagePage(ImMessagePageReqVO pageReqVO);
/**
* 发送私聊消息
- * @param messageSaveReqVO 消息信息
+ * @param imMessageSaveReqVO 消息信息
* @return 消息编号
*/
- Long sendPrivateMessage(MessageSaveReqVO messageSaveReqVO);
+ Long sendPrivateMessage(ImMessageSaveReqVO imMessageSaveReqVO);
}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageServiceImpl.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageServiceImpl.java
new file mode 100755
index 0000000000..81ab53819f
--- /dev/null
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageServiceImpl.java
@@ -0,0 +1,75 @@
+package cn.iocoder.yudao.module.im.service.message;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessagePageReqVO;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageSaveReqVO;
+import cn.iocoder.yudao.module.im.dal.dataobject.message.ImMessageDO;
+import cn.iocoder.yudao.module.im.dal.mysql.message.ImMessageMapper;
+import jakarta.annotation.Resource;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.MESSAGE_NOT_EXISTS;
+
+/**
+ * 消息 Service 实现类
+ *
+ * @author 芋道源码
+ */
+@Service
+@Validated
+public class ImMessageServiceImpl implements ImMessageService {
+
+ @Resource
+ private ImMessageMapper imMessageMapper;
+
+ @Override
+ public Long createMessage(ImMessageSaveReqVO createReqVO) {
+ // 插入
+ ImMessageDO message = BeanUtils.toBean(createReqVO, ImMessageDO.class);
+ imMessageMapper.insert(message);
+ // 返回
+ return message.getId();
+ }
+
+ @Override
+ public void updateMessage(ImMessageSaveReqVO updateReqVO) {
+ // 校验存在
+ validateMessageExists(updateReqVO.getId());
+ // 更新
+ ImMessageDO updateObj = BeanUtils.toBean(updateReqVO, ImMessageDO.class);
+ imMessageMapper.updateById(updateObj);
+ }
+
+ @Override
+ public void deleteMessage(Long id) {
+ // 校验存在
+ validateMessageExists(id);
+ // 删除
+ imMessageMapper.deleteById(id);
+ }
+
+ private void validateMessageExists(Long id) {
+ if (imMessageMapper.selectById(id) == null) {
+ throw exception(MESSAGE_NOT_EXISTS);
+ }
+ }
+
+ @Override
+ public ImMessageDO getMessage(Long id) {
+ return imMessageMapper.selectById(id);
+ }
+
+ @Override
+ public PageResult getMessagePage(ImMessagePageReqVO pageReqVO) {
+ return imMessageMapper.selectPage(pageReqVO);
+ }
+
+ @Override
+ public Long sendPrivateMessage(ImMessageSaveReqVO imMessageSaveReqVO) {
+ return 0L;
+ }
+
+}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/MessageServiceImpl.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/MessageServiceImpl.java
deleted file mode 100755
index 350d6c4472..0000000000
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/MessageServiceImpl.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package cn.iocoder.yudao.module.im.service.message;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.im.controller.admin.message.vo.MessagePageReqVO;
-import cn.iocoder.yudao.module.im.controller.admin.message.vo.MessageSaveReqVO;
-import cn.iocoder.yudao.module.im.dal.dataobject.message.MessageDO;
-import cn.iocoder.yudao.module.im.dal.mysql.message.MessageMapper;
-import jakarta.annotation.Resource;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.im.enums.ErrorCodeConstants.MESSAGE_NOT_EXISTS;
-
-/**
- * 消息 Service 实现类
- *
- * @author 芋道源码
- */
-@Service
-@Validated
-public class MessageServiceImpl implements MessageService {
-
- @Resource
- private MessageMapper messageMapper;
-
- @Override
- public Long createMessage(MessageSaveReqVO createReqVO) {
- // 插入
- MessageDO message = BeanUtils.toBean(createReqVO, MessageDO.class);
- messageMapper.insert(message);
- // 返回
- return message.getId();
- }
-
- @Override
- public void updateMessage(MessageSaveReqVO updateReqVO) {
- // 校验存在
- validateMessageExists(updateReqVO.getId());
- // 更新
- MessageDO updateObj = BeanUtils.toBean(updateReqVO, MessageDO.class);
- messageMapper.updateById(updateObj);
- }
-
- @Override
- public void deleteMessage(Long id) {
- // 校验存在
- validateMessageExists(id);
- // 删除
- messageMapper.deleteById(id);
- }
-
- private void validateMessageExists(Long id) {
- if (messageMapper.selectById(id) == null) {
- throw exception(MESSAGE_NOT_EXISTS);
- }
- }
-
- @Override
- public MessageDO getMessage(Long id) {
- return messageMapper.selectById(id);
- }
-
- @Override
- public PageResult getMessagePage(MessagePageReqVO pageReqVO) {
- return messageMapper.selectPage(pageReqVO);
- }
-
- @Override
- public Long sendPrivateMessage(MessageSaveReqVO messageSaveReqVO) {
- return 0L;
- }
-
-}
\ No newline at end of file
diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/websocket/ImWebSocketMessageListener.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/websocket/ImWebSocketMessageListener.java
index 0dd9bb1cf0..b03588453a 100644
--- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/websocket/ImWebSocketMessageListener.java
+++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/websocket/ImWebSocketMessageListener.java
@@ -4,9 +4,15 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
import cn.iocoder.yudao.framework.websocket.core.listener.WebSocketMessageListener;
import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender;
import cn.iocoder.yudao.framework.websocket.core.util.WebSocketFrameworkUtils;
+import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationSaveReqVO;
+import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageSaveReqVO;
import cn.iocoder.yudao.module.im.enums.conversation.ImConversationTypeEnum;
+import cn.iocoder.yudao.module.im.service.conversation.ImConversationService;
+import cn.iocoder.yudao.module.im.service.message.ImMessageService;
import cn.iocoder.yudao.module.im.websocket.message.ImReceiveMessage;
import cn.iocoder.yudao.module.im.websocket.message.ImSendMessage;
+import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
+import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.WebSocketSession;
@@ -21,19 +27,65 @@ public class ImWebSocketMessageListener implements WebSocketMessageListener
-
+