摘 要
随着城市化进程的加快,停车难的问题日益严重,智能停车场管理系统应运而生。本系统旨在通过先进的技术手段,提供高效、智能的停车管理服务,解决传统停车方式中存在的车位资源浪费、停车信息不准确、管理效率低等问题。通过采用Java语言、SpringBoot框架和MySQL数据库技术,构建一个现代化、可扩展的智能停车场管理系统,为用户和管理员提供便捷的服务与高效的管理功能。
本系统包括两大模块:注册用户和管理员。注册用户可以通过系统首页查看公告通知、新闻资讯以及实时空闲车位信息,并进行车位预约。个人中心功能使用户能够管理个人信息、停车记录、收藏和评论,实现个性化服务。管理员模块提供停车信息统计、车位管理、用户管理、停车信息审核、出场信息审核等功能。管理员可实时监控停车场的运营状况,合理调度车位资源,确保停车场的高效运行。
技术方案方面,系统后端基于SpringBoot框架,采用MySQL数据库进行数据存储与管理,保证数据的高效存取与持久化。前端使用Vue框架构建,确保用户界面响应迅速、交互流畅。系统通过RESTful API进行前后端数据交互,提升系统的扩展性和性能。
系统的应用能够有效提升停车场的管理效率,减少车位资源浪费,提供精准的停车信息和便捷的用户体验。用户可通过智能预约停车,避免寻找车位的困扰;管理员通过后台管理系统,提高停车场资源调配和运营效率,最终实现停车资源的优化配置,提升整体运营效益。
关键词 : 智能停车场管理系统;Java语言;Spring Boot框架;MySQL数据库
Spring Boot Intelligent Parking Lot Management System
****Abstract:****With the acceleration of urbanization, the problem of difficult parking has become increasingly serious, and intelligent parking lot management systems have emerged. This system aims to provide efficient and intelligent parking management services through advanced technological means, solving the problems of wasted parking resources, inaccurate parking information, and low management efficiency in traditional parking methods. By using Java language, SpringBoot framework, and MySQL database technology, a modern and scalable intelligent parking lot management system is built to provide convenient services and efficient management functions for users and administrators.
This system consists of two main modules: registered users and administrators. Registered users can view announcements, news, and real-time available parking space information through the system homepage, and make parking reservations. The personal center function enables users to manage personal information, parking records, favorites, and comments, achieving personalized services. The administrator module provides functions such as parking information statistics, parking space management, user management, parking information review, and exit information review. Administrators can monitor the operation status of the parking lot in real time, schedule parking resources reasonably, and ensure the efficient operation of the parking lot.
In terms of technical solutions, the system backend is based on the SpringBoot framework and uses MySQL database for data storage and management, ensuring efficient access and persistence of data. The front-end is built using the Vue framework to ensure fast user interface response and smooth interaction. The system uses RESTful API for front-end and back-end data exchange, improving the scalability and performance of the system.
The application of the system can effectively improve the management efficiency of parking lots, reduce the waste of parking resources, provide accurate parking information and convenient user experience. Users can make intelligent parking reservations to avoid the hassle of finding a parking spot; Administrators use the backend management system to improve the allocation and operational efficiency of parking resources, ultimately achieving optimized allocation of parking resources and enhancing overall operational efficiency.
Keywords: intelligent parking lot management system; Java language; Spring Boot framework; MySQL database
目 录
[++++摘 要++++](#摘 要)
[++++1.5 论文结构与章节安排++++](#1.5 论文结构与章节安排)
[++++2.1 Java语言++++](#2.1 Java语言)
[++++2.2 SpringBoot 框架++++](#2.2 SpringBoot 框架)
[++++2.3 MySQL数据库++++](#2.3 MySQL数据库)
[++++3.1.1 注册用户功能++++](#3.1.1 注册用户功能)
[++++3.1.2 管理员用户功能++++](#3.1.2 管理员用户功能)
[++++结 论++++](#结 论)
[++++致 谢++++](#致 谢)
1绪论
1.1研究背景
随着城市化进程的不断加快,人口流动性和汽车保有量的迅猛增长,城市停车问题日益凸显。尤其是在大型商业区、住宅区和办公区,停车难已经成为了困扰市民和管理者的主要问题。传统的停车场管理模式往往依赖人工调度,缺乏有效的信息化手段,导致车位资源的浪费、停车信息不准确、管理效率低下等问题。随着智能化技术的发展,基于信息技术的智能停车场管理系统应运而生,它能够通过实时监控、数据分析和自动化管理等手段,提高停车资源的利用率,优化停车场的管理和运营流程。因此,研究并开发一套高效、智能化的停车管理系统显得尤为重要,能够为解决城市停车难题提供创新解决方案。
1.2研究意义
通过设计和实现智能停车场管理系统,提升停车场管理的智能化和自动化水平,解决当前传统停车管理中存在的痛点。该系统能够实时监控停车位的占用情况,提供精准的车位信息,为用户提供便捷的车位预约服务,减少车位寻找的时间和困扰,优化用户体验。同时,系统通过数据统计和信息分析,为管理员提供更加高效的管理工具,帮助其实现车位资源的合理分配和运营效率的提升。系统还能够大幅度减少人工干预,降低管理成本,提升整体运营效益。从更广泛的角度来看,智能停车管理系统的推广应用,将为城市智慧交通系统的建设奠定基础,推动交通管理向数字化、智能化发展,对改善城市交通环境、提升社会资源利用效率具有重要的社会价值和经济意义。
1.3国内外发展现状
1.3.1国内研究现状
近年来,随着我国城市化进程的加速,智能停车场管理逐渐成为各大城市解决停车难问题的关键领域之一。国内的智能停车研究和实践起步较晚,但发展迅速。目前,国内许多科研机构和企业已开始着手开发基于物联网、大数据、云计算等技术的智能停车解决方案。研究方向主要集中在停车场资源优化、车位引导系统、车位预约、停车信息实时共享等方面。智能停车管理系统通过采用传感器、摄像头、RFID等技术实现对车位的实时监控与动态管理,减少了人工干预,提高了车位利用率。例如,阿里巴巴、腾讯等科技公司已推出了智能停车平台,利用移动互联网和大数据分析为用户提供精准的停车位信息和在线支付服务。此外,国内一些地方政府也开始推广智能停车系统的建设,如深圳、杭州等城市都推出了智能停车系统试点项目,并取得了一定的成效。尽管如此,国内智能停车场管理仍面临着技术标准不统一、数据共享难度大、用户接受度不高等问题,这在一定程度上限制了智能停车系统的普及和应用。
1.3.2国外研究现状
与国内相比,国外在智能停车领域的研究和应用起步较早,特别是在欧美等发达国家,智能停车系统已经得到广泛的应用和深入研究。美国、德国、英国等国家的智能停车场管理系统在技术上相对成熟,研究方向涵盖了自动停车引导、车位动态调度、基于云计算的数据处理、自动支付系统等。美国的"Parkopedia"平台就是典型的智能停车解决方案,通过大数据分析和云平台技术,提供了全球范围内的停车位信息查询和在线支付服务。此外,欧洲许多城市已实现了智能停车系统的全面覆盖,借助物联网技术,用户可以通过手机APP实时查询车位信息,并直接进行预约和支付。为了进一步优化停车资源利用,国外学者还提出了多种智能停车算法,利用人工智能、机器学习等技术预测停车需求和调度策略,进一步提高停车场的资源利用率。例如,德国提出的基于车位传感器与云平台的智能调度模型,能够实时调整车位分配,极大地提高了停车场的运营效率。尽管国外在智能停车领域取得了一定进展,但仍面临数据隐私保护、系统集成和跨区域协同等挑战,如何在全球范围内实现停车数据的共享与互通,是未来的研究重点。
1.3.3总结
综上所述,国内外智能停车管理系统的研究与应用发展迅速,尤其是在欧美等发达国家,技术应用较为成熟。国内尽管起步稍晚,但在城市智能交通管理领域已逐步取得一定成果。随着技术的不断进步和政策的支持,智能停车系统将逐步解决停车难、停车乱等问题,未来的研究将集中于提升系统的智能化水平、解决数据共享难题以及提高用户体验。
1.4主要研究内容
研究的主要内容包括需求分析、技术方案设计、功能设计和数据库设计,旨在构建一个高效、智能的停车场管理系统。
- 需求分析:通过对停车场管理现状的分析,识别出传统停车管理中存在的主要问题,如车位资源浪费、用户体验差、管理效率低等。根据这些问题,确定了系统的基本功能需求,包括用户的车位预约、停车信息查询、个人中心管理等功能;以及管理员的停车资源管理、用户信息管理、停车入场与出场信息审核等功能。
2、技术方案:系统采用Java语言与SpringBoot框架作为后端开发平台,确保系统的高效性与可扩展性。前端使用Vue框架,结合Vue Router和Vuex实现页面导航与状态管理,以提供流畅的用户体验。系统数据存储采用MySQL数据库,保证数据存储的安全性与高效性。同时,前后端通过RESTful API进行数据交互,确保系统的良好扩展性。
3、功能设计:系统主要包括用户模块和管理员模块两大模块。用户模块涵盖车位预约、停车信息查询、个人信息管理等;管理员模块包括停车信息统计、用户管理、车位管理、入场与出场信息审核、公告管理等。
4、数据库设计:系统数据库设计包括用户信息表、停车信息表、车位管理表、管理员管理表等,确保数据存储的规范性和查询的高效性,支持系统的多种操作需求。
1.5 论文结构与章节安排
本文共分为七章,章节内容安排如下:
第一章:绪论,主要介绍研究的背景和意义,概述研究的现状和系统特点。
第二章:关键技术,主要探讨和说明实现平台的关键技术。
第三章:系统分析,从平台的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,对平台功能模块、数据库进行功能设计。
第五章:系统实现,介绍平台各个用户的功能、系统界面的实现。
第六章:系统测试,对平台进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
第七章: 结论。总结全文研究内容,提出对共建平台领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
2相关技术简介
2.1 Java语言
智能停车场管理系统采用了Java语言作为后端开发的核心技术。Java语言因其跨平台特性和高度灵活性而备受青睐,使系统能够在不同操作系统上稳定运行,并为未来功能的拓展提供可靠的技术支持。同时,采用Spring Boot框架简化了配置,提升了开发效率和系统的稳定性。Java的选择确保了平台具有良好的可扩展性和稳定性,在为智能停车场管理系统提供技术支持的同时,也为用户提供畅顺的体验。
2.2 SpringBoot 框架
Spring Boot,作为Spring生态系统中一颗璀璨的明星,以其"约定优于配置"的核心理念,极大地简化了Java应用的开发、部署与管理流程。它并非是对Spring框架的颠覆,而是在其基础上进行了深度封装与优化,旨在快速搭建独立的、生产级别的Spring应用。Spring Boot通过自动配置功能,减少了大量繁琐的配置工作,让开发者能够更加专注于业务逻辑的实现。同时,它集成了众多常用库,如数据库连接池、缓存、消息队列等,为系统开发提供了一站式的解决方案。此外,Spring Boot还支持多种部署方式,无论是传统的WAR包部署,还是现代的容器化部署,都能轻松应对。因此,选择Spring Boot作为智能停车场管理系统的开发框架,不仅能够提升开发效率,还能确保系统的稳定性和可维护性。
2.3 MySQL数据库
MySQL数据库,作为开源关系型数据库管理系统的佼佼者,以其高性能、可靠性、易用性和灵活性,在全球范围内被广泛应用于各类企业级应用中。MySQL采用SQL(结构化查询语言)作为数据操作的标准语言,支持复杂的查询、数据更新、索引优化等功能,确保数据的高效存取和完整性。其强大的事务处理能力,为业务逻辑的原子性、一致性、隔离性和持久性提供了坚实保障。此外,MySQL还具备高度的可配置性和可扩展性,通过优化存储引擎、调整配置参数等手段,可以轻松应对高并发、大数据量的应用场景。在智能停车场管理系统中,MySQL作为后端数据存储的核心,不仅为系统提供了稳定可靠的数据支持,还通过其丰富的数据操作功能,助力系统实现复杂的业务逻辑和高效的数据管理。
3系统需求分析
3.1系统功能需求分析
注册用户可以通过首页查看公告通知、新闻资讯和空闲车位信息,并进行车位预约;在个人中心管理个人资料、停车记录、出场信息、收藏和评论。管理员通过后台管理停车信息和出场信息统计,审核用户入场与支付,管理用户、车位、职工、车辆类型、通知提醒、轮播图、公告通知及新闻资讯,确保停车场的高效运营和资源合理分配,提升用户体验并及时发布重要信息。
3.1.1 注册用户功能
- 首页:用户可以在首页查看停车场的公告通知、新闻资讯和车位信息,了解停车场的最新动态和空闲车位情况。
- 公告通知:用户能够接收到停车场发布的各类公告与通知,确保及时了解停车场运营的相关信息。
- 新闻资讯:用户可以查看与停车场相关的新闻和行业资讯,了解停车行业的最新发展。
- 车位信息(预约停车):用户可以实时查看空闲车位,并进行车位预约,确保能够顺利停车。
- 个人中心:用户可以在个人中心查看和管理个人资料、停车历史记录、出场信息、收藏的车位、停车评论等,便于对停车服务进行个性化管理。
3.1.2 管理员用户功能
- 后台首页:管理员可以在后台首页查看停车场的实时停车信息和出场信息统计,了解停车场的运营状况和收入情况。
- 用户管理:管理员可以管理所有注册用户的基本信息、停车历史记录,并可处理违规行为和修改用户权限。
- 车位信息管理:管理员可以管理停车场的车位信息,包括车位的空闲状态、车位类型及预约情况,确保停车资源得到合理分配。
- 停车信息管理:管理员审核用户的停车信息,确保入场操作的合规性,并记录入场信息。
- 出场信息管理:管理员审核用户的出场信息,确保支付信息的准确无误,并更新出场记录。
- 职工信息管理:管理员可以管理停车场职工的信息,安排工作任务和评估工作表现,确保运营的顺利进行。
- 车辆类型管理:管理员可以管理不同类型的车辆信息,并为其分配合适的车位,优化停车资源利用。
- 通知提醒管理:管理员可以发布并管理停车场的各种通知、提醒和紧急公告,确保用户及时获取重要信息。
- 轮播图管理:管理员可以管理停车场首页的轮播图,更新图片内容以展示促销活动、公告等,提升用户体验。
- 公告通知管理:管理员可以发布停车场的公告和通知,向用户传达停车场的相关信息和重要变动。
- 新闻资讯管理:管理员负责管理停车场的新闻资讯,及时更新停车行业和停车场相关的最新信息。
3.2系统非功能性分析
在研究智能停车场管理系统时,非功能性需求分析是一个重要的部分。非功能性需求主要关注的是系统如何运行,而不是它具体完成什么功能。这些需求包括性能、可用性、安全性、可维护性、可扩展性、易用性等方面。以下是一个关于智能停车场管理系统非功能性需求分析的概要。
性能需求:系统需确保快速响应和高吞吐量,以支持大量用户同时访问,即使在高峰时段也能保持流畅的操作体验,避免因延迟或卡顿影响用户体验。
可用性:安系统必须具备高可用性,采用冗余部署、负载均衡等策略,确保即使部分组件故障也能迅速恢复服务,减少服务中断时间,保障用户业务的连续性。
安全性:鉴于系统处理用户敏感信息,如个人信息等,必须实施严格的安全措施,包括数据加密、访问控制、防攻击机制等,以保护用户数据免受未授权访问或泄露。
可维护性:系统设计应注重可维护性,采用模块化、标准化的架构,提供详尽的开发文档和用户手册,确保系统易于理解和维护,降低长期运维成本。
可扩展性:随着业务的发展,系统可能需要扩展功能或提升性能。因此,系统需具备灵活的可扩展性,能够轻松添加新模块、优化性能,以应对未来增长的需求。
易用性:用户界面应直观易用,符合用户习惯,提供清晰的导航和友好的操作反馈,帮助用户快速上手并高效完成任务,提升整体用户满意度。
3.3系统可行性分析
通过智能停车场管理系统的可行性分析,从技术可行性、经济可行性、操作可行性以及社会可行性四个维度进行深入探讨,以确保系统的开发与应用具有坚实的可行性基础。
3.3.1技术可行性
智能停车场管理系统使用Java语言、SpringBoot框架、Vue前端和MySQL数据库等成熟的技术栈,具备较高的技术稳定性和可扩展性。Java作为后端开发语言,能够处理高并发请求并提供较好的安全性。SpringBoot框架简化了开发流程,提高了代码质量和系统的维护性。Vue前端框架则使得用户界面更加友好,能够适应不同设备。MySQL数据库支持关系型数据的高效存储与查询,适合智能停车场管理系统的大规模数据处理。因此,技术实现和维护的可行性都较高,能够满足项目的长期稳定运行。
3.3.2经济可行性
智能停车场管理系统的开发和实施成本相对较低。采用开源的SpringBoot框架和MySQL数据库,减少了高昂的授权费用。系统的硬件需求也较为基础,可以在现有的计算机设备上运行,不需要额外的昂贵硬件支持。此外,通过提高管理效率、降低人工操作成本和提升用户满意度,长期来看具有较强的经济效益。
3.3.3操作可行性
系统采用直观的用户界面和简单的操作流程,适用于不同技术背景的用户。管理员和注册用户都能迅速上手,系统的功能模块清晰,操作简便,减少了培训成本。系统提供的功能能够有效支持日常管理任务,满足管理员和用户的基本需求,确保了操作的可行性。
3.3.4社会可行性
智能停车场管理系统在社会上具有较高的可行性。随着城市交通压力增大,传统停车方式已无法满足需求,而智能化停车管理能够优化车位资源,减少交通拥堵,提高停车效率。此外,智能停车系统可以大大提升用户体验,减少寻找车位的时间,促进城市交通的智能化和现代化,符合社会发展的需求。
从技术、经济、操作和社会四个维度来看,智能停车场管理系统的开发均具备高度的可行性。
3.4系统用例分析
智能停车场管理系统用例分析主要从注册用户、管理员两个实体展开描述。
3.4.1注册用户用例分析
注册用户用例分析包括用户通过系统提供的注册界面填写基本信息(如姓名、联系方式、车牌号等)并提交,系统验证信息的有效性后,创建用户账户并发送激活邮件或短信确认。成功注册后,用户可以登录系统进行车位预约、停车信息查询等操作。该流程旨在确保用户信息的准确性并提供便捷的注册体验。详细用例图如图3.1所示。

图3.1注册用户用例图
3.4.2管理员用例分析
管理员用例分析包括管理员通过登录系统进入后台管理界面,进行车位管理、用户信息管理和停车记录审核等操作。管理员可以查看停车场的实时数据、调整车位状态、发布公告、审核用户的停车信息等。系统提供权限控制,确保管理员能够高效、安全地进行日常管理,优化停车资源的分配和利用。详细用例图如图3.2所示。

图3.2管理员用例图
4系统设计
4.1系统总体设计思路
智能停车场管理系统采用Browser/Server结构,(浏览器/服务器)和基于Web服务前后台交互的模式,是一个适用于Windows体系环境下的模型结构。只要用户有符合程序运行的硬件系统,并连上互联网,便可以在任何时间、任何地点使用。系统工作原理图如图4.1所示:

图4.1系统工作原理图
其最终前后台交互原理如图4.2所示。

图4.2前后台交互原理
4.2系统结构设计
智能停车场管理系统的整体结构设计如图4.3所示。

图4.3整体功能结构设计图
4.3系统功能设计
4.3.1用户登录流程
当用户进入登录页面时,当其在浏览器执行具体操作的时候,后端会同步显示,如图4.4所示。

图4.4登录流程图
4.3.2系统操作流程
系统操作流程包括用户和管理员两大部分。用户首先注册并登录系统,进行车位查询、预约、支付等操作。用户可通过系统实时查看车位占用情况,选择合适车位进行预约并支付费用。管理员登录后台管理系统后,负责车位管理、用户信息审核、停车数据统计等任务。管理员可以实时监控车位使用情况,调整车位状态,发布公告,处理异常停车记录。系统通过权限控制确保各操作的安全与高效,提升管理与用户体验。操作流程如图4.5所示。

图4.5系统操作流程图
4.4系统核心代码设计
智能停车场管理系统的核心代码设计如下:
4.4.1用户注册
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示"用户已存在",否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如下所示。
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
4.4.2用户登录
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报"用户不存在",执行完以上代码,最后涉及到用户带有"审核"的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,代码如下所示。
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("执行登录接口");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
4.4.3修改密码
修改密码,通过请求data,获取旧密码,并将新密码重新赋值,期间都是需要通过加密,代码如下所示。
/**
* 修改密码
* @param data
* @param request
* @return
*/
@PostMapping("change_password")
public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){
// 根据Token获取UserId
String token = request.getHeader("x.auth.token");
Integer userId = tokenGetUserId(token);
// 根据UserId和旧密码获取用户
Map<String, String> query = new HashMap<>();
String o_password = data.get("o_password");
query.put("user_id" ,String.valueOf(userId));
query.put("password" ,service.encryption(o_password));
int count = service.selectBaseCount(service.count(query, service.readConfig(request)));
if(count > 0){
// 修改密码
Map<String,Object> form = new HashMap<>();
form.put("password",service.encryption(data.get("password")));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,"密码修改失败!");
4.4.4修改数据
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如下所示。
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
4.4.5删除数据
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如下所示。
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("{} . 删除操作:{}",wrapper.getSqlSelect());
}
4.4.6获取数据
通过请求的参数获取列表数据,代码如下所示。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
4.4.7图片上传
通过请求的参数获取列表数据,代码如下所示。
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
4.5数据库设计
4.5.1数据库设计原则
智能停车场管理系统在进行数据库设计时,考虑到个人能力与数据库选择,选择了数据库Mysql。以下将使用E.R展示数据库中设计的实体及主要的字段和类型及数据库的描述。
4.5.2数据库实体
通过建立智能停车场管理系统的E.R模型图。以此来设计详细的数据库资料实体,以下为具体图例:
(1)注册用户实体图如下图所示;

图4.6注册用户实体图
(2)车位信息实体图如下图所示;

图4.7车位信息实体图
(3)停车信息实体E.R图如下图所示;

图4.8停车信息实体E.R图
(4)整体数据库实体E.R图如下图所示:

图4.9数据库E.R图
4.5.3数据库表设计
系统开发过程中所使用的数据表如下所示:
表access_token (登陆访问时长)
|----|-------------|-----------|-------|-----|------|----|-------------------|------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | token_id | int | 10 | 0 | N | Y | | 临时访问牌ID |
| 2 | token | varchar | 64 | 0 | Y | N | | 临时访问牌 |
| 3 | info | text | 65535 | 0 | Y | N | | |
| 4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
表appearance_information (出场信息)
|----|---------------------------|-----------|-------|-----|------|----|-------------------|-----------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | appearance_information_id | int | 10 | 0 | N | Y | | 出场信息ID |
| 2 | parking_space_number | varchar | 64 | 0 | Y | N | | 车位编号 |
| 3 | parking_space_name | varchar | 64 | 0 | Y | N | | 车位名称 |
| 4 | parking_address | varchar | 64 | 0 | Y | N | | 车位地址 |
| 5 | parking_prices | double | 9 | 2 | Y | N | 0.00 | 停车价格 |
| 6 | appearing_users | int | 10 | 0 | Y | N | 0 | 出场用户 |
| 7 | vehicle_type | varchar | 64 | 0 | Y | N | | 车辆类型 |
| 8 | license_plate | varchar | 64 | 0 | Y | N | | 车牌号码 |
| 9 | appearance_time | datetime | 19 | 0 | Y | N | | 出场时间 |
| 10 | parking_duration | double | 9 | 2 | Y | N | 0.00 | 停车时长 |
| 11 | total_price | double | 9 | 2 | Y | N | 0.00 | 合计总价 |
| 12 | appearance_remarks | text | 65535 | 0 | Y | N | | 出场备注 |
| 13 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 14 | examine_reply | varchar | 16 | 0 | Y | N | | 审核回复 |
| 15 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
| 16 | pay_type | varchar | 16 | 0 | Y | N | | 支付类型: 微信、支付宝、网银 |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 19 | source_table | varchar | 255 | 0 | Y | N | | 来源表 |
| 20 | source_id | int | 10 | 0 | Y | N | | 来源ID |
| 21 | source_user_id | int | 10 | 0 | Y | N | | 来源用户 |
表article (文章:用于内容管理系统的文章)
|----|-------------|-----------|------------|-----|------|----|-------------------|------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | article_id | mediumint | 8 | 0 | N | Y | | 文章id:0,8388607 |
| 2 | title | varchar | 125 | 0 | N | Y | | 标题:0,125用于文章和html的title标签中 |
| 3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:0,1000用来搜索指定类型的文章 |
| 4 | hits | int | 10 | 0 | N | N | 0 | 点击数:0,1000000000访问这篇文章的人次 |
| 5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 8 | source | varchar | 255 | 0 | Y | N | | 来源:0,255文章的出处 |
| 9 | url | varchar | 255 | 0 | Y | N | | 来源地址:0,255用于跳转到发布该文章的网站 |
| 10 | tag | varchar | 255 | 0 | Y | N | | 标签:0,255用于标注文章所属相关内容,多个标签用空格隔开 |
| 11 | content | longtext | 2147483647 | 0 | Y | N | | 正文:文章的主体内容 |
| 12 | img | varchar | 255 | 0 | Y | N | | 封面图 |
| 13 | description | text | 65535 | 0 | Y | N | | 文章描述 |
表article_type (文章分类)
|----|-------------|-----------|-------|-----|------|----|-------------------|-------------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | smallint | 5 | 0 | N | Y | | 分类ID:0,10000 |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:0,1000决定分类显示的先后顺序 |
| 3 | name | varchar | 16 | 0 | N | N | | 分类名称:2,16 |
| 4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:0,32767 |
| 5 | description | varchar | 255 | 0 | Y | N | | 描述:0,255描述该分类的作用 |
| 6 | icon | text | 65535 | 0 | Y | N | | 分类图标: |
| 7 | url | varchar | 255 | 0 | Y | N | | 外链地址:0,255如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表auth (用户权限管理)
|----|----------------|-----------|-------|-----|------|----|-------------------|---------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | auth_id | int | 10 | 0 | N | Y | | 授权ID: |
| 2 | user_group | varchar | 64 | 0 | Y | N | | 用户组: |
| 3 | mod_name | varchar | 64 | 0 | Y | N | | 模块名: |
| 4 | table_name | varchar | 64 | 0 | Y | N | | 表名: |
| 5 | page_title | varchar | 255 | 0 | Y | N | | 页面标题: |
| 6 | path | varchar | 255 | 0 | Y | N | | 路由路径: |
| 7 | parent | varchar | 64 | 0 | Y | N | | 父级菜单 |
| 8 | parent_sort | int | 10 | 0 | N | N | 0 | 父级菜单排序 |
| 9 | position | varchar | 32 | 0 | Y | N | | 位置: |
| 10 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 11 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 12 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 13 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 14 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 15 | field_add | text | 65535 | 0 | Y | N | | 添加字段: |
| 16 | field_set | text | 65535 | 0 | Y | N | | 修改字段: |
| 17 | field_get | text | 65535 | 0 | Y | N | | 查询字段: |
| 18 | table_nav_name | varchar | 500 | 0 | Y | N | | 跨表导航名称: |
| 19 | table_nav | varchar | 500 | 0 | Y | N | | 跨表导航: |
| 20 | option | text | 65535 | 0 | Y | N | | 配置: |
| 21 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表code_token
|----|---------------|-----------|-----|-----|------|----|-------------------|-------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | code_token_id | int | 10 | 0 | N | Y | | |
| 2 | token | varchar | 255 | 0 | Y | N | | |
| 3 | code | varchar | 255 | 0 | Y | N | | 验证码 |
| 4 | expire_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 失效时间 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表collect (收藏)
|----|--------------|-----------|-----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | collect_id | int | 10 | 0 | N | Y | | 收藏ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
| 3 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 4 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 6 | title | varchar | 255 | 0 | Y | N | | 标题: |
| 7 | img | varchar | 255 | 0 | Y | N | | 封面: |
| 8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表comment (评论)
|----|--------------|-----------|------------|-----|------|----|-------------------|----------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | comment_id | int | 10 | 0 | N | Y | | 评论ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
| 3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
| 4 | content | longtext | 2147483647 | 0 | Y | N | | 内容: |
| 5 | nickname | varchar | 255 | 0 | Y | N | | 昵称: |
| 6 | avatar | varchar | 255 | 0 | Y | N | | 头像地址:0,255 |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 10 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表employee_information (职工信息)
|----|-------------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | employee_information_id | int | 10 | 0 | N | Y | | 职工信息ID |
| 2 | employee_id | varchar | 64 | 0 | Y | N | | 员工编号 |
| 3 | employee_name | varchar | 64 | 0 | Y | N | | 员工姓名 |
| 4 | date_of_employment | date | 10 | 0 | Y | N | | 入职日期 |
| 5 | employee_department | varchar | 64 | 0 | Y | N | | 员工部门 |
| 6 | working_condition | varchar | 64 | 0 | Y | N | | 工作状态 |
| 7 | home_address | varchar | 64 | 0 | Y | N | | 家庭住址 |
| 8 | contact_information | varchar | 16 | 0 | Y | N | | 联系方式 |
| 9 | employee_details | text | 65535 | 0 | Y | N | | 员工详情 |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
|----|--------------|-----------|-----|-----|------|----|-------------------|-------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | hits_id | int | 10 | 0 | N | Y | | 点赞ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表notice (公告)
|----|-------------|-----------|------------|-----|------|----|-------------------|-------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | notice_id | mediumint | 8 | 0 | N | Y | | 公告id: |
| 2 | title | varchar | 125 | 0 | N | N | | 标题: |
| 3 | content | longtext | 2147483647 | 0 | Y | N | | 正文: |
| 4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表notification_reminder (通知提醒)
|----|--------------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | notification_reminder_id | int | 10 | 0 | N | Y | | 通知提醒ID |
| 2 | parking_space_number | varchar | 64 | 0 | Y | N | | 车位编号 |
| 3 | parking_space_name | varchar | 64 | 0 | Y | N | | 车位名称 |
| 4 | parking_address | varchar | 64 | 0 | Y | N | | 车位地址 |
| 5 | parking_users | int | 10 | 0 | Y | N | 0 | 停车用户 |
| 6 | notification_time | datetime | 19 | 0 | Y | N | | 通知时间 |
| 7 | notification_content | text | 65535 | 0 | Y | N | | 通知内容 |
| 8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 10 | source_table | varchar | 255 | 0 | Y | N | | 来源表 |
| 11 | source_id | int | 10 | 0 | Y | N | | 来源ID |
| 12 | source_user_id | int | 10 | 0 | Y | N | | 来源用户 |
表parking_information (停车信息)
|----|------------------------------------|-----------|-------|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | parking_information_id | int | 10 | 0 | N | Y | | 停车信息ID |
| 2 | parking_space_number | varchar | 64 | 0 | Y | N | | 车位编号 |
| 3 | parking_space_name | varchar | 64 | 0 | Y | N | | 车位名称 |
| 4 | parking_address | varchar | 64 | 0 | Y | N | | 车位地址 |
| 5 | parking_users | int | 10 | 0 | Y | N | 0 | 停车用户 |
| 6 | parking_prices | varchar | 64 | 0 | Y | N | | 停车价格 |
| 7 | vehicle_type | varchar | 64 | 0 | Y | N | | 车辆类型 |
| 8 | license_plate | varchar | 64 | 0 | Y | N | | 车牌号码 |
| 9 | entry_time | datetime | 19 | 0 | Y | N | | 入场时间 |
| 10 | parking_remarks | text | 65535 | 0 | Y | N | | 停车备注 |
| 11 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 12 | examine_reply | varchar | 16 | 0 | Y | N | | 审核回复 |
| 13 | appearance_information_limit_times | int | 10 | 0 | N | N | 1 | 出场限制次数 |
| 14 | notification_reminder_limit_times | int | 10 | 0 | N | N | 0 | 通知限制次数 |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 17 | source_table | varchar | 255 | 0 | Y | N | | 来源表 |
| 18 | source_id | int | 10 | 0 | Y | N | | 来源ID |
| 19 | source_user_id | int | 10 | 0 | Y | N | | 来源用户 |
表parking_space_information (车位信息)
|----|---------------------------------|-----------|------------|-----|------|----|-------------------|----------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | parking_space_information_id | int | 10 | 0 | N | Y | | 车位信息ID |
| 2 | parking_space_number | varchar | 64 | 0 | Y | N | | 车位编号 |
| 3 | parking_space_name | varchar | 64 | 0 | Y | N | | 车位名称 |
| 4 | parking_address | varchar | 64 | 0 | Y | N | | 车位地址 |
| 5 | pricing_unit | varchar | 64 | 0 | Y | N | | 计价单位 |
| 6 | parking_prices | double | 9 | 2 | Y | N | 0.00 | 停车价格 |
| 7 | parking_space_status | varchar | 64 | 0 | Y | N | | 车位状态 |
| 8 | parking_space_type | varchar | 64 | 0 | Y | N | | 车位类型 |
| 9 | cover_photo | varchar | 255 | 0 | Y | N | | 封面图片 |
| 10 | parking_space_details | longtext | 2147483647 | 0 | Y | N | | 车位详情 |
| 11 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 12 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 13 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 14 | comment_len | int | 10 | 0 | N | N | 0 | 评论数 |
| 15 | location_address | varchar | 64 | 0 | Y | N | | 当前位置 |
| 16 | location_lng | varchar | 64 | 0 | Y | N | | 当前位置经度 |
| 17 | location_lat | varchar | 64 | 0 | Y | N | | 当前位置纬度 |
| 18 | parking_information_limit_times | int | 10 | 0 | N | N | 0 | 预约停车限制次数 |
| 19 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表praise (点赞)
|----|--------------|-----------|-----|-----|------|----|-------------------|----------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | praise_id | int | 10 | 0 | N | Y | | 点赞ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
| 3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表registered_user (注册用户)
|----|---------------------|-----------|----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | registered_user_id | int | 10 | 0 | N | Y | | 注册用户ID |
| 2 | user_name | varchar | 64 | 0 | Y | N | | 用户姓名 |
| 3 | user_gender | varchar | 64 | 0 | Y | N | | 用户性别 |
| 4 | user_age | varchar | 64 | 0 | Y | N | | 用户年龄 |
| 5 | license_plate | varchar | 64 | 0 | Y | N | | 车牌号码 |
| 6 | contact_information | varchar | 16 | 0 | Y | N | | 联系方式 |
| 7 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 8 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表schedule (日程管理)
|----|----------------|----------|-----|-----|------|----|-----|------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | schedule_id | smallint | 5 | 0 | N | Y | | 日程ID:0,32767 |
| 2 | content | varchar | 255 | 0 | Y | N | | 日程内容 |
| 3 | scheduled_time | datetime | 19 | 0 | Y | N | | 计划时间 |
| 4 | user_id | int | 10 | 0 | N | N | | 用户id |
| 5 | create_time | datetime | 19 | 0 | Y | N | | 创建时间 |
| 6 | update_time | datetime | 19 | 0 | Y | N | | 更新时间 |
表score (评分)
|----|--------------|-----------|-----|-----|------|----|-------------------|-------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | score_id | int | 10 | 0 | N | Y | | 评分ID: |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评分人: |
| 3 | nickname | varchar | 64 | 0 | Y | N | | 昵称: |
| 4 | score_num | double | 5 | 2 | N | N | 0.00 | 评分: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 8 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 9 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表slides (轮播图)
|----|-------------|-----------|-----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | slides_id | int | 10 | 0 | N | Y | | 轮播图ID: |
| 2 | title | varchar | 64 | 0 | Y | N | | 标题: |
| 3 | content | varchar | 255 | 0 | Y | N | | 内容: |
| 4 | url | varchar | 255 | 0 | Y | N | | 链接: |
| 5 | img | varchar | 255 | 0 | Y | N | | 轮播图: |
| 6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表upload (文件上传)
|----|-----------|---------|-----|-----|------|----|-----|------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | upload_id | int | 10 | 0 | N | Y | | 上传ID |
| 2 | name | varchar | 64 | 0 | Y | N | | 文件名 |
| 3 | path | varchar | 255 | 0 | Y | N | | 访问路径 |
| 4 | file | varchar | 255 | 0 | Y | N | | 文件路径 |
| 5 | display | varchar | 255 | 0 | Y | N | | 显示顺序 |
| 6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
| 7 | dir | varchar | 255 | 0 | Y | N | | 文件夹 |
| 8 | type | varchar | 32 | 0 | Y | N | | 文件类型 |
表user (用户账户:用于保存用户登录信息)
|----|-------------|-----------|-----|-----|------|----|-------------------|-------------------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | user_id | int | 10 | 0 | N | Y | | 用户ID:0,8388607用户获取其他与用户相关的数据 |
| 2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:0,10(1可用|2异常|3已冻结|4已注销) |
| 3 | user_group | varchar | 32 | 0 | Y | N | | 所在用户组:0,32767决定用户身份和权限 |
| 4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
| 5 | phone | varchar | 11 | 0 | Y | N | | 手机号码:0,11用户的手机号码,用于找回密码时或登录时 |
| 6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:0,1(0未认证|1审核中|2已认证) |
| 7 | username | varchar | 16 | 0 | N | N | | 用户名:0,16用户登录时所用的账户名称 |
| 8 | nickname | varchar | 16 | 0 | Y | N | | 昵称:0,16 |
| 9 | password | varchar | 64 | 0 | N | N | | 密码:0,32用户登录所需的密码,由6-16位数字或英文组成 |
| 10 | email | varchar | 64 | 0 | Y | N | | 邮箱:0,64用户的邮箱,用于找回密码时或登录时 |
| 11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:0,1(0未认证|1审核中|2已认证) |
| 12 | avatar | varchar | 255 | 0 | Y | N | | 头像地址:0,255 |
| 13 | open_id | varchar | 255 | 0 | Y | N | | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
表user_group (用户组:用于用户前端身份和鉴权)
|----|--------------|-----------|-----|-----|------|----|-------------------|----------------------------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | group_id | mediumint | 8 | 0 | N | Y | | 用户组ID:0,8388607 |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:0,1000 |
| 3 | name | varchar | 16 | 0 | N | N | | 名称:0,16 |
| 4 | description | varchar | 255 | 0 | Y | N | | 描述:0,255描述该用户组的特点或权限范围 |
| 5 | source_table | varchar | 255 | 0 | Y | N | | 来源表: |
| 6 | source_field | varchar | 255 | 0 | Y | N | | 来源字段: |
| 7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
| 9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表vehicle_type (车辆类型)
|----|-----------------|-----------|----|-----|------|----|-------------------|--------|
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | vehicle_type_id | int | 10 | 0 | N | Y | | 车辆类型ID |
| 2 | vehicle_type | varchar | 64 | 0 | Y | N | | 车辆类型 |
| 3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
5系统实现
5.1注册用户功能实现
5.1.1前台首页
首页为注册用户提供了系统的整体入口,展示最新的公告通知、新闻资讯、车位信息等模块。用户可通过首页快速访问各项功能,如车位查询、停车预约、个人中心等,提升用户体验。首页还会根据用户的历史行为提供个性化推荐,如常用车位或停车场,便于用户快速进行操作。如下图所示。

图5.1首页界面图
5.1.2注册登录
注册登录功能是用户访问系统的入口。新用户需要通过填写必要的个人信息(如姓名、联系方式、车牌号等)进行注册,并通过邮箱或手机验证激活账户。注册完成后,用户可以通过用户名和密码登录系统,进入个人首页进行车位查询、预约等操作。为了提升安全性,系统支持密码加密存储,并提供密码找回功能,确保用户账户的安全。此功能简化了注册和登录流程,确保用户能方便快捷地使用系统服务。如下图所示。

图5.2用户注册界面图

图5.3用户登录界面图
5.1.3 车位信息
车位信息模块展示停车场的实时车位状态,包括空闲车位、已占用车位以及预计空位的更新时间。用户可以通过此模块查询附近停车场的车位情况,并进行车位预约。预约过程中,用户可以选择停车时间、地点,确保到达时能顺利停车。该功能简化了传统停车方式,减少了寻找车位的时间,提高停车效率。如下图所示。

图5.4车位信息查看界面图

图5.5预约停车界面图
5.1.4 停车信息
停车信息模块提供了用户在停车期间的详细记录,包括入场时间、停车位置、预计出场时间等。当用户完成停车后,管理员会审核停车预约,确认停车状态。审核通过后,系统将记录停车信息并展示给用户,方便用户查看停车时长和相关费用。此功能提高了停车管理的透明度和公正性,同时也便于用户查询停车历史。如下图所示。

图5.6停车信息查看界面图
5.1.5 出场信息
出场信息模块允许用户在停车结束后提交出场信息,如出场时间、车牌号等。系统会根据停车时长自动计算停车费用,用户需在管理员审核后支付停车费。管理员对出场信息进行核对,确保停车费用准确。通过此流程,用户可快速完成停车费用支付,同时也保证了收费的公平性和准确性。如下图所示。

图5.7出场支付界面图
5.2管理员功能实现
5.2.1后台首页
后台首页为管理员提供系统的整体概览,展示停车信息统计和出场信息统计。停车信息统计模块展示各停车场的实时车位使用情况,包括空闲车位数量、预约车位情况等;出场信息统计模块展示所有停车场的出场记录和未支付停车费用的用户数据。管理员可以通过数据分析,及时了解停车场的运营状态,优化车位分配,并为后续决策提供依据。如下图所示。

图5.8后台首页界面
5.2.2 职工信息 管理
职工信息管理模块允许管理员对系统中所有员工的信息进行管理,包括员工的基本资料、职位、工作状态等。管理员可以添加、删除或修改员工信息,并为每个员工分配相应的权限,确保系统的顺利运作。通过此功能,管理员能够方便地管理工作人员的日常任务和权限,确保停车场的各项工作能够高效完成。如下图所示。

图5.9职工信息添加界面
5.2.3 车位信息管理
车位信息管理功能用于管理员维护和更新停车场内的车位信息,包括车位的空闲状态、已占用状态、车位类型(如普通车位、电动汽车充电车位)等。管理员可以根据需求调整车位的配置,并实时更新系统中的车位数据,确保车位信息的准确性和实时性。该功能帮助优化车位资源分配,提升停车场的使用效率。如下图所示。

图5.10车位信息添加界面
5.2.4 停车信息管理
停车信息管理模块负责审核用户的停车预约申请。管理员根据用户的预约信息,核实车位的可用性,确认预约请求并批准用户入场。管理员可查看所有预约记录,确保系统中的车位分配合理,并处理特殊情况或临时停车需求。此功能有助于保障停车场资源的合理使用,提高停车场的运转效率和用户满意度。如下图所示。

图5.11停车预约审核界面
5.2.5 出场信息管理
出场信息管理功能用于管理员审核用户的出场信息。管理员根据用户提供的出场时间和停车时长计算停车费用,确认无误后将信息提交给用户。用户在管理员审核通过后,通过系统支付停车费。此功能确保停车收费的准确性与透明性,并避免因出场信息不完整而导致的争议,提高用户的支付体验和管理效率。如下图所示。

图5.12出场信息管理界面
6系统测试
6.1系统测试目标
为了保证智能停车场管理系统的质量,使其能够稳定的运行,并排除其可能存在的未知隐患。解除软件可能存在的故障,理清楚测试与纠错的关系,如下图所示。

图6.1测试与纠错信息流程
6.2系统功能测试
通过对系统中所含的主要实体对象及其功能操作进行测试用例设计。以下是详细的测试表:
表6.1用户注册测试表
|----------------|--------------|----------------|---------------|
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 用户注册 | 输入正确的用户名和密码 | 注册成功,提示注册完成 |
| TC002 | 用户注册 | 输入已存在的用户名 | 注册失败,提示用户名已存在 |
| TC003 | 用户注册 | 输入格式错误的邮箱地址 | 注册失败,提示邮箱格式错误 |
| TC004 | 用户注册 | 不输入密码 | 注册失败,提示密码不能为空 |
| TC005 | 用户注册 | 输入弱密码(如123456) | 注册失败,提示密码强度不足 |
表6.2用户登录测试表
|----------------|--------------|----------------|-------------------|
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 用户登录 | 输入正确的用户名和密码 | 登录成功,进入主页 |
| TC002 | 用户登录 | 输入错误的用户名 | 登录失败,提示用户名不存在 |
| TC003 | 用户登录 | 输入错误的密码 | 登录失败,提示密码错误 |
| TC004 | 用户登录 | 未输入用户名或密码 | 登录失败,提示用户名或密码不能为空 |
| TC005 | 用户登录 | 多次输入错误密码 | 登录失败,提示账户已被锁定 |
表6.3查看车位信息测试表
|----------------|--------------|-----------------------|---------------|
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 查看车位信息 | 输入正确的停车场信息,查询车位 | 显示停车场的空闲车位信息 |
| TC002 | 查看车位信息 | 输入无效的停车场信息 | 显示停车场不存在或错误提示 |
| TC003 | 查看车位信息 | 查询空闲车位时,车位信息更新及时 | 显示最新的车位状态 |
| TC004 | 查看车位信息 | 查询所有车位状态,包括已占用和空闲 | 正确显示所有车位的状态 |
| TC005 | 查看车位信息 | 查询并显示不同类型的车位(如电动车充电位) | 显示不同类型车位的可用信息 |
表6.4预约停车测试表
|----------------|--------------|------------------|---------------|
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 预约停车 | 输入正确的车位信息并选择预约时间 | 预约成功,提示预约完成 |
| TC002 | 预约停车 | 输入已预约的车位进行再次预约 | 预约失败,提示车位已被预约 |
| TC003 | 预约停车 | 输入无效的车位号 | 预约失败,提示车位不存在 |
| TC004 | 预约停车 | 选择已过期或无法使用的车位预约 | 预约失败,提示车位不可用 |
| TC005 | 预约停车 | 未支付预约费用 | 预约失败,提示支付未完成 |
表6.5出场支付测试表
|----------------|--------------|------------------|---------------|
| 测试用例编号 | 功能模块 | 测试用例描述 | 测试结果 |
| TC001 | 出场支付 | 输入正确的出场信息并计算停车费用 | 支付成功,费用计算准确 |
| TC002 | 出场支付 | 出场信息未审核时进行支付 | 支付失败,提示需等待审核 |
| TC003 | 出场支付 | 输入错误的车牌号 | 支付失败,提示车牌信息错误 |
| TC004 | 出场支付 | 支付过程网络中断 | 支付失败,提示支付未完成 |
| TC005 | 出场支付 | 输入支付金额少于应付金额 | 支付失败,提示支付金额不足 |
6.3测试结果总结
在对用户注册、登录、查看车位信息、预约停车和出场支付等功能进行测试后,整体结果显示系统在大部分情况下表现正常,能够根据不同的输入条件正确响应。用户注册模块能够有效防止用户名重复、密码弱等不合规信息,保证了注册的顺利进行。登录模块对于错误的用户名和密码提供了恰当的错误提示,确保用户体验顺畅。查看车位信息功能准确展示了车位的状态,及时更新空闲车位信息,确保用户获取最新的车位数据。预约停车模块在用户选择车位时能够进行有效的验证,避免重复预约或预约无效车位。出场支付功能也能根据用户的停车时长准确计算费用,支付流程清晰。
总体来说,系统能够在不同场景下提供稳定的服务,但在一些极端或异常情况下仍需加强提示和处理逻辑,确保用户体验更加流畅。建议在下一步开发中,进一步完善网络中断、支付失败等特殊情况的处理机制。
结 论
本论文设计并实现了一个智能停车场管理系统。通过对系统需求分析,提出了用户和管理员两大主要模块,分别满足了不同角色的需求。用户模块包括查看停车场公告、新闻资讯、空闲车位信息以及车位预约等功能,旨在为用户提供便捷的停车体验;管理员模块则涉及停车信息统计、车位管理、用户管理、入场与出场信息审核等功能,帮助管理员高效地管理停车场资源并优化运营。
系统的技术架构采用了SpringBoot框架作为后端开发平台,Vue前端框架确保了用户界面的响应速度和交互流畅度。MySQL数据库用于存储和管理数据,确保了系统的高效性和数据的持久化。系统通过RESTful API进行前后端数据交互,保证了系统的可扩展性。
通过本系统的实现,能够有效解决传统停车管理中车位资源浪费、信息不对称、管理低效等问题,为用户提供了更高效便捷的停车体验,同时也为管理员提供了更加智能和高效的管理工具。系统的应用预期将大幅提升停车场资源的利用率、降低运营成本,并为未来智能停车场的建设提供参考和借鉴。
参考文献
- Isha Chandra,Navneet Kumar Singh,Paulson Samuel,Mohit Bajaj,Ievgen Zaitsev.Coordinated charging of EV fleets in community parking lots to maximize benefits using a three-stage energy management systemJ.Scientific Reports,2024,14(1):32026-32026.
- Artur Janowski,Mustafa Hüsrevoğlu,Malgorzata Renigier Bilozor.Sustainable Parking Space Management Using Machine Learning and Swarm Theory---The SPARK SystemJ.Applied Sciences,2024,14(24):12076-12076.
- Allah Ditta,Muhammad Maroof Ahmed,Tehseen Mazhar,Tariq Shahzad,Yazan Alahmed,Habib Hamam.Number plate recognition smart parking management system using IoTJ.Measurement: Sensors,2025,37101409-101409.
- 朴明,邱翠花,苗子.基于SpringBoot+小程序的信息采集系统设计与实现J.电子技术,2024,53(10):47-49.
- 钟育伙.基于SpringBoot+Vue的校园活动管理系统设计与实现J.电子技术,2024,53(10):56-57.
- 韦彩仁,张锐杭.基于Vue 3和SpringBoot的学生信息管理系统设计与实现J.电脑编程技巧与维护,2024,(10):3-6+20.
- Sana Ben Hassine,Elyes Kooli,Rafaa Mraihi.Dynamic Pricing and Route Guidance: A Multi-Agent System for Effective Parking and Traffic ManagementJ.Transportation Research Record,2024,2678(10):45-66.
- 王玉魁,李峰,乔彦超,杨森,张译文.基于Springboot与Vue框架的仓储管理系统设计与实现J.河南科技,2024,51(18):29-33.
- Atharva Kalbhor,Rashmi S. Nair,Shraddha Phansalkar,Rahul Sonkamble,Abhishek Sharma,Harshit Mohan,Chin Hong Wong,Wei Hong Lim.PARKTag: An AI--Blockchain Integrated Solution for an Efficient, Trusted, and Scalable Parking Management SystemJ.Technologies,2024,12(9):155-155.
- 钟岚.智能停车场管理信息系统集成技术分析J.科技创新与应用,2024,14(26):92-95.
- 高汉昆.基于51单片机的智能停车场管理系统设计J.电子技术,2024,53(08):114-115.
- 张新海,朱祎.基于MVVM模式SpringBoot框架的高校信息化项目管理系统J.信息技术与信息化,2024,(05):54-58.
- 张兰峰,于合宁,刘鑫宇.智慧园区停车场管理系统设计J.无线互联科技,2023,20(18):16-18.
- 何露莹.大型智能停车场管理系统的设计与实现D.桂林电子科技大学,2023.
- 张秋艳,刘艺.基于RFID的智能停车场管理系统设计J.榆林学院学报,2022,32(02):10-13.
- 程琳,樊江涛,李龙,冷尊淼,李田太郎.智能停车场管理系统设计与实现J.数字技术与应用,2021,39(05):169-171.
- 潘宇,张叶茂,莫淑贤.基于云平台的物联网停车场管理系统设计J.软件工程,2021,24(04):51-54+46.
- 杨丽君,韩英杰.智慧停车场管理系统的设计与实现J.科学技术创新,2021,(07):95-96.
- 黄大维.智能停车场管理系统设计研究A2020万知科学发展论坛论文集(智慧工程二)C.中国智慧工程研究会智能学习与创新研究工作委员会,中国智慧工程研究会智能学习与创新研究工作委员会,2020:10.
- 洪长平.一种停车场管理系统的设计与研究J.漳州职业技术学院学报,2020,22(01):91-95.
致 谢
在本论文的撰写和系统开发过程中,我深刻体会到个人独立完成一项系统开发工作的挑战与成就感。首先,我要感谢我的导师,在整个研究和开发过程中给予了我无私的指导与建议。无论是在技术细节还是研究思路上,他都为我提供了宝贵的方向性指导,帮助我克服了许多难题。虽然整个开发过程是由我独立完成的,但导师的意见使我在遇到瓶颈时有了清晰的解决思路。
在开发过程中,我经历了从系统需求分析、架构设计到功能实现的完整过程。这不仅锻炼了我的编码能力,也让我在项目管理、时间安排和问题解决等方面有了长足的进步。我独立完成了系统的每一行代码,并通过反复测试和优化确保了系统的稳定性和性能。在遇到技术难题时,我通过查阅大量文献、技术文档和社区讨论,自主解决了各类问题,这个过程让我更加理解了技术的深度与广度。
同时,我也要感谢我的家人和朋友,他们在开发的整个过程中给予了我莫大的支持和鼓励,成为我坚持完成这项工作的动力。正是在这些力量的支持下,我才能独立完成这项系统开发并顺利完成论文的撰写。