随着城市化进程的加快,居民小区内的停车难问题日益突出,如何高效管理停车场资源成为亟待解决的问题。本研究旨在设计并实现一个基于Spring Boot框架的小型社区停车场管理系统,以提升停车场管理效率和服务质量。

通过调研现有停车场管理系统的不足之处,并结合实际需求,确定了系统应具备的基本功能和性能要求。在系统实现方面,本研究采用了Spring Boot作为后端开发框架,结合MyBatis进行数据库操作。系统实现了包括管理员后台首页、系统用户管理、停车场信息管理、车辆信息管理以及停车记录和缴费记录管理等功能模块,利用Docker容器化部署简化了运维工作。

本研究为其他类似场景提供了有益的参考案例,有助于推动智慧社区的发展,促进城市管理现代化进程。此外,通过优化停车资源配置,减少了寻找停车位的时间,从而间接降低了碳排放,对环境保护也有着积极的意义。

关键词Spring Boot框架;小区停车场管理系统;Java语言;MySQL

Abstract

With the acceleration of urbanization, the problem of parking difficulties in residential areas is becoming increasingly prominent, and how to efficiently manage parking lot resources has become an urgent problem to be solved. The purpose of this study is to design and implement a small community parking management system based on Spring Boot framework to improve the efficiency and service quality of parking lot management.

By investigating the shortcomings of the existing parking lot management system and combining with the actual needs, the basic functions and performance requirements of the system are determined. In terms of system implementation, Spring Boot is used as the back-end development framework in this study, and MyBatis is used for database operation. The system realizes functional modules including the home page of the administrator's background, system user management, parking lot information management, vehicle information management, parking record and payment record management, and simplifies the operation and maintenance work by using Docker containerized deployment.

This study provides a useful reference case for other similar scenarios, which is helpful to promote the development of smart communities and promote the modernization process of urban management. In addition, by optimizing the allocation of parking resources, the time to find parking spaces is reduced, thereby indirectly reducing carbon emissions, which also has a positive significance for environmental protection.

Key words: Spring Boot framework; community parking lot management system; Java language; MySQL

目  录

第1章 绪  论

1.1 研究背景和意义

1.1.1 研究背景

1.1.2 研究目的和意义

1.2 国内外研究现状

1.3 研究主要内容

1.4 本章小结

第2章 需求分析

2.1 业务流程分析

2.2 可行性分析

2.2.1 技术可行性

2.2.2 操作可行性

2.2.3 经济可行性

2.3 功能需求分析

2.4 系统用例分析

2.5 非功能需求分析

2.6 本章小结

第3章 系统设计

3.1 系统架构设计

3.2 功能模块设计

3.3 数据库设计

3.3.1 概念设计

3.3.2 逻辑设计

3.4 本章小结

第4章 系统实现

4.1 后台首页模块的实现

4.2 登录模块的实现

4.3 系统用户模块的实现

4.4 停车场信息管理模块的实现

4.5 车辆信息管理模块的实现

4.6 停车记录管理模块的实现

4.7 缴费记录管理模块的实现

4.8 本章小结

第5章 系统测试

5.1 测试目的

5.2 测试用例

5.3 测试结果

5.4 本章小结

结  论

参考文献

致  谢

第1章 绪  

1.1研究背景和意义

1.1.1研究背景

随着城市人口的不断增长和汽车保有量的迅速增加,城市尤其是居民小区内的停车难问题日益凸显,成为影响居民生活质量的重要因素之一。传统停车场管理方式由于技术手段落后、信息不透明等原因,往往导致停车位利用率低下、寻找车位困难以及停车缴费流程繁琐等问题。这些问题不仅增加了居民的时间成本和经济负担,也对城市的交通流畅性和环境秩序产生了负面影响。因此,探索一种高效、智能的停车场管理系统显得尤为迫切。

在此背景下,本研究致力于设计并实现一个基于Spring Boot框架的小型社区停车场管理系统,以期通过引入现代化的信息技术和智能化手段,如车牌自动识别、在线缴费等,来提升停车场管理效率和服务水平。系统不仅能够有效解决上述提到的问题,还能够为停车场管理者提供更加科学的决策支持,同时改善居民的停车体验,促进智慧社区建设,对于推动城市管理现代化具有重要的现实意义。通过优化停车资源的配置和利用,本研究亦有助于减少因寻找停车位而产生的无效交通流量,进而缓解城市交通压力,助力环境保护。

1.1.2研究目的和意义

本研究的主要目的是设计并实现一个基于Spring Boot框架的高效、智能的小型社区停车场管理系统,通过集成车牌自动识别、在线缴费等先进技术,解决传统停车场管理中效率低下、信息不透明等问题。系统旨在提升停车场资源的利用率和管理服务水平,同时为用户提供更加便捷的停车体验,包括快速找到停车位、简化停车缴费流程等功能。

此研究的意义在于通过引入智能化手段改善现有停车场管理模式,不仅能够显著提高停车管理效率和服务质量,减少居民寻找停车位的时间和交通拥堵情况,还对推动智慧社区建设具有积极促进作用。此外,优化后的停车资源配置有助于降低因无效交通流量产生的碳排放,对环境保护同样有着正面影响。长远来看,本研究成果可作为其他类似应用场景的参考案例,助力城市管理现代化进程,提升城市生活环境的整体品质。

1.2国内外研究现状

在国内,随着信息技术的快速发展和智能城市概念的普及,停车场管理系统经历了从传统的人工管理到高度智能化、自动化的转变。近年来,车牌识别技术、RFID识别技术等自动识别手段被广泛应用于停车场管理中,提高了车辆进出效率和准确性。同时,基于云计算和物联网技术的发展,越来越多的停车场开始采用远程监控和管理方式,实现了数据的实时更新和分析。国内一些知名科技公司如海康威视、中控科技等也推出了各自的智能停车解决方案,推动了行业的进步与发展。然而,尽管取得了显著进展,如何进一步优化系统性能、降低成本以及提高用户体验仍然是当前面临的主要挑战。

在国外,特别是欧美发达国家,停车场管理系统的研究起步较早,并且在技术创新方面一直走在前列。美国的一些公司如ParkWhiz、ParkMe等已经开发出成熟的智能停车应用,这些应用利用先进的车牌识别技术和移动互联网服务,让用户能够轻松找到并预订停车位。此外,日本等地通过无线传感器网络实现车位的实时监测和管理,有效提升了停车资源的使用效率。国际上,对于智能停车系统的探索不仅限于技术层面,还包括对环境监测、安全管理等功能的集成,致力于打造全方位的智能停车生态系统。不过,尽管国外的技术相对成熟,但不同国家和地区间由于地理、文化差异,在推广和应用上仍需考虑本地化需求。

1.3研究主要内容

本系统的主要研究内容覆盖了从需求分析到测试优化的全过程,具体如下:

(1)需求分析:首先进行详细的需求分析,以明确系统的功能和性能要求。通过与潜在用户沟通交流,确定系统需具备的基本功能,如用户管理、停车场信息管理、车辆信息管理、停车记录管理以及缴费记录管理等。同时,考虑到用户体验的重要性,特别强调了车牌自动识别、在线缴费等功能的设计。

(2)技术选型:在技术选型方面,选择了Spring Boot作为后端开发框架,因其具有快速构建独立的生产级应用的能力,并且易于与其他组件集成。对于数据库操作,采用MyBatis作为ORM框架简化数据库交互。此外,为了增强系统的智能化水平,集成了第三方车牌识别API服务。

(3)系统设计:系统设计阶段主要包括架构设计和模块设计。采用了B/S架构来提高系统的可扩展性和维护性,每个主要功能模块(如用户管理、停车场管理等)都被设计为独立的服务。在数据存储上,利用关系型数据库MySQL存储核心业务数据,设计时也充分考虑了安全性、稳定性和高可用性等因素。

(4)系统实现:实现过程中,严格按照设计方案进行编码工作。后端基于Spring Boot搭建基础框架,实现各个服务之间的通信接口。在实现车牌自动识别功能时,调用第三方API完成车牌号的识别,并将结果反馈给系统进行后续处理。整个过程注重代码质量和规范,实施了代码审查机制以保证软件质量。

(5)测试优化:系统完成后进入测试阶段,进行了单元测试和集成测试,验证各个模块的功能正确性及相互间的协作情况。随后进行压力测试,评估系统在高负载条件下的表现,找出性能瓶颈并加以优化。最后是用户体验测试,收集实际用户的反馈意见,对界面布局、交互流程等方面进行调整优化。通过持续的测试和优化,确保系统能够稳定运行,并满足用户的各种需求。在整个过程中,还注意文档的编写和更新,为后续维护和升级提供支持。

1.4本章小结

本章主要介绍了课题研究背景以及目的和意义,系统开发的国内外研究现状,以及本文的主要研究内容,从而对本课题的选题依据和大致情况有初步的了解。

第2章 需求分析

2.1业务流程分析

小区停车场管理系统的工作流程主要为管理员权限,管理员的业务流程主要包括对系统的全面管理和维护,以确保停车场管理系统的高效运行。首先,管理员需通过后台首页监控用户数量统计、缴费记录统计以及利用车牌在线识别技术监督车辆进出情况,确保数据的实时更新与准确性。接着,管理员负责系统用户的管理,包括添加新用户、编辑用户信息及权限分配。在停车场信息管理方面,管理员需要维护停车场的基本信息,如位置、剩余车位数等,并使用地图标注功能直观展示停车场分布。此外,管理员还需处理车辆信息的管理任务,比如添加新车辆信息、导入导出车辆数据等,同时监管停车记录和缴费记录,确保所有交易准确无误。整个流程要求管理员具备良好的数据管理能力和对突发事件的快速响应能力,以保障系统的稳定性和用户体验的持续优化。管理员业务流程图如图2-1所示。

图2-1系统业务流程图

2.2可行性分析

2.2.1技术可行性

本系统采用Java语言结合Spring Boot框架进行开发,利用MySQL数据库存储数据,这些技术均为成熟的开源解决方案,拥有广泛的应用基础和丰富的社区资源支持。Java与MySQL的组合能够高效处理Web应用中的动态内容生成及数据库交互需求,而Spring Boot框架则提供了便捷的开发模式和工具,有助于快速构建稳定、安全且易于维护的应用程序。综上所述,从技术角度来看,本系统的实现具有高度的可行性。

2.2.2操作可行性

在操作可行性方面,本系统设计注重用户体验,采用了直观易用的界面设计,并提供详细的帮助文档支持,确保用户可以轻松上手使用各项功能,能通过简洁明了的操作流程完成信息查询和管理等任务。因此,从用户操作的角度来看,本系统具备良好的操作可行性。

2.2.3经济可行性

本系统通过采用开源技术栈如Spring Boot、Java,可以有效降低开发成本和技术门槛,同时这些技术的广泛应用也确保了系统在后期维护和扩展上的便利性和经济性。此外,随着用户体验的提升和个性化服务的引入,预计将显著增加用户粘性和活跃度,进而促进付费会员、广告收入及合作伙伴关系等多种盈利模式的发展。

2.3功能需求分析

本系统旨在为小区停车场提供一套全面的管理解决方案,涵盖从用户管理到停车记录及缴费记录管理等多个方面。系统需要具备高度的自动化和智能化特点,包括但不限于车牌自动识别、在线缴费等功能,以提高停车场管理效率和服务质量,同时为管理员提供便捷的操作界面和强大的后台支持。具体描述如下:

(1)后台首页模块:展示关键统计数据,如用户数量、缴费记录等,并通过车牌在线识别技术实时监控车辆进出情况,确保数据更新及时准确。

(2)系统用户管理模块:允许管理员添加新用户并设置相应权限,同时也支持对现有用户的资料进行编辑或删除操作,便于维护用户信息的准确性。

(3)停车场信息管理模块:管理员能够查看和编辑停车场的基本信息,包括位置、剩余车位数等,并利用地图标注功能直观显示停车场的具体分布情况。

(4)车辆信息管理模块:支持管理员添加新的车辆信息进入系统,以及批量导入导出车辆数据,简化了大规模车辆信息的管理和维护工作。

(5)停车记录管理模块:记录每辆车的入场时间、出场时间和费用等详细信息,管理员可通过查询功能快速获取特定车辆的停车历史记录。

(6)缴费记录管理模块:管理员可以查看所有缴费记录的详细信息,包括支付方式、金额和时间,支持导出报表以便于财务审计和管理。

2.4系统用例分析

管理员通过系统的多种功能模块实现高效管理停车场资源的目标。管理员可以访问后台首页获取用户数量统计、缴费记录统计及实时监控车辆进出情况,在线识别车牌;进行系统用户管理,如添加新用户和编辑现有用户信息;管理停车场信息,涵盖查看、添加和地图标注停车场详情;处理车辆信息,支持添加、导入导出以及查询车辆数据;监管停车记录与缴费记录,确保所有操作准确无误并可追溯。这些用例共同作用,不仅提升了停车场管理的便捷性和效率,也增强了用户体验和服务质量。管理员角色用例图如下所示。

图2-2 管理员用例图

2.5非功能需求分析

系统非功能需求指的是性能需求,对一个系统的性能需求进行分析和定义的过程。在进行性能需求分析时,因此小区停车场管理系统的设计与实现主要需要考虑以下几个方面的性能需求:

响应时间:响应时间是指系统在接收到请求后,作出响应的时间。根据具体的业务需求和用户体验要求,可以确定系统在不同场景下的响应时间要求。

吞吐量:吞吐量是指系统在一定时间内处理的事务或请求的数量。根据业务需求和用户量的估计,可以确定系统需要支持的最大吞吐量。

并发用户数:并发用户数是指系统在同时使用的用户数量。根据预期的用户量和并发访问需求,可以确定系统需要支持的最大并发用户数。

可扩展性:可扩展性是指系统在面对用户量增加或并发访问需求增加时,能否通过增加硬件资源或调整系统架构来满足需求。根据预期的用户增长和扩展计划,可以确定系统需要具备的可扩展性要求。

故障处理能力:系统对故障的处理能力是指在出现错误或故障时,系统能够快速、准确地识别、定位并处理故障的能力。根据业务的重要性和对故障处理的要求,可以确定系统需要具备的故障处理能力。

安全性:系统在性能需求分析中,也需考虑安全方面的需求,如数据的保密性、完整性和可用性等。根据具体的安全需求和合规要求,可以确定系统需要满足的安全性需求。

通过对这些性能需求进行详细分析和定义,可以为小区停车场管理系统的设计和开发提供指导,确保系统在满足预期的性能需求的同时,具备良好的性能和可靠性。

2.6本章小结

在完成系统流程分析、可行性分析功能分析和非功能性分析后,我们对项目进行了全面的评估和分析。在系统流程分析中,我们详细了解了系统的整体流程和各个环节之间的关系,为后续的设计和开发奠定了基础。通过可行性分析,我们确定了项目的技术和经济可行性,确保了项目的可行性。而功能分析和非功能性分析则帮助我们准确地识别出系统所需的各种功能,并对其进行详细描述。这些分析结果将为后续的系统设计和实现提供指导和参考。通过这些分析工作,我们对项目的目标和需求有了更清晰的认识,为接下来的开发工作奠定了坚实的基础。

第3章 系统设计

3.1系统架构设计

从技术角度来看,小区停车场管理系统的架构设计至关重要。我们将采用MVC架构,包括表现层、业务逻辑层和数据访问层。表现层负责用户界面展示,业务逻辑层处理核心功能逻辑,数据访问层负责数据库交互。通过三层架构模式,确保系统的可靠性和可扩展性。

系统架构图如图4-1所示。

图3-1 系统架构图

3.2功能模块设计

通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。系统总体功能模块图如下图所示。

图3-2 系统功能模块图

3.3数据库设计

3.3.1概念设计

借助先进的系统,E-R图使其他用户可以快速轻松地了解系统的功能以及他们之间的关系。根据小区停车场管理系统分析结果,本小区停车场管理系统总体E-R图如下图所示。

图3-3 系统总体E-R图

3.3.2逻辑设计

所有系统的应用数据相互区分。一旦在相应的系统中实现,它们将与自己相应的网络和服务器通信。所以这个系统可以连接这些数据。当我们选择桥梁截面时,以下将简要介绍如何建立系统。在单击上一个按键的时候,就会自动在对话框中弹出数据源的名字,之后再单击下一个按键时,就在填写相对应的身份验证和登录信息。按照系统功能设计的特点与职能模块的分类,小区停车场管理系统的总体设计和实施过程一共涉及到了几个资料表格。

以下就介绍了一些根据各类别主要数据库表的设计结构以及基本功能建立数据库表:

表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

用户编号:

表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

更新时间:

表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:

表operation_log (操作日志表)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

operation_log_id

int

10

0

N

Y

操作日志ID

2

user_group

varchar

64

0

Y

N

用户角色

3

user_name

varchar

64

0

Y

N

用户账号

4

routes

varchar

64

0

Y

N

模块名称

5

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表parking_lot_information (停车场信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

parking_lot_information_id

int

10

0

N

Y

停车场信息ID

2

parking_lot_name

varchar

64

0

Y

N

停车场名称

3

total_number_of_parking_spaces

double

9

2

Y

N

0.00

车位总数

4

monthly_fee

double

9

2

Y

N

0.00

包月费用

5

free_duration

varchar

64

0

Y

N

免费时长

6

billing_unit

varchar

64

0

Y

N

计费单位

7

billing_unit_price

double

9

2

Y

N

0.00

计费单价

8

maximum_amount

double

9

2

Y

N

0.00

最大金额

9

parking_lot_description

text

65535

0

Y

N

停车场描述

10

mark_address

varchar

64

0

Y

N

详细地址

11

mark_lng

varchar

64

0

Y

N

详细地址经度

12

mark_lat

varchar

64

0

Y

N

详细地址纬度

13

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

14

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表parking_record (停车记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

parking_record_id

int

10

0

N

Y

停车记录ID

2

parking_lot_name

varchar

64

0

Y

N

停车场名称

3

license_plate

varchar

64

0

Y

N

车牌号码

4

vehicle_type

varchar

64

0

Y

N

车辆类型

5

entry_time

datetime

19

0

Y

N

入场时间

6

entry_picture

varchar

255

0

Y

N

入场图片

7

appearance_time

datetime

19

0

Y

N

出场时间

8

appearance_picture

varchar

255

0

Y

N

出场图片

9

details_description

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

更新时间

表payment_record (缴费记录)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

payment_record_id

int

10

0

N

Y

缴费记录ID

2

parking_lot_name

varchar

64

0

Y

N

停车场名称

3

license_plate

varchar

64

0

Y

N

车牌号码

4

vehicle_type

varchar

64

0

Y

N

车辆类型

5

payment_amount

double

9

2

Y

N

0.00

支付金额

6

payment_time

datetime

19

0

Y

N

支付时间

7

payment_remarks

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

更新时间

表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:

表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_information (车辆信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

vehicle_information_id

int

10

0

N

Y

车辆信息ID

2

parking_lot_name

varchar

64

0

Y

N

停车场名称

3

license_plate

varchar

64

0

Y

N

车牌号码

4

car_owners_name

varchar

64

0

Y

N

车主姓名

5

car_owner_gender

varchar

64

0

Y

N

车主性别

6

phone_number

varchar

64

0

Y

N

手机号码

7

vehicle_status

varchar

64

0

Y

N

车辆状态

8

effective_date

varchar

64

0

Y

N

有效日期

9

purchased_parking_spaces

varchar

64

0

Y

N

已购车位

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

3.4本章小结

通过以上的设计工作,我们将为系统的开发提供清晰的指导和规范,确保系统能够按照需求进行开发,并且具备良好的可维护性和扩展性。

第4章 系统实现

4.1后台首页模块的实现

管理员的后台首页模块设计为一个全面的系统运行状态概览面板,包括用户数量统计、缴费记录统计等关键指标,帮助管理员快速了解系统运营状况。首页界面直观展示了汽车车牌在线识别的入口,上传图片可以看到车牌识别结果显示区。实现上,通过图表和数据报表的形式直观展示关键指标,并支持按时间段筛选查看详细数据,确保管理员能够基于准确的数据做出有效的运营决策。后台首页界面如下图所示。

图4-1 后台首页界面

汽车车牌在线识别界面如下图所示。

图4-2 汽车车牌在线识别界面

4.2登录模块的实现

登录模块为用户提供安全快捷的访问方式。登录页面设计简洁明了,只需输入用户名及密码即可完成身份验证。系统采用验证码进行用户认证,支持多因素认证增强安全性。登录成功后,用户将被重定向至系统首页页面。对于忘记密码的用户,提供了找回密码功能,通过邮箱或手机号接收重置链接,保障账户安全。登录界面如下图所示。

图4-3 登录界面

登录的逻辑代码如下所示。

/**

     * 登录

     * @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<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }  

4.3系统用户模块的实现

在系统用户管理模块,管理员能够轻松添加新管理员账户或编辑现有账户信息,包括角色分配和权限设置。操作界面提供了清晰的表单填写区域及用户列表展示区,支持一键搜索、编辑和删除操作,确保管理员能高效地维护用户数据的安全性和准确性。系统用户界面如下图所示。

图4-3 系统用户界面

修改用户信息关键代码如下:

    @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停车场信息管理模块的实现

停车场信息管理模块为管理员提供了一个集停车场信息列表查看、新增停车场信息录入以及停车场位置地图标注于一体的综合管理平台。管理员可以通过直观的地图视图来管理和调整停车场的位置信息,同时利用信息列表实现对所有停车场详情的快速浏览与编辑。停车场信息列表界面如下图所示。

图4-4 停车场信息列表界面

删除停车场信息关键代码如下:

     @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-5 停车场信息添加界面

停车场信息添加的逻辑代码如下所示。

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

停车场信息地图界面如下图所示。

图4-6 停车场信息地图界面

4.5车辆信息管理模块的实现

车辆信息管理界面设计了专门的功能区,用于车辆信息的添加、导入导出文档、删除、重置和查询等操作。管理员可通过上传文件批量导入车辆信息,或直接在界面上手动添加新车辆数据,系统还提供了详细的车辆信息查询功能,便于管理员进行数据维护和管理。车辆信息管理界面如下图所示。

图4-7 车辆信息管理界面

4.6停车记录管理模块的实现

停车记录管理模块让管理员可以查看停车记录列表并手动添加新的停车记录。该界面以表格形式详细列出每条停车记录的关键信息,如车牌号、入场时间、出场时间和费用等,管理员可以通过简单的点击操作来完成记录的添加和查看,极大地提高了管理效率。停车记录管理界面如下图所示。

图4-8 停车记录管理界面

4.7缴费记录管理模块的实现

缴费记录管理界面集中展示了所有的缴费记录列表,并允许管理员手动添加新的缴费记录。管理员可通过该界面详细了解每次缴费的具体情况,包括支付方式、金额和时间等信息,并支持将记录导出为报表格式,方便后续财务审计和分析工作的开展。缴费记录管理界面如下图所示。

图4-9 缴费记录管理界面

4.8本章小结

本章主要对系统主要功能模块的界面设计和业务实现进行了描述,通过系统实现图能更清晰的了解系统功能模块的工作原理。

第5章 系统测试

5.1测试目的

测试是为了验证系统在功能、性能、安全性和用户体验等方面的表现。通过测试,可以发现并修复潜在的问题和缺陷,确保系统的正常运行和稳定性。功能验证确保各项功能按设计要求运行;性能评估评估系统的响应时间和并发处理能力;安全检测确保系统的身份认证和数据传输安全;用户体验评估提升界面友好性和操作流程;兼容性测试确保系统在不同设备和浏览器上的兼容性。通过全面的测试,系统将更可靠地支持用户需求,并提供优质的用户体验。

5.2测试用例

系统测试包括:用户登录功能测试、数据图表展示查看功能测试、停车场信息添加、车辆信息搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

数据图表查看功能测试:

5-2 数据图表查看功能测试表

用例名称

数据图表查看

目的

测试数据图表查看功能

前提

管理员登录-进入后台首页

测试流程

查看数据图表

预期结果

可以查看到数据更新的图表信息

实际结果

实际结果与预期结果一致

添加停车场信息界面测试:

5-3 添加停车场信息界面测试表

用例名称

添加停车场信息测试用例

目的

测试停车场信息添加功能

前提

管理员正常登录情况下

测试流程

1)点击停车场信息管理,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的停车场信息 

实际结果

实际结果与预期结果一致

车辆信息搜索功能测试:

5-4车辆信息搜索功能测试表

用例名称

车辆信息搜索测试

目的

测试车辆信息搜索功能

前提

管理员登录-进入车辆信息管理模块

测试流程

1)管理员在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字的车辆信息

实际结果

实际结果与预期结果一致

密码修改搜索功能测试:

5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.3测试结果

通过编写小区停车场管理系统的测试用例,并完成用户登录功能测试、数据图表展示查看功能测试、停车场信息添加、车辆信息搜索和密码修改功能测试,为系统的后期推广运营提供了强力的技术支撑。这些测试确保了系统在这五个关键模块上的功能正常运行和稳定性。

5.4本章小结

本章对系统的测试目的进行描述,在进行测试后,整体上测试结果表现良好。这些测试结果显示系统在各功能模块上表现出良好的稳定性和可靠性,为系统提供高效的小区停车场管理系统。

  

本次小区停车场管理系统将Spring Boot同现实小区停车场管理系统工作进行相结合,在系统功能开始编码之前,本人花费了大量时间在图书馆内进行资料文献的收集和总结,通过大量文献的分析,能够发现,小区停车场管理系统的方式在当前停车市场及管理中扮演的位置是越来越重要,而使用的方式也是越来越多元化,也正是因为这个原因,作者深深的希望能够开发出一种专门针对性的小区停车场管理系统,以满足不同用户的多样化需求。

小区停车场管理系统得到设计与实现,利用了目前市场上普遍使用的Java编程语言,以及MySQL数据库管理功能,和目前比较流行的Spring Boot框架,以现实生活的小区停车场管理过程为标准,设计实现了包括首页、系统用户、停车场信息管理、车辆信息管理、停车记录管理、缴费记录管理等模块,为用户提供多元前面的功能操作,基本实现整个小区停车场管理流程。

但是由于本人受到了技术水平的限制,在有限的时间,只能够将系统功能模拟时的功能实现,在许多功能方面仍然存在很大的弊端,而这些弊端需要不断的测试,不断的总结,不断的改进。例如本次系统设计中,在数据储存的方面并不够全面,很容易出现信息泄露的风险。而在这之后的日子里,我将会继续学习Spring Boot技术和相关的信息技术,对系统功能进行更加完整的,详细的分析,将系统功能一一进行完善,帮助使用者完成相应的操作。

参考文献

[1]Rui Y ,Zhao Y ,Lu W , et al.Dynamic Tensor Modeling for Missing Data Completion in Electronic Toll Collection Gantry Systems[J].Sensors,2023,24(1):

[2]马庆.计算机软件开发中JAVA编程语言的应用[J].山西电子技术,2023,(06):84-86+98.

[3]杨芬,宋晓燕.MySQL数据库应用的课程教学分析[J].电子技术,2023,52(10):180-181.

[4]杨华,徐扬.MySQL数据库对中文编码支持的探讨[J].网络安全和信息化,2023,(10):157-160.

[5]陈蓓蕾,洪年松.基于SpringBoot的数据库接口设计[J].信息与电脑(理论版),2023,35(16):181-183.

[6]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.

[7]A M L ,J L Y ,S A D , et al.Development of Transportation Models Based on Students’ Interest in a Parking Charging System at Universiti Malaysia Sabah (UMS)[J].Journal of Physics: Conference Series,2022,2314(1):

[8]喻彩丽,赵诣琛,李亮.基于RFID智能停车场收费管理系统设计与实现[J].信息记录材料,2022,23(05):173-176.

[9]刘威,房瑞伟,王冠等.机场高速停车场停车与充电桩收费系统设计[J].中国航务周刊,2021,(38):64-65.

[10]纪云烽,刘丽华,司钧文等.基于物联网的智慧停车场设计[J].辽宁科技学院学报,2021,23(03):18-20.

[11]Cheng F .Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J].Advances in Educational Technology and Psychology,2021,5(2):

[12]余以春,闫红梅.临时停车场自动收费系统[J].计算机系统应用,2021,30(05):76-82.

[13]Mingxia S ,Fang Z .Design of an intelligent underground parking guided and charging system based on WiFi[J].Journal of Physics: Conference Series,2021,1920(1):

[14]李双奎,停车场车牌识别系统V1.0.湖南省,张家界通盛智能化工程有限公司,2021-04-27.

[15]谢飞,杨学礼,韦俊.ETC智慧停车场营运管理系统的研究和设计[J].时代汽车,2021,(05):23-24.

[16]邓忠惠,陈炎观,蒋玉勤等.智能停车场收费系统设计[J].轻工科技,2020,36(09):91-93.

[17]王华文,智能停车场管理系统软件.安徽省,安徽德顺智能科技有限公司,2020-05-21.

[18]朱百万.车脸识别的停车场收费系统设计与实现[J].电子技术与软件工程,2020,(05):199-201.

[19]黄慧琼,张泽昆,荣武月.城市中心商业区停车场ETC系统应用与评价[J].交通科技与经济,2020,22(01):33-37.

[20]桂丝玥,孙玉霞.基于“互联网+”的智能停车系统客户端的设计与实现[J].电脑知识与技术,2020,16(03):87-89.

致  谢

眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。尤其感谢我的指导老师,在选题的过程中与我进行了深入的交流,在毕业设计期间给我提供了一些指导。四年的学习生活让我受益良多,老师们的丰富的学术知识、认真负责的学习态度让我受益匪浅。在此,我深深地感谢那些曾经给予我帮助和指导的老师!

我的论文得益于许多学者的贡献,他们的研究成果为我提供了宝贵的指导,使我能够更好地完成这篇文章。感谢我的同学和朋友在我的写作以及排版过程中给予热情的帮助,才使得我比较顺利的完成了这篇论文。

感谢大学里遇见的朋友,你们在我这四年里留下无数的温暖和快乐,让我对这个校园多了一份留念。最后,感谢我的父母、辅导员、班长,以及室友们对我大学生活上的关心和理解,让我能保持乐观和追求我所热爱的。尽管我的能力有限,但我仍然尽力去完善这篇论文,并且诚挚地希望各位老师和学友能够给予宝贵的指导与意见!

免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐