摘要
本论文基于Spring Cloud和微服务架构,设计与实现了一个名为校园机动车管理系统的系统。该系统旨在通过有效的管理和监控校园内的机动车辆,提高校园交通管理的效率和安全性。
在系统设计方面,我们采用了Spring Cloud框架和微服务架构,将系统拆分为多个独立的服务模块,包括车辆信息管理、车辆预约管理、车辆归还管理、违规管理、车位信息管理等。这些服务模块可以独立部署、扩展和维护,同时通过服务间的通信和协作,实现系统的整体功能。
校园机动车管理系统具有以下主要功能:用户注册与登录、车辆信息管理、违规处理、停车位管理等。用户可以通过注册账号登录系统,然后进行车辆的注册和管理。系统会对车辆进行实时的违规监测,并根据违规情况进行相应的处理和警示。同时,系统还提供了停车位管理功能,帮助校园内车辆的有序停放。
在系统实现过程中,我们充分考虑了系统的可伸缩性和弹性,采用了微服务架构的分布式部署方式,使得系统能够更好地应对大量用户和数据的并发访问。同时,通过使用Spring Cloud的服务注册与发现、负载均衡等功能,实现了服务的自动发现和负载均衡,提高了系统的稳定性和可用性。
通过对校园机动车管理系统的设计与实现,我们验证了该系统在校园交通管理方面的可行性和有效性。它为校园内的机动车辆管理提供了一个高效、安全的平台,帮助提升校园交通管理的水平和效率。
关键词:Spring Cloud、微服务架构、校园机动车管理
Abstract
This paper designs and implements a system called Campus Motor Vehicle Management System based on Spring Cloud and microservices architecture. The system aims to improve the efficiency and safety of campus traffic management by effectively managing and monitoring motor vehicles on campus.
In terms of system design, we adopted the Spring Cloud framework and microservices architecture, dividing the system into multiple independent service modules, including vehicle information management, vehicle reservation management, vehicle return management, violation management, parking space information management, etc. These service modules can be independently deployed, expanded, and maintained, while achieving the overall functionality of the system through communication and collaboration between services.
The campus motor vehicle management system has the following main functions: user registration and login, vehicle information management, violation handling, parking space management, etc. Users can log in to the system through a registered account and then register and manage their vehicles. The system will monitor vehicles for real-time violations and provide corresponding handling and warnings based on the violation situation. At the same time, the system also provides parking space management functions to help orderly parking of vehicles on campus.
In the process of system implementation, we fully considered the scalability and elasticity of the system, and adopted a distributed deployment approach of microservices architecture, which enables the system to better cope with the concurrent access of a large number of users and data. At the same time, by using Spring Cloud's service registration and discovery, load balancing and other functions, automatic service discovery and load balancing have been achieved, improving system stability and availability.
Through the design and implementation of the campus motor vehicle management system, we have verified the feasibility and effectiveness of the system in campus traffic management. It provides an efficient and safe platform for the management of motor vehicles on campus, helping to improve the level and efficiency of campus traffic management.
Keywords: Spring Cloud, microservices architecture, campus motor vehicle management
目录
1.1 选题背景与意义
随着城市化进程的加快,校园内的机动车辆数量日益增多,给校园交通管理带来了新的挑战。传统的手工管理方式效率低下且易出现漏洞,因此设计和实现一个基于Spring Cloud和微服务架构的校园机动车管理系统具有重要的研究背景和实际意义。
随着校园规模的扩大和机动车辆数量的增加,校园交通管理面临着越来越大的压力。因此,建立一个高效、智能的机动车管理系统成为迫切需求。
微服务架构作为一种灵活、可伸缩的分布式系统设计理念,已经在企业级应用中得到广泛应用。将其引入到校园机动车管理系统中,可以提高系统的可扩展性、稳定性和弹性。而Spring Cloud是基于Spring Boot的一套开发工具,用于简化微服务架构的开发和部署。它提供了服务注册与发现、负载均衡、熔断器等功能,适合用于构建校园机动车管理系统。
基于Spring Cloud和微服务架构的校园机动车管理系统能够实现对机动车辆信息的集中管理、违规监测与处理等功能,提高校园交通管理的效率。该系统还可以可以实时监测机动车辆的违规行为,并进行相应的处理和警示,有助于提升校园内交通的安全性和秩序。
同时,将Spring Cloud和微服务架构应用于校园机动车管理系统,符合智慧校园建设的发展趋势,为校园交通管理提供了新的解决方案。
通过对基于Spring Cloud和微服务架构的校园机动车管理系统的设计与实现,可以深入研究微服务架构在校园应用中的可行性和优势,并为其他类似系统的设计与开发提供参考。
综上所述,基于Spring Cloud和微服务架构的校园机动车管理系统的设计与实现具有重要的研究背景和实际意义。它不仅能够提高校园交通管理的效率和安全性,还有助于推动智慧校园建设的发展,并为微服务架构在校园应用中的研究与应用提供了新的思路和实践经验。
1.2 国内外研究现状
在基于Spring Cloud和微服务架构的校园机动车管理系统的设计与实现方面,已经有一些国内外的相关研究和应用。以下是对国内外研究现状的概述:
国内研究现状:
校园智能交通系统:国内的一些研究机构和高校开展了关于校园智能交通系统的研究,其中涉及到机动车辆的管理和监控。这些研究主要集中在系统的架构设计、车辆违规监测与处理、停车位管理等方面,并取得了一定的成果。
微服务架构在校园应用中的研究:国内一些学者和研究者也进行了关于微服务架构在校园应用中的研究。他们探讨了微服务架构的优势和适用性,并将其应用于校园交通管理系统的设计与实现中。
国外研究现状:
智慧校园交通管理系统:国外的一些研究机构和大学也关注校园交通管理领域,并进行了相应的研究。他们主要关注智慧校园交通管理系统的设计和实现,包括机动车辆管理、违规监测、停车位管理等方面。
微服务架构的应用:国外的一些研究者将微服务架构应用于各种领域的系统设计中,其中也包括校园应用。他们提出了一些创新的思路和方法,如服务拆分、服务治理、服务调用等,以提高系统的可扩展性和弹性。
总体而言,国内外在基于Spring Cloud和微服务架构的校园机动车管理系统的设计与实现方面已经取得了一些研究成果。然而,仍有许多问题需要进一步探索和解决,如系统的性能优化、安全保障、用户体验等。未来的研究可以进一步完善系统功能,提高系统的稳定性和可用性,以满足不断变化的校园交通管理需求。
通过前期的资料查找以及对其他论文的内容借鉴,本基于springcloud的校园机动车管理系统论文主要分为以下几个章节:
第1章 交代项目的选题背景与意义、国内外研究现状。
第2章 对系统的需求展开分析。
第3章 阐述了系统的总体设计。
第4章 阐明了基于springcloud的校园机动车管理系统详细功能的实现,主要根据技术性的功能模块功能实现。
第5章 罗列了部分系统调试与测试的记录。
2 系统分析
2.1.1经济可行性
系统软件的关键设计成本包括:设备成本(计算机和手机软件设备成本),开发和设计成本(开发人员,维护人员成本),系统软件成本(常用电源工程,硬件配置损耗折旧率等)和某些系统软件的其他杂费。对系统硬件配置的要求不是特别高。只有一般的电子计算机可以操作,并且系统软件的成本不是很高。该系统软件简单易学,对于那些使用系统软件的人,如果他们掌握了简单的计算机知识和专业知识,则可以灵活地使用它。系统软件的后台系统稳定,易于维护,方便后期修改和维护,不会消耗过多的人力和物力。
由于本系统是基于springcloud框架的校园机动车管理系统,它不仅为管理带来了便利,而且还考虑了不同使用者的不同需求。改善了数据信息的安全系数,可传递性和适用性,大大降低了成本预算,扩大了以后进展的渠道,提高了工作效率。另外,它降低了运营成本,并可以为使用者带来大量的特殊利益。这样就完成了开发者和使用者的双赢局面。因此,从投资收益分析的角度来看是完全可行的。
2.1.2技术可行性
校园机动车管理系统具有以下许多特点:第一,信息量大,有更多的内容可以立即查看和访问,通信和交换数据信息将相对增加。其次,数据处理方法更加集中。内部信息量大,输入和输出量相对扩大。第三是及时解决问题,不断创新的数据信息。根据以上三个特征,当前技术可以实现当前的总体目标。在自然环境的独立版本中建立信息系统。系统软件的开发和设计使用Web技术进行前端开发,使用MySQL进行后台管理数据管理,UI上具有高度的可视化和人机交互技术,方便后端管理数据信息功能完善,可以运行功能更强大的终端软件,通过前后台的分级处理方式,可以大大的降低由于数据量大处理难度增加的问题,因此技术方面是可行的。
作为当今大部分用户来讲,都是受过良好教育,具有高素质的人才,都能十分容易的使用电脑进行各种操作,是以本文在开发设计上使用Java技术进行设计的校园机动车管理系统,其操作是完全可行的 。
通过上述分析,可以确定该系统具有实际开发的价值。
研究基于springcloud的校园机动车管理系统的设计与实现,是为了能够拥有界面简洁友好、操作简单以及运行稳定的校园机动车管理系统。系统的需求主要来自学生用户、教师用户和管理员。
基于 springcloud 的校园机动车管理系统的功能需求分析主要包括以下几个方面:
1.学生用户功能需求:
登录注册:学生可以通过账号登录系统,并进行注册新账号。
首页:显示系统公告信息、最新的汽车资讯等内容。
公告信息:展示校园交通管理相关的公告信息,如停车位调整、违规处理通知等。
汽车资讯:提供关于汽车的新闻和信息,包括汽车安全知识、驾驶技巧等。
车辆信息:查看已注册的个人车辆信息,包括车牌号、车型等。
车位信息:查询校园内停车位的实时情况,包括空余车位数量、位置等。
我的账户:管理学生个人信息,包括修改头像、密码、昵称等。
个人中心:包括个人首页、学生预约、学生归还、学生违规、收藏等功能。
2.教师用户功能需求:
登录注册:教师可以通过账号登录系统,并进行注册新账号。
首页:显示系统公告信息、最新的汽车资讯等内容。
公告信息:展示校园交通管理相关的公告信息,如停车位调整、违规处理通知等。
汽车资讯:提供关于汽车的新闻和信息,包括汽车安全知识、驾驶技巧等。
车辆信息:查看已注册的个人车辆信息,包括车牌号、车型等。
车位信息:查询校园内停车位的实时情况,包括空余车位数量、位置等。
我的账户:管理教师个人信息,包括修改头像、密码、昵称等。
个人中心:包括个人首页、教师预约、教师归还、教师违规、收藏等功能。
3.管理员功能需求:
后台首页:显示系统运行状态、重要通知等信息。
系统用户:管理系统用户账号,包括添加新用户、修改用户信息、冻结或解冻用户账号等。
车辆信息管理:管理学生和教师用户的车辆信息,包括审核和修改。
学生预约管理:管理学生用户的车辆预约信息,包括审核和取消预约。
教师预约管理:管理教师用户的车辆预约信息,包括审核和取消预约。
学生归还管理:管理学生用户的车辆归还信息,包括审核和确认归还。
教师归还管理:管理教师用户的车辆归还信息,包括审核和确认归还。
学生违规管理:管理学生用户的违规记录,包括查看、处理等操作。
教师违规管理:管理教师用户的违规记录,包括查看、处理等操作。
车位信息管理:管理校园内停车位的信息,包括新增、修改和删除等操作。
系统管理:管理系统的轮播图信息,包括添加、编辑和删除等操作。
公告信息管理:管理系统发布的公告信息,包括添加、编辑和删除等操作。
资源管理:管理汽车资讯和资讯分类,包括发布、编辑和删除等操作。
通过以上功能需求分析,可以实现学生用户、教师用户和管理员在校园机动车管理系统中的不同角色和功能权限。这样的设计能够提供全面而丰富的功能支持,满足不同用户群体的需求,并促进校园交通管理的高效运行。
基于springcloud的校园机动车管理系统的非功能性需求比如基于springcloud的校园机动车管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2.1表格中:
表2.1 基于springcloud的校园机动车管理系统非功能需求表
安全性 | 主要指基于springcloud的校园机动车管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指基于springcloud的校园机动车管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响基于springcloud的校园机动车管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着基于springcloud的校园机动车管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 基于springcloud的校园机动车管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
基于springcloud的校园机动车管理系统中学生用户角色用例图如图2.1所示:
图2.1 用户角色用例图
基于springcloud的校园机动车管理系统中管理员角色用例图如图2.2所示:
图2.2管理员角色用例图
基于springcloud的校园机动车管理系统中教师用户角色用例图如图2.3所示:
图2.3教师用户角色用例图
3 系统总体设计
在上一章节中分析了基于springcloud的校园机动车管理系统的功能性需求、非功能性需求,并且根据需求分析了基于springcloud的校园机动车管理系统中的用例。那么接下来就要开始对基于springcloud的校园机动车管理系统架构、主要功能和数据库开始进行设计。
3.1系统架构设计
本系统主要使用了五层架构进行开发,主要分为“表现层”、“控制层”、“服务层”、“业务逻辑层”、“数据访问层”。
“表现层”主要作为与用户交互的接口,提供给用户良好的可体验性,本系统在前后端交互主要使用的是Ajax技术来实现数据传输,不仅可以达到无刷新交互,同时还拥有较稳定的运行状态。
“控制层”主要控制前端界面和后端程序数据之间的同步,然后根据前端请求完成数据更新或者是界面控制。以及负责将“服务层”提供的服务进行最后组装并调用。
“服务层”介于“控制层”和“业务逻辑层”之间,主要是将“业务逻辑层”的数据服务进行再一次组装,之后在作为接口提供给“控制层”使用。
“业务逻辑层”主要是动态的调用“数据访问层”的方法,对复杂的算法进行操作,处理前端传过来的请求并且做出相应的逻辑处理。
“数据访问层”主要负责对数据库的访问,可以访问数据库系统、文本文件、二进制文件、xml文档等等。负责业务对象的增加,修改,删除,加载。
系统架构图如下所示。
图3-1系统架构图
基于springcloud的校园机动车管理系统整体的功能模块包括管理员+学生用户+教师用户三个模块,实现了系统用户、车辆信息管理、学生预约管理、教师预约管理、学生归还管理、教师归还管理、学生违规管理、教师违规管理、车位信息管理、系统管理(轮播图管理)、公告信息管理、资源管理等功能,系统功能模块如图所示。
图3.2 基于springcloud的校园机动车管理系统功能模块图
3.3数据库设计
3.3.1数据库概念结构设计
基于springcloud的校园机动车管理系统的E-R图主要是根据管理员、学生用户、教师用户的实际需求设计的,学生用户注册以后可以查看公告信息、汽车资讯、车辆信息、车位信息、修改个人信息、进行车辆预约、归还、违规登记、收藏等;管理员对整个系统的用户、车辆信息、学生预约、教师预约、学生归还、教师归还、学生违规、教师违规、车位信息、系统轮播图、公告信息、汽车资讯等进行综合管理。基于springcloud的校园机动车管理系统采用的是MYSQL的数据库进行存储的,数据库里面储存了很多的表信息,基于springcloud的校园机动车管理系统的总E-R图如下:
图3.12 基于springcloud的校园机动车管理系统总E-R关系图
3.3.2数据库逻辑结构设计
通过前面E-R关系图一共需要创建很多个数据表。在此罗列这几个主要数据库表的关系模型如下:
表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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | parking_space_id | int | 10 | 0 | N | Y | 车位信息ID | |
2 | parking_space_number | varchar | 64 | 0 | N | N | 车位编号 | |
3 | parking_space_name | varchar | 64 | 0 | Y | N | 车位名称 | |
4 | parking_space_type | varchar | 64 | 0 | Y | N | 车位类型 | |
5 | parking_price | varchar | 64 | 0 | Y | N | 停车价格 | |
6 | parking_space_area | varchar | 64 | 0 | Y | N | 车位面积 | |
7 | parking_area | varchar | 64 | 0 | Y | N | 车位区域 | |
8 | parking_space_image | varchar | 255 | 0 | Y | N | 车位图片 | |
9 | fee_standards | text | 65535 | 0 | Y | N | 收费标准 | |
10 | parking_rules | text | 65535 | 0 | Y | N | 停车规则 | |
11 | parking_space_details | longtext | 2147483647 | 0 | Y | N | 车位详情 | |
12 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
13 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
2 | sensitive_vocabulary | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_reservation_id | int | 10 | 0 | N | Y | 学生预约ID | |
2 | vehicle_name | varchar | 64 | 0 | Y | N | 车辆名称 | |
3 | vehicle_brand | varchar | 64 | 0 | Y | N | 车辆品牌 | |
4 | vehicle_type | varchar | 64 | 0 | Y | N | 车辆类型 | |
5 | vehicle_color | varchar | 64 | 0 | Y | N | 车辆颜色 | |
6 | license_plate_number | varchar | 64 | 0 | N | N | 车牌号码 | |
7 | appointment_of_students | int | 10 | 0 | Y | N | 0 | 预约学生 |
8 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
9 | appointment_time | datetime | 19 | 0 | Y | N | 预约时间 | |
10 | place_of_use | varchar | 64 | 0 | Y | N | 使用地点 | |
11 | reason_for_appointment | text | 65535 | 0 | Y | N | 预约事由 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_return_id | int | 10 | 0 | N | Y | 学生归还ID | |
2 | vehicle_name | varchar | 64 | 0 | Y | N | 车辆名称 | |
3 | vehicle_brand | varchar | 64 | 0 | Y | N | 车辆品牌 | |
4 | vehicle_type | varchar | 64 | 0 | Y | N | 车辆类型 | |
5 | vehicle_color | varchar | 64 | 0 | Y | N | 车辆颜色 | |
6 | license_plate_number | varchar | 64 | 0 | N | N | 车牌号码 | |
7 | appointment_of_students | int | 10 | 0 | Y | N | 0 | 预约学生 |
8 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
9 | appointment_time | datetime | 19 | 0 | Y | N | 预约时间 | |
10 | return_time | datetime | 19 | 0 | Y | N | 归还时间 | |
11 | return_location | varchar | 64 | 0 | Y | N | 归还地点 | |
12 | return_information | text | 65535 | 0 | Y | N | 归还信息 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_no | varchar | 64 | 0 | N | N | 学生学号 | |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表teachers_violating_regulations (教师违规)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teachers_violating_regulations_id | int | 10 | 0 | N | Y | 教师违规ID | |
2 | vehicle_name | varchar | 64 | 0 | Y | N | 车辆名称 | |
3 | vehicle_brand | varchar | 64 | 0 | Y | N | 车辆品牌 | |
4 | vehicle_type | varchar | 64 | 0 | Y | N | 车辆类型 | |
5 | vehicle_color | varchar | 64 | 0 | Y | N | 车辆颜色 | |
6 | license_plate_number | varchar | 64 | 0 | Y | N | 车牌号码 | |
7 | appointment_with_teachers | int | 10 | 0 | Y | N | 0 | 预约教师 |
8 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
9 | appointment_time | datetime | 19 | 0 | Y | N | 预约时间 | |
10 | violation_name | varchar | 64 | 0 | Y | N | 违规名称 | |
11 | violation_time | datetime | 19 | 0 | Y | N | 违规时间 | |
12 | violation_type | varchar | 64 | 0 | Y | N | 违规类型 | |
13 | violation_content | text | 65535 | 0 | Y | N | 违规内容 | |
14 | punishment_content | text | 65535 | 0 | Y | N | 处罚内容 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_appointment_id | int | 10 | 0 | N | Y | 教师预约ID | |
2 | vehicle_name | varchar | 64 | 0 | Y | N | 车辆名称 | |
3 | vehicle_brand | varchar | 64 | 0 | Y | N | 车辆品牌 | |
4 | vehicle_type | varchar | 64 | 0 | Y | N | 车辆类型 | |
5 | vehicle_color | varchar | 64 | 0 | Y | N | 车辆颜色 | |
6 | license_plate_number | varchar | 64 | 0 | N | N | 车牌号码 | |
7 | appointment_with_teachers | int | 10 | 0 | Y | N | 0 | 预约教师 |
8 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
9 | appointment_time | datetime | 19 | 0 | Y | N | 预约时间 | |
10 | place_of_use | varchar | 64 | 0 | Y | N | 使用地点 | |
11 | reason_for_appointment | text | 65535 | 0 | Y | N | 预约事由 | |
12 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
13 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_return_id | int | 10 | 0 | N | Y | 教师归还ID | |
2 | vehicle_name | varchar | 64 | 0 | Y | N | 车辆名称 | |
3 | vehicle_brand | varchar | 64 | 0 | Y | N | 车辆品牌 | |
4 | vehicle_type | varchar | 64 | 0 | Y | N | 车辆类型 | |
5 | vehicle_color | varchar | 64 | 0 | Y | N | 车辆颜色 | |
6 | license_plate_number | varchar | 64 | 0 | N | N | 车牌号码 | |
7 | appointment_with_teachers | int | 10 | 0 | Y | N | 0 | 预约教师 |
8 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
9 | appointment_time | datetime | 19 | 0 | Y | N | 预约时间 | |
10 | return_time | datetime | 19 | 0 | Y | N | 归还时间 | |
11 | return_location | varchar | 64 | 0 | Y | N | 归还地点 | |
12 | return_information | text | 65535 | 0 | Y | N | 归还信息 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | teacher_users_id | int | 10 | 0 | N | Y | 教师用户ID | |
2 | teacher_no | varchar | 64 | 0 | N | N | 教师工号 | |
3 | teachers_name | varchar | 64 | 0 | Y | N | 教师姓名 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 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 | | 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 | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vehicle_information_id | int | 10 | 0 | N | Y | 车辆信息ID | |
2 | vehicle_name | varchar | 64 | 0 | Y | N | 车辆名称 | |
3 | vehicle_brand | varchar | 64 | 0 | Y | N | 车辆品牌 | |
4 | vehicle_type | varchar | 64 | 0 | Y | N | 车辆类型 | |
5 | vehicle_color | varchar | 64 | 0 | Y | N | 车辆颜色 | |
6 | license_plate_number | varchar | 64 | 0 | N | N | 车牌号码 | |
7 | vehicle_images | varchar | 255 | 0 | Y | N | 车辆图片 | |
8 | vehicle_status | varchar | 64 | 0 | Y | N | 车辆状态 | |
9 | vehicle_performance | text | 65535 | 0 | Y | N | 车辆性能 | |
10 | related_insurance | text | 65535 | 0 | Y | N | 相关保险 | |
11 | vehicle_owner_information | text | 65535 | 0 | Y | N | 车主信息 | |
12 | vehicle_details | longtext | 2147483647 | 0 | Y | N | 车辆详情 | |
13 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
14 | praise_len | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | violations_id | int | 10 | 0 | N | Y | 学生违规ID | |
2 | vehicle_name | varchar | 64 | 0 | Y | N | 车辆名称 | |
3 | vehicle_brand | varchar | 64 | 0 | Y | N | 车辆品牌 | |
4 | vehicle_type | varchar | 64 | 0 | Y | N | 车辆类型 | |
5 | vehicle_color | varchar | 64 | 0 | Y | N | 车辆颜色 | |
6 | license_plate_number | varchar | 64 | 0 | Y | N | 车牌号码 | |
7 | appointment_of_students | int | 10 | 0 | Y | N | 0 | 预约学生 |
8 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
9 | appointment_time | datetime | 19 | 0 | Y | N | 预约时间 | |
10 | violation_name | varchar | 64 | 0 | Y | N | 违规名称 | |
11 | violation_time | datetime | 19 | 0 | Y | N | 违规时间 | |
12 | violation_type | varchar | 64 | 0 | Y | N | 违规类型 | |
13 | violation_content | text | 65535 | 0 | Y | N | 违规内容 | |
14 | punishment_content | text | 65535 | 0 | Y | N | 处罚内容 | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
基于springcloud的校园机动车管理系统的详细设计与实现主要是根据前面的基于springcloud的校园机动车管理系统的需求分析和基于springcloud的校园机动车管理系统的总体设计来设计页面并实现业务逻辑。主要从基于springcloud的校园机动车管理系统界面实现、业务逻辑实现这两部分进行介绍。
4.1学生用户功能模块
当进入基于springcloud的校园机动车管理系统的时候,首先映入眼帘的是系统的导航栏、轮播图以及车辆信息推荐等,同时可以输入关键词对基于springcloud的校园机动车管理系统的内容进行检索,右上角是用户登录以及注册按钮,其主界面展示如下图4.1所示。

图4.1 首页界面图
不是基于springcloud的校园机动车管理系统中用户的是可以在线进行注册的,当用户点击右上角“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可注册成功。其用户注册界面展示如下图4.2所示。

图4.2 用户注册界面图
注册页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置为空(数据库表中该字段已设置自动递增),代码如下:
@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<>()));
注册页password则使用了MD5加密,代码如下:
public String encryption(String plainText) {
String re_md5 = new String();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5 = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return re_md5;
}
基于springcloud的校园机动车管理系统中的前台上注册后的用户是可以通过自己的username和password进行登录的,当会员输入完整的自己的username和password信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的username和password在数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到基于springcloud的校园机动车管理系统的首页中,否则将会提示相应错误信息,登录界面如下图4.3所示。

图4.3登录界面图
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,其代码如下:
@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<>();
4.1.4汽车资讯界面
当用户点击基于springcloud的校园机动车管理系统中导航栏上的“汽车资讯”后将会进入到该“汽车资讯”列表的界面,支持关键词搜索和下拉搜索,用户可以查看汽车资讯详情信息,可以进行点赞、收藏、评论等操作,汽车资讯界面如下图4.4 所示。

图4.4汽车资讯界面图
4.1.5车辆信息界面
当用户点击基于springcloud的校园机动车管理系统中导航栏上的“车辆信息”后将会进入到该“车辆信息”列表的界面,支持关键词搜索和下拉搜索,点击某一车辆信息可进入到车辆信息详情界面,可查看车辆详情,并可进行学生预约、点赞、收藏、评论等操作。界面如下图所示。

图4.5车辆信息详情界面图

图4.6学生预约界面图
当学生用户点击基于springcloud的校园机动车管理系统右上角的“个人中心”后将会进入到个人首页界面,学生用户可以管理个人首页、学生预约、学生归还、学生违规、收藏等功能模块,界面如下图所示。

图4.8个人中心界面图
4.2.1车辆信息界面
当教师用户点击基于springcloud的校园机动车管理系统中导航栏上的“车辆信息”后将会进入到该“车辆信息”列表的界面,支持关键词搜索和下拉搜索,点击某一车辆信息可进入到车辆信息详情界面,可查看车辆详情,并可进行教师预约、点赞、收藏、评论等操作。界面如下图所示。

图4.9车辆信息界面图
当教师用户点击基于springcloud的校园机动车管理系统中导航栏上的“车位信息”后将会进入到该“车位信息”列表的界面,支持关键词搜索和下拉搜索,点击某一车位信息可进入到车位信息详情界面,可查看车位详情,并可进行点赞、收藏、评论等操作。界面如下图4.10所示。

图4.10车位信息界面图
当教师用户点击基于springcloud的校园机动车管理系统右上角的“个人中心”后将会进入到个人首页界面,教师用户可以管理个人首页、教师预约、教师归还、教师违规、收藏等功能模块,界面如下图所示。

图4.11个人中心界面图
4.3管理员功能角模块
基于springcloud的校园机动车管理系统的理员拥有最高的权限,可以对用户信息、系统信息以及车辆相关信息进行管控。
4.3.1后台首页界面
管理员登陆系统后,可以在首页查看重要数据图和系统导航栏等。界面如下图所示:

图4.13后台首页界面图
管理员点击“公告信息管理”这一菜单会显示公告信息这一个子菜单,管理员可以对前台展示的公告信息消息进行设置,界面如下图4.14所示。

图4.14公告信息管理界面图
Controller用于spring控制请求的地址
新增一条数据,通过post传入一个json对象,然后经过request.getReader(),最后经过readBody()转成一个Map,含有String和Object,key用的是字段名,Object存放数据,最终得到Map,insert用拼装sql,读取body,组装成一个insert对象,runCountSql()语句,代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
修改一个数据,原理与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);
}
@Transactional
public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query,"0".equals(config.get(FindConfig.LIKE)),wrapper);
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.update(entity,wrapper);
log.info("[{}] - 更新操作:{}",entity);
}
删除一条数据,通过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);
}
@Transactional
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.3.3用户管理界面
管理员点击“用户管理”这一菜单会显示管理员、学生用户、教师用户、这三个子菜单,管理员可以对这三个角色的信息进行增删改查操作。界面如下图4.15所示。

图4.15用户管理界面图
4.3.3系统管理界面
管理员点击“系统管理”这一菜单会显示轮播图这一个子菜单,管理员可以对前台展示的轮播图进行设置,界面如下图4.16所示。

图4.16系统管理界面图
图片或文件等的上传方法通过MultipartFile,代码如下:
@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("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}
4.3.5资源管理界面
管理员点击“资源管理”这一菜单会显示汽车资讯、资讯分类这两个子菜单,管理员可以对这两部分涉及到的功能进行更新维护,更好的服务于前台用户。界面如下图4.17所示。

图4.17资源管理界面图
对任何系统而言,测试都是必不可少的环节,测试可以发现系统存在的很多问题,所有的软件上线之前,都应该进行充足的测试之后才能保证上线后不会Bug频发,或者是功能不满足需求等问题的发生。下面分别从单元测试,功能测试和用例测试来对系统进行测试以保证系统的稳定性和可靠性。
系统测试包括:用户登录功能测试、车辆信息展示功能测试、车辆信息添加、车辆信息搜索、密码修改功能测试,如表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)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
通过对基于springcloud的校园机动车管理系统的调试,能够检测基于springcloud的校园机动车管理系统的稳定性,为基于springcloud的校园机动车管理系统正式运行、稳定运行提供了可预测性的维护备案。能够帮助使用者熟悉整个基于springcloud的校园机动车管理系统,并对基于springcloud的校园机动车管理系统可能出现的错误有所了解。本章节提供了部分调试用例及调试日志,可以帮助使用者解决简单的错误问题,也加深了开发者对于此框架下的基于springcloud的校园机动车管理系统编写的了解度,为后期开发者顺利完成基于springcloud的校园机动车管理系统、发布基于springcloud的校园机动车管理系统提供了非常大的帮助。
6 结论
在开发本基于springcloud的校园机动车管理系统之前我胸有成竹,觉得很简单,但在实际的开发中我发现了自身的很多问题,许多编程思想和方法都还没有掌握牢靠,比如Bootsatrp、Jquery、AJAX 、Spring、SpringMVC、mybeatis等许多Java Web开发技术,通过开发这个基于springcloud的校园机动车管理系统我成长了很多,懂得了做什么事情都要脚踏实地,不能眼高手低,在本次基于springcloud的校园机动车管理系统的开发中我逐渐掌握逐渐熟悉的技术。
本次基于springcloud的校园机动车管理系统的开发中我还学会了很多,例如良好的编程思想和完善的规划思想。在着手编程之前需要罗列出程序框架的大概,脑海中构建出程序的主题框架。做好这一步我们才能胸有成竹的经行开发项目。当设计框架了熟于心之后,需要思考本次编程所需的主要知识点和技术点,并充分学习。如此一来项目的开发才能循序渐进、如丝般顺滑,长久以往就能养成良好的开发习惯。一个程序好不好还要看出的bug多不多,如果在项目完成前做好bug的查验与预防可能发生的事故才能保证程序的稳定长久性运行。如果项目在完工后出现各种问题自己,那么在进入社会后,不仅会给公司团队带来麻烦和增加不必要的工作,还会导致客户流失,公司对自己的评价下降。
在本次项目中我也暴露了诸多问题。对于Java的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。
[1]吴凡,卞建玲,宋振乾等.微服务软件架构设计模式及其应用[J].数字通信世界,2024,(01):102-104.
[2]石雨昕,关家兴,邹博华等.基于SpringBoot微服务架构设计与实现实验室开放课题管理系统[J].实验室检测,2024,2(01):101-106.
[3]樊浩,郑珍.基于微服务架构的在线培训系统的设计与实现[J].长春大学学报,2023,33(12):25-30.
[4]Sacheendra T ,Nikolas H ,Cristina A , et al.ExDe: Design space exploration of scheduler architectures and mechanisms for serverless data-processing[J].Future Generation Computer Systems,2024,15384-96.
[5]张堃.基于微服务架构的TMS系统设计与实现[D].华东师范大学,2023.DOI:10.27149/d.cnki.ghdsu.2023.004693.
[6]Ainhoa O ,Oscar J ,Amaia M , et al.Design of intelligent monitoring of loneliness in the elderly using a serverless architecture with real-time communication API.[J].Technology and health care : official journal of the European Society for Engineering and Medicine,2023,
[7]王倩莹.基于微服务架构的教材征订系统设计与实现[D].南京邮电大学,2022.DOI:10.27251/d.cnki.gnjdc.2022.001849.
[8]劳雪松.基于微服务的校园CRP平台核心架构设计[J].宿州学院学报,2023,38(09):12-15+21.
[9]Wadi* A A R ,Maaita A A .Authentication and Role-Based Authorization in Microservice Architecture: A Generic Performance-Centric Design[J].Journal of Advances in Information Technology,2023,14(4):
[10]史慧杰.基于微服务的制造执行系统架构设计及微服务聚类与选择方法研究[D].电子科技大学,2023.
[11]陆婷婷,殷佳庭.基于微服务架构的船货供求信息平台的设计实现[J].芜湖职业技术学院学报,2023,25(02):36-39.
[12]郑伟波.微服务架构下的软件自动构造与演化技术研究[D].山东大学,2023.DOI:10.27272/d.cnki.gshdu.2023.000266.
[13]李清清.面向微服务架构软件的可观测性研究[D].临沂大学,2023.DOI:10.44252/d.cnki.glydx.2023.000022.
[14]李宇杰.基于微服务架构的电商微信小程序的设计与实现[D].华东师范大学,2023.DOI:10.27149/d.cnki.ghdsu.2023.003555.
[15]王渊.基于微服务的物联网平台架构设计[J].工业控制计算机,2023,36(04):129-130.
[16]张旭.基于微服务架构的车间MES系统设计与实现[D].重庆交通大学,2023.DOI:10.27671/d.cnki.gcjtc.2023.001488.
[17]曾佳.基于Spring Cloud的微服务架构设计[J].电子技术,2023,52(01):54-55.
[18]肖斌,王永峰.一种高效微服务应用开发平台架构设计[J].中国科技信息,2023,(02):96-98.
[19]杨波,车辉,邢慧芬等.基于物联网的智慧非机动车管理系统设计实现[J].物联网技术,2022,12(02):47-50.DOI:10.16667/j.issn.2095-1302.2022.02.013.
[20]封蕾.校园机动车计算机信息化管理的探讨[J].电脑知识与技术,2021,17(23):21-22.DOI:10.14004/j.cnki.ckt.2021.2370.
到此,整个基于springcloud的校园机动车管理系统就算完成了,虽然过程十分艰难,但是等到都完成的时候,我感觉无比的自豪,虽然设计的系统还存在许多的纰漏,但是我已经拼劲全力,给自己的大学四年画上了一个圆满的句号。
在这里我首先要感谢的就是大学四年来所有教导我的老师,是他们教会了我许多的专业知识以及做人的道理,从一进校门对对开发系统一窍不通到现在能自主开发一个管理系统,里面包含了前台框架、后台框架、业务流程、数据结构、操作系统等各种知识,只有把他们统一运用好,才能够完成整个系统,这都是老师的功劳;其次我要感谢我的指导老师,在开发这个系统的时候,我遇到了无数的问题,经常通过线上、线下的方式去请教导师,每次去请教导师,他从来没有不耐烦,都是细心的引导,告诉我怎么样实现这个功能,怎么样才能使得系统更加完善,然后通过自己查询相关资料解决问题,提高了自己自主解决问题的能力,授人以鱼不如授人以渔,指导老师的这种工作态度受益终生,我也会向老师不断靠拢,向他学习,在此我只想说一句:“老师,谢谢您,您辛苦了”!最后我还要感谢我的室友、同学,在一起学习这四年,他们不但学习上给了我很多建议,在生活上更加给了我帮助,正是有他们的帮助,我的大学生涯才如此完美。
最后,希望自己在未来的道路上能够越走越远,不辜负在大学的学习以及老师们的细致的教导,追风赶月莫停留,平荒尽处是春山。