# 36-在线聊天室系统 - 功能说明

# 项目概述

在线聊天室系统是一个集群组聊天、私聊、好友管理于一体的综合性社交聊天Web应用系统。采用前后端分离架构,基于Vue 3和Spring Boot技术栈,为用户提供多样化的在线交流体验。系统支持创建聊天室、群组聊天、私聊、好友添加、系统公告等全流程社交功能,并提供管理员后台进行全面管理和数据统计。


# 项目概览

# ✨ 创新点

# 1. 双模式聊天体系

  • 群组聊天:支持创建聊天室,多人在同一聊天室进行群组交流。
  • 私聊功能:好友之间可进行一对一私密聊天,消息独立管理。
  • 实时消息:消息实时推送,支持文字和图片两种消息类型。
  • 在线状态:实时显示用户在线状态和当前所在聊天室。

# 2. 完善的聊天室管理

  • 聊天室分类:学习、娱乐、交流、其他四大分类,便于用户选择。
  • 房主管理:每个聊天室有房主,可管理聊天室信息。
  • 成员管理:记录聊天室成员加入时间、退出记录。
  • 推荐机制:支持聊天室推荐功能,展示优质聊天室。
  • 人数限制:可设置聊天室最大人数,控制聊天室规模。

# 3. 智能化好友系统

  • 好友申请:用户之间发送好友申请,接收方可通过或拒绝。
  • 好友备注:可为好友设置备注名称,方便管理。
  • 未读消息:记录好友未读消息数量,及时提醒用户。
  • 好友列表:清晰展示所有好友信息,支持快速私聊。

# 4. 系统公告推送

  • 公告类型:区分重要公告和普通公告。
  • 推送范围:支持全体推送或指定聊天室推送。
  • 公告撤回:管理员可撤回已发布的公告。
  • 历史记录:用户可查看历史公告信息。

# 5. 数据统计分析

  • 消息统计:按日期统计群组消息数、私聊消息数。
  • 用户统计:统计总用户数、在线用户数、新增用户数。
  • 聊天室统计:统计总聊天室数、活跃聊天室数、新增聊天室数。
  • 可视化展示:管理后台提供数据统计报表,直观了解系统运营情况。

# ✨ 项目亮点

# 一、业务功能亮点

  1. 双通道聊天模式:群组聊天和私聊两种模式互不干扰,满足不同交流需求。
  2. 完整的聊天室生命周期:从创建、加入、聊天、成员管理到退出,流程完整。
  3. 好友社交闭环:好友申请→通过/拒绝→私聊→消息管理,形成完整社交链。
  4. 多消息类型支持:支持文字消息、图片消息、系统通知多种类型。
  5. 实时在线状态:用户在线/离线状态实时更新,所在聊天室实时展示。
  6. 灵活的聊天室分类:学习、娱乐、交流、其他四大分类,适配多种场景。

# 二、技术实现亮点

  1. 现代化前端技术栈:Vue 3 + Element Plus + Vite,开发高效体验流畅。
  2. 稳定可靠的后端架构:Spring Boot + MyBatis,构建稳健后端服务。
  3. 完善的数据库设计:12张核心表,utf8mb4字符集,支持完整业务流程。
  4. 冗余字段优化:合理使用冗余字段(昵称、头像),减少关联查询,提升性能。
  5. 索引优化:多表建立联合索引,优化查询性能。
  6. 逻辑关联:采用逻辑关联而非外键约束,提升灵活性。

# 三、用户体验亮点

  1. 双端界面设计:
    • 前台:聊天室列表、好友列表、聊天界面,简洁直观。
    • 管理后台:侧边导航,功能集中,数据统计一目了然。
  2. 交互优化:
    • 实时消息提示。
    • 未读消息数量显示。
    • 在线状态实时更新。
    • 好友申请消息提醒。
  3. 聊天体验:
    • 消息时间戳显示。
    • 发送者昵称和头像展示。
    • 支持图片发送和预览。
    • 消息历史记录完整保留。

# 管理员

# 系统管理

管理员管理:管理全部管理员账号,支持新增、编辑、删除、启用/禁用操作。

普通用户管理:管理全部用户账号,可修改用户信息、状态,支持重置密码。

用户在线状态管理:查看用户在线状态、所在聊天室、登录时间、最后活跃时间。

# 聊天室管理

聊天室管理:管理全部聊天室,包括聊天室名称、描述、类型、分类、人数限制、当前人数、房主信息、推荐设置。

聊天室分类管理:管理聊天室分类(学习、娱乐、交流、其他),设置分类名称、描述、图标、排序。

聊天室成员管理:查看所有聊天室的成员列表,包括加入时间、成员状态(正常/已退出)。

群组消息管理:查看所有聊天室的聊天消息记录,包括消息类型(文字/系统通知/图片)、发送时间、发送者信息。

# 私聊管理

私聊消息管理:查看所有用户的私聊消息记录,包括发送者、接收者、消息内容、已读状态、发送时间。

好友关系管理:查看所有用户的好友关系,包括好友备注、未读消息数、添加时间。

好友申请管理:查看所有好友申请记录,包括申请人、接收人、申请留言、申请状态(待处理/已通过/已拒绝)、处理时间。

# 系统管理

系统公告管理:发布系统公告,设置公告标题、内容、类型(重要/普通)、推送范围(全部/指定聊天室)、撤回公告。

消息统计:按日期统计系统数据,包括群组消息数、私聊消息数、总用户数、在线用户数、总聊天室数、活跃聊天室数、新增用户数、新增聊天室数。


# 普通用户

# 聊天室功能

首页浏览:浏览首页展示的推荐聊天室、在线用户数、系统公告等信息。

聊天室列表:

  • 浏览所有公开聊天室
  • 按分类筛选聊天室(学习/娱乐/交流/其他)
  • 查看聊天室名称、描述、当前人数、最大人数、房主信息
  • 查看推荐聊天室标识

创建聊天室:

  • 填写聊天室名称、描述
  • 选择聊天室类型(公开/私密)
  • 选择分类(学习/娱乐/交流/其他)
  • 设置最大人数限制
  • 创建成功后自动成为房主

加入聊天室:

  • 浏览聊天室列表,选择感兴趣的聊天室
  • 点击加入聊天室
  • 自动成为聊天室成员

群组聊天:

  • 进入聊天室后查看历史消息
  • 发送文字消息
  • 发送图片消息
  • 查看在线成员列表
  • 实时接收其他成员消息
  • 查看消息发送时间和发送者信息

退出聊天室:退出当前聊天室,成员状态变为已退出。

# 好友功能

好友列表:

  • 查看所有好友
  • 显示好友昵称、头像、备注
  • 显示未读消息数量
  • 快速进入私聊

添加好友:

  • 搜索用户
  • 发送好友申请
  • 填写申请留言
  • 等待对方通过

好友申请管理:

  • 查看收到的好友申请
  • 查看申请人昵称、头像、申请留言
  • 通过或拒绝好友申请

设置好友备注:为好友设置备注名称,方便识别。

删除好友:删除不需要的好友关系。

# 私聊功能

私聊界面:

  • 点击好友进入私聊界面
  • 查看历史聊天记录
  • 发送文字消息
  • 发送图片消息
  • 实时接收对方消息
  • 查看消息已读/未读状态

未读消息提醒:好友列表显示未读消息数量,及时提醒用户查看。

消息已读:进入私聊界面后,未读消息自动标记为已读,并记录读取时间。

# 个人中心

个人信息:修改个人信息(用户名、昵称、头像、手机号、邮箱)。

修改密码:修改登录密码。

系统公告:查看系统发布的公告通知。


# 功能权限对照表

功能模块 管理员 普通用户
首页 ✓ ✓
管理员管理 ✓ -
用户管理 ✓ -
用户在线状态管理 ✓ -
聊天室管理(全部) ✓ -
聊天室分类管理 ✓ -
聊天室成员管理 ✓ -
群组消息管理(全部) ✓ -
浏览聊天室 - ✓
创建聊天室 - ✓
加入聊天室 - ✓
群组聊天 - ✓
退出聊天室 - ✓
私聊消息管理(全部) ✓ -
私聊消息管理(个人) - ✓
好友关系管理(全部) ✓ -
好友关系管理(个人) - ✓
好友申请管理(全部) ✓ -
好友申请管理(个人) - ✓
添加好友 - ✓
系统公告管理 ✓ -
系统公告浏览 - ✓
消息统计 ✓ -

# 默认账号

# 管理员

用户名: admin
密码: 123456
昵称: 系统管理员
手机: 13800138000
邮箱: admin@qq.com
1
2
3
4
5

# 测试用户

用户1:
用户名: zhangsan
密码: 123456
昵称: 张三
手机: 13800138001

用户2:
用户名: lisi
密码: 123456
昵称: 李四
手机: 13800138002

用户3:
用户名: wangwu
密码: 123456
昵称: 王五
手机: 13800138003

用户4:
用户名: zhaoliu
密码: 123456
昵称: 赵六
手机: 13800138004

用户5:
用户名: sunqi
密码: 123456
昵称: 孙七
手机: 13800138005
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 核心业务流程

# 用户注册流程

1. 填写注册信息(用户名、密码、昵称、邮箱)
2. 系统创建用户账号(状态:启用)
3. 跳转到登录页
1
2
3

# 创建聊天室流程

1. 进入"聊天室列表"页面
2. 点击"创建聊天室"按钮
3. 填写聊天室名称、描述
4. 选择聊天室类型(公开/私密)
5. 选择分类(学习/娱乐/交流/其他)
6. 设置最大人数限制
7. 提交创建,自动成为房主和第一个成员
8. 聊天室状态:正常,当前人数:1
1
2
3
4
5
6
7
8

# 加入聊天室聊天流程

1. 浏览聊天室列表,查看聊天室信息
2. 选择感兴趣的聊天室,点击"加入"
3. 系统检查人数限制,未满则加入成功
4. 成为聊天室成员,当前人数+1
5. 进入聊天室,查看历史消息
6. 发送文字或图片消息
7. 实时接收其他成员的消息
8. 查看在线成员列表
9. 退出聊天室,成员状态变为已退出
1
2
3
4
5
6
7
8
9

# 添加好友流程

1. 搜索想要添加的用户
2. 点击"添加好友"按钮
3. 填写申请留言(可选)
4. 提交好友申请,状态:待处理
5. 对方收到好友申请通知
6. 对方查看申请信息,选择通过或拒绝
7. 通过后:
   - 双方自动建立好友关系(双向添加)
   - 好友申请状态变为:已通过
   - 记录处理时间
   - 双方可在好友列表中看到对方
8. 拒绝后:
   - 好友申请状态变为:已拒绝
   - 记录处理时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 私聊流程

1. 进入"好友列表"页面
2. 选择想要聊天的好友,点击进入私聊
3. 查看历史聊天记录
4. 发送文字或图片消息
5. 消息实时推送给对方
6. 对方未读消息数+1
7. 对方进入私聊界面后:
   - 未读消息自动标记为已读
   - 记录读取时间
   - 未读消息数清零
8. 继续发送消息,实时聊天
1
2
3
4
5
6
7
8
9
10
11

# 系统公告发布流程

1. 管理员进入"系统公告管理"页面
2. 点击"发布公告"按钮
3. 填写公告标题、内容
4. 选择公告类型(重要/普通)
5. 选择推送范围(全部/指定聊天室)
6. 提交发布,状态:发布
7. 用户在系统公告页面查看公告
8. 如需撤回,管理员可将公告状态改为:已撤回
1
2
3
4
5
6
7
8

# 技术说明

# 系统架构

  • 前端:Vue 3 + Element Plus + Vite
  • 后端:Spring Boot + MyBatis
  • 数据库:MySQL 5.7+
  • 认证:JWT Token

# 访问地址

  • 后端API:http://localhost:1000
  • 前端页面:http://localhost:5173(开发环境)

# 数据库

  • 数据库名:chat_system
  • 字符集:utf8mb4
  • 总表数:12张表

# 核心表说明

  • admin:管理员表(存储管理员账号信息)
  • user:普通用户表(存储用户账号信息)
  • user_online:用户在线状态表(记录用户在线状态、所在聊天室)
  • chat_room:聊天室表(存储聊天室基本信息)
  • chat_room_category:聊天室分类表(学习、娱乐、交流、其他)
  • room_member:聊天室成员表(记录用户加入聊天室的关系)
  • chat_message:群组聊天消息表(存储聊天室的所有消息)
  • private_message:私聊消息表(存储用户之间的私聊消息)
  • friend:好友关系表(记录用户之间的好友关系,双向)
  • friend_request:好友申请表(记录好友申请的状态)
  • system_notice:系统公告表(存储管理员发布的公告)
  • message_statistics:消息统计表(按日期统计系统数据)

# 系统特色

# 聊天室特色

  • 灵活的分类系统:学习、娱乐、交流、其他四大分类,满足多种场景需求
  • 房主管理机制:创建者自动成为房主,拥有管理权限
  • 人数限制控制:可设置聊天室最大人数,避免聊天室过度拥挤
  • 推荐展示:管理员可设置推荐聊天室,引导用户加入优质聊天室
  • 成员轨迹记录:记录成员加入时间和退出记录,便于管理

# 消息特色

  • 多类型消息:支持文字、图片、系统通知三种消息类型
  • 实时推送:消息实时推送,无需刷新页面
  • 历史记录:完整保留聊天历史,可随时查看
  • 冗余优化:消息表冗余存储发送者昵称、头像,减少关联查询
  • 已读未读:私聊消息支持已读未读标识,明确消息状态

# 好友特色

  • 双向好友关系:添加好友后自动建立双向关系
  • 好友备注:可为好友设置备注名称,方便管理
  • 申请审核:好友申请需对方通过,保护用户隐私
  • 未读消息提醒:好友列表显示未读消息数,及时提醒
  • 申请留言:发送好友申请时可填写留言,增加通过率

# 在线状态特色

  • 实时更新:用户在线状态实时更新
  • 所在聊天室显示:可查看用户当前所在的聊天室
  • 登录时间记录:记录用户登录时间
  • 最后活跃时间:记录用户最后活跃时间,判断活跃度

# 系统公告特色

  • 公告分级:区分重要公告和普通公告,方便用户识别
  • 精准推送:支持全体推送或指定聊天室推送
  • 公告撤回:管理员可撤回已发布的公告
  • 历史查询:用户可查看历史公告信息

# 数据统计特色

  • 按日统计:按日期统计系统数据,了解每日运营情况
  • 多维度统计:统计消息数、用户数、聊天室数等多个维度
  • 增量统计:统计新增用户数、新增聊天室数,了解增长趋势
  • 活跃度统计:统计在线用户数、活跃聊天室数,了解系统活跃度

# 项目优势

# 1. 解决社交需求

  • 在线交流:提供方便的在线聊天平台,满足用户交流需求
  • 群组讨论:支持创建不同主题的聊天室,方便同好交流
  • 私密聊天:好友之间可进行私密聊天,保护隐私
  • 实时互动:消息实时推送,提升交流效率

# 2. 功能完善全面

  • 聊天功能:支持群组聊天和私聊两种模式
  • 好友系统:完善的好友申请、管理机制
  • 分类管理:聊天室分类管理,便于用户查找
  • 系统公告:管理员可发布公告,及时通知用户

# 3. 技术实现规范

  • 前后端分离:开发效率高,维护方便
  • 数据库设计规范:12张表,关系清晰,数据完整
  • 冗余字段优化:合理使用冗余字段,提升查询性能
  • 索引优化:多表建立索引,优化查询速度

# 4. 用户体验优秀

  • 操作简单:界面清晰,流程顺畅
  • 实时反馈:消息实时推送,状态实时更新
  • 消息提醒:未读消息数量显示,及时提醒用户
  • 历史记录:完整保留聊天历史,方便回溯

Java导航网   |