From 1f58fd2be488203bb18a1515bc2921a2e527f53d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 15 Dec 2024 19:17:04 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E3=80=91IM=EF=BC=9A=E6=B6=88=E6=81=AF=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/conversation/ImConversationController.java | 7 ------- .../im/controller/admin/message/vo/ImMessageListReqVO.java | 1 + .../im/controller/admin/message/vo/ImMessageSendReqVO.java | 1 + .../im/service/conversation/ImConversationServiceImpl.java | 6 ++---- .../module/im/service/message/ImMessageServiceImpl.java | 4 ++-- .../system/controller/admin/user/UserController.java | 2 ++ 6 files changed, 8 insertions(+), 13 deletions(-) diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ImConversationController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ImConversationController.java index 1b42278dbb..6d08321f93 100755 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ImConversationController.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/conversation/ImConversationController.java @@ -1,18 +1,12 @@ package cn.iocoder.yudao.module.im.controller.admin.conversation; -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationCreateReqVO; import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationUpdateLastReadTimeReqVO; import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationRespVO; import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversationUpdatePinnedReqVO; -import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageListByNoReqVO; -import cn.iocoder.yudao.module.im.controller.admin.message.vo.ImMessageListReqVO; import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ImConversationDO; -import cn.iocoder.yudao.module.im.dal.dataobject.message.ImMessageDO; -import cn.iocoder.yudao.module.im.enums.message.ImMessageContentTypeEnum; import cn.iocoder.yudao.module.im.service.conversation.ImConversationService; import cn.iocoder.yudao.module.im.service.message.ImMessageService; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; @@ -25,7 +19,6 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; -import java.util.Objects; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageListReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageListReqVO.java index 9823d8d4cb..c377875c56 100755 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageListReqVO.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageListReqVO.java @@ -19,6 +19,7 @@ public class ImMessageListReqVO { @NotNull(message = "接收人编号不能为空") private Long receiverId; + // TODO @dylan:这个是不是不用传递呀。因为 http 连接,有当前的 userid 呀 @Schema(description = "会话所属人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32494") @NotNull(message = "会话所属人编号不能为空") private Long userId; diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageSendReqVO.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageSendReqVO.java index b2d3449880..2f93fac92a 100755 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageSendReqVO.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/vo/ImMessageSendReqVO.java @@ -24,6 +24,7 @@ public class ImMessageSendReqVO { @NotNull(message = "会话类型不能为空") private Integer conversationType; + // TODO @dylan:这个是不是不用传递呀。因为 http 连接,有当前的 userid 呀 @Schema(description = "会话所属用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "会话所属用户id") private Long conversationUserId; diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationServiceImpl.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationServiceImpl.java index 77cdd9b965..4bc696d32c 100755 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationServiceImpl.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/conversation/ImConversationServiceImpl.java @@ -8,8 +8,6 @@ import cn.iocoder.yudao.module.im.controller.admin.conversation.vo.ImConversatio import cn.iocoder.yudao.module.im.dal.dataobject.conversation.ImConversationDO; import cn.iocoder.yudao.module.im.dal.mysql.conversation.ImConversationMapper; import cn.iocoder.yudao.module.im.enums.conversation.ImConversationTypeEnum; -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.Service; import org.springframework.validation.annotation.Validated; @@ -26,6 +24,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti @Service @Validated public class ImConversationServiceImpl implements ImConversationService { + private final String IM_CONVERSATION_ADD = "im-conversation-add"; @Resource @@ -108,6 +107,7 @@ public class ImConversationServiceImpl implements ImConversationService { conversation = insertConversation(no, loginUserId, createReqVO.getTargetId(), createReqVO.getType()); } + // TODO @dylan:这个是不是不用 push 呀。对于发送端,它自己肯定知道;对于接收端,貌似收到 message 的时候,再创建更合理一点。 // 发送打开会话的通知,并推送会话实体 // 给自己发送创建会话成功的通知 webSocketMessageSender.sendObject(UserTypeEnum.ADMIN.getValue(), getLoginUserId(), @@ -116,9 +116,7 @@ public class ImConversationServiceImpl implements ImConversationService { // 给接受者发送创建会话的通知 webSocketMessageSender.sendObject(UserTypeEnum.ADMIN.getValue(), createReqVO.getTargetId(), IM_CONVERSATION_ADD, conversation); - return conversation; } - } \ 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 index 261fc8e501..1f0c43eb1e 100755 --- 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 @@ -23,7 +23,6 @@ import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; import java.util.Collections; import java.util.List; -import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; @@ -51,9 +50,10 @@ public class ImMessageServiceImpl implements ImMessageService { @Override public List getMessageList(ImMessageListReqVO listReqVO) { - + // TODO @dylan:userId 从 controller 传递,service 保持无状态 // 1. 获得会话编号 Long loginUserId = getLoginUserId(); + // TODO @dylan:修复下 generateConversationNo 方法,fromUserId、receiverId 需要小的放前面,大的放后面。这样,可以保证一定只生成唯一的。 String no1 = generateConversationNo(loginUserId, listReqVO.getReceiverId(), listReqVO.getConversationType()); String no2 = generateConversationNo(listReqVO.getReceiverId(),loginUserId, listReqVO.getConversationType()); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java index e06c40f5c1..19e1f27db8 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java @@ -101,6 +101,7 @@ public class UserController { pageResult.getTotal())); } + // TODO @dylan:可以服用 getSimpleUserList 呀。 @GetMapping("/all") @Operation(summary = "获得所有用户列表") @PreAuthorize("@ss.hasPermission('system:user:list')") @@ -115,6 +116,7 @@ public class UserController { return success(UserConvert.INSTANCE.convertList(result, deptMap)); } + // TODO @dylan:融合到 getSimpleUserList 接口,允许传递 deptId 筛选 @GetMapping("/listByDept") @Operation(summary = "获得部门用户列表") @PreAuthorize("@ss.hasPermission('system:user:list')")