基于springboot+MySQL昌吉学院师生拼车系统-计算机毕设 附源码 01927

基于微信小程序的昌吉学院师生拼车系统的设计与实现

摘 要

随着移动互联网的快速发展,微信小程序作为一种轻量级的应用程序,已经成为连接用户与服务的重要桥梁。同时,随着绿色出行理念的普及,拼车作为一种环保、经济的出行方式,受到了越来越多人的青睐。昌吉学院作为一所注重教育创新和科技应用的高等学府,有必要为师生提供一个便捷、高效的拼车平台,以满足他们的出行需求。

Spring Boot作为一个开源的Java框架,具有快速构建Web应用程序的能力,而且其内置的众多功能和插件,使得开发者能够更加专注于业务逻辑的实现,而无需花费大量时间在底层的配置上。因此,基于Spring Boot开发昌吉学院师生拼车系统,不仅可以提高开发效率,还能保证系统的稳定性和可扩展性。

本系统将结合Spring Boot和微信小程序的技术优势,设计并实现一个功能完善、操作简便的拼车系统。该系统将为昌吉学院的师生提供一个安全、可靠的拼车平台,帮助他们更加便捷地找到合适的拼车伙伴,实现绿色出行。同时,该系统还将提供丰富的管理功能,方便管理员对拼车信息进行监控和管理,确保平台的正常运行。

通过本系统的设计与实现,我们希望能够为昌吉学院的师生带来更加便捷、高效的出行体验,同时也为绿色出行理念的推广做出积极的贡献。

关键词:拼车系统;Java编程语言;Spring Boot框架;微信小程序

Design and implementation of a carpooling system for teachers and students in Changji College based on WeChat mini program

Abstract

With the rapid development of mobile Internet, WeChat applet, as a lightweight application, has become an important bridge between users and services. Meanwhile, with the popularization of green transportation concepts, carpooling, as an environmentally friendly and economical way of transportation, has been increasingly favored by more and more people. As a higher education institution that emphasizes educational innovation and technological application, Changji University needs to provide a convenient and efficient carpooling platform for teachers and students to meet their travel needs.

As an open-source Java framework, Spring Boot has the ability to quickly build web applications, and its built-in numerous features and plugins allow developers to focus more on implementing business logic without spending a lot of time on underlying configurations. Therefore, developing a carpooling system for teachers and students at Changji College based on Spring Boot can not only improve development efficiency, but also ensure the stability and scalability of the system.

This system will combine the technical advantages of Spring Boot and WeChat mini programs to design and implement a fully functional and easy-to-use carpooling system. This system will provide a safe and reliable carpooling platform for teachers and students of Changji College, helping them find suitable carpooling partners more conveniently and achieve green travel. At the same time, the system will also provide rich management functions to facilitate administrators in monitoring and managing carpooling information, ensuring the normal operation of the platform.

Through the design and implementation of this system, we hope to bring more convenient and efficient travel experiences to the teachers and students of Changji College, and also make positive contributions to the promotion of green travel concepts.

Key words:Carpooling system; Java programming language; Spring Boot framework; WeChat Mini Program

目  录

第1章 绪论

1.1 研究背景与意义

1.2 国内外研究现状

1.3 论文组成结构

第2章 系统分析

2.1 可行性分析

2.1.1 技术可行性

2.1.2 经济可行性

2.1.3 操作可行性

2.2 需求分析

2.3 系统数据流程分析

第3章 系统设计

3.1 系统架构设计

3.2 系统功能结构

3.3 数据库设计

3.3.1 数据库E-R图设计

3.3.2 逻辑结构设计

第4章 系统实现

4.1 普通用户模块的实现

4.1.1 前台首页界面

4.1.2 用户注册界面

4.1.3 用户登录界面

4.1.4基本信息界面

4.1.5 拼车信息界面

4.2 管理员功能模块的实现

4.2.1 管理员登录界面

4.2.2 管理员功能界面

4.2.3 系统用户管理界面

4.2.4拼车路线管理界面

4.2.5拼车信息管理界面

4.2.6 轮播图管理界面

4.3 司机用户模块的实现

4.3.1 拼车信息界面

4.3.2 接单信息界面

第5章 系统测试

5.1 测试目的

5.2 测试用例

5.2.1 登录测试 

5.2.2 注册测试 

5.2.3 拼车信息测试

5.2.4 通知公告测试 

5.3 测试结果

第6章 总结与展望

参考文献

致谢

  1. 绪论
    1. 研究背景与意义

随着移动互联网技术的迅猛发展和智能手机的广泛普及,微信作为一款拥有庞大用户基础的社交应用,已经成为人们日常生活中不可或缺的一部分。微信小程序作为微信生态的重要组成部分,以其轻量级、易传播、易使用的特点,为开发者提供了全新的应用开发模式。在这一背景下,结合微信小程序开发拼车系统,不仅符合移动互联网的发展趋势,还能为用户提供更加便捷、高效的服务。

昌吉学院作为一所拥有众多师生的高校,校园出行需求量大且多样化。传统的拼车方式往往存在信息不对称、效率低下等问题,无法满足师生的实际需求。因此,开发一款基于微信小程序的昌吉学院师生拼车系统,具有重要的现实意义和应用价值。该系统能够解决师生出行中信息不对称的问题。通过平台化的拼车系统,师生可以更加方便地发布和查询拼车信息,实现信息的快速匹配和有效对接。这不仅可以提高出行的效率和便捷性,还能降低出行成本,实现资源共享。同时该系统有助于推动绿色出行理念的普及和实践。通过拼车的方式,可以减少单独出行所带来的车辆空驶和能源浪费,降低交通拥堵和环境污染。对于昌吉学院这样的高校环境而言,推广绿色出行不仅有助于提升师生的环保意识,还能为校园的可持续发展做出贡献。最后,该系统还能为昌吉学院的师生提供一个互动交流和社交的平台。通过拼车系统,师生可以在出行过程中结识新朋友,拓展社交圈层,增强校园社区的凝聚力和活力。

综上所述,基于微信小程序的昌吉学院师生拼车系统的设计与实现,不仅符合移动互联网的发展趋势和绿色出行的理念,还能为昌吉学院的师生提供便捷、高效的出行服务,推动校园的可持续发展。因此,本研究具有重要的现实意义和应用价值。

    1. 国内外研究现状

国内研究现状

近年来,随着移动互联网的普及和微信小程序的快速发展,国内对于基于微信小程序的拼车系统研究与实践逐渐增多。高校作为人员流动频繁、出行需求大的场所,成为拼车系统应用的重要场景之一。

在国内,不少高校已经或正在计划开发类似的拼车系统。这些系统大多基于微信小程序平台,利用微信的用户基础和社交属性,为用户提供便捷、高效的拼车服务。同时,这些系统还结合了高校的特点和需求,如校园地图集成、师生身份验证等,以确保服务的安全性和准确性。

此外,国内的研究者和开发者还在不断探索和创新拼车系统的功能和服务模式。例如,通过引入智能算法优化拼车匹配效率,增加用户评价和信用体系以提高服务质量,以及结合大数据分析为用户提供更加个性化的出行建议等。

国外研究现状

在国外,基于移动应用的拼车系统已经得到了广泛的应用和深入的研究。这些系统不仅覆盖了城市出行领域,还延伸到了校园、社区等多个领域。

在校园拼车方面,国外的一些高校和研究机构已经开发并实施了类似的系统。这些系统通常与学校的交通服务、学生服务等相结合,为学生和教师提供更加便捷、环保的出行方式。同时,这些系统还注重用户体验和安全性,通过严格的身份验证、评价机制和客服支持等措施,确保用户能够享受到安全、可靠的拼车服务。

在技术研究和创新方面,国外的研究者和开发者也在不断探索新的方法和手段。例如,利用物联网技术实现车辆的智能调度和管理,利用人工智能技术进行智能匹配和路径规划等。这些技术的应用不仅提高了拼车系统的效率和服务质量,还为用户带来了更加智能化、个性化的出行体验。

综上所述,基于微信小程序的昌吉学院师生拼车系统的设计与实现,在国内外都具有一定的研究基础和应用前景。通过借鉴国内外的成功经验和先进技术,结合昌吉学院的实际需求和特点,有望开发出一款功能完善、操作简便、安全可靠的拼车系统,为师生提供更加便捷、高效的出行服务。

    1. 论文组成结构

根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出基于微信小程序的昌吉学院师生拼车系统。

本文共有七章,如下所示。

第一章概述了基于微信小程序的昌吉学院师生拼车系统的研究背景和意义;精炼地总结了国内外在拼车领域的研究情况和未来的研究趋势,最后给出了论文的组成结构。

第二章简要概述了本文所用的开发技术和工具。

第三章简要对系统各业务流程进行需求分析、可行性分析。

第四章对基于微信小程序的昌吉学院师生拼车系统进行设计。

第五章对基于微信小程序的昌吉学院师生拼车系统进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。

第六章对基于微信小程序的昌吉学院师生拼车系统采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。

第七章总结全文并对未来的研究做出展望。

  1. 系统分析
    1. 可行性分析

在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。基于微信小程序的昌吉学院师生拼车系统的可行性分析如下所示:

      1. 技术可行性

基于微信小程序的昌吉学院师生拼车系统采用的是Java编程语言并于freemarker的模式,数据库部分采用的是当前流行的MySQL数据库,基于微信小程序的昌吉学院师生拼车系统中的所有数据资源都存储在MySQL数据库中,本系统多处采用了Ajax的异步操作,Ajax技术可以对用户指定部分的数据进行局部刷新,不仅减少了服务器对页面的解析而且极大增加了用户的体验度。本系统的环境配置也较为简单,因为用的是Myeclipse编辑器,而Myeclipse里面有自带的Tomcat服务器和JDK环境,因此不需要我们在重新配置。

      1. 经济可行性

基于微信小程序的昌吉学院师生拼车系统是在Java和MySQL的环境中运行的,而系统的成本也只是主要分布在软件的开发和维护上。但如果系统上线投入使用之后,不仅可以方便人们,还节省了用户的时间和精力,而且还极大限度的方便了运营者,减少了运营者的工作强度。基于微信小程序的昌吉学院师生拼车系统其实也不太复杂,在开发的时候经济支出也不大,在开发系统时时间用的也不多,从时间的优势和对经济利益方面产生的好处远超过维护和管理的成本,所以开发此系统是可行合适的。

      1. 操作可行性

本系统是基于浏览器和服务器的基于微信小程序的昌吉学院师生拼车系统,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是普通用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。

    1. 需求分析

基于微信小程序的昌吉学院师生拼车系统的设计与实现分为三大部分:管理员模块、普通用户模块和司机用户模块。

  • 管理员功能需求如下:

登录:管理员需要通过用户名和密码进行登录,以获取管理后台的访问权限。

后台首页:提供管理员一个概览系统的主要信息和功能入口,包括系统概况、最新通知、待处理事项等内容,方便管理员了解系统的运行情况。

系统用户:管理员可以管理系统中的用户信息,包括学生用户、教师用户和其他管理员,进行添加、编辑、删除用户等操作,以确保用户信息的完整性和准确性。

拼车路线管理:管理员可以管理拼车的路线信息,包括添加、编辑、删除拼车路线等操作,以便学生和教师能够方便地查找合适的拼车路线。

拼车信息管理:管理员可以管理拼车的信息,包括发布、编辑、删除拼车信息等操作,确保信息的及时更新和准确性。

接单信息管理:管理员可以管理学生或教师的接单信息,包括查看接单情况、处理接单请求等操作,以促进拼车活动的顺利进行和安全性。

轮播图管理:管理员可以管理系统首页的轮播图设置,包括添加、编辑、删除轮播图等操作,以提升系统的用户体验和视觉效果。

通知公告管理:管理员可以发布、编辑、删除系统的通知公告信息,确保信息及时传达给用户,包括拼车活动通知、安全提示等。

根据管理员功能需求分析得出管理员用例图,用例图如下所示。

图2-1 管理员用例图

(二)普通用户功能需求如下:

注册登录:提供用户注册新账户并进行登录的功能,以便能够使用系统的各项功能和个人信息。

首页:展示系统的主要功能入口和相关信息,包括拼车路线、拼车信息、网站公告等,让用户快速了解系统的功能和最新动态。

拼车路线:提供用户查看拼车路线的功能,包括各个路线的起始地点、目的地点、出发时间等信息,方便用户选择合适的拼车路线。

拼车信息:展示用户发布的拼车信息以及其他用户发布的拼车信息,包括出发时间、座位情况、联系方式等,方便用户参与拼车活动。

网站公告:展示系统的公告信息,包括拼车活动通知、安全提示等,让用户及时获取系统的重要信息。

基本信息:提供用户个人基本信息的查看和编辑功能,包括姓名、联系方式等。

拼车路线:展示用户发布的拼车路线信息,包括起始地点、目的地点、出发时间等,方便用户管理自己的拼车路线。

拼车信息:展示用户发布的拼车信息以及参与的拼车信息,方便用户查看自己的拼车情况。

接单信息:展示用户接单的信息,包括接单时间、拼车路线、联系方式等,方便用户管理自己的接单情况

根据普通用户功能需求分析得出普通用户用例图,用例图如下所示。

图2-2普通用户用例图

(三)司机用户功能需求如下:

注册登录:提供司机用户注册新账户并进行登录的功能,以便能够访问系统的各项功能和个人信息。

首页:展示系统的主要功能入口和相关信息,包括拼车路线、拼车信息、网站公告等,让司机用户快速了解系统的功能和最新动态。

拼车路线:提供司机用户查看拼车路线的功能,包括各个路线的起始地点、目的地点、出发时间等信息,方便司机用户选择合适的拼车路线。

拼车信息:展示司机用户发布的拼车信息以及其他用户发布的拼车信息,包括出发时间、座位情况、联系方式等,方便司机用户参与拼车活动。

网站公告:展示系统的公告信息,包括拼车活动通知、安全提示等,让司机用户及时获取系统的重要信息。

基本信息:提供司机用户个人基本信息的查看和编辑功能,包括姓名、车辆信息、联系方式等。

接单信息:展示司机接单的信息,包括接单时间、拼车路线、联系方式等,方便司机管理自己的接单情况。

根据司机用户功能需求分析得出司机用户用例图,用例图如下所示。

图2-3司机用户用例图

    1. 系统数据流程分析

与强调控制逻辑的程序流程图不同,它更关心的是整个系统中数据的具体流动以及数据的加工处理的整个客观过程,是对数据规格的说明。也正因如此,系统数据流图作为系统结构化分析方法中极为重要的一种描述工具备受青睐。

基于微信小程序的昌吉学院师生拼车系统的顶层数据流如下图所示。

图2-4系统顶层数据流图

系统顶层数据流:外部实体为用户,第一个流程为登录验证,用户信息表返回密码验证,是否正确,正确则登录系统,错误咨询信息,登录系统后,根据不同用户的功能选择,来读写数据库。

系统底层数据流如下图所示。

图2-5系统底层数据流图

系统底层数据流:外部实体为管理员普通用户和司机用户,数据流分别有管理员普通用户和司机用户流向系统数据流程,数据表提供数据支持,来完成逻辑操作。

  1. 系统设计
    1. 系统架构设计

由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。

DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。

MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。

系统架构如下图所示。

图3-1系统架构图

    1. 系统功能结构

进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是后台首页、系统用户、拼车路线管理、拼车信息管理、接单信息管理、系统管理、通知公告管理。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。

系统功能结构图如下所示。

图3-2系统功能结构图

    1. 数据库设计

一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。

一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。

      1. 数据库E-R图设计

本基于微信小程序的昌吉学院师生拼车系统采用的是mysql数据库,数据存储快,因为基于微信小程序的昌吉学院师生拼车系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,

系统的主要实体间关系E-R图如下图所示。

图3-3系统E-R图

      1. 逻辑结构设计

此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示以下几个表。

表access_token (登陆访问时长)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

token_id

int

10

0

N

Y

临时访问牌ID

2

token

varchar

64

0

Y

N

临时访问牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大寿命:默认2小时

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

user_id

int

10

0

N

N

0

用户编号:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

auth_id

int

10

0

N

Y

授权ID:

2

user_group

varchar

64

0

Y

N

用户组:

3

mod_name

varchar

64

0

Y

N

模块名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

页面标题:

6

path

varchar

255

0

Y

N

路由路径:

7

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

更新时间:

表carpooling_information (拼车信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

carpooling_information_id

int

10

0

N

Y

拼车信息ID

2

carpooler

int

10

0

Y

N

0

拼车人

3

initiator

int

10

0

Y

N

0

发起人

4

origin

varchar

64

0

Y

N

起始地

5

destination

varchar

64

0

Y

N

目的地

6

carpool_cover

varchar

255

0

Y

N

拼车封面

7

order_number

varchar

64

0

Y

N

订单编号

8

route_price

varchar

64

0

Y

N

路线价格

9

number_of_carpoolers

int

10

0

Y

N

0

拼车人数

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表carpool_routes (拼车路线)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

carpool_routes_id

int

10

0

N

Y

拼车路线ID

2

initiator

int

10

0

Y

N

0

发起人

3

origin

varchar

64

0

Y

N

起始地

4

destination

varchar

64

0

Y

N

目的地

5

carpool_cover

varchar

255

0

Y

N

拼车封面

6

order_number

varchar

64

0

Y

N

订单编号

7

route_price

int

10

0

Y

N

0

路线价格

8

remaining_seats

varchar

64

0

Y

N

剩余座位

9

order_type

varchar

64

0

Y

N

订单类型

10

departure_time

datetime

19

0

Y

N

发车时间

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表driver_users (司机用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

driver_users_id

int

10

0

N

Y

司机用户ID

2

drivers_name

varchar

64

0

Y

N

司机姓名

3

driver_gender

varchar

64

0

Y

N

司机性别

4

vehicle_model

varchar

64

0

Y

N

车辆型号

5

license_plate_number

varchar

64

0

Y

N

车牌号码

6

id_number

varchar

64

0

Y

N

身份证号

7

contact_information

varchar

64

0

Y

N

联系方式

8

examine_state

varchar

16

0

N

N

已通过

审核状态

9

user_id

int

10

0

N

N

0

用户ID

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

hits_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表order_information (接单信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

order_information_id

int

10

0

N

Y

接单信息ID

2

driver_users

int

10

0

Y

N

0

司机用户

3

drivers_name

varchar

64

0

Y

N

司机姓名

4

carpooler

int

10

0

Y

N

0

拼车人

5

initiator

int

10

0

Y

N

0

发起人

6

origin

varchar

64

0

Y

N

起始地

7

destination

varchar

64

0

Y

N

目的地

8

order_number

varchar

64

0

Y

N

订单编号

9

route_price

varchar

64

0

Y

N

路线价格

10

pay_state

varchar

16

0

N

N

未支付

支付状态

11

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表regular_users (普通用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

regular_users_id

int

10

0

N

Y

普通用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

user_student_id

varchar

64

0

Y

N

用户学号

5

id_number

varchar

64

0

Y

N

身份证号

6

contact_information

varchar

64

0

Y

N

联系方式

7

examine_state

varchar

16

0

N

N

已通过

审核状态

8

user_id

int

10

0

N

N

0

用户ID

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

upload_id

int

10

0

N

Y

上传ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

访问路径

4

file

varchar

255

0

Y

N

文件路径

5

display

varchar

255

0

Y

N

显示顺序

6

father_id

int

10

0

Y

N

0

父级ID

7

dir

varchar

255

0

Y

N

文件夹

8

type

varchar

32

0

Y

N

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

user_id

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

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

group_id

mediumint

8

0

N

Y

用户组ID:[0,8388607]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]

3

name

varchar

16

0

N

N

名称:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述该用户组的特点或权限范围

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

register

smallint

5

0

Y

N

0

注册位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

  1. 系统实现
    1. 普通用户模块的实现

4.1.1 前台首页界面

进入系统首页,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是拼车路线、拼车信息,其主界面展示如下图所示。

图4-1 前台首页界面图

4.1.2 用户注册界面

用户注册:当会员用户想要进入系统中对信息进行查看的时候,就必须要登录到系统当中,要是新的用户没有系统的账号的话,点击“注册”按钮,就会进入到新用户注册这个界面上,用户输入对应的账号(必须填写)+密码(必须填写)+确认密码(必须填写,而且要与密码一直)+昵称+邮箱+性别+年龄+联系电话+选择用户身份等等,然后点击“注册”,系统在用户这一数据库中会查询账号是不是存在,两次密码是不是一样,都填写正确就会注册成功,然后再进行登录,如果是之前已经注册过的用户很长时间没有使用,忘记密码,也可以点击“忘记密码”进行找回。用户注册界面如下图所示。

图4-2 用户注册界面图

注册代码如下:

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;

}

4.1.3 用户登录界面

系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。

图4-3注册用户登录界面图

登录代码如下:

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

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

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

            map.put("username", username);

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

        }

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

            map.put("email", email);

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

        }

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

            map.put("phone", phone);

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

        }else{

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

        }

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

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

        }

        //判断是否有这个用户

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

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

        }

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

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

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

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

        if (groupList.size()<1){

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

        }

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

        //查询用户审核状态

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

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

            if (res==null){

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

            }

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

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

            }

        }

        //查询用户状态

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

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

        }

        String md5password = service.encryption(password);

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

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

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

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

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

            // 返回用户信息

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

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

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

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

        }

    }

4.1.4基本信息界面

用户在基本信息界面可以对头像、昵称、密码及个人资料进行修改。基本信息界面如下图所示。

图4-4基本信息界面图

4.1.5 拼车信息界面

用户点击“拼车信息”,用户可以查看的拼车信息以及其他用户发布的拼车信息,包括起始地、目的地,订单编号、路线价格、拼车人数等,方便用户参与拼车活动。拼车信息界面图如下图所示。

图4-5拼车信息界面图

    1. 管理员功能模块的实现 

4.2.1 管理员登录界面

管理员进入到系统登录界面,需要填写正确的登录名、密码、选择权限等信息输入准确无误后登录进入到系统操作界面。管理员的账号是在数据表表中直接设置生成的,不需要进行注册;修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。管理员登录界面如下图所示。

图4-6管理员登录界面图

4.2.2 管理员功能界面

管理员可以查看后台首页、系统用户、拼车路线管理、拼车信息管理、接单信息管理、系统管理、通知公告管理等,并且可以根据需要进行相应的操作,管理员功能界面如下图所示。

图4-7管理员功能界面图

4.2.3 系统用户管理界面

管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户、司机用户这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。

4-8系统用户管理界面图

4.2.4拼车路线管理界面

管理员点击“拼车路线管理”这个菜单,管理员可以管理拼车的路线信息,包括添加、编辑、删除拼车路线等操作,以便学生和教师能够方便地查找合适的拼车路线。拼车路线列表如下图所示。

图4-9拼车路线列表界面图

4.2.5拼车信息管理界面

管理员点击“拼车信息管理”这个菜单,管理员可以管理拼车的信息,包括发布、编辑、删除拼车信息等操作,确保信息的及时更新和准确性。拼车信息管理如下图所示。

图4-10拼车信息管理界面图

4.2.6 轮播图管理界面

管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。轮播图管理界面如下图所示。

图4-11轮播图管理界面图

轮播图添加代码:

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

 }

    1. 司机用户模块的实现

4.3.1 拼车信息界面

司机用户点击“拼车信息”这个菜单,可以通过输入起始地、目的地进行搜索拼车信息。还可以查看拼车信息,包括拼车人、发起人、起始地、目的地、拼车封面、

订单编号、路线价格、拼车人数等信息。拼车信息界面如下图所示。

图4-12拼车信息界面

4.3.2 接单信息界面

司机用户点击“接单信息”,展示司机接单的信息,包括接单时间、拼车路线、联系方式等,方便司机管理自己的接单情况。接单信息界面如下图所示。

图4-13接单信息界面图

  1. 系统测试
    1. 测试目的

在这个产品被投入使用前,首先需要进行试用,这是重要的环节。考虑到某个部分的开发没有缺陷情况下,把各种模块拼接,也有一定概率就存在矛盾。这就好比每个人都很独特,但聚在一起就显得杂乱无章,需要保证有默契的配合。对于测试,要看它的各项内容是否契合的原则。若与最初定下的标准有一定程度上的出入,那么就需要做出一些调整,让最终的大方向朝着目标前进。

    1. 测试用例
      1. 登录测试 

登录测试用例如下表所示。

5-1登录测试用例

输入

输出

用户名

密码

用户名或密码不能为空

蔡徐坤

123

用户名不能为汉字,请重新输入

789

789

用户名或密码错误

678

123456

登录成功

      1. 注册测试 

注册测试用例如下表所示。

5-2注册测试用例

输入

输出

用户名

密码

确认密码

邮箱

请输入完整

001

001

001

001@qq.com

注册成功

002

002

003

002@qq.com

注册失败,两次密码不一致

003

003

003

003.com

注册失败,邮箱格式不正确

      1. 拼车信息测试

拼车信息测试用例如下表所示。

5-3拼车信息测试用例

功能

测试数据

预期结果

测试结果

拼车信息

拼车信息内容:用户拼车信息

在拼车信息列表中显示拼车信息内容,咨询显示为未回复

和预期一致

回复拼车信息

拼车信息内容:用户拼车信息

拼车信息列表中的拼车信息“拼车信息”显示已回复

和预期一致

删除拼车信息

删除“用户拼车信息

拼车信息成功删除

和预期一致

      1. 通知公告测试 

通知公告用例如下表所示。

5-4添加通知公告试用例

输入

输出

标题

类别

内容

备注

添加失败

通知公告1

A

1

添加成功

A

1

添加失败,标题不能为空

通知公告2

1

添加失败,请选择类别

    1. 测试结果

经过测试,得到测试结果如下表所示。

5-5测试结果

测试项目

内容和目的

测试结果

用户登录

输入正确用户名与密码

可以登录

输入错误用户名与密码

提示错误的信息

修改登录密码

修改新的密码

成功完成

注册信息

输入正确信息

成功完成

输入错误信息

操作失败

拼车信息管理(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

通知公告管理(添加,修改,删除)

输入正确信息

成功完成

输入错误信息

操作失败

  1. 总结与展望

基于微信小程序的昌吉学院师生拼车系统的整体功能模块的实现,主要是对自己在大学这几年时间所学内容的一个测试,对于系统,主要是通过现在智能化的基于微信小程序的昌吉学院师生拼车系统进行开始系统的实现,并且可以根据需求进行数据信息的增加修改删除等操作,完美的解决了当下基于微信小程序的昌吉学院师生拼车系统所遇到的问题。

经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的基于微信小程序的昌吉学院师生拼车系统的信息系统,主要使用springboot+vue框架和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。

基于微信小程序的昌吉学院师生拼车系统的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,只是想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。

基于微信小程序的昌吉学院师生拼车系统的实现,是自己第一次完成的设计一个管理系统。在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的平台管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。

参考文献

[1]李昕洋.Java EE后端计算机软件的设计与实现[J].电子技术,2024,53(02):70-71.

[2]吴伶琳.基于SpringBoot的客户关系管理系统设计与实现[J].无线互联科技,2023,20(24):60-62.

[3]吴昊,张丹.基于SpringBoot框架的大学生网上兼职系统设计与实现[J].电脑知识与技术,2023,19(35):68-72.DOI:10.14004/j.cnki.ckt.2023.1860.

[4]姜一波.基于SpringBoot+Vue的在线考试系统设计与实现[J].无线互联科技,2023,20(23):68-71.

[5]Cuong Q B ,Ranindya P ,Ly D V , et al.APR4Vul: an empirical study of automatic program repair techniques on real-world Java vulnerabilities[J].Empirical Software Engineering,2023,29(1):

[6]S.R. R ,A.H. W ,S.M.T. M , et al.Quantifying aquifer interaction using numerical groundwater flow model evaluated by environmental water tracer data: Application to the data-scarce area of the Bandung groundwater basin, West Java, Indonesia[J].Journal of Hydrology: Regional Studies,2023,50

[7]Chy H S M ,Arju R A M ,Tella M S , et al.Comparative Evaluation of Java Virtual Machine-Based Message Queue Services: A Study on Kafka, Artemis, Pulsar, and RocketMQ[J].Electronics,2023,12(23):

[8]Kurniawan S .Gintingan in Subang: negotiating the role of Indigenous microfinance institution in the Sunda Region of West Java, Indonesia[J].AlterNative: An International Journal of Indigenous Peoples,2023,19(4):852-861.

[9]A D W ,R S ,V M .Landslide Prone Areas Analysis in Bandungan District, Semarang Regency, Central Java, Indonesia[J].IOP Conference Series: Earth and Environmental Science,2023,1268(1):

[10]游晶,邱淑丽,李敬文.基于SpringBoot的校园智慧报修系统的设计与实现[J].电脑知识与技术,2023,19(32):50-52+65.DOI:10.14004/j.cnki.ckt.2023.1718.

[11]黄赛英.基于Springboot的医院档案管理系统设计[J].集成电路应用,2023,40(11):384-385.DOI:10.19339/j.issn.1674-2583.2023.11.176.

[12]崔臣,宋甲旭.基于SpringBoot的校园二手交易系统研究[J].无线互联科技,2023,20(18):31-34.

[13]林圣峰,姚锦江,林涛,等.基于SpringBoot的高校实验室管理系统设计[J].无线互联科技,2023,20(18):80-82.

[14]杨志俊,侯江华.基于SpringBoot的智慧养老系统设计[J].无线互联科技,2023,20(17):87-89.

[15]袁泽森,周融.基于微信小程序的校园拼车系统的设计与实现[J].信息与电脑(理论版),2023,35(13):176-181.

[16]方心昀.基于可持续理念下的社区儿童上下学拼车服务平台设计研究[J].设计,2023,36(11):46-49.DOI:10.20055/j.cnki.1003-0069.000843.

[17]韦玮,卜庆茹,罗颖,等.共享经济背景下大学生“校园拼车”小程序的需求分析及设计推广[J].商展经济,2023,(03):78-80.DOI:10.19995/j.cnki.CN10-1617/F7.2023.03.078.

[18]滕毅,马焯文.基于Uniapp的校园拼车多端小程序设计与实现[J].电子制作,2022,30(16):43-46.DOI:10.16589/j.cnki.cn11-3571/tn.2022.16.025.

[19]童迎鹏,张雪松.基于Android的拼车应用设计与实现[J].计算机应用,2021,41(S1):308-315.

[20]刘志刚,段小秋,张金星,等.基于WebGIS的武汉市社区拼车系统研发[J].科技创新与应用,2019,(07):78-79.

致谢

经过几个月时间的努力终于完成了这篇文章,在文章的写作与研究的过程中遇到了很多困难,都在同学和老师的帮助下解决了。尤其非常感谢我最敬爱的老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行文章的修改。老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇丰。此外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此,向帮助和指导过我的老师表示最衷心的感谢!感谢这篇文章所涉及到的各位学者。本文引用了数位学者的文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇文章的写作。感谢我的同学和朋友,在我写文章的过程中给与了我很多素材和帮助,还在文章的撰写和排版过程中提供热情的帮助。同时,感谢我的室友对我的热心指导和帮助,经常有不懂之处都是大家在帮助我,才使得我比较顺利的完成了这篇文章。由于我水平有限,所写文章难免有不足之处,恳请各位老师和学友批评和指正!

请关注点赞+私信博主,免费领取项目源码

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值