校园共享电动车租赁小程序

摘 要

高校校园面积大,学生出行需要借助自行车或电动车工具。为了解决学生私用电动车会导致的车辆乱停乱放与车辆充电可能会导致的安全问题,高校需要设计开发基于SpringBoot和Vue校园共享电动车租赁小程序,通过信息化手段规范校内电动车的使用,提升校园交通资源利用效率的同时也为学生提供更多可选的出行方式。

系统采用Vue.js框架构建前端界面,通过Spring Boot框架开发后端服务,结合RESTful API实现前后端交互。开发工具选择MyBatis来优化数据库的操作,通过Maven工具完成项目依赖的管理。设计的系统包含学生和管理员角色,学生模块功能包括账号注册登录、电动车车辆查询、电动车租赁申请创建、租赁订单查看功能。管理模块包括用户管理、电动车信息维护、车辆订单审核和归还点管理。实现的系统完成了高校电动车从租赁到管理的全部流程,建设绿色校园并为高校交通管理提供解决方案。

关键词: 校园共享电动车租赁小程序;Vue.js;Spring Boot;租赁申请

Abstract

The campus area of colleges and universities is large, and students need to use bicycles or electric bikes for travel. In order to solve the safety problems caused by students' private use of electric bikes, such as random parking and charging of vehicles, colleges and universities need to design and develop a campus shared electric bike rental mini-program based on SpringBoot and Vue. Through information technology means, the use of electric bikes on campus can be standardized, improving the utilization efficiency of campus traffic resources while also providing students with more alternative travel methods.

The system builds the front-end interface by using the Vue.js framework, develops the back-end services through the Spring Boot framework, and realizes the interaction between the front-end and back-end by combining RESTful API. The development tool is MyBatis to optimize the operation of the database, and the management of project dependencies is accomplished through the Maven tool. The designed system includes the roles of students and administrators. The functions of the student module include account registration and login, electric vehicle query, creation of electric vehicle rental applications, and viewing of rental orders. The management module includes user management, electric vehicle information maintenance, vehicle order review and return point management. The implemented system has completed the entire process from leasing to management of electric vehicles in colleges and universities, building a green campus and providing solutions for traffic management in colleges and universities.

Key words: Campus Shared Electric Bike Rental Mini-program; Vue.js; Spring Boot; Lease application

目录

第1章 绪论 1

1.1 课题背景 1

1.2课题研究意义 1

1.3主要内容 1

第2章 系统相关技术介绍 3

2.1 Vue.js框架 3

2.2 springboot框架 3

2.3 RESTful API 3

2.4 MyBatis 3

2.5 Maven 4

第3章 系统分析 5

3.1 总体需求目标分析 5

3.2 系统的功能需求 5

3.2.1 用户模块功能设计 5

3.2.2 管理模块功能设计 6

3.3可行性分析 6

3.3.1 技术可行性 6

3.3.2 操作可行性 6

第4章 系统设计 8

4.1 系统功能模块设计 8

4.2数据库结构设计 8

4.2.1 系统实体关系图 8

4.2.2 数据表设计 10

第5章 系统功能模块实现 12

5.1系统前台模块 12

5.1.1系统首页 12

5.1.2电动车商品列表 12

5.1.3车辆租赁申请 12

5.1.4 用户账号注册 13

5.2系统用户模块 13

5.2.1 用户账号登录 13

5.2.2 用户租赁记录 14

5.2.3电动车归还 14

5.3系统管理模块 15

5.3.1用户账号管理 15

5.3.2电动车信息管理 15

5.3.3电动车租赁审核 16

5.3.4租赁订单管理 16

5.3.5 电动车报修管理 17

第6章 系统测试 18

6.1系统测试方法 18

6.2系统测试步骤 18

6.3系统功能测试 18

6.4系统测试结果 19

总结 20

参考文献 21

致 谢 22

第1章 绪论

1.1 课题背景

大学校园面积普遍较大,学生宿舍与教学、图书馆、食堂等功能区之间的距离较远,学生如果步行需要花费较长的时间。高校也会提供公共交通工具来为学生的出行提供便利,但是公共的校车服务只能够覆盖主干道,而且发车的频次非常有限,因此无法满足所有学生的出行需求。

学生自行购买自行车、电动车类的交通工具虽然能够让学生的出行更加方便,但是车辆停放问题、电动车充电问题会给学校的管理工作带来困扰。统计显示学生购买的个人电动车每日使用时长仅为1-2小时其余时间车辆会处于闲置状态,车辆资源的利用效率偏低。

相比自行车工具而言电动车作为短距离交通工具,它的爬坡能力和载重能力都比较好,即使校园当中地形起伏较大也能够很好的适应。电动车的续航里程通常在40-60公里之间,能够满足学生工作日的出行需求。并且电动车使用时产生的噪音污染小,这也符合校园对于安静的学习环境的需求。学生群体的消费观是非常前卫的,他们对于共享经济理念有良好的接受度。这种消费习惯也为电动车租赁模式在高校的推广创造了有利条件。

1.2课题研究意义

校园管理部门需要对进出校内的车辆进行管控,如果严格限制个人电动车进出校园会影响师生的正常出行,如果放松管制则会导致校园内发生交通秩序混乱的情况,存在安全隐患。提供备案后的公共电动车设备,能够减少校园管理部门的监管盲区,更好的维护校园环境。

开发校园共享电动车租赁小程序,可以为校园师生的出行提供更有效的解决方案。当前,高校学生在使用电动车时会发生随意停发车辆、违规充电的问题,面对校内交通资源管理滞后所导致的问题,需要设计租赁管理系统来优化电动车资源的分配,降低私用电动车带来的安全风险。

通过将电动车辆的租赁、归还、维护等环节进行线上整合的方式,可以减轻管理员人员进行车辆调度、状态监控和故障处理方面的工作压力。为校园内部的交通管理工作提供可行的实践方案,也为其他高校构建类似系统提供参考。

1.3主要内容

第一章绪论部分分析了校园共享电动车租赁小程序的课题背景与研究意义,介绍本次研究的主要目标。

第二章介绍校园共享电动车租赁小程序开发使用的核心技术,包括Vue.js、Spring Boot等技术的优势介绍。

第三章从总体目标出发,分析校园共享电动车租赁小程序的功能需求,评估技术与操作方面的可行性。

第四章详细设计系统功能模块与数据库结构,绘制校园共享电动车租赁小程序使用的实体关系图并规划数据表。

第五章实现各功能模块,包括校园共享电动车租赁小程序的前台页面、用户操作和管理功能,展示具体的开发成果。

第六章通过功能测试的方式验证校园共享电动车租赁小程序的稳定性,总结测试结果与优化方向。

第2章 系统相关技术介绍

2.1 Vue.js框架

Vue.js可以支持组件化开发的前端框架,校园共享电动车租赁小程序前端开发使用Vue.js框架,可以更快的构建动态交互界面。Vue.js可以通过响应式数据绑定的方式来简化页面的状态管理工作,更便于学生端进行车辆列表和租赁申请页面内容的查询。

Vue.js的组件化开发模式可以将租赁订单查询、电动车管理等功能封装为独立组件来使用,提高已编写的代码的复用性。考虑到校园共享电动车租赁小程序需要能够快速的响应用户操作,因此利用Vue.js的虚拟DOM技术来优化系统的渲染性能,解决前端开发中DOM操作会产生的相关问题。

2.2 springboot框架

Spring Boot集成了自动配置和内置服务器,是基于Java的后端框架。校园共享电动车租赁小程序的后端开发中选用Spring Boot框架,可以快速的构建所需要的服务。Spring Boot当中内置了Tomcat服务器可以帮助简化部署流程,节省项目需要消耗的开发时间。

针对校园共享电动车租赁小程序需要完成的用户注册、订单管理和车辆审核等任务,可以利用Spring Boot的依赖注入性能来提高不同模块间的协作效率。MVC架构可以实现业务逻辑与数据处理的分离,解决后端开发会遇到的代码耦合度问题。Spring Boot与MyBatis的集成可以方便实现数据库操作任务,确保租赁订单和车辆状态可以实时更新。

2.3 RESTful API

RESTful API是基于HTTP协议的接口设计规范,系统开发可以采用RESTful API设计接口,实现前后端通信任务。RESTful API通过HTTP方法组织接口,优化学生端和管理端的请求逻辑。

校园共享电动车租赁小程序需要可以支持网页和移动端的多端访问需求,RESTful API的无状态特性可以确保每次请求都能够被独立处理,解决传统接口设计中状态管理混乱的问题。通过JSON数据格式与Vue.js前端的适配,便于完成订单状态查询和车辆信息更新的任务。

2.4 MyBatis

MyBatis是可以支持SQL映射和动态查询的持久层框架,校园共享电动车租赁小程序的数据库操作需要利用MyBatis来完成SQL映射。MyBatis通过XML来定义SQL语句,满足系统对于订单查询、车辆状态更新和报修记录管理中需求。针对系统存在的开发和维护的特点,可以利用MyBatis的动态SQL功能简化条件查询的实现。

2.5 Maven

Maven是可以进行依赖管理和自动化构建的项目管理工具,校园共享电动车租赁小程序的开发需要利用Maven作为项目管理工具来提升开发效率。Maven可以通过POM文件来统一管理Spring Boot、MyBatis等第三方库的版本,实现自动下载并更新依赖的操作。

针对系统工作阶段可能涉及的多模块开发的问题,需要利用Maven进行标准化工作。确保即使在不同的开发环境中也可以快速搭建完整的项目结构。

第3章 系统分析

3.1 总体需求目标分析

校园共享电动车租赁小程序的设计,是为了提供给学生便捷的校园出行服务。系统需要实现电动车租赁业务的规范化,解决大学校园内部私用电动车带来各种安全隐患。

系统需要支持学生快速查询可用车辆、提交租赁申请,并完成电动车归还的操作。针对管理员需要提供电动车车辆信息维护、电动车租赁订单的审核和归还点管理功能,保证所有使用数据的安全,可以适应高校高峰时段的租车需求。

3.2 系统的功能需求

3.2.1 用户模块功能设计

用户注册功能,支持学生通过手机号码和学号创建校园共享电动车租赁小程序的可用账户,设置密码来保障个人信息的安全。

用户登录功能,支持学生通过用户账号和密码来验证在校园共享电动车租赁小程序的身份,保障系统访问权限。

车辆查询功能,支持学生通过校园共享电动车租赁小程序前台浏览可以申请租赁的电动车型号编号、位置和租金信息。

租赁申请功能,支持用户通过校园共享电动车租赁小程序选择电动车车辆并输入租赁时长,通过页面显示计算的费用并生成租赁订单;

订单管理和归还功能,支持用户查看在校园共享电动车租赁小程序创建的电动车历史租赁记录、当前订单状态,并在归还时上传电动车的车辆状况信息。

图3-1 用户角色用例图

3.2.2 管理模块功能设计

用户账号管理功能,支持管理员查看校园共享电动车租赁小程序所有账户信息,禁用异常账户。

车辆信息管理功能,支持进行校园共享电动车租赁小程序电动车信息的添加、修改和删除操作,维护车辆型号编号、位置和状态。

租赁审核功能,支持管理员审核学生提交的租赁申请,确认订单的有效性并分配对应的车辆。

订单管理功能,支持订单查询功能,让管理员能够按照校园共享电动车租赁小程序记录的租赁订单的创建者对所有记录进行筛选。

归还点管理功能,支持管理员查看学生提交的归还记录,便于更新校园共享电动车租赁小程序登记的电动车的归还状态,安排人员进行车辆回收作业。

图3-2 管理角色用例图

3.3可行性分析

3.3.1 技术可行性

校园共享电动车租赁小程序的开发选用Vue.js作为前端框架,实现的页面可以适配学生和管理员的操作需求。使用Spring Boot作为后端框架开发系统功能,通过MyBatis技术处理订单和车辆信息查询业务,Maven工具简化了系统依赖管理的构建过程。选用的这些工具可以保证开发环境的一致性,因此开发过程具备技术可行性。

3.3.2 操作可行性

校园共享电动车租赁小程序的用户界面非常直观,学生可以通过页面导航完成电动车查询、租赁申请和归还的功能。管理员模块设计的功能,便于工作人员处理订单的审核任务。高校学生与管理人员均具备基本的互联网操作能力,因此项目的开发具备操作可行性。

第4章 系统设计

4.1 系统功能模块设计

校园共享电动车租赁小程序的用户模块面向学生,设计的功能包含电动车车辆查询、租赁申请、订单查看功能,便于学生完成租车流程。管理模块面向系统工作人员,提供的功能包括车辆信息维护、租赁订单审核、订单统计和归还点管理功能。通过将系统各模块设计为松耦合结构的方式,可以让学生与管理模块间通过明确的功能划分进行协作运行,功能模块设计如图4-1所示。

图4-1电动车租赁系统功能结构

4.2数据库结构设计

4.2.1 系统实体关系图

校园共享电动车租赁小程序的数据库结构设计采用关系型数据库MySQL,系统当中包含用户、电动车、电动车租赁申请等多个数据实体,本节对实体对应的属性以及实体的主键进行分析。

用户实体设计如图4-2所示。

图4-2 用户实体图

电动车实体设计如图4-3所示。

图4-3 电动车实体图

租赁订单实体设计如图4-4所示。

图4-4 租赁订单实体图

报修实体设计如图4-5所示。

图4-5 报修实体图

租赁公告实体设计如图4-6所示。

图4-6 租赁公告实体图

4.2.2 数据表设计

校园共享电动车租赁小程序当中的用户数据表、电动车数据表、电动车租赁数据表、电动车报修数据表和租赁公告数据表的设计,是为了支持系统核心功能的正常运行,数据表设计阶段需要对字段类型进行设计,保障系统可以正常提供服务。

1、用户数据表,存储学生和管理员的基本信息,确保账户管理功能可以正常使用,如表4-1所示。

表4-1 用户数据表

编号

字段名称

字段说明

字段与长度

备注

1

userIndex

索引

Int

主键

2

userAccount

账号

Int

3

userName

姓名

Varchar

4

userGender

性别

Varchar

5

userProfile

头像

Varchar

6

userContact

联系方式

Int

7

userId

身份证号

Varchar

8

userEmail

邮箱

Varchar

2、电动车数据表,该表记录高校电动车租赁管理系统中的所有电动车的信息,可以对车辆的状态进行跟踪,如表4-2所示。

表4-2 电动车数据表

编号

字段名称

字段说明

字段与长度

备注

1

vehicleIndex

索引

Int

主键

2

vehicleName

电动车名称

Int

3

vehicleElectric

电动车品牌

Varchar

外键

4

vehiclePicture

图片

Varchar

5

vehicleLicense

车牌号

Varchar

6

vehicleDaily

日租价格

Int

7

vehicleRelease

发布时间

Datetime

8

vehicleDetails

电动车详情

Varchar

9

vehicleRemarks

备注

Varchar

3、电动车租赁数据表,该表存储租赁订单信息用户与车辆的租赁关系,如表4-3所示。

表4-3电动车租赁数据表

编号

字段名称

字段说明

字段与长度

备注

1

leasingOrder

订单编号

Int

主键

2

leasingVehicle

电动车名称

Int

外键

3

leasingLicense

车牌号

Varchar

外键

4

leasingDaily

日租价格

Int

5

leasingLease

租赁天数

Int

6

leasingTotal

总价格

Int

7

leasingLease

租赁日期

Datetime

8

leasingAccount

账号

Varchar

外键

9

leasingName

姓名

Varchar

10

leasingContact

联系方式

Int

11

leasingWhether

是否支付

char

4、电动车报修数据表,该表记录车辆故障和维修信息,提供管理员车辆报修管理和维护跟踪的功能,如表4-4所示。

表4-4 电动车报修数据表

编号

字段名称

字段说明

字段与长度

备注

1

repairIndex

索引

Int

主键

2

repairNumber

订单编号

Int

3

repairName

电动车名称

Varchar

外键

4

repairElectric

电动车品牌

Varchar

5

repairLicense

车牌号

Varchar

6

repairLocation

报修地点

Varchar

7

repairReporting

报修时间

Datetime

8

repairAccount

账号

Int

外键

9

repairName

姓名

Varchar

5、租赁公告数据表,该表存储系统发布的通知信息,向用户传达租赁规则,如表4-5所示。

表4-5 租赁公告数据表

编号

字段名称

字段说明

字段与长度

备注

1

noticeNumber

公告编号

Int

主键

2

noticeTitle

公告标题

Varchar

3

noticepicture

公告图片

Varchar

4

noticeContent

公告内容

Varchar

5

noticeRelease

发布日期

Datetime

第5章 系统功能模块实现

5.1系统前台模块

5.1.1系统首页

首页主要实现了展示导航选项和用户身份验证的功能,用户可以通过页面的横向菜单栏,快速选择需要使用的功能。系统通过前端框架将菜单选项与页面内容进行关联,点击后触发页面的跳转逻辑。前台页面的轮播图与菜单采用了自适应设计方式,可以根据屏幕大小调整页面布局,页面如图5-1所示。

图5-1 系统首页

核心代码如下:

@RequestMapping(value = "/getHomePageData", method = { RequestMethod.GET })

public String getHomePageData(String bikeCategory, Model model) {

// 如果车辆类别为空,则获取默认推荐车辆

if (StringUtils.isEmpty(bikeCategory)) {

bikeCategory = SystemConfig.getRecommendedBikes();

}

// 获取热门电动车列表

List<ElectricBike> popularBikes = bikeService.getPopularBikes(bikeCategory);

model.addAttribute("popularBikes", popularBikes);

// 添加车辆统计信息

RentalStatistics statistics = statisticsService.getCurrentStatistics();

model.addAttribute("rentalStats", statistics);

return "homepage";

}

5.1.2电动车商品列表

电动车商品列表部分实现的功能,包括展示所有电动车信息、提供租赁申请入口的功能。根据学生的查看需求,校园共享电动车租赁小程序会利用前端界面的卡片式布局设计,呈现每款车辆。每款电动车卡片点击后,触发车辆租赁申请流程,跳转到详情页面当中,列表页面如图5-2所示。

图5-2 电动车列表页

核心代码如下:

@RequestMapping("/getBikeList")

public Map<String, TreeMap<String, BikeDetailVO>> getBikeListByCategory() {

Map<String, TreeMap<String, BikeDetailVO>> resultData = new HashMap<>();

// 从缓存获取电动车信息

Map<String, HashMap<Long, BikeDetailVO>> cachedBikeData = bikeCache.getCachedBikeData();

cachedBikeData.forEach((category, bikeMap) -> {

TreeMap<String, BikeDetailVO> sortedBikeMap = new TreeMap<>();

// 按价格排序电动车信息

bikeMap.forEach((bikeId, bikeDetail) -> {

// 只显示可用状态的电动车

if (bikeDetail.getStatus() == BikeStatus.AVAILABLE) {

sortedBikeMap.put(bikeId.toString(), bikeDetail);

}

});

resultData.put(category, sortedBikeMap);

});

return resultData;

}

5.1.3车辆租赁申请

车辆租赁申请模块的主要功能包括收集用户租赁信息、提供提交选项。页面设计的表单区域,包含租赁时长、开始时间等字段的输入栏。还会在前端界面设置输入验证规则,提示用户填写完整的租赁申请信息。提交选项会在用户点击提交时,触发数据处理流程,系统需要可以将表单数据传递到后端服务器。在提交失败时通过当前显示错误信息引导用户修正输入,页面如图5-3所示。

图5-3 申请信息编辑页

核心代码如下:

@RequestMapping("/submitRental")

public String submitRentalOrder(String bikeName,

@RequestParam(required = false, defaultValue = "1") int rentalDays,

@RequestParam(required = false, defaultValue = "false") boolean isInsured,

Model model) {

// 验证电动车名称

if (StringUtils.isEmpty(bikeName)) {

bikeName = rentalService.getDefaultBikeName();

}

// 检查库存和可用性

ElectricBike selectedBike = bikeService.getBikeByName(bikeName);

if (selectedBike == null || !selectedBike.isAvailable()) {

model.addAttribute("error", "所选电动车暂不可用");

return "error";

}

// 计算租赁费用

BigDecimal totalCost = calculateRentalCost(selectedBike, rentalDays, isInsured);

// 创建租赁订单

RentalOrder order = rentalService.createRentalOrder(bikeName, rentalDays, isInsured, totalCost);

model.addAttribute("rentalOrder", order);

return "rental-confirmation";

}

5.1.4 用户账号注册

用户账号注册模块主要功能包括收集用户注册信息、提供注册确认。同时需要将表单数据发送至后端服务器,对用户输入的账号注册信息,执行唯一性检查来避免发生用户名重复注册的情况。页面如图5-4所示。

图5-4 用户账号注册页

核心代码如下:

public void processUserRegistration() throws Exception {

// 获取注册配置信息

String configPath = ResourceUtil.getConfigPath("./registration/");

String tempDir = new File(configPath).getParentFile().getAbsolutePath() + "/temp/";

// 记录注册处理时间

StopWatch registrationTimer = new StopWatch();

registrationTimer.start();

// 执行用户注册逻辑

try {

// 验证用户信息

validateUserInfo();

// 创建用户账号

createUserAccount();

// 发送欢迎邮件

sendWelcomeEmail();

} finally {

registrationTimer.stop();

logger.info("用户注册处理耗时: " + registrationTimer.getTotalTimeMillis() + "ms");

}

}

5.2系统用户模块

5.2.1 用户账号登录

用户账号登录主要实现的功能包括用户身份验证和登录按钮操作。页面会利用实时检查机制,检测用户的输入是否符合基本规则。系统通过前端界面设置输入提示,提示用户按照格式输入账号密码信息,检查字段正常后将用户输入数据暂存于临时存储区,等待后续验证。页面如图5-5所示。

图5-5 系统登录页

核心代码如下:

public static PaymentOption createPaymentOption(Class<?> userType, boolean isPremium) {

PaymentConfig paymentConfig = new PaymentConfig();

// 根据用户类型配置支付方式

if (isPremium) {

paymentConfig.setAllowCreditCard(true);

paymentConfig.setAllowWechatPay(true);

paymentConfig.setAllowAlipay(true);

} else {

paymentConfig.setAllowWechatPay(true);

paymentConfig.setAllowAlipay(true);

}

// 设置支付配置

paymentConfig.setSourceAccount(getDefaultAccount());

paymentConfig.setTargetAccount(getMerchantAccount());

paymentConfig.setUseConverter(true);

return PaymentOption.fromConfig(paymentConfig);

}

5.2.2 用户租赁记录

用户租赁记录管理模块的主要功能包括展示历史租赁记录、支持状态更新。通过租赁记录模块的数据表,可以提取到用户相关的车辆编号、租赁时长和状态等租赁数据。页面会利用动态刷新机制,来根据用户账号自动加载相关记录。系统会将用户的操作发送至后端服务器,根据用户执行状态变更租赁记录的处理逻辑,页面如图5-6所示。

图5-6 用户租赁记录列表页

核心代码如下:

public void doUserLoginFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

// 检查请求和响应有效性

if (request != null && !response.isCommitted()) {

// 设置字符编码

response.setCharacterEncoding("UTF-8");

// 验证用户登录状态

HttpServletRequest httpRequest = (HttpServletRequest) request;

String userToken = httpRequest.getHeader("Authorization");

if (StringUtils.isNotEmpty(userToken) && tokenService.validateToken(userToken)) {

// 用户已登录,继续处理请求

chain.doFilter(request, response);

} else {

// 用户未登录,重定向到登录页面

HttpServletResponse httpResponse = (HttpServletResponse) response;

httpResponse.sendRedirect("/login");

}

}

}

5.2.3电动车归还

用户端的电动车归还模块实现的主要功能,包括录入归还信息、提交归还请求。设计表单录入归还信息的功能,引导用户填写归还时间等详情内容。通过前端界面提供的下拉选项自动填充不可修改的编号类数据。提交归还请求需要将用户填写的表单数据发送至后端服务器,通过执行与租赁记录进行比对的方式确认车辆状态。页面如图5-7所示。

图5-7 电动车归还信息登记页

核心代码如下:

public RentalDetailPage confirmRentalDetail(@Validated Integer userId, String rentalInfo) {

// 根据用户ID获取活跃租赁记录

ActiveRental activeRental = rentalService.getActiveRentalByUserId(userId);

if (activeRental == null) {

throw new BusinessException(ErrorCode.RENTAL_NOT_FOUND, "未找到有效的租赁记录");

}

// 计算租赁费用

BigDecimal totalFee = calculateReturnFee(activeRental);

// 检查电动车状态

ElectricBike returnedBike = bikeService.getBikeById(activeRental.getBikeId());

if (returnedBike.needsMaintenance()) {

// 如果需要维护,标记为维护状态

returnedBike.setStatus(BikeStatus.MAINTENANCE);

bikeService.updateBike(returnedBike);

}

// 设置归还信息

activeRental.setReturnTime(LocalDateTime.now());

activeRental.setTotalFee(totalFee);

activeRental.setReturnNotes(rentalInfo);

return new RentalDetailPage(activeRental);

}

5.3系统管理模块

5.3.1用户账号管理

管理端的用户账号管理模块主要实现用户列表的展示及账户状态切换的功能。展示用户列表的功能,需要从后端数据库提取所有用户数据。通过滚动加载的方式,支持管理员查看完整的大量用户记录。模块提供账户状态管理功能,通过每条用户记录右侧的删除功能按钮,管理员可以移除系统用户,禁止该账号使用前台电动车租赁的功能,页面如图5-8所示。

图5-8 用户账号管理功能

核心代码如下:

public void classifyElectricBike(char bikeType) {

// 检查数组容量

if (bikeCount == bikeCategories.length) {

// 扩容数组

char[] newCategoryArray = new char[bikeCategories.length * 2];

System.arraycopy(bikeCategories, 0, newCategoryArray, 0, bikeCount);

bikeCategories = newCategoryArray;

}

// 添加新的车辆类型

bikeCategories[bikeCount++] = bikeType;

// 记录分类日志

logger.info("添加电动车分类: " + bikeType + ", 当前分类总数: " + bikeCount);

}

5.3.2电动车信息管理

后台电动车信息管理模块主要实现车辆信息的展示、车辆状态的调整两个功能。电动车管理列表利用动态更新机制,根据管理员操作刷新显示在页面的数据。管理员通过该模块进行车辆状态调整,系统将管理员操作指令传输至后端服务器,在这之前还会执行权限验证确认改账号的合法性,页面如图5-9所示。

图5-9 电动车信息管理功能

核心代码如下:

@Override

public List<ElectricBikeInfo> getAllElectricBikes(Class<?> queryCondition) {

// 调用父类方法获取基础数据

List<BaseVehicleInfo> baseVehicleList = super.getBaseVehicleList(queryCondition);

// 转换为电动车信息列表

List<ElectricBikeInfo> bikeInfoList = new ArrayList<>();

for (BaseVehicleInfo vehicle : baseVehicleList) {

// 只处理电动车类型

if (vehicle.getVehicleType() == VehicleType.ELECTRIC_BIKE) {

ElectricBikeInfo bikeInfo = new ElectricBikeInfo(vehicle);

// 添加电动车特有信息

bikeInfo.setBatteryLevel(vehicle.getBatteryLevel());

bikeInfo.setMaxRange(vehicle.getMaxRange());

bikeInfo.setChargingStatus(vehicle.getChargingStatus());

bikeInfoList.add(bikeInfo);

}

}

return bikeInfoList;

}

5.3.3电动车租赁审核

电动车租赁审核模块实现的主要功能,包括展示待审核租赁申请、审核状态变更。页面从租赁申请数据表提取所有待审核的租赁请求数据,每条申请记录旁设置了审核按钮,管理员点击后触发状态调整请求。服务器根据审核结果更新申请状态,如"通过"或"拒绝",变更成功后页面显示新状态,页面如图5-10所示。

图5-10 电动车租赁审核

核心代码如下:

public RentalAuditData(List<String> rentalIds, String auditComment) {

this.rentalIdList = rentalIds;

// 验证租赁ID列表

String validationResult = ValidationUtils.validateRentalIds(rentalIdList);

if (StringUtils.isNotEmpty(validationResult)) {

// 如果验证失败,清空列表

this.rentalIdList = Collections.emptyList();

logger.warn("租赁ID验证失败: " + validationResult);

}

// 创建审核处理器

this.auditProcessor = new AuditProcessor(rentalIdList, auditComment);

// 初始化审核状态

this.initializeAuditStatus();

}

5.3.4租赁订单管理

租赁订单管理模块的主要功能包括展示订单列表、订单状态查询、订单操作。管理员根据需求查看电动车的当前状态。系统提供查找按钮,允许管理员输入电动车名称、用户名称进行内容过滤。校园共享电动车租赁小程序服务器根据筛选条件从数据库中提取匹配的订单数据返回给页面显示,页面如图5-11所示。

图5-11 租赁订单管理

核心代码如下:

public AuditProcessor(String orderId, String reviewerName, Properties auditConfig) {

// 创建安全代理处理审核

this.auditProxy = new SecurityProxy(auditConfig, this);

if (StringUtils.isNotEmpty(orderId)) {

// 解析审核人员列表

this.reviewerList = Arrays.asList(reviewerName.split(","));

if (this.reviewerList.size() == 1) {

// 单人审核模式

this.primaryReviewer = reviewerName;

} else {

// 多人审核模式,需要所有人同意

this.auditMode = AuditMode.MULTI_REVIEWER;

}

}

// 初始化审核流程

this.initializeAuditProcess();

}

5.3.5 归还点管理

归还点管理模块实现的主要功能包括展示归还记录、归还状态更新、归还详情查看功能。归还点信息是学生用户通过电动车归还模块,提交的登记信息。归还点记录包括归还编号、电动车车辆信息和归还时间,系统通过时间作为排序条件显示所有记录。页面如图5-12所示。

图5-12 归还点管理模块

核心代码如下:

@PostMapping(value = "/returnPoint")

@ResponseBody

public String returnPoint(Long bikeId, Integer pointType) {

// 创建归还记录

ReturnRecord record = new ReturnRecord();

record.setBikeId(bikeId);

record.setPointType(PointType.fromId(pointType));

record.setReturnTime(LocalDateTime.now());

record.setStatus(ReturnStatus.PENDING);

// 获取电动车信息并更新状态

ElectricBike bike = bikeService.getBikeById(bikeId);

if (bike != null) {

bike.setStatus(BikeStatus.RETURNED);

bikeService.updateBike(bike);

// 通知回收人员

returnService.notifyReturnTeam(record);

}

// 保存归还记录

returnService.saveReturnRecord(record);

return JSON.toJSONString(record);

}

第6章 系统测试

6.1系统测试方法

校园共享电动车租赁小程序的测试,可以验证系统在实际校园环境下的工作表现。通过功能验证测试的方式,可以检查学生端电动车租赁申请、管理员端电动车与申请信息的处理等功能是否符合需求,模拟不同用户的操作可以获得更准确的测试结果。测试过程主要利用手动操作的方式,记录异常情况并分析问题的根源,确保系统可以满足高校租赁管理的实际需要。

6.2系统测试步骤

1、准备阶段开始搭建测试环境,完成校园共享电动车租赁小程序配置服务器的工作。

2、设计涵盖学生模块车辆租赁申请、管理员模块审核订单及报修处理等功能的测试用例,明确每项测试的输入和预期输出。

3、按照用例逐一操作执行系统测试工作,记录系统的反馈情况。

4、收集测试结果,整理测试记录文档,根据系统人分开分析问题并进行系统业务优化。

6.3系统功能测试

校园共享电动车租赁小程序的功能测试用例设计,围绕系统核心功能模块进行研究。测试过程结合个人操作经验,模拟校园场景执行测试,记录实际结果来评估系统功能实现效果,用例设计如表6-1所示。

表6-1 系统测试用例

模块

用例名称

用例描述

实际结果

电动车商品列表

学生查看可选车辆

输入筛选条件"位置:教学楼",查看是否显示可用车辆

显示3辆可用车辆,页面正常响应

车辆租赁申请

学生提交租赁申请

选择电动车,设置租赁时长为2小时,提交申请

申请提交成功,订单编号可以自动生成

用户租赁记录

查询电动车租赁申请的历史订单

输入用户名"zhangsan",查看过去一周的租赁记录

显示2条记录,内容包含车辆编号和时间

电动车归还

学生提交电动车归还信息

输入订单号"174945512428",上传车辆状态为"良好"

归还成功,车辆状态更新成功

用户账号管理

管理员修改用户信息

选择用户"lisi",更改电话号码为"13812345678"

信息修改成功,页面刷新显示新号码

电动车信息管理

管理员添加新车辆

输入车辆编号"A005"及型号"新款电动车",保存

信息添加成功,列表中出现新车辆

电动车租赁审核

管理员审核电动车租赁申请

选择订单"174945512428",点击"通过"审核

电动车租赁申请审核通过,状态更新

租赁订单管理

统计订单数量

查询2025年6月订单总数

显示完整的10条订单,订单统计结果准确

6.4系统测试结果

校园共享电动车租赁小程序的测试结果显示,系统整体运行稳定,满足校园租赁需求。车辆租赁申请模块测试中,每次提交申请均成功生成订单。用户租赁记录模块查询历史订单,所有记录可以被完整的加载。管理端测试电动车信息管理功能无误,报修管理模块的记录可以被正常处理。总体来看,高校电动车租赁管理系统功能可靠。

总结

面对高校电动车租赁需求增长的现实情况,开发服务高校的校园共享电动车租赁小程序。研究阶段通过需求分析和系统设计的方式,确定了需要实现的学生端、管理端的具体功能。开发过程根据需求设计结果进行处理,采用Vue.js框架构建校园共享电动车租赁小程序前端界面,通过Spring Boot框架开发后端服务,通过RESTful API处理系统的数据交互任务。实现的功能包括电动车查询、电动车租赁申请、订单查看和电动车车辆归还,电动车信息维护、电动车租赁审核等内容。

测试阶段的工作结果显示,系统的租赁申请和订单管理模块功能正常,整体稳定性较高。系统的存在可以优化了校园当中电动车资源的利用率,初步实现了绿色出行和智能管理的目标。

但是项目开发阶段也遇到了开发问题,前端Vue.js页面渲染电动车图片信息时,初始加载速度较慢。后续优化了代码优先加载首屏数据,成功将加载时间缩短。后续还需要研究增强系统安全性,扩展小程序端的支持便于适应更多高校场景需求。解决问题的过程系统的性能,还让我在实际开发中积累了优化技术和用户体验的经验。

参考文献

韦珍娜,陈宇佳.基于Springboot的服装租赁系统设计[J].电脑编程技巧与维护,2025,(01):35-38.

余湘,王冠群,罗凯文.智慧共享车位租赁系统研究[J].中国新通信,2024,26(08):28-30.

肖安琪.汽车租赁系统的设计与实现[J].山西大同大学学报(自然科学版),2024,40(02):54-58.

刘媛媛.基于MVC的母婴用品租赁系统的设计与实现[J].电脑知识与技术,2023,19(01):53-57.

张佳佳.房屋租赁推荐系统的研究与实现[D].西京学院,2022.

闫银娟.基于SSM的房屋租赁系统的设计与实现[J].电脑知识与技术,2022,18(33):38-41.

韩永朋.基于微服务架构的汽车租赁推荐系统设计与实现[D].华东师范大学,2022.

邹永键.基于J2EE的融资租赁系统的设计与实现[D].厦门大学,2022.

刘文卓.基于区块链的房屋租赁系统的设计与实现[D].华中科技大学,2022.

刘盛,王占云.基于SpringBoot+Vue微服务架构的科研样本库管理系统的设计与实现[J].信息系统工程,2025,(04):4-7.

王小豹,谢杰,李泽峰.基于SpringBoot框架的图书馆座位预约系统的设计与实现[J].信息记录材料,2025,26(04):55-59.

赵鲁瑜,康埕铭,廖朦朦,等.基于共享汽车租赁市场的管理系统设计与实现[J].内蒙古科技与经济,2021,(22):86-87.

王丽丽.电动汽车分时租赁系统建模仿真与分析[D].西南财经大学,2021.

唐苏旭.基于SpringBoot的房屋租赁系统的设计与实现[D].首都经济贸易大学,2021.

姚佰允,张豪,杜瑞庆.基于SpringBoot与Vue的学院人员管理系统设计与实现[J].无线互联科技,2025,22(02):78-83.

李阳,骆宏亮,陈春.一种创新创业实验室租赁系统设计与实现[J].科学技术创新,2021,(16):80-81.

致 谢

大学带给了我知识积累的机会,课堂学习让我掌握了编程技能,校园生活则培养了我面对挑战的韧性。衷心感谢指导老师在论文撰写过程中的悉心指导,老师在技术选型和系统设计上提供了很多专业的建议。在论文结构设计和内容的完善上老师给予了我非常详细的修改意见,确保了论文的质量。正是由指导老师的耐心鼓励,才让我能够顺利完成这项研究工作。

非常感谢学校为我提供了优质的学习环境,让我可以在学术研究与实践开发中有所成长。每一位老师都以他们的智慧和热情,点燃我对知识的热爱。正是因为学校和老师们的培养,我才能在大学阶段收获许多知识,为未来的人生奠定坚实基础。

在这个即将告别校园的时刻,我怀着感恩之心向学校和老师们致以诚挚祝福。

相关推荐
侃谈科技圈4 小时前
5G网络仿真软件哪个更高效?Ranplan两款核心产品深度解析
小程序
小羊Yveesss4 小时前
微信小程序年度费用全拆解:SaaS、开源与定制开发的3年成本实测对比
微信小程序·小程序·开源
2501_9160074721 小时前
iOS开发中抓取HTTPS请求的完整解决方法与步骤详解
android·网络协议·ios·小程序·https·uni-app·iphone
jay神1 天前
基于微信小程序课外创新实践学分认定系统
java·spring boot·小程序·vue·毕业设计
00后程序员张1 天前
Windows 下怎么生成 AppStoreInfo.plist?不依赖 Xcode 的方法
ide·macos·ios·小程序·uni-app·iphone·xcode
微擎应用1 天前
社交电商小程序管理系统
小程序
silvia_Anne1 天前
微信小程序首页设置
微信小程序·小程序
安妮的小熊呢1 天前
CRMEB标准版v6.0: 商城DIY装修新升级,PS级自由设计!
运维·javascript·平面·信息可视化·小程序·开源软件
小离a_a1 天前
uniapp小程序封装圆环显示比例数据
android·小程序·uni-app