家族人员管理系统
创建于 2025 年 1 月 8 日
项目介绍
家族人员管理系统是一个面向家族事务场景的管理后台,项目在若依 RuoYi-Vue(3.8.7)前后端分离框架基础上二次开发,将框架中典型的”班级”业务模型改造为”家族 + 成员”两级数据模型:mv_class 家族表与 mv_user_class 家族成员表通过 class_id 关联,sys_user 复用若依用户体系承载成员档案。系统菜单按”家族”分组,下设”我的家族”与”家族信息”两个页面,另附一个基于讯飞星火大模型的”学习助手”会话式问答工具。
项目的业务链路清晰:先由用户在”我的家族”中创建家族档案(名称、图片、备注,并可选绑定钉钉群机器人),再在”家族信息”中为家族维护成员,最后可通过绑定的钉钉机器人向家族群发布作业通知,或让成员在学习助手中与星火大模型对话学习。数据层面全部采用逻辑删除(del_flag:0 存在、2 删除),保留完整审计痕迹;接口层基于 Spring Security + JWT 做权限控制,普通用户只能看到自己创建的家族,管理员可以查看全局数据。
项目架构
后端基于若依经典分层架构,com.ruoyi.project.classes 包下按 controller / service / mapper / domain 组织家族业务:MvClassController 负责家族档案的增删改查与 Excel 导出,ClassInfoControllerr 负责成员管理与跨表查询,SparkController 负责学习助手会话空间管理。数据访问层使用 MyBatis + PageHelper 分页,核心查询通过 mv_user_class JOIN sys_user JOIN mv_class 三表关联取出成员的姓名、性别、邮箱、电话等信息,并以 user_type(teacher/student/creater)与 del_flag 过滤成员角色和已删除数据。
项目技术栈:后端 Java 8 + Spring Boot + Spring Security + MyBatis + MySQL + Redis(Druid 连接池),配 PageHelper、POI(Excel 导出)、Swagger、fastjson2;前端 Vue 3.3 + Vite 5 + Element Plus 2.4 + Pinia + ECharts + Axios,按若依 views/classes 目录组织页面。集成侧引入钉钉官方 SDK(DingTalkTool 以 HmacSHA256 时间戳加签调用群机器人接口,支持 TEXT/MARKDOWN 消息与指定手机号 @人)和讯飞星火大模型(WebSocket 流式推送 + Netty 服务端转发,mv_llm_space / mv_llm_used 两表持久化会话与问答记录)。
核心功能
-
我的家族(家族档案管理):卡片式展示家族列表(图片 + 名称 + 备注),悬停卡片显示编辑/删除图标;新增/编辑弹窗支持上传 png/jpg/jpeg 家族图片、必填家族名称、备注,以及可选的钉钉机器人 webhook 与加签密钥绑定。后端在列表接口中做数据权限隔离——非管理员自动按
created_user_id过滤,只能看到自己创建的家族;创建家族时会在insertMvClass中同时向mv_user_class写入creater角色记录,保证”创建者即家族成员”。支持按权限导出 Excel。 -
家族信息(成员管理):按家族下拉、姓名、性别三个维度组合筛选成员,表格展示姓名、昵称、头像、性别、邮箱、电话与备注并支持分页。新增成员时通过
@Transactional事务先写sys_user再写mv_user_class建立成员-家族关联;修改成员可跨家族调转(更新mv_user_class.class_id)或修改联系方式(更新sys_user);删除成员为软删除mv_user_class记录,成员从家族移除但用户数据保留。 -
钉钉机器人通知:家族档案绑定钉钉群机器人后,“家族信息”页可一键发布作业消息,后端
sendDingTalkMessage先校验 webhook 与加签密钥,再按DingTalkMessageType发送 TEXT 或 MARKDOWN 格式消息,支持 @全员(isAtAll)或按成员手机号列表 @指定人员,实现家族事务的即时触达。 -
学习助手(讯飞星火大模型):独立的会话式问答页面,左侧会话空间卡片支持新建(默认”未命名”)、重命名、删除与切换;对话经 WebSocket 流式返回,问答内容与 token 消耗持久化到
mv_llm_used,按空间维度回放历史对话,适合作为家族成员的学习辅助工具。 -
权限与安全:沿用若依 RBAC 权限体系,菜单/按钮级权限(如
classes:classes:list、classes:classes:add)配合接口层SecurityUtils.isAdmin判断实现数据级隔离;JWT 无状态鉴权、验证码登录、操作日志与登录日志等安全能力开箱即用。
功能截图
暂无运行截图。
快速上手
- 准备数据库:导入
sql/iflytek_edu_ai_pro.sql(含若依系统表与mv_class、mv_user_class、mv_llm_space、mv_llm_used业务表)及sql/quartz.sql,在application-druid.yml中配置 MySQL 连接;Redis 需提前启动(默认localhost:6379)。 - 启动后端:在
iflytek-edu-aipro目录执行mvn spring-boot:run(或使用ry.bat/ry.sh),默认端口 8080,Swagger 接口文档地址为/swagger-ui/index.html。 - 启动前端:在
iflytek-edu-aipro-web目录执行npm install && npm run dev,默认访问http://localhost:80,使用管理员账号admin/admin123登录。 - 体验流程:在”家族 → 我的家族”中新增家族并上传图片、绑定钉钉机器人;进入”家族信息”为家族新增成员、按条件筛选、跨家族调转或删除;点击铃铛图标向家族群发布钉钉作业消息;在”学习助手”中新建会话并与星火大模型对话。
- 可选集成配置:讯飞星火大模型与钉钉机器人的密钥在对应接口/档案中配置,学习助手需在代码中填入星火 API Key 与 Secret。
总结
家族人员管理系统以若依框架为底座,用最简洁的”家族 + 成员”两张业务表完整覆盖了档案管理、成员维护、消息通知与 AI 助学的典型场景。项目在工程上继承了若依成熟的权限、日志、分页与代码生成体系,同时展示了几个有价值的扩展点:一是通过 user_type 枚举与创建人隔离实现细粒度的数据权限;二是复用 sys_user 承载业务成员、用中间表 mv_user_class 建立多对多关联的建模方式,天然支持成员跨家族调转;三是钉钉机器人的加签调用与星火大模型的 WebSocket 流式接入,为管理后台与外部服务集成提供了可直接复用的模板。整体实现务实、结构清晰,是一个适合快速改造上手的家族事务管理示例。