feat(UserMessage):添加好友聊天功能,可以与其它用户进行简单的文本聊天

Change-Id: Idd701e827313babd721aef5559f3a714a7198d82
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserMessage.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserMessage.java
new file mode 100644
index 0000000..0796dd5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysUserMessage.java
@@ -0,0 +1,27 @@
+package com.ruoyi.system.domain;
+
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+
+@Data
+public class SysUserMessage extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Excel(name = "消息ID")
+    private Long messageId;
+
+    @Excel(name = "发送者ID")
+    @NotNull(message = "发送者ID不能为空")
+    private Long senderId;
+
+    @Excel(name = "接收者ID")
+    @NotNull(message = "接收者ID不能为空")
+    private Long receiverId;
+
+    @Excel(name = "消息内容")
+    @NotBlank(message = "消息内容不能为空")
+    private String content;
+}
\ 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
new file mode 100644
index 0000000..6e2fc1d
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMessageMapper.java
@@ -0,0 +1,9 @@
+package com.ruoyi.system.mapper;
+
+import com.ruoyi.system.domain.SysUserMessage;
+import java.util.List;
+
+public interface SysUserMessageMapper {
+    int insertMessage(SysUserMessage message);
+    List<SysUserMessage> selectMessageListByUserIds(Long userId1, Long userId2);
+}
\ 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
new file mode 100644
index 0000000..1bcc9f5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserMessageService.java
@@ -0,0 +1,9 @@
+package com.ruoyi.system.service;
+
+import com.ruoyi.system.domain.SysUserMessage;
+import java.util.List;
+
+public interface ISysUserMessageService {
+    int sendMessage(SysUserMessage message);
+    List<SysUserMessage> getMessageList(Long userId1, Long userId2);
+}
\ 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
new file mode 100644
index 0000000..94c9e6e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserMessageServiceImpl.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.service.impl;
+
+import com.ruoyi.system.domain.SysUserMessage;
+import com.ruoyi.system.mapper.SysUserMessageMapper;
+import com.ruoyi.system.service.ISysUserMessageService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.List;
+
+@Service
+public class SysUserMessageServiceImpl implements ISysUserMessageService {
+    @Autowired
+    private SysUserMessageMapper messageMapper;
+
+    @Override
+    public int sendMessage(SysUserMessage message) {
+        return messageMapper.insertMessage(message);
+    }
+
+    @Override
+    public List<SysUserMessage> getMessageList(Long userId1, Long userId2) {
+        return messageMapper.selectMessageListByUserIds(userId1, userId2);
+    }
+}
\ 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
new file mode 100644
index 0000000..79fe8b7
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMessageMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.SysUserMessageMapper">
+    <resultMap id="SysUserMessageMap" type="com.ruoyi.system.domain.SysUserMessage">
+        <id property="messageId" column="message_id"/>
+        <result property="senderId" column="sender_id"/>
+        <result property="receiverId" column="receiver_id"/>
+        <result property="content" column="content"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+    <insert id="insertMessage" parameterType="com.ruoyi.system.domain.SysUserMessage">
+        insert into sys_user_message (sender_id, receiver_id, content, create_time)
+        values (#{senderId}, #{receiverId}, #{content}, sysdate())
+    </insert>
+
+    <select id="selectMessageListByUserIds" resultMap="SysUserMessageMap">
+        select message_id, sender_id, receiver_id, content, create_time
+        from sys_user_message
+        where (sender_id = #{userId1} and receiver_id = #{userId2})
+           or (sender_id = #{userId2} and receiver_id = #{userId1})
+            and del_flag = '0'
+        order by create_time asc
+    </select>
+</mapper>
\ No newline at end of file