springboot共享单车平台-计算机毕业设计源码22101
(1)会员模块:提供会员注册及信息修改服务,会员在付款时可享受租车折扣,增加用户粘性和满意度。(2)论坛交流模块:为用户提供一个讨论、评论及社交互动的空间,促进用户之间的交流与合作。(3)导航模块:集成百度地图API,实时显示用户的当前位置,并提供到达目的地的最佳路线和距离计算服务,方便用户出行。(4)租用功能模块:包括单车租用、收藏添加、查询单车状态信息等功能,简化用户的租车流程,提升用户体验。
摘 要
随着城市化进程的加速和人们环保意识的增强,共享单车作为一种绿色出行方式,在全球范围内迅速流行开来。特别是在中国,共享单车已经成为了城市交通体系中不可或缺的一部分。它不仅解决了“最后一公里”的出行难题,还促进了城市的可持续发展。
本文基于SpringBoot和Vue框架,设计与实现了一款功能丰富的共享单车平台。通过详细分析市场需求和现有问题,结合现代软件开发技术,实现了后台首页、系统用户、单车信息管理、用户租车管理、会员租车管理、售后服务管理、会员售后管理、会员反馈管理、用户反馈管理、系统管理(轮播图管理)、通知公告管理、资源管理(新闻资讯、资讯分类)、交流管理等多个模块的开发。在设计过程中,采用了前后端分离开发模式,利用Vue实现了动态响应式用户界面,提升了用户体验;后端基于SpringBoot框架搭建了安全稳定的服务端,支持RESTful API接口,实现了数据的高效管理和安全传输。通过实际测试和用户反馈,验证了平台的可靠性和实用性,展示了其在提升租赁市场效率和用户满意度方面的潜力和优势,能够有效满足用户的交易需求,促进市场活跃。
关键词:共享单车平台;SpringBoot;Java;MySQL
Abstract
With the acceleration of the urbanization process and the enhancement of people's awareness of environmental protection, shared bikes, as a green way of travel, are rapidly becoming popular around the world. Especially in China, bike-sharing has become an integral part of the urban transportation system. It not only solves the "last kilometer" travel problem, but also promotes the sustainable development of the city.
Based on the framework of SpringBoot and Vue, this paper designs and implements a bike-sharing platform with rich functions. Through detailed analysis of market demand and existing problems, combined with modern software development technology, implements the background homepage, system users, bicycle information management, user rental management, car rental management, after-sales service management, member after-sales management, feedback management, user feedback management, system management (rotation chart management), announcement management, resource management (news and information, information classification), communication management, and many other modules of development. In the design process, the front and rear end separation development mode is adopted, and the user experience; the back end builds safe and stable server based on SpringBoot framework, supports RESTful API interface, and realizes efficient data management and secure transmission. Through actual tests and user feedback, the reliability and practicability of the platform are verified, and its potential and advantages in improving the efficiency of the rental market and user satisfaction, which can effectively meet the transaction needs of users and promote market activity.
Keywords: Bike-sharing platform; SpringBoot; Java; MySQL
目 录
第1章绪 论
1.1 项目背景与意义
1.1.1 研究背景
随着城市化进程的加速和人们环保意识的增强,共享单车作为一种绿色出行方式,在全球范围内迅速流行开来。特别是在中国,共享单车已经成为了城市交通体系中不可或缺的一部分[1]。它不仅解决了“最后一公里”的出行难题,还促进了城市的可持续发展。Spring Boot是一个用于简化新Spring应用初始搭建以及开发过程的框架,其通过约定大于配置的核心思想,极大地提高了开发效率。
在这样的背景下,基于Spring Boot构建共享单车平台具有重要的实际意义和技术价值。一方面,它能够充分利用Spring Boot提供的高效、便捷的开发模式来快速实现功能丰富、易于维护的应用程序;另一方面,也适应了现代软件架构的发展趋势,如微服务架构等,有助于提高系统的可扩展性和稳定性。
1.1.2 研究意义
通过提供一个方便快捷的共享单车服务平台,鼓励更多的人选择骑行而非驾车出行,从而减少碳排放,改善空气质量,推动环境保护。基于Spring Boot的开发模式可以快速迭代产品,及时响应用户需求变化,为用户提供更加个性化、智能化的服务体验。采用Spring Boot作为技术栈,不仅可以享受到其带来的高效开发便利性,还能探索如何更好地将新兴技术(如云计算、大数据分析等)融入到平台之中,以提升平台的整体性能和服务质量。共享单车平台作为一个典型的物联网应用场景,对于构建智慧城市具有重要意义。它可以与其他城市管理系统(如交通管理、公共安全等)进行数据共享和交互,共同促进城市的智能化发展。对于企业来说,利用Spring Boot快速构建和部署共享单车平台,能够有效降低开发成本,缩短产品上市时间,从而获得更大的市场竞争力。
综上所述,研究并开发基于Spring Boot的共享单车平台,不仅符合当前社会对绿色环保出行方式的需求,而且在技术创新、城市管理等多个方面都展现出了巨大的潜力和价值。
1.2 国内外研究现状
1.2.1 国内研究现状
在国内,随着共享单车行业的迅猛发展,相关的管理系统也随之得到了重视和发展。传统的管理方式如电话或短信交流效率低下,且需要大量的人力和财力支持,逐渐被淘汰。目前市场上存在的一些系统虽然在一定程度上满足了用户的需求,但在用户体验、操作便捷性等方面仍有待提高[2]。基于Spring Boot框架的共享单车平台研究与开发,旨在通过现代软件技术手段提供一个界面友好、功能齐全的解决方案。这些系统通常集成了用户注册登录、单车租赁归还、报修检修等功能,并强调系统的易用性和高效性[3]。
1.2.2 国外研究现状
国外由于经济高度发达,对于服务于人们生活的共享单车信息系统投入了大量资源进行开发。因此,在国外这类系统相对更为成熟和完善[4]。开放的社会环境使得新事物更容易被接受,人们对服务的要求也更高,这促使共享单车信息系统一开始就能被更多人接受,并根据反馈不断改进。经过长时间的发展,国外的共享单车信息系统不仅具有高艺术性,而且非常规范和完整,能够为用户提供更加优质的服务体验。
此外,国外的研究往往更注重于技术创新和用户体验的提升,比如利用大数据分析用户行为模式,以优化车辆投放策略;或是通过物联网(IoT)技术实现对单车状态的实时监控和智能调度[5]。同时,考虑到安全和隐私保护的重要性,国外的共享单车平台在数据加密、用户信息保护等方面也采取了较为严格的措施。
综上所述,无论是国内还是国外,基于Spring Boot的共享单车平台都在不断发展进步,旨在解决实际问题的同时,也致力于提升用户的使用体验和服务质量。不过,国外由于起步较早,在技术应用和用户体验方面可能略占优势。而国内则凭借庞大的市场基础和快速迭代的能力,正在迅速追赶并形成自己的特色。
1.3 主要研究内容
在开发共享单车平台时,后端采用了Java作为编程语言,并利用了SpringBoot框架,这使得复杂的业务逻辑和数据操作得以高效完成。与此同时,系统的数据存储和管理通过MySQL数据库实现。结合Vue.js作为前端框架,具有响应式数据绑定和组件化的特点,能够有效地提升用户体验和开发效率。在开发工具的选取上,使用了eclipse,它的强大功能和易用性使得编程工作更为高效;而Navicat作为数据库管理工具,使得数据库操作更为方便和快捷。这样的技术选择,确保了管理系统的开发流程既高效又稳定。本系统主要实现包括后台首页、系统用户、单车信息管理、用户租车管理、会员租车管理、售后服务管理、会员售后管理、会员反馈管理、用户反馈管理、系统管理、通知公告管理、资源管理、交流管理等功能进行管理。
第2章开发环境及技术架构
2.1 开发环境与工具
共享单车平台使用Java语言作为主要语言,前端使用Vue.js框架,后端基于SpringBoot框架开发而成,存储数据使用的是使用较为广泛的MySQL数据库。系统所使用的系统开发环境如下表2-1所示。
表2-1系统开发环境
|
操作系统版本: |
Win10 |
|
数据库环境: |
MySQL5.7 |
|
JDK版本: |
JDK1.8.0_191 |
|
主要技术: |
Springboot2、Apache Tomcat8.5、Webpack 4.0、Vue.js、Element UI、Navicat、bootstrap…… |
|
浏览器: |
Chrome |
MySQL是一款广受欢迎的关系数据库管理系统,它能够高效地存储和处理大量的数据。MySQL在Web应用程序中有着卓越的表现,是众多开发者的首选。MySQL遵循SQL语言的标准,这是一种通用的数据库操作语言,简单易学,功能强大。结合Apache服务器,MySQL可以构建出一个优秀的开发环境。
SpringBoot是一个新颖的框架,由Pivotal团队推出,旨在简化Spring应用的创建和开发过程。SpringBoot通过提供一些默认的配置和约定,避免了开发者重复编写模板化的代码。SpringBoot力求成为快速应用开发领域的领导者,让开发者能够更专注于业务逻辑。
Mybatis是一个优秀的持久层框架,它支持定制化SQL、存储过程和高级映射。Mybatis可以消除大部分的JDBC代码和参数的手工设置,让开发者更方便地操作数据库。Mybatis可以和Spring框架完美地集成,提高开发效率和性能。
Tomcat是一种免费的服务器,它能够有效地处理大量的网络访问,特别是在访问量较少的情况下。当将Tomcat安装在电脑上时,它能够自动分析前端HTML页面的请求,从而提高网络的性能。事实上,Tomcat是对Apache的一种延伸[7],但它与Apache之间的关系更加紧密,因为它们在不同的进程中运行,而且它们之间也有着自己的独立性。
Vue.js是一个轻量级的、用于构建用户界面的渐进式框架。它与其他大型框架不同,Vue.js采用了自底向上的设计思想,可以逐层地应用到项目中。Vue.js的核心库只关注视图层,易于上手,也便于与第三方库或现有项目集成。另一方面,Vue.js也可以与现代化的工具链和各种支持库结合使用,从而实现复杂的单页应用程序。
2.2 技术架构
本系统是基于SpringBoot、Mysql、Vue的前后端完全分离的后台管理系统。
2.2.1 B/S模式
B/S模式,即浏览器/服务器模式,是一种常见的网络应用架构模式。在B/S模式中,用户通过浏览器作为客户端与服务器进行交互。在浏览器/服务器(browser / Server Architecture)系统中,用户只需通过浏览器,就能够轻松地向分布在网络各处的众多服务器发送海量的请求。B/S系统大大地简化了客户端的工作,让用户体验更加便捷。
2.2.2 SpringBoot框架
Spring是一个知名的开源框架,它于2003年诞生于Rod Johnson的《Expert One-on-One Java EE Development and Design》一书中。Spring的初衷是为了解决企业级应用开发的复杂性,它让简单的JavaBean也能够实现原本只有EJB才能做到的功能。Spring不仅适用于服务器端的开发,它还能够为任何Java应用程序带来简洁、可测试和低耦合的优势。尽管Spring的组件代码很轻量级,但是它的配置却很繁琐。最初,Spring是使用XML配置的,但是随着项目的增长,XML配置也变得越来越多。
为了改进和优化Spring的缺点,SpringBoot框架应运而生,它基于约定优于配置的理念,让开发者无需编写大量的配置文件,只需遵循一些简单的规则即可。SpringBoot使开发者能够专注于业务逻辑的编码,而不用在配置和业务之间切换思维,这在很大程度上提高了开发效率,缩短了项目开发周期。
第3章需求分析
3.1 可行性分析
通过综合考虑经济、操作、技术等因素,可以对基于SpringBoot的共享单车平台的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。
3.1.1 经济可行性分析
经济可行性在此仅代表平台的运维成本,开发成本不在此考虑。
目前该模式下的相关系统的数量日益增多,信息管理系统的平民化、普及化使用户人数呈上升趋势,当用户人数庞大了,运维成本可以由广告费进行填补,包括开发成本。
所以经济可行性没有问题。
3.1.2 操作可行性分析
此次项目设计参考了几个该模式下系统的开发案例,对他们的操作界面分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。
因此操作可行性也没有问题。
3.1.3 技术可行性分析
技术可行性指的是对于搭建框架的可行性,以及有更优秀的技术出现时系统的技术更新换代的纳新性如何,开发时间成本费用比如何。
现有的JAVA语言能够迎合所有系统的搭建。开发这个共享单车平台的时候我采用了JAVA+SpringBoot+Vue 用以运行整体程序。
综上所述技术可行性也没有问题。
3.2 功能需求分析
通过对应的功能做了需求分析以后该共享单车平台各角色主要包括的功能说明如下:
- 用户角色:
- 普通用户:可以在线交流沟通,浏览新闻和单车信息列表,搜索单车信息,租车租车支付单车信息,查看订单状态,评价和反馈交易等功能。
- 会员用户:可以在线交流沟通,浏览新闻和单车信息列表,搜索单车信息,租车租车支付单车信息,查看订单状态,评价和反馈交易等功能。
- 管理员:具备对用户、单车信息、租车服务、售后服务、订单、反馈、论坛、资讯等所有管理功能权限,同时可以处理反馈和异常情况,查看销售统计,管理系统配置,更新维护系统等。
- 基础功能:这个模块包括了系统的一些基本设置,如系统参数、日志管理、数据备份、数据恢复等。这些功能可以保证系统的正常运行和安全性。
- 单车信息管理:管理员对单车信息的发布、编辑、删除、更新等操作,支持多种单车信息分类和标签。
- 交易流程:用户注册与登录功能,支持第三方登录和快速注册。租车租车流程,包括租车数量选择、提交租赁、支付等功能。订单管理,包括订单状态跟踪、订单反馈处理、评价功能等。
- 用户体验:响应式设计,适配不同终端设备(如PC、手机)。搜索功能优化,支持关键词搜索、筛选等。
- 身份验证功能:这个模块包括了用户的注册、登录、修改密码、找回密码等功能。这些功能可以保证用户的身份和权限的正确性和安全性。
- 安全与权限:用户权限管理,确保不同角色用户只能访问其具备权限的功能。数据安全保护,包括用户信息加密存储、支付信息安全等。
根据使用该系统的用户角色可以划分为普通用户、会员用户和管理员,具体如下所示。
共享单车平台普通用户角色用例图如下所示。

图3-1 普通用户角色用例图
共享单车平台会员用户角色用例图如下所示。

图3-2 会员用户角色用例图
共享单车平台管理员角色用例图如下所示。

图3-3 管理员角色用例图
3.3 性能需求分析
用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如浏览单车、租车等操作应该迅速响应。
系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。
数据安全:用户信息、交易记录等敏感数据需要加密存储,确保数据安全性。
系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。
日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。
基于以上性能需求将确保共享单车平台能够稳定、高效地运行,能够很好地满足用户和管理员的需求。
3.4 系统流程分析
3.4.1 用户注册流程图
注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-4用户注册流程图所示。

图3-4 用户注册流程图
3.4.2 用户注册流程图
登录时,用户填写用户名、密码、选择身份进行登录,在登录过程中后端会对发送过来的信息进行验证和判断,具体的登录流程如图3-5用户登录流程图所示。

图3-5 用户登录流程图
3.4.3 程序操作流程图
用户访问平台网站,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

图3-6 程序操作流程图
第4章系统设计
4.1 系统功能设计
4.1.1 前台功能模块
基于SpringBoot共享单车平台采用前后端分离的设计,游客可以浏览系统前台信息,注册成为普通用户或者会员用户,登录后才可进行其他操作。普通/会员用户登录后,可搜索和浏览新闻资讯、单车信息等信息,可以租车、并对租车进行支付、评价和反馈,并可发布交流帖子与其他用户进行交流。系统前台功能模块图如下图所示。

图4-1系统前台功能模块图
4.1.2 后台功能模块
后台功能是管理员模块。其中管理员是系统最高权限拥有者,可管理用户、单车信息、用户租车、会员租车、售后服务、会员售后、会员反馈、用户反馈、反馈、资讯、交流等信息,并保证及时更新系统信息,维护系统正常运行。系统后台功能模块图如下图所示。

图4-2系统后台功能模块图
4.2 数据库设计
数据库的设计是系统的设计中比较重要的一部分内容,数据库设计是一切系统设计的基础,首先需要进行概念模型E-R图的设计,然后进行关系模型物理模型的建立。
4.2.1 概念模型
本文在系统分析阶段就抽取了一些实体,根据实体之间的关系,经过分析进行系统E-R图的设计。共享单车平台总体E-R图如下图所示。

图4-7系统总体E-R图
4.2.2 物理模型
本系统采MySQL数据库管理系统对数据进行管理。下面是对各个表中的表中各个字段数据类型、大小等做简短描述。共享单车平台所需要的部分数据结构表如下表所示。
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
token_id |
int |
是 |
是 |
临时访问牌ID |
|
|
2 |
token |
varchar |
64 |
否 |
否 |
临时访问牌 |
|
3 |
info |
text |
65535 |
否 |
否 |
信息 |
|
4 |
maxage |
int |
是 |
否 |
最大寿命:默认2小时 |
|
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
user_id |
int |
是 |
否 |
用户编号 |
表 4-2-after_sales_service(售后服务)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
after_sales_service_id |
int |
是 |
是 |
售后服务ID |
|
|
2 |
bicycle_no |
varchar |
64 |
否 |
否 |
单车编号 |
|
3 |
bicycle_name |
varchar |
64 |
否 |
否 |
单车名称 |
|
4 |
type_of_bicycle |
varchar |
64 |
否 |
否 |
单车类型 |
|
5 |
ordinary_daily_price |
double |
否 |
否 |
普通日价 |
|
|
6 |
ordinary_user |
int |
否 |
否 |
普通用户 |
|
|
7 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
8 |
user_phone |
varchar |
64 |
否 |
否 |
用户电话 |
|
9 |
rental_days |
double |
否 |
否 |
租赁天数 |
|
|
10 |
total_lease |
double |
否 |
否 |
租赁总计 |
|
|
11 |
service_type |
varchar |
64 |
否 |
否 |
服务类型 |
|
12 |
detailed_description |
text |
65535 |
否 |
否 |
详情描述 |
|
13 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
14 |
examine_reply |
varchar |
16 |
否 |
否 |
审核回复 |
|
15 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
16 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
17 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
18 |
source_id |
int |
否 |
否 |
来源ID |
|
|
19 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-3-article(文章)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
article_id |
mediumint |
是 |
是 |
文章id |
|
|
2 |
title |
varchar |
125 |
是 |
是 |
标题 |
|
3 |
type |
varchar |
64 |
是 |
否 |
文章分类 |
|
4 |
hits |
int |
是 |
否 |
点击数 |
|
|
5 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
6 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
7 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
8 |
source |
varchar |
255 |
否 |
否 |
来源 |
|
9 |
url |
varchar |
255 |
否 |
否 |
来源地址 |
|
10 |
tag |
varchar |
255 |
否 |
否 |
标签 |
|
11 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
12 |
img |
varchar |
255 |
否 |
否 |
封面图 |
|
13 |
description |
text |
65535 |
否 |
否 |
文章描述 |
表 4-4-article_type(文章分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
type_id |
smallint |
是 |
是 |
分类ID |
|
|
2 |
display |
smallint |
是 |
否 |
显示顺序 |
|
|
3 |
name |
varchar |
16 |
是 |
否 |
分类名称 |
|
4 |
father_id |
smallint |
是 |
否 |
上级分类ID |
|
|
5 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
6 |
icon |
text |
65535 |
否 |
否 |
分类图标 |
|
7 |
url |
varchar |
255 |
否 |
否 |
外链地址 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-5-auth(用户权限管理)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
auth_id |
int |
是 |
是 |
授权ID |
|
|
2 |
user_group |
varchar |
64 |
否 |
否 |
用户组 |
|
3 |
mod_name |
varchar |
64 |
否 |
否 |
模块名 |
|
4 |
table_name |
varchar |
64 |
否 |
否 |
表名 |
|
5 |
page_title |
varchar |
255 |
否 |
否 |
页面标题 |
|
6 |
path |
varchar |
255 |
否 |
否 |
路由路径 |
|
7 |
parent |
varchar |
64 |
否 |
否 |
父级菜单 |
|
8 |
parent_sort |
int |
是 |
否 |
父级菜单排序 |
|
|
9 |
position |
varchar |
32 |
否 |
否 |
位置 |
|
10 |
mode |
varchar |
32 |
是 |
否 |
跳转方式 |
|
11 |
add |
tinyint |
是 |
否 |
是否可增加 |
|
|
12 |
del |
tinyint |
是 |
否 |
是否可删除 |
|
|
13 |
set |
tinyint |
是 |
否 |
是否可修改 |
|
|
14 |
get |
tinyint |
是 |
否 |
是否可查看 |
|
|
15 |
field_add |
text |
65535 |
否 |
否 |
添加字段 |
|
16 |
field_set |
text |
65535 |
否 |
否 |
修改字段 |
|
17 |
field_get |
text |
65535 |
否 |
否 |
查询字段 |
|
18 |
table_nav_name |
varchar |
500 |
否 |
否 |
跨表导航名称 |
|
19 |
table_nav |
varchar |
500 |
否 |
否 |
跨表导航 |
|
20 |
option |
text |
65535 |
否 |
否 |
配置 |
|
21 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
22 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-6-bicycle_information(单车信息)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
bicycle_information_id |
int |
是 |
是 |
单车信息ID |
|
|
2 |
bicycle_no |
varchar |
64 |
否 |
否 |
单车编号 |
|
3 |
bicycle_name |
varchar |
64 |
否 |
否 |
单车名称 |
|
4 |
type_of_bicycle |
varchar |
64 |
否 |
否 |
单车类型 |
|
5 |
bicycle_status |
varchar |
64 |
否 |
否 |
单车状态 |
|
6 |
daily_member_price |
double |
否 |
否 |
会员日价 |
|
|
7 |
ordinary_daily_price |
double |
否 |
否 |
普通日价 |
|
|
8 |
bicycle_pictures |
varchar |
255 |
否 |
否 |
单车图片 |
|
9 |
details_introduction |
text |
65535 |
否 |
否 |
详情简介 |
|
10 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
11 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
12 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
13 |
user_car_rental_limit_times |
int |
是 |
否 |
租车限制次数 |
|
|
14 |
member_car_rental_limit_times |
int |
是 |
否 |
会员租车限制次数 |
|
|
15 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
16 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-7-code_token(验证码)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
code_token_id |
int |
是 |
是 |
验证码ID |
|
|
2 |
token |
varchar |
255 |
否 |
否 |
令牌 |
|
3 |
code |
varchar |
255 |
否 |
否 |
验证码 |
|
4 |
expire_time |
timestamp |
是 |
否 |
失效时间 |
|
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-8-collect(收藏)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
collect_id |
int |
是 |
是 |
收藏ID |
|
|
2 |
user_id |
int |
是 |
是 |
收藏人ID |
|
|
3 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
4 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
5 |
source_id |
int |
是 |
否 |
来源ID |
|
|
6 |
title |
varchar |
255 |
否 |
否 |
标题 |
|
7 |
img |
varchar |
255 |
否 |
否 |
封面 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-9-comment(评论)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
comment_id |
int |
是 |
是 |
评论ID |
|
|
2 |
user_id |
int |
是 |
是 |
评论人ID |
|
|
3 |
reply_to_id |
int |
是 |
否 |
回复评论ID |
|
|
4 |
content |
longtext |
4294967295 |
否 |
否 |
内容 |
|
5 |
nickname |
varchar |
255 |
否 |
否 |
昵称 |
|
6 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
9 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
10 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
11 |
source_id |
int |
是 |
否 |
来源ID |
表 4-10-forum(论坛)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
forum_id |
mediumint |
是 |
是 |
论坛ID |
|
|
2 |
display |
smallint |
是 |
否 |
排序 |
|
|
3 |
user_id |
mediumint |
是 |
否 |
用户ID |
|
|
4 |
nickname |
varchar |
16 |
否 |
否 |
昵称 |
|
5 |
praise_len |
int |
否 |
否 |
点赞数 |
|
|
6 |
hits |
int |
是 |
否 |
访问数 |
|
|
7 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
8 |
keywords |
varchar |
125 |
否 |
否 |
关键词 |
|
9 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
10 |
url |
varchar |
255 |
否 |
否 |
来源地址 |
|
11 |
tag |
varchar |
255 |
否 |
否 |
标签 |
|
12 |
img |
text |
65535 |
否 |
否 |
封面图 |
|
13 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
14 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
15 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
16 |
avatar |
varchar |
255 |
否 |
否 |
发帖人头像 |
|
17 |
type |
varchar |
64 |
是 |
否 |
论坛分类 |
|
18 |
istop |
int |
是 |
否 |
是否置顶 |
表 4-11-forum_type(论坛分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
type_id |
smallint |
是 |
是 |
分类ID |
|
|
2 |
name |
varchar |
16 |
是 |
否 |
分类名称 |
|
3 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
4 |
url |
varchar |
255 |
否 |
否 |
外链地址 |
|
5 |
father_id |
smallint |
是 |
否 |
上级分类ID |
|
|
6 |
icon |
varchar |
255 |
否 |
否 |
分类图标 |
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-12-hits(用户点击)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
hits_id |
int |
是 |
是 |
点赞ID |
|
|
2 |
user_id |
int |
是 |
否 |
点赞人 |
|
|
3 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID |
表 4-13-member_after_sales(会员售后)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
member_after_sales_id |
int |
是 |
是 |
会员售后ID |
|
|
2 |
bicycle_no |
varchar |
64 |
否 |
否 |
单车编号 |
|
3 |
bicycle_name |
varchar |
64 |
否 |
否 |
单车名称 |
|
4 |
type_of_bicycle |
varchar |
64 |
否 |
否 |
单车类型 |
|
5 |
daily_member_price |
double |
否 |
否 |
会员日价 |
|
|
6 |
member_user |
int |
否 |
否 |
会员用户 |
|
|
7 |
member_name |
varchar |
64 |
否 |
否 |
会员姓名 |
|
8 |
member_telephone |
varchar |
64 |
否 |
否 |
会员电话 |
|
9 |
rental_days |
double |
否 |
否 |
租赁天数 |
|
|
10 |
total_lease |
double |
否 |
否 |
租赁总计 |
|
|
11 |
service_type |
varchar |
64 |
否 |
否 |
服务类型 |
|
12 |
detailed_description |
text |
65535 |
否 |
否 |
详情描述 |
|
13 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
14 |
examine_reply |
varchar |
16 |
否 |
否 |
审核回复 |
|
15 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
16 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
17 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
18 |
source_id |
int |
否 |
否 |
来源ID |
|
|
19 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-14-member_car_rental(会员租车)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
member_car_rental_id |
int |
是 |
是 |
会员租车ID |
|
|
2 |
bicycle_no |
varchar |
64 |
否 |
否 |
单车编号 |
|
3 |
bicycle_name |
varchar |
64 |
否 |
否 |
单车名称 |
|
4 |
type_of_bicycle |
varchar |
64 |
否 |
否 |
单车类型 |
|
5 |
daily_member_price |
double |
否 |
否 |
会员日价 |
|
|
6 |
member_user |
int |
否 |
否 |
会员用户 |
|
|
7 |
member_name |
varchar |
64 |
否 |
否 |
会员姓名 |
|
8 |
member_telephone |
varchar |
64 |
否 |
否 |
会员电话 |
|
9 |
rental_days |
double |
否 |
否 |
租赁天数 |
|
|
10 |
total_lease |
double |
否 |
否 |
租赁总计 |
|
|
11 |
pay_state |
varchar |
16 |
是 |
否 |
支付状态 |
|
12 |
pay_type |
varchar |
16 |
否 |
否 |
支付类型: 微信、支付宝、网银 |
|
13 |
member_after_sales_limit_times |
int |
是 |
否 |
售后限制次数 |
|
|
14 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
15 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
16 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
17 |
source_id |
int |
否 |
否 |
来源ID |
|
|
18 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-15-member_feedback(会员反馈)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
member_feedback_id |
int |
是 |
是 |
会员反馈ID |
|
|
2 |
member_user |
int |
否 |
否 |
会员用户 |
|
|
3 |
member_name |
varchar |
64 |
否 |
否 |
会员姓名 |
|
4 |
feedback_title |
varchar |
64 |
否 |
否 |
反馈标题 |
|
5 |
feedback_time |
date |
否 |
否 |
反馈时间 |
|
|
6 |
feedback_picture |
varchar |
255 |
否 |
否 |
反馈图片 |
|
7 |
feedback_content |
text |
65535 |
否 |
否 |
反馈内容 |
|
8 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
9 |
examine_reply |
varchar |
16 |
否 |
否 |
审核回复 |
|
10 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
11 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-16-member_user(会员用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
member_user_id |
int |
是 |
是 |
会员用户ID |
|
|
2 |
member_name |
varchar |
64 |
否 |
否 |
会员姓名 |
|
3 |
member_gender |
varchar |
64 |
否 |
否 |
会员性别 |
|
4 |
member_telephone |
varchar |
64 |
否 |
否 |
会员电话 |
|
5 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
6 |
user_id |
int |
是 |
否 |
用户ID |
|
|
7 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-17-notice(公告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
notice_id |
mediumint |
是 |
是 |
公告ID |
|
|
2 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
4 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
5 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-18-ordinary_user(普通用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
ordinary_user_id |
int |
是 |
是 |
普通用户ID |
|
|
2 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
3 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
4 |
user_phone |
varchar |
64 |
否 |
否 |
用户电话 |
|
5 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
6 |
user_id |
int |
是 |
否 |
用户ID |
|
|
7 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-19-praise(点赞)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
praise_id |
int |
是 |
是 |
点赞ID |
|
|
2 |
user_id |
int |
是 |
是 |
点赞人 |
|
|
3 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID |
|
|
8 |
status |
tinyint |
是 |
否 |
点赞状态:1为点赞,0已取消 |
表 4-20-score(评分)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
score_id |
int |
是 |
是 |
评分ID |
|
|
2 |
user_id |
int |
是 |
否 |
评分人 |
|
|
3 |
nickname |
varchar |
64 |
否 |
否 |
昵称 |
|
4 |
score_num |
double |
是 |
否 |
评分 |
|
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
7 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
8 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
9 |
source_id |
int |
是 |
否 |
来源ID |
表 4-21-slides(轮播图)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
slides_id |
int |
是 |
是 |
轮播图ID |
|
|
2 |
title |
varchar |
64 |
否 |
否 |
标题 |
|
3 |
content |
varchar |
255 |
否 |
否 |
内容 |
|
4 |
url |
varchar |
255 |
否 |
否 |
链接 |
|
5 |
img |
varchar |
255 |
否 |
否 |
轮播图 |
|
6 |
hits |
int |
是 |
否 |
点击量 |
|
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-22-upload(文件上传)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
upload_id |
int |
是 |
是 |
上传ID |
|
|
2 |
name |
varchar |
64 |
否 |
否 |
文件名 |
|
3 |
path |
varchar |
255 |
否 |
否 |
访问路径 |
|
4 |
file |
varchar |
255 |
否 |
否 |
文件路径 |
|
5 |
display |
varchar |
255 |
否 |
否 |
显示顺序 |
|
6 |
father_id |
int |
否 |
否 |
父级ID |
|
|
7 |
dir |
varchar |
255 |
否 |
否 |
文件夹 |
|
8 |
type |
varchar |
32 |
否 |
否 |
文件类型 |
表 4-23-user(用户账户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
user_id |
int |
是 |
是 |
用户ID |
|
|
2 |
state |
smallint |
是 |
否 |
账户状态:(1可用|2异常|3已冻结|4已注销) |
|
|
3 |
user_group |
varchar |
32 |
否 |
否 |
所在用户组 |
|
4 |
login_time |
timestamp |
是 |
否 |
上次登录时间 |
|
|
5 |
phone |
varchar |
11 |
否 |
否 |
手机号码 |
|
6 |
phone_state |
smallint |
是 |
否 |
手机认证:(0未认证|1审核中|2已认证) |
|
|
7 |
username |
varchar |
16 |
是 |
否 |
用户名 |
|
8 |
nickname |
varchar |
16 |
否 |
否 |
昵称 |
|
9 |
password |
varchar |
64 |
是 |
否 |
密码 |
|
10 |
|
varchar |
64 |
否 |
否 |
邮箱 |
|
11 |
email_state |
smallint |
是 |
否 |
邮箱认证:(0未认证|1审核中|2已认证) |
|
|
12 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
13 |
open_id |
varchar |
255 |
否 |
否 |
针对获取用户信息字段 |
|
14 |
create_time |
timestamp |
是 |
否 |
创建时间 |
表 4-24-user_car_rental(用户租车)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
user_car_rental_id |
int |
是 |
是 |
用户租车ID |
|
|
2 |
bicycle_no |
varchar |
64 |
否 |
否 |
单车编号 |
|
3 |
bicycle_name |
varchar |
64 |
否 |
否 |
单车名称 |
|
4 |
type_of_bicycle |
varchar |
64 |
否 |
否 |
单车类型 |
|
5 |
ordinary_daily_price |
double |
否 |
否 |
普通日价 |
|
|
6 |
ordinary_user |
int |
否 |
否 |
普通用户 |
|
|
7 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
8 |
user_phone |
varchar |
64 |
否 |
否 |
用户电话 |
|
9 |
rental_days |
double |
否 |
否 |
租赁天数 |
|
|
10 |
total_lease |
double |
否 |
否 |
租赁总计 |
|
|
11 |
pay_state |
varchar |
16 |
是 |
否 |
支付状态 |
|
12 |
pay_type |
varchar |
16 |
否 |
否 |
支付类型: 微信、支付宝、网银 |
|
13 |
after_sales_service_limit_times |
int |
是 |
否 |
售后限制次数 |
|
|
14 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
15 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
16 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
17 |
source_id |
int |
否 |
否 |
来源ID |
|
|
18 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-25-user_feedback(用户反馈)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
user_feedback_id |
int |
是 |
是 |
用户反馈ID |
|
|
2 |
ordinary_user |
int |
否 |
否 |
普通用户 |
|
|
3 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
4 |
feedback_title |
varchar |
64 |
否 |
否 |
反馈标题 |
|
5 |
feedback_time |
date |
否 |
否 |
反馈时间 |
|
|
6 |
feedback_picture |
varchar |
255 |
否 |
否 |
反馈图片 |
|
7 |
feedback_content |
text |
65535 |
否 |
否 |
反馈内容 |
|
8 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
9 |
examine_reply |
varchar |
16 |
否 |
否 |
审核回复 |
|
10 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
11 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-26-user_group(用户组)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
group_id |
mediumint |
是 |
是 |
用户组ID |
|
|
2 |
display |
smallint |
是 |
否 |
显示顺序 |
|
|
3 |
name |
varchar |
16 |
是 |
否 |
名称 |
|
4 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID |
|
|
8 |
register |
smallint |
否 |
否 |
注册位置 |
|
|
9 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
10 |
update_time |
timestamp |
是 |
否 |
更新时间 |
第5章系统实现
5.1 系统实现概述
本文研究的共享单车平台基于SpringBoot框架开发,旨在提供用户便捷的单车共享交易体验。系统支持用户注册和登录,发布和浏览单车信息单车信息,进行租车和交易管理。用户可以通过搜索和分类查找单车信息单车,进行交流和评价。平台还包括管理员功能,用于管理用户、单车和交易的审查和处理。整体设计追求简洁高效,以提升用户体验和平台运行效率为目标。
本设计的前端系统每个页面都具备必要的交互设计,较好地呈现了共享单车平台的基础功能。组件的构建上思路清晰,易于理解,扁平风格突出简洁,配色清新。游客注册成为普通用户即可登录系统前台实现各项操作。
前台登录界面布局如下图:
图5-1 前台登录UI界面
登录关键代码如下:
|
/** * 登录 * @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, "账号或密码不能为空"); } |
前台注册界面布局如下图:
图5-2 前台注册UI界面
注册关键代码如下:
|
/** * 注册 * @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); } |
前台首页模块是系统的主入口,为用户提供导航和重要信息展示。通过清晰的界面布局和内容展示,为用户提供良好的导航菜单、轮播图、新闻资讯和信息浏览体验,引导用户进行登录、注册及系统内相关操作。
前台首页界面布局如下图:
图5-3 前台首页UI界面
本设计的后台管理系统,主要分为会员用户和管理员两大角色,会员用户需经注册拥有系统账号才可登录系统后台。包含后台首页、单车信息管理、咨询信息管理、订单信息管理、信用评价管理、订单反馈管理等页面。整体呈左右布局,设计简洁明晰。
后台登录界面布局如下图:
图5-4 后台登录UI界面
管理员登录系统后首先进入后台首页界面,除后台导航外,可在后台首页查看地图。
后台首页界面布局如下图:
图5-5 后台首页UI界面
5.2 系统功能模块的实现
5.2.1 交流论坛模块
交流论坛功能模块是系统中的重要组成部分,旨在为用户提供开放的交流和信息分享平台。普通用户可查看发布的所有交流论坛信息详情,支持局部搜索,可进行发布内容操作,并可进行点赞、收藏和评论。
交流论坛界面布局如下图:
图5-6 交流论坛页UI界面
5.2.2 单车信息模块
单车信息模块是系统中主要的模块,主要用于用户在平台上租赁单车信息。普通和会员用户可查看发布的所有单车信息信息详情,支持单车名称、单车类型搜索,可进行点赞、收藏和评论,并可点击租车操作,填写租车信息提交租车信息。
例如,单车信息详情界面布局如下图:
图5-7 单车信息详情页UI界面
例如,单车信息租车界面布局如下图:
图5-8 单车信息租车页UI界面
单车信息租车关键代码如下:
|
@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); } |
5.2.3 个人中心模块
普通用户可对自己的个人首页、咨询信息、订单信息、信用评价、订单反馈、收藏等信息进行管控和查阅信息详情。例如,可在个人首页修改个人资料;可搜索自己提交的咨询信息,并查看相应会员用户的回复信息;可查询和支付自己的订单,并可对订单进行评价和反馈;可对自己提交的信用评价和订单反馈信息进行管理;可查看和删除自己收藏的信息。
例如,会员个人中心界面布局如下图:
图5-9 会员个人中心UI界面
例如,普通用户个人中心订单信息界面布局如下图:
图5-10 普通用户个人中心UI界面
搜索信息关键代码如下:
|
@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); } } |
5.2.4 单车信息管理模块
管理员可对所有单车信息进行管理和查看其信息详情,进行增改删查操作。会员用户可对自己的单车信息进行管理。支持单车名称、单车类型、审核状态搜索。管理员可进入详情页进行审核和回复,并可查看其评论信息,会员用户发布添加的单车信息信息需经过管理员审核通过才可显示在系统前台上
单车信息列表界面布局如下图:
图5-11单车信息列表UI界面
单车信息添加界面布局如下图:
图5-12单车信息添加UI界面
添加单车信息关键代码如下:
|
@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); } |
5.2.5 用户租车管理模块
管理员可对所有用户租车进行管理和查看其信息详情,支持单车名称、单车类型、支付状态搜索,可进行详情、售后、支付等操作。
用户租车列表界面布局如下图:
图5-13 用户租车列表界面
用户租车列表关键代码如下:
|
@RequestMapping("/get_list") public Map<String, Object> getList(HttpServletRequest request) { Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request)); return success(map); } @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); } |
5.2.6 会员反馈管理模块
管理员可对所有会员反馈进行管理和查看其信息详情,进行查询和删除操作,支持会员电话、反馈标题、审核状态搜索,并可点击评价、反馈、支付操作。会员反馈管理界面布局如下图:
图5-14 会员反馈列表UI界面
第6章系统测试
6.1 测试目的
在对该系统进行完详细设计和编码之后,就要对共享单车平台的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。世界一流的安装测试员可以增加软件品质,将软件系统错误概率降至最少。
6.2 功能测试
本系统的主要功能就是普通用户登录后,可搜索和浏览单车信息,并可进行租车,会员用户和管理员登录系统后台后可对单车信息进行管理,包括增改删查操作。测试设计如下所示:
用户登录前首先需注册成为系统用户,使用账号和密码可进行登录。用户登录功能测试用例设计如下表所示:
表6-1 用户登录功功能测试用例
|
测试编号 |
测试目的 |
测试步骤 |
预期结果 |
实际结果 |
是否通过 |
|
TC001 |
验证有效登录 |
1. 输入正确的用户名和密码 <br> 2. 点击登录按钮 |
显示登录成功,跳转至用户首页 |
登录成功,跳转至用户首页 |
通过 |
|
TC002 |
验证空用户名登录 |
1. 不输入用户名,输入正确密码 <br> 2. 点击登录按钮 |
显示用户名不能为空提示信息 |
显示用户名不能为空提示信息 |
通过 |
|
TC003 |
验证空密码登录 |
1. 输入正确用户名,不输入密码 <br> 2. 点击登录按钮 |
显示密码不能为空提示信息 |
显示密码不能为空提示信息 |
通过 |
|
TC004 |
验证错误用户名登录 |
1. 输入错误的用户名和正确密码 <br> 2. 点击登录按钮 |
显示用户名或密码错误提示信息 |
显示用户名或密码错误提示信息 |
通过 |
|
TC005 |
验证错误密码登录 |
1. 输入正确用户名和错误密码 <br> 2. 点击登录按钮 |
显示用户名或密码错误提示信息 |
显示用户名或密码错误提示信息 |
通过 |
- 单车信息模块功能测试
单车信息模块测试包括单车信息展示功能测试、单车信息添加功能测试、单车信息搜索功能测试、单车信息租车功能测试。单车信息模块测试用例如表6.2-6.4所示。
单车信息展示功能测试用例设计如下表所示:
表6-2 单车信息展示功能测试用例
|
测试编号 |
测试目的 |
测试步骤 |
预期结果 |
实际结果 |
是否通过 |
|
TC001 |
验证正常展示单车信息 |
1. 进入单车信息展示页面 <br> 2. 浏览展示的单车信息内容 |
能够正常显示单车信息内容 |
单车信息内容正常显示 |
通过 |
|
TC002 |
验证单车信息链接跳转 |
1. 进入单车信息展示页面 <br> 2. 点击单车信息链接 |
能够跳转至相应单车信息详情页面 |
成功跳转至单车信息详情页面 |
通过 |
|
TC003 |
验证搜索功能 |
1. 进入单车信息展示页面 <br> 2. 使用搜索功能搜索单车信息 |
显示符合搜索条件的单车信息列表 |
显示符合搜索条件的单车信息列表 |
通过 |
|
TC004 |
验证单车类型展示 |
1. 进入单车信息展示页面 <br> 2. 选择单车类型 |
显示该分类下的单车信息列表 |
成功显示该分类下的单车信息列表 |
通过 |
|
TC005 |
验证单车信息的评论功能 |
1. 进入单车信息详情展示页面 <br> 2. 查看单车信息并发表评论 |
评论成功显示在单车信息页面 |
评论成功显示在单车信息页面 |
通过 |
|
TC006 |
验证单车信息租车页面跳转 |
1. 进入单车信息详情展示页面 <br> 2. 点击单车信息租车按钮 |
能够跳转至相应单车信息租车页面 |
成功跳转至单车信息租车页面 |
通过 |
单车信息添加功能测试用例设计如下表所示:
表6-3 单车信息添加功能测试用例
|
测试编号 |
测试目的 |
测试步骤 |
预期结果 |
实际结果 |
是否通过 |
|
TC001 |
验证添加单车信息 |
1. 进入单车信息添加界面 <br> 2. 输入单车信息信息 <br> 3. 点击添加按钮 |
单车信息成功添加到系统页面中 |
单车信息成功添加到系统页面中 |
通过 |
|
TC002 |
验证单车信息单车类型选择 |
1. 进入单车信息添加界面 <br> 2. 选择单车类型 <br> 3. 输入单车信息信息 <br> 4. 提交单车信息信息 |
根据选择的单车信息单车类型成功添加单车信息 |
根据选择的单车信息类型成功添加单车信息 |
通过 |
|
TC003 |
验证单车信息内容输入 |
1. 进入单车信息添加界面 <br> 2. 输入正确单车信息内容和答案 <br> 3. 点击添加按钮 |
单车信息内容成功录入系统 |
单车信息内容成功录入系统 |
通过 |
|
TC004 |
验证单车信息图片上传 |
1. 进入单车信息添加界面 <br> 2. 上传单车信息相关图片 <br> 3. 点击添加按钮 |
图片成功上传并与单车信息关联 |
图片成功上传并与单车信息关联 |
通过 |
单车信息搜索功能测试用例设计如下表所示:
表6-4 单车信息搜索功能测试用例
|
测试编号 |
测试目的 |
测试步骤 |
预期结果 |
实际结果 |
是否通过 |
|
TC001 |
验证单车信息输入单车名称搜索 |
1. 进入单车信息搜索界面 <br> 2. 输入单车名称 <br> 3. 确认并搜索 |
根据选择的单车名称关键词显示相关单车信息信息 |
根据选择的单车名称关键词成功显示相关单车信息信息 |
通过 |
|
TC002 |
验证单车信息输入单车类型搜索 |
1. 进入单车信息搜索界面 <br> 2. 输入单车类型 <br> 3. 确认并搜索 |
根据选择的单车类型关键词显示相关单车信息信息 |
根据选择的单车类型关键词成功显示相关单车信息信息 |
通过 |
|
TC003 |
验证单车信息选择审核状态搜索 |
1. 进入单车信息搜索界面 <br> 2. 输入审核状态 <br> 3. 确认并搜索 |
根据选择的审核状态关键词显示相关单车信息信息 |
根据选择的审核状态关键词成功显示相关单车信息信息 |
通过 |
单车信息租车功能测试用例设计如下表所示:
表6-5 单车信息租车功能测试用例
|
测试编号 |
测试目的 |
测试步骤 |
预期结果 |
实际结果 |
是否通过 |
|
TC001 |
验证未输入订单数量,点击提交 |
1. 进入单车信息租车界面 <br> 2.未输入订单数量,点击提交 <br> 3. 点击提交按钮 |
提示请输入订单数量 |
提示请输入订单数量 |
通过 |
|
TC002 |
验证未输入日期,点击提交 |
1. 进入单车信息租车界面 <br> 2.未输入日期,点击提交 <br> 3. 点击提交按钮 |
提示请输入日期 |
提示请输入日期 |
通过 |
|
TC003 |
验证未输入订单备注,点击提交 |
1. 进入单车信息租车界面 <br> 2.未输入订单备注,点击提交 <br> 3. 点击提交按钮 |
提示请输入订单备注 |
提示请输入订单备注 |
通过 |
6.3 性能测试
- 兼容性测试
表6-6 兼容性测试用例
|
用例编号 |
测试类型 |
测试目标 |
操作过程 |
预期结果 |
|
兼容性_01 |
设备兼容性 |
测试系统在不同设备上的表现 |
在多种设备上访问系统并记录表现 |
系统在各种设备上都能正常加载和显示页面 |
|
兼容性_02 |
浏览器兼容性 |
测试系统在不同浏览器上的表现 |
在多种浏览器中访问系统并记录表现 |
系统在各种主流浏览器上都能正常加载和显示页面 |
|
兼容性_03 |
分辨率兼容性 |
测试系统在不同分辨率下的显示效果 |
在不同分辨率的设备上访问系统并记录表现 |
系统在各种分辨率下都能适应并正常显示内容 |
|
兼容性_04 |
操作系统兼容性 |
测试系统在不同操作系统上的运行情况 |
在不同操作系统上访问系统并记录表现 |
系统能够在常用操作系统上正常运行和显示 |
- 性能测试
表6-7 性能测试用例
|
用例编号 |
测试类型 |
测试目标 |
操作过程 |
预期结果 |
|
性能_01 |
负载测试 |
测试系统在正常负载下的性能 |
逐步增加用户数来模拟不同的负载情况 |
系统能够稳定处理并响应不同数量的用户请求 |
|
性能_02 |
压力测试 |
测试系统在极端负载下的性能 |
以超过系统承受极限的用户数来测试系统 |
系统能够在高负载情况下仍然保持正常运行 |
|
性能_03 |
并发测试 |
测试系统能同时处理多少并发用户请求 |
同时发送多个并发用户请求来测试系统性能 |
系统能够有效地处理多个并发请求 |
|
性能_04 |
数据量测试 |
测试系统在大数据量下的性能 |
向系统添加大量数据并测试系统响应时间 |
系统能够在大数据量情况下保持较快的响应时间 |
6.4 测试结果
全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。
简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。
第7章总结与展望
在基于SpringBoot框架下的共享单车平台设计与实现中,我们通过普通用户、会员用户以及管理员等角色的划分,实现了多层次的用户管理和权限控制。通过单车信息管理、单车类型管理等功能模块,提供了便捷高效的交易体验。同时,租车管理、售后管理、反馈管理等功能的引入,进一步增强了平台的交互性和用户满意度,有效保障了交易的公平性和平台的稳定运行。资源管理和交流管理的实施,不仅丰富了平台的内容,也促进了用户之间的信息交流与互动。
在未来的发展中,可以进一步优化系统的响应速度和用户体验,加强对用户行为的分析与挖掘,以实现个性化推荐和精准营销。同时,结合大数据和人工智能技术,提升平台的智能化水平,为用户提供更加智能化、便捷化的服务。此外,加强对安全性的防护和隐私保护,是平台未来发展的重要方向之一,保障用户信息的安全与私密性,维护良好的用户口碑和品牌形象。
通过不断优化和创新,基于SpringBoot的共享单车平台将更好地满足用户的多样化需求,成为用户信赖和选择的首要平台之一。通过本次项目,我不仅深入理解了SpringBoot框架的应用和共享单车平台的设计思路,也积累了丰富的实际开发经验。未来,我将进一步优化系统的稳定性和安全性,引入更多智能化和个性化的功能,以更好地满足用户需求和市场变化。
参考文献
- 陈勇吏,朱喜,李经,等. 共享单车促进了居民消费吗? [J]. 经济学(季刊), 2024, 24 (04): 1139-1155.
- 钟汐芮. 共享电单车平台的服务供应链模式、瓶颈及发展对策研究 [J]. 吉林广播电视大学学报, 2024, (04): 107-109+115.
- 代昀昊,王晓允,童心楚. 从共享经济到低碳经济——来自共享单车平台进驻的证据 [J]. 数量经济技术经济研究, 2024, 41 (04): 111-130.
- Ziyi S ,Meng X ,Yancun S , et al. Multi-Platform dynamic game and operation of hybrid Bike-Sharing systems based on reinforcement learning [J]. Transportation Research Part E, 2024, 181 103374-.
- Changyong S ,Yiwen L ,Yixuan L . The impact of carbon emission regulations on B2C car-sharing platforms’ operating models [J]. Asia Pacific Journal of Marketing and Logistics, 2025, 37 (3): 650-665.
- 曹光宇,周黎安,刘畅,等. 共享单车平台进驻对城市空气质量的影响 [J]. 经济学(季刊), 2023, 23 (02): 801-817.
- 马山,姜洋,郭本峰,等. 步行和非机动车交通设施环境决策支持平台研究——以天津市为例 [J]. 城市交通, 2023, 21 (01): 48-59.
- Li J ,Zhao Q ,Su J . Strategic coopetition in parking system: A game theory analysis of shared parking platforms [J]. Alexandria Engineering Journal, 2025, 119 634-646.
- Hartl B ,Penz E ,Schuessler E . Creating a trusting environment in the sharing economy: Unpacking mechanisms for trust-building used by peer-to-peer carpooling platforms [J]. Journal of Cleaner Production, 2025, 489 144661-144661.
- Li X ,Zheng Q ,Ke D . The rich get richer: Derivative revenue as a catalyst for bike-sharing subscription services [J]. Transportation Research Part E, 2025, 193 103843-103843.
- 曹光宇,刘畅,周黎安. 大数据征信与平台流量:基于共享单车免押骑行的经验研究 [J]. 世界经济, 2022, 45 (09): 130-151.
- 姜剑 ,杨艳洪 ,张龙渊. 智慧“大脑”探索蓉城治理新路 [J]. 城乡建设, 2022, (14): 57.
- 教力夫. 追求双重目标的共享单车平台线下运营服务外包策略研究[D]. 东北大学, 2022.
- 赵达. 基于共享单车大数据的智能调度平台的研究与应用[D]. 北京工业大学, 2022.
- 刘晓雪. 我国共享单车个人征信平台构建研究[D]. 大连海事大学, 2022.
- 秦红富. 基于WebGIS的昆明市共享单车运维辅助决策信息系统研究[D]. 云南大学, 2022.
- 杨珊. 共享经济与分享经济的协同发展思考 [J]. 商业文化, 2021, (30): 15-16.
- 刘宇琳. 共享单车数据分析平台的设计与实现[D]. 北京交通大学, 2021.
- 灰原. 骑电携手爱玛打造新一代电单车“开放平台”,全面赋能共享出行赛道 [J]. 中国自行车, 2021, (03): 45.
- 郭润敏. 共享单车平台定价策略研究[D]. 西南财经大学, 2021.
- 谭尚雨. 基于SOR理论的共享单车平台用户行为意愿影响因素研究[D]. 西南财经大学, 2021.
致 谢
在完成本论文的研究与写作过程中,我深切感受到了来自各方的帮助和支持。在此,我衷心地向所有给予我帮助的人表示最诚挚的感谢。
首先,我要特别感谢我的导师,不仅在学术上给予我无私的指导,而且在生活上给予我关怀和支持。是您严谨的学术态度和勤奋的工作精神将永远激励我不断前进。
其次,我要感谢所有教导过我的老师们,是你们精彩课堂和深入的指导为我的研究工作提供了宝贵的知识和灵感。
我还要感谢我的家人,他们的理解和支持是我完成学业的坚强后盾。在我遇到困难和挑战时,他们总是给予我鼓励和力量。
此外,我也要感谢我的朋友和同学们,你们的陪伴和帮助使我的研究生活更加丰富多彩。我们共同度过的时光将成为我一生中宝贵的回忆。
最后,我要感谢所有支持本项目,为本项目提供建设性意见的人员,没有他们的协助,本论文无法顺利完成。
再次感谢所有帮助和支持我的人,是你们的帮助使我的研究之路不再孤单。
点赞+收藏+关注 → 私信领取本源代码、数据库
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)