From 974b11f8d3e178e93d7ccfafa63f33edc514f0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B1=88=E5=B1=95=E8=88=AA?= <2426745133@qq.com> Date: Fri, 12 Sep 2025 15:43:51 +0800 Subject: [PATCH] =?UTF-8?q?09-12-netty=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/websocket/ChatServerHandler.java | 6 +- .../controller/ChatFriendshipController.java | 26 +++--- .../Impl/ChatFriendshipServiceImpl.java | 81 +++++++++++++++++++ 3 files changed, 100 insertions(+), 13 deletions(-) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java index dfd5834b..8bcf1c99 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/ChatServerHandler.java @@ -155,7 +155,9 @@ public class ChatServerHandler extends SimpleChannelInboundHandler> getList(){ - Long userId = LoginHelper.getLoginUser().getUserId(); - LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(ChatFriendship::getOurSide,userId); - List list = chatFriendshipService.list(lambdaQueryWrapper); - - List sysUserVos = new ArrayList<>(); - for (ChatFriendship chatFriendship : list) { - sysUserVos.add(sysUserService.selectUserById(chatFriendship.getOtherSide())); - } - return R.ok(sysUserVos); + public TableDataInfo getList(SysUserBo bo, PageQuery pageQuery){ +// Long userId = LoginHelper.getLoginUser().getUserId(); +// LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); +// lambdaQueryWrapper.eq(ChatFriendship::getOurSide, userId); +// List list = chatFriendshipService.list(lambdaQueryWrapper); +// +// List sysUserVos = new ArrayList<>(); +// for (ChatFriendship chatFriendship : list) { +// sysUserVos.add(sysUserService.selectUserById(chatFriendship.getOtherSide())); +// } +// return R.ok(sysUserVos); + return chatFriendshipService.getAppUserList(bo,pageQuery); } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/service/Impl/ChatFriendshipServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/service/Impl/ChatFriendshipServiceImpl.java index 4b97c7ad..9decc416 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/service/Impl/ChatFriendshipServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/websocket/service/Impl/ChatFriendshipServiceImpl.java @@ -1,11 +1,92 @@ package org.dromara.websocket.service.Impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.dromara.common.core.constant.SystemConstants; +import org.dromara.common.core.utils.StreamUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.system.domain.SysDept; +import org.dromara.system.domain.SysUser; +import org.dromara.system.domain.SysUserFile; +import org.dromara.system.domain.bo.SysUserBo; +import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.mapper.SysDeptMapper; +import org.dromara.system.mapper.SysUserMapper; +import org.dromara.system.service.ISysUserFileService; +import org.dromara.system.service.impl.SysUserServiceImpl; import org.dromara.websocket.domain.ChatFriendship; import org.dromara.websocket.mapper.ChatFriendshipMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + @Service public class ChatFriendshipServiceImpl extends ServiceImpl { + @Autowired + private SysDeptMapper deptMapper; + @Autowired + private SysUserMapper sysUserMapper; + @Autowired + private ISysUserFileService userFileService; + + public TableDataInfo getAppUserList(SysUserBo user, PageQuery pageQuery){ + Page page = sysUserMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user)); + List userVoList = page.getRecords(); + List userIdList = userVoList.stream().map(SysUserVo::getUserId).toList(); + if (CollUtil.isNotEmpty(userIdList)) { + List userFileList = userFileService.lambdaQuery() + .in(SysUserFile::getUserId, userIdList) + .list(); + Map> userFileMap = userFileList.stream().collect(Collectors.groupingBy(SysUserFile::getUserId)); + userVoList.forEach(userVo -> { + Long userId = userVo.getUserId(); + if (userFileMap.containsKey(userId)) { + List fileList = userFileMap.get(userId); + String fileIdStr = fileList.stream() + .map(file -> String.valueOf(file.getFileId())) + .collect(Collectors.joining(",")); + userVo.setFilePath(fileIdStr); + } + }); + page.setRecords(userVoList); + } + return TableDataInfo.build(page); + } + + + + + private Wrapper buildQueryWrapper(SysUserBo user) { + Map params = user.getParams(); + QueryWrapper wrapper = Wrappers.query(); + wrapper.eq("u.del_flag", SystemConstants.NORMAL) + .eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId()) + .like(StringUtils.isNotBlank(user.getNickName()), "u.nick_name", user.getNickName()) + .like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName()) + .eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus()) + .like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber()) + .between(params.get("beginTime") != null && params.get("endTime") != null, "u.create_time", params.get("beginTime"), params.get("endTime")) + .eq(ObjectUtil.isNotNull(user.getDeptId()),"u.dept_id", user.getDeptId()) + .orderByAsc("u.user_id"); + if (StringUtils.isNotBlank(user.getExcludeUserIds())) { + wrapper.notIn("u.user_id", StringUtils.splitTo(user.getExcludeUserIds(), Convert::toLong)); + } + return wrapper; + } + + + }