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 - +