返回作品

校园失物招领系统

创建于 2025 年 12 月 17 日

标签
  • Java
  • Spring Boot 2.5.15
  • MyBatis
  • MySQL
  • Redis
  • Spring Security
  • Vue 3
  • Element Plus
  • Pinia
  • Vite
  • Axios

项目介绍

校园失物招领系统是一套面向高校场景的失物招领管理平台,基于若依 RuoYi-Vue 前后端分离框架开发。项目包含 RuoYi-springboot-校园失物招领系统 后端(若依 RuoYi 3.9.0)与 RuoYi-Vue3-校园失物招领系统 前端(Vue 3),业务代码集中在后端独立的 ruoyi-manage 模块与前端 src/views/manage 目录下,对应四个业务实体:物品分类(tb_category)、失物信息(tb_lost_item)、招领信息(tb_found_item)、认领记录(tb_claim_record)。

系统围绕”发布 → 审核 → 认领 → 确认”的完整业务链路设计:学生(普通用户)登记丢失物品或拾取物品,填写物品名称、分类、地点、时间、描述与联系方式;发布后信息进入”待审核”状态,由审核员角色把关信息真实性,通过后对外展示;失主或拾主通过认领记录发起认领申请并填写认领说明,审核员确认认领后,物品状态自动流转为”已找到”或”已认领”,形成业务闭环。

项目架构

项目沿用若依经典的模块化单体结构,在框架自带的系统管理、权限认证等能力之上,新增 ruoyi-manage 业务模块承载失物招领全部业务逻辑:

模块技术栈说明
ruoyi-manageSpring Boot 2.5.15、MyBatis、PageHelper失物招领业务模块,按 controller → service → mapper 分层,含分类、失物、招领、认领四个子域
ruoyi-framework / ruoyi-systemSpring Security、JWT、Redis框架内置:登录认证、权限拦截、用户/角色/菜单管理、操作日志
ruoyi-quartzQuartz框架内置:定时任务调度
RuoYi-Vue3-校园失物招领系统Vue 3.5、Element Plus 2.10、Pinia 3.0、Vite 6管理后台前端,src/views/manage 下为业务页面,src/api/manage 封装接口
20251217-lost.sqlMySQL完整初始化脚本:角色、用户、菜单权限、业务表与测试数据

数据库设计上,失物信息表与招领信息表通过 category_id 关联分类表(均建有 idx_category_id 索引),认领记录表通过 item_type + item_id 组合字段(idx_item 索引)同时指向失物或招领两条链路,用一张表统一承载两类认领场景。

核心功能

  • 物品分类管理:预置电子产品、证件卡类、生活用品、书籍文具、服饰配件、其他物品六类,支持分类的新增、修改、删除、排序与启停用,失物/招领表单中的分类以下拉框动态加载。
  • 失物/招领信息管理:维护物品名称、分类、丢失/拾取地点、时间、详细描述、联系人及电话;新增时后端自动记录 createBy(用户名)与 userId(发布人 ID),并初始化状态为”待审核”。
  • 双角色审核:SQL 脚本内置”普通用户”(user)与”审核员”(auditor)两个角色及 zhangsanlisi 等演示账号;审核员通过 manage:lost:audit / manage:found:audit 权限执行审核接口,前端在状态为”待审核”时展示审核按钮,通过(状态 1)或拒绝(状态 3)二选一。
  • 认领申请与确认:认领人填写姓名、电话与认领说明发起申请,状态初始为”待确认”;审核员确认认领(manage:claim:confirm)时,后端在事务内同时更新认领记录状态与对应失物/招领物品状态,失物标记为”已找到”、招领标记为”已认领”。
  • 检索与导出:列表页支持按物品名称、分类、状态组合筛选与分页查询;失物、招领、认领三张列表均支持 Excel 导出;修改接口校验”只能修改自己发布的记录”,防止越权篡改他人信息。

功能截图

暂无运行截图。

快速上手

  1. 准备 MySQL,执行项目根目录的 20251217-lost.sql,脚本会完成角色、用户、菜单权限、业务表与测试数据的初始化;后端另需导入 RuoYi-springboot-校园失物招领系统/sql/ 下的框架基础脚本(ry_20250522.sql)。
  2. 启动后端:配置 application-druid.yml 数据库连接,运行 RuoYiApplication 主类(Spring Boot 2.5.15,需 JDK 8+)。
  3. 启动前端:在 RuoYi-Vue3-校园失物招领系统 目录执行 npm installnpm run dev,默认访问 http://localhost:80(或 vite 配置端口)。
  4. 使用演示账号登录体验双角色流程:zhangsan / 123456(普通用户,发布失物与招领、发起认领)、wangwu / 123456(审核员,审核信息、确认认领)。

总结

校园失物招领系统是一个将若依框架快速落地到真实业务场景的典型实践。项目以最小的新增代码量(一个 ruoyi-manage 模块 + 四张业务表)完整覆盖了”发布—审核—认领—确认”的失物招领业务闭环,并通过角色-菜单-权限的数据配置实现普通用户与审核员的职责隔离:普通用户只能查询、发布和修改本人记录,审核员掌握审核与认领确认的最终处置权。认领确认接口中”更新认领记录 + 同步流转物品状态”的事务处理,以及”只能修改自己发布的记录”的越权校验,都是值得借鉴的细节设计。对于希望学习若依框架二次开发、掌握 RBAC 权限设计与前后端分离业务模块搭建的开发者而言,这是一个结构清晰、可直接运行的参考项目。