摘要:本文设计并实现了校园失物招领与认领管理系统。系统面向管理员与学生两类角色,提供失物与拾物信息发布、公开浏览、在线认领申请、认领流程全程追溯、信用积分激励、违规举报与敏感词过滤、公告通知以及数据统计等完整业务能力。技术实现上采用 Spring Boot、MyBatis-Plus、JWT、MySQL 构建后端服务,Vue 3 与 Element Plus 构建 Web 前台与管理后台,形成前后端分离的多端访问架构。系统将认领受理、核实、通过、拒绝、完成等节点写入流程表并以时间轴展示;在认领结果与举报处理环节联动信用积分;在发布与审核时根据分类、地点与标题关键词生成匹配提示;在发布表单中接入火山方舟多模态大模型完成物品图片识别与表单辅助填写。全文从需求分析、相关技术、系统设计、数据库与接口设计、创新点实现及测试等方面进行阐述,为校园场景下的失物招领信息化建设提供可运行、可演示的实现方案。

技术栈: Spring Boot 3 + MyBatis-Plus + MySQL + Vue 3 + Element Plus + ECharts

数据库表:13张

创新点:认领流程全程追溯、发布者信用积分机制、失物拾物智能匹配提示、物品图片 AI及OCR 识别填写

演示视频

【原创唯一】基于SpringBoot+Vue+AI大模型+O

🍅文末获取联系🍅

🍅文末获取联系🍅

作者介绍:专注计算机编程,个人开发,坚持原创非工作室源码全网唯一

技术主流:SpringBoot+ MyBatis-Plus + Vue 前后端分离,MySQL,Echarts数据统计

配套资料:源码 + 数据库 + 实验报告/论文 + 答辩 PPT+部署演示+远程调试+问题解答

技术范围:SpringBoot、Vue、数据可视化、小程序、HLMT、Nodejs、uni-app、MySQL数据库、ElementUi等设计与开发。

适用范围:软件工程、软件技术、计算机科学与技术、大数据、云计算、JavaWeb开发、JavaEE、Java、Web应用开发、动态网页设计、小程序的毕设参考

开发文档创新点说明、功能需求分析、数据库表结构设计、后端接口设计、创新点代码分析

功能展示

用户端

序号

菜单名称

功能描述

1

首页

展示平台介绍、分类筛选与最新失物拾物列表入口。

2

失物信息

公开浏览已发布失物,支持按分类查看详情并发起认领。

3

拾物信息

公开浏览已发布拾物,支持查看详情并提交认领申请。

4

公告通知

浏览平台公告列表与公告正文。

5

我的失物

学生发布、编辑与关闭本人失物信息,支持图片上传与 AI 识别填写。

6

我的拾物

学生发布、编辑与关闭本人拾物信息,支持图片上传与 AI 识别填写。

7

我的认领

查看本人认领申请状态,并以时间轴查看流程进度。

8

我的信用

查看当前信用分及积分变动记录。

9

系统消息

接收审核结果、认领进展等系统通知消息。

管理员

序号

菜单名称

功能描述

1

数据统计

以图表展示失物、拾物、认领等关键指标,辅助管理员掌握平台运行概况。

2

物品分类

维护校园常见物品分类及排序启用状态,供发布与筛选时引用。

3

失物管理

审核、编辑、驳回与删除学生发布的失物信息,并可查看匹配提示。

4

拾物管理

审核、编辑与监管拾物信息,保障公开信息的真实性与合规性。

5

认领管理

受理认领申请并执行核实、通过、拒绝、完成等流程节点,查看全程痕迹。

6

举报管理

处理违规举报,展示举报对象标题或姓名,必要时联动信用扣分。

7

公告管理

发布与维护面向师生的平台公告与通知内容。

8

敏感词管理

维护敏感词库,发布内容提交时进行过滤校验。

9

积分记录

查询学生信用积分变动明细及关联业务原因。

10

学生管理

维护学生账号、头像、学号联系方式及启用禁用状态。

11

管理员账号

维护后台管理员登录账号与基本信息。

数据库及架构

系统数据库设计为:

数据库设计:

/*
 Navicat Premium Data Transfer

 Source Server         : 1
 Source Server Type    : MySQL
 Source Server Version : 50722
 Source Host           : localhost:3306
 Source Schema         : 1vuez_lost_found_system

 Target Server Type    : MySQL
 Target Server Version : 50722
 File Encoding         : 65001

 Date: 15/08/2026 19:39:55
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for admins
-- ----------------------------
DROP TABLE IF EXISTS `admins`;
CREATE TABLE `admins`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '管理员账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '加密密码',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '管理员姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用 1启用 0禁用',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for categories
-- ----------------------------
DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '物品分类名称',
  `sort_order` int(11) NULL DEFAULT 0 COMMENT '排序序号',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用 1启用 0禁用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for claim_process
-- ----------------------------
DROP TABLE IF EXISTS `claim_process`;
CREATE TABLE `claim_process`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `claim_id` bigint(20) NOT NULL COMMENT '认领申请ID',
  `step` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程节点 submit/review/verify/approve/reject/complete/dispute',
  `operator_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人ID',
  `operator_role` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作人角色 admin/student',
  `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作备注',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for claims
-- ----------------------------
DROP TABLE IF EXISTS `claims`;
CREATE TABLE `claims`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `claimer_id` bigint(20) NOT NULL COMMENT '认领学生ID',
  `target_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '认领类型 lost-认领失物 found-认领拾物',
  `target_id` bigint(20) NOT NULL COMMENT '失物/拾物记录ID',
  `proof_desc` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '物品特征证明描述',
  `proof_images` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '凭证图片地址,多张逗号分隔',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '0-待处理 1-核实中 2-已通过 3-已拒绝 4-已完成',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for credit_records
-- ----------------------------
DROP TABLE IF EXISTS `credit_records`;
CREATE TABLE `credit_records`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `student_id` bigint(20) NOT NULL COMMENT '学生ID',
  `change_amount` int(11) NOT NULL COMMENT '积分变动值,正数增加,负数扣除',
  `balance_after` int(11) NOT NULL COMMENT '变动后积分余额',
  `reason` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '变动原因',
  `ref_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联业务类型',
  `ref_id` bigint(20) NULL DEFAULT NULL COMMENT '关联业务ID',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '变动时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for found_items
-- ----------------------------
DROP TABLE IF EXISTS `found_items`;
CREATE TABLE `found_items`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `student_id` bigint(20) NOT NULL COMMENT '拾物发布学生ID',
  `category_id` bigint(20) NULL DEFAULT NULL COMMENT '物品分类ID',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '拾物标题',
  `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '物品详细描述',
  `images` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物品图片地址,多张逗号分隔',
  `found_date` date NULL DEFAULT NULL COMMENT '拾取日期',
  `place` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '拾取地点,用户手动填写',
  `contact` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发布人联系方式',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '0-待审核 1-已发布 2-已认领 3-已关闭 -1-已驳回',
  `reject_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驳回原因',
  `match_hint` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '智能匹配提示',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for locations
-- ----------------------------
DROP TABLE IF EXISTS `locations`;
CREATE TABLE `locations`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '地点名称',
  `campus` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属校区',
  `address` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用 1启用 0禁用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for lost_items
-- ----------------------------
DROP TABLE IF EXISTS `lost_items`;
CREATE TABLE `lost_items`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `student_id` bigint(20) NOT NULL COMMENT '失主学生ID',
  `category_id` bigint(20) NULL DEFAULT NULL COMMENT '物品分类ID',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '失物标题',
  `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '物品详细描述',
  `images` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物品图片地址,多张逗号分隔',
  `lost_date` date NULL DEFAULT NULL COMMENT '丢失日期',
  `place` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '丢失地点,用户手动填写',
  `contact` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '失主联系方式',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '0-待审核 1-已发布 2-已认领 3-已关闭 -1-已驳回',
  `reject_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驳回原因',
  `match_hint` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '智能匹配提示',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '发布时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for messages
-- ----------------------------
DROP TABLE IF EXISTS `messages`;
CREATE TABLE `messages`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `sender_id` bigint(20) NULL DEFAULT NULL COMMENT '发送人ID,null为系统消息',
  `receiver_id` bigint(20) NOT NULL COMMENT '接收人ID',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
  `read_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否已读 0未读 1已读',
  `ref_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联业务类型',
  `ref_id` bigint(20) NULL DEFAULT NULL COMMENT '关联业务ID',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '消息发送时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for notices
-- ----------------------------
DROP TABLE IF EXISTS `notices`;
CREATE TABLE `notices`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '公告标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '公告正文',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '1-发布 0-下架',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for reports
-- ----------------------------
DROP TABLE IF EXISTS `reports`;
CREATE TABLE `reports`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `reporter_id` bigint(20) NOT NULL COMMENT '举报人学生ID',
  `target_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '举报类型 lost/found/user',
  `target_id` bigint(20) NULL DEFAULT NULL COMMENT '被举报对象ID',
  `reason` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '举报理由',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '0-待处理 1-已处理',
  `handle_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '管理员处理备注',
  `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '举报时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for sensitive_words
-- ----------------------------
DROP TABLE IF EXISTS `sensitive_words`;
CREATE TABLE `sensitive_words`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `word` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '敏感词文本',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '是否启用 1启用 0禁用',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '学生登录账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '加密密码',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学生姓名',
  `student_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学号',
  `gender` tinyint(4) NULL DEFAULT NULL COMMENT '性别 1男 0女',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系手机号',
  `credit_score` int(11) NULL DEFAULT 100 COMMENT '信用积分,初始100分',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '账号是否启用 1启用 0禁用',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像地址',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

SET FOREIGN_KEY_CHECKS = 1;

擅长功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等。

获取联系

项目功能完整,可在本地运行,并可远程调试,确保运行顺利!

👇🏻👇🏻获取联系方式👇🏻👇🏻

毕业设计获取https://blog.csdn.net/qq_59059632/article/details/163759879?spm=1011.2415.3001.5331

更多推荐