From da92b5a582c4ce6177cf1db9961f2f44b4d5f5f2 Mon Sep 17 00:00:00 2001 From: dylanmay <670374839@qq.com> Date: Sat, 4 Jan 2025 20:12:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=9E=8D=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/message/ImMessageController.java | 4 ++- .../ImConversationServiceImpl.java | 4 +-- .../im/service/message/ImMessageService.java | 2 +- .../controller/admin/user/UserController.java | 30 +++++++------------ 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImMessageController.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImMessageController.java index 122e2b431a..053aad7218 100755 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImMessageController.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/controller/admin/message/ImMessageController.java @@ -47,7 +47,9 @@ public class ImMessageController { @GetMapping("/list") @Operation(summary = "消息列表-根据接收人和发送时间进行分页查询") public CommonResult> getMessageList(@Valid ImMessageListReqVO listReqVO) { - List messagePage = imMessageService.getMessageList(listReqVO); + + Long loginUserId = getLoginUserId(); + List messagePage = imMessageService.getMessageList(listReqVO, loginUserId); return success(BeanUtils.toBean(messagePage, ImMessageRespVO.class)); } 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 4bc696d32c..c19167c550 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 @@ -107,13 +107,13 @@ public class ImConversationServiceImpl implements ImConversationService { conversation = insertConversation(no, loginUserId, createReqVO.getTargetId(), createReqVO.getType()); } - // TODO @dylan:这个是不是不用 push 呀。对于发送端,它自己肯定知道;对于接收端,貌似收到 message 的时候,再创建更合理一点。 // 发送打开会话的通知,并推送会话实体 - // 给自己发送创建会话成功的通知 + // 给自己发送创建会话成功的通知, 方便多端登录的时候保持会话同时更新 webSocketMessageSender.sendObject(UserTypeEnum.ADMIN.getValue(), getLoginUserId(), IM_CONVERSATION_ADD, conversation); // 给接受者发送创建会话的通知 + // TODO:[dylan] 接受者,在接收到消息的时候本地发现没有回话,就按照会话编号创建一个,因此可以不需要发送这个通知 webSocketMessageSender.sendObject(UserTypeEnum.ADMIN.getValue(), createReqVO.getTargetId(), IM_CONVERSATION_ADD, conversation); return conversation; diff --git a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageService.java b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageService.java index f07c94db26..26d35c5569 100755 --- a/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageService.java +++ b/yudao-module-im/yudao-module-im-biz/src/main/java/cn/iocoder/yudao/module/im/service/message/ImMessageService.java @@ -20,7 +20,7 @@ public interface ImMessageService { * @param listReqVO 分页查询 * @return 消息分页 */ - List getMessageList(ImMessageListReqVO listReqVO); + List getMessageList(ImMessageListReqVO listReqVO, Long loginUserId); /** * 获得历史消息 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 19e1f27db8..85fc8abf60 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 @@ -116,31 +116,23 @@ public class UserController { return success(UserConvert.INSTANCE.convertList(result, deptMap)); } - // TODO @dylan:融合到 getSimpleUserList 接口,允许传递 deptId 筛选 - @GetMapping("/listByDept") - @Operation(summary = "获得部门用户列表") - @PreAuthorize("@ss.hasPermission('system:user:list')") - @Parameter(name = "id", description = "编号", required = true, example = "1024") - public CommonResult> getDeptUsers(@RequestParam("id") Long id) { - List ids = new ArrayList<>(); - ids.add(id); - List result = userService.getDeptUsers(ids); - if (CollUtil.isEmpty(result)) { - return success(null); - } - // 拼接数据 - Map deptMap = deptService.getDeptMap( - convertList(result, AdminUserDO::getDeptId)); - return success(UserConvert.INSTANCE.convertList(result, deptMap)); - } @GetMapping({"/list-all-simple", "/simple-list"}) @Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项") - public CommonResult> getSimpleUserList() { - List list = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus()); + public CommonResult> getSimpleUserList(@RequestParam("id") Long deptId) { + List list; + + if (deptId != null) { + List deptIds = Collections.singletonList(deptId); + list = userService.getDeptUsers(deptIds); + } else { + list = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus()); + } + // 拼接数据 Map deptMap = deptService.getDeptMap( convertList(list, AdminUserDO::getDeptId)); + return success(UserConvert.INSTANCE.convertSimpleList(list, deptMap)); }