Merge "feat(userMessage):添加查看当前用户曾与哪些用户进行过通信的功能"
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserMessageController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserMessageController.java
index d6b030c..ff040e1 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserMessageController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserMessageController.java
@@ -25,4 +25,11 @@
     public AjaxResult list(@RequestParam Long userId1, @RequestParam Long userId2) {
         return AjaxResult.success(messageService.getMessageList(userId1, userId2));
     }
+
+    // 新增获取与当前用户聊过天的用户ID和昵称的接口
+    @GetMapping("/chat/users")
+    public AjaxResult getChatUsers() {
+        Long currentUserId = getUserId();
+        return AjaxResult.success(messageService.getChatUsers(currentUserId));
+    }
 }
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMessageMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMessageMapper.java
index 6e2fc1d..edadbb8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMessageMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMessageMapper.java
@@ -2,8 +2,10 @@
 
 import com.ruoyi.system.domain.SysUserMessage;
 import java.util.List;
+import java.util.Map;
 
 public interface SysUserMessageMapper {
     int insertMessage(SysUserMessage message);
     List<SysUserMessage> selectMessageListByUserIds(Long userId1, Long userId2);
+    List<Map<String, Object>> selectChatUserIds(Long userId);
 }
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserMessageService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserMessageService.java
index 1bcc9f5..8501c99 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserMessageService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserMessageService.java
@@ -2,8 +2,10 @@
 
 import com.ruoyi.system.domain.SysUserMessage;
 import java.util.List;
+import java.util.Map;
 
 public interface ISysUserMessageService {
     int sendMessage(SysUserMessage message);
     List<SysUserMessage> getMessageList(Long userId1, Long userId2);
+    List<Map<String, Object>> getChatUsers(Long userId);
 }
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserMessageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserMessageServiceImpl.java
index 94c9e6e..fea1472 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserMessageServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserMessageServiceImpl.java
@@ -2,15 +2,22 @@
 
 import com.ruoyi.system.domain.SysUserMessage;
 import com.ruoyi.system.mapper.SysUserMessageMapper;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.service.ISysUserMessageService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class SysUserMessageServiceImpl implements ISysUserMessageService {
     @Autowired
     private SysUserMessageMapper messageMapper;
+    @Autowired
+    private SysUserMapper userMapper; // 新增:用于查询用户昵称
 
     @Override
     public int sendMessage(SysUserMessage message) {
@@ -21,4 +28,11 @@
     public List<SysUserMessage> getMessageList(Long userId1, Long userId2) {
         return messageMapper.selectMessageListByUserIds(userId1, userId2);
     }
+
+
+    @Override
+    public List<Map<String, Object>> getChatUsers(Long userId) {
+        List<Map<String, Object>> chatUsers = messageMapper.selectChatUserIds(userId);
+        return chatUsers != null ? chatUsers : new ArrayList<>();
+    }
 }
\ No newline at end of file
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMessageMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMessageMapper.xml
index 79fe8b7..73e55fc 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMessageMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMessageMapper.xml
@@ -22,4 +22,21 @@
             and del_flag = '0'
         order by create_time asc
     </select>
+
+    <select id="selectChatUserIds" parameterType="java.lang.Long" resultType="map">
+        SELECT DISTINCT
+            CASE
+                WHEN m.sender_id = #{userId} THEN m.receiver_id
+                ELSE m.sender_id
+                END AS userId,
+            u.nick_name AS nickName
+        FROM sys_user_message m
+                 INNER JOIN sys_user u
+                            ON (m.sender_id = #{userId} AND m.receiver_id = u.user_id)
+                                OR (m.receiver_id = #{userId} AND m.sender_id = u.user_id)
+        WHERE (m.sender_id = #{userId} OR m.receiver_id = #{userId})
+          AND m.del_flag = '0'
+          AND u.del_flag = '0'
+        ORDER BY u.nick_name
+    </select>
 </mapper>
\ No newline at end of file