本文介绍了一种基于Springboot和uniapp的校园跑腿服务系统的设计与实现。该系统旨在为大学校园提供一种方便快捷的跑腿服务,满足学生和教职员工的日常需求。首先,系统采用了Springboot作为后端框架,利用其轻量级、高效的特性,实现了系统的后端服务。其次,系统采用了uniapp作为前端框架,通过uniapp的跨平台特性,实现了同时支持iOS和Android平台的移动端应用。在系统功能设计方面,包括用户注册登录、发布任务、接受任务、支付结算等核心功能,同时还考虑了评价系统、订单管理等辅助功能,以提升用户体验。在实现过程中,采用了MVC架构,合理划分了各个模块,提高了代码的可维护性和扩展性。最后,通过对系统进行测试和优化,确保了系统的稳定性和性能。该系统的设计与实现为校园跑腿服务提供了一种新的解决方案,具有一定的实用和推广价值。
关键词:校园跑腿服务系统;微信小程序;UniApp;SpringBoot
Abstract
This paper introduces the design and implementation of a campus errand service system based on Springboot and uniapp. The system is designed to provide a convenient and quick errand for the university campus to meet the daily needs of students and staff. First, the system adopts Springboot as the back-end framework, and realizes the back-end service of the system. Secondly, the system adopts uniapp as the front-end framework, and through the cross-platform features of uniapp, the mobile terminal applications supporting both iOS and Android platforms are realized. In terms of system function design, it includes core functions such as user registration and login, publishing tasks, acceptance tasks, payment and settlement. Meanwhile, auxiliary functions such as evaluation system and order management are also considered to improve user experience. In the implementation process, the MVC architecture is adopted, each module is reasonably divided, and the maintainability and scalability of the code are improved. Finally, the stability and performance of the system are ensured through its testing and optimization. The design and implementation of this system provides a new solution for the campus errands service, which has certain practical and promotion value.
Keywords:Campus errand service system; WeChat small program; UniApp; SpringBoot
目 录
1 绪论
1.1 研究背景与意义
在当今社会,随着大学生活的日益繁忙和多样化需求的增加,校园跑腿服务成为了大学校园里一项备受欢迎的服务。这种服务能够为学生和教职员工提供便利,解决他们日常生活中的各种琐事,如购物、取快递、送餐等。然而,传统的校园跑腿服务往往存在着效率低下、信息不透明、沟通不畅等问题,需要一种新的解决方案来提升服务质量和用户体验。
基于此背景,本文提出了一种基于Springboot和uniapp的校园跑腿服务系统的设计与实现。该系统融合了先进的技术和创新的思路,旨在为大学校园提供一种方便快捷的跑腿服务,满足用户日常生活的各种需求。其设计与实现具有以下几点重要意义:
提升服务效率:传统的校园跑腿服务往往需要通过电话、微信等方式进行下单和沟通,效率较低。而基于Springboot和uniapp的系统能够通过手机端应用实现在线下单、实时沟通等功能,大大提升了服务的效率,减少了沟通成本和等待时间。
优化用户体验:该系统通过uniapp框架实现了同时支持iOS和Android平台的移动端应用,用户可以随时随地通过手机轻松下单和查看订单状态,极大地方便了用户的使用体验。同时,系统还考虑了评价系统、订单管理等功能,进一步提升了用户的满意度和粘性。
提高服务质量:系统采用了Springboot作为后端框架,利用其轻量级、高效的特性,实现了系统的后端服务。通过合理划分模块、采用MVC架构等手段,提高了代码的可维护性和扩展性,从而更好地保障了服务的稳定性和可靠性。
推动技术创新:基于Springboot和uniapp的校园跑腿服务系统,不仅是对传统服务模式的一种创新,也是对技术应用的一种推动。它充分利用了Springboot框架的优势和uniapp的跨平台特性,为校园跑腿服务领域的发展提供了新的思路和可能性。
综上所述,基于Springboot和uniapp的校园跑腿服务系统的设计与实现具有重要的研究意义和实际应用价值,有望为校园生活带来更加便利和舒适的体验,推动校园跑腿服务行业的发展和完善。
1.2 研究现状
校园跑腿服务系统的设计与实现一直是大学校园中备受关注的话题。在当今社会,随着大学生活的日益繁忙和多样化需求的增加,校园跑腿服务成为了大学校园里一项备受欢迎的服务。这种服务能够为学生和教职员工提供便利,解决他们日常生活中的各种琐事,如购物、取快递、送餐等。然而,传统的校园跑腿服务往往存在着效率低下、信息不透明、沟通不畅等问题,需要一种新的解决方案来提升服务质量和用户体验。
基于这些需求背景,近年来基于Springboot和uniapp的校园跑腿服务系统的设计与实现备受关注。Springboot作为一种轻量级的Java后端开发框架,以其简洁的编程模型、快速的开发能力和丰富的生态系统受到广泛欢迎。而uniapp作为一个跨平台的开发框架,能够同时支持iOS和Android平台,极大地简化了移动应用的开发和维护工作。
在这一研究领域中,以提升服务效率、优化用户体验、提高服务质量和推动技术创新为目标,研究者们提出了一系列创新性的设计与实现方案。其中,对于服务效率的提升,研究者们着重利用Springboot框架的优势,通过设计高效的后端服务接口,实现了用户在手机端应用上的在线下单、实时沟通等功能,大大提升了服务的效率,减少了沟通成本和等待时间。
同时,针对用户体验的优化,研究者们采用uniapp框架实现了移动端应用,并设计了友好的界面和交互,使用户可以随时随地通过手机轻松下单和查看订单状态,极大地方便了用户的使用体验。此外,系统还考虑了评价系统、订单管理等功能,进一步提升了用户的满意度和粘性。
在提高服务质量方面,研究者们通过合理划分模块、采用MVC架构等手段,提高了代码的可维护性和扩展性,从而更好地保障了服务的稳定性和可靠性。通过对技术的不断探索和应用,他们不仅实现了对传统服务模式的一种创新,也为技术应用的推动做出了贡献。
综上所述,基于Springboot和uniapp的校园跑腿服务系统的设计与实现在提升服务效率、优化用户体验、提高服务质量和推动技术创新等方面都取得了重要进展。这一研究领域的发展有望为校园生活带来更加便利和舒适的体验,推动校园跑腿服务行业的发展和完善。
1.3 论文章节安排
本文共分为六章,章节内容安排如下:
第一章:绪论。此章节对所设计和实现的系统的目的以及意义和国内外研究现在进行详细的论述以及说明,同时进行了关键技术和论文整体框架的结构的简要介绍。
第二章:系统需求分析。章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章:系统的设计。主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章:系统的实现。根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。
第五章:系统测试。主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结。
1.4 关键技术
系统采用前后端分离架构,使用UniApp跨平台开发工具术进行界面开发,并采用微信小程序作为开发平台,提供良好的用户体验。后端采用Java语言,使用SpringBoot框架作为基础架构进行系统开发。数据库方面使用MySQL数据库进行数据存储,设计合理的表结构和关联关系,确保数据的准确性和完整性。
1.4.1 Java语言
Java是一种由Sun Microsystems(现在是Oracle Corporation)开发的高级编程语言,最初发布于1995年。Java被设计成一种“写一次,到处运行”的跨平台语言,这意味着开发人员可以编写一次Java代码,然后在各种不同的操作系统和硬件平台上运行,而无需对代码进行修改。
Java被广泛应用于各种领域,包括企业级应用程序开发、Web开发、移动应用开发、游戏开发、大数据处理等。它具有简单易学的语法,强大的面向对象编程能力,以及丰富的类库和工具支持,使得开发人员可以快速高效地构建复杂的应用程序。
Java语言的另一个重要特点是其平台无关性。Java代码通过Java虚拟机(JVM)在不同平台上运行,这使得Java成为一种非常灵活和便捷的编程语言。此外,Java还提供了丰富的开发工具和框架,如Eclipse、IntelliJ IDEA、Spring等,帮助开发人员更好地组织和管理代码,提高开发效率。
总的来说,Java是一种功能强大、易于学习和使用的编程语言,适用于各种类型的应用程序开发,并且具有广泛的应用领域。
1.4.2 Uni-app开发工具
Uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。
DCloud公司拥有900万开发者、数百万应用、12亿手机端月活用户、数千款uni-app插件、70+微信/qq群。阿里小程序工具官方内置uni-app,腾讯课堂官方为uni-app录制培训课程,开发者可以放心选择。
1.4.3 SpringBoot框架
Spring Boot是一个基于Spring框架的快速开发工具,它简化了Spring应用程序的搭建过程,提供了快速启动、自动配置和约定优于配置的特性。首先,通过Spring Boot,开发人员能够更快速地搭建系统的基本结构,而无需过多繁琐的配置。它提供了自动配置的能力,减少了开发者的工作量,并且内置了大量常用的库和组件,例如Spring MVC用于Web开发、Spring Data用于数据库访问等,从而提高了开发效率。另外,Spring Boot提供了内嵌的Servlet容器,无需额外配置即可进行快速部署和运行,有助于简化部署流程。此外,Spring Boot还支持各种构建工具,并提供丰富的监控和管理功能,有助于系统的维护和管理。综合来看,Spring Boot框架的应用能够帮助开发者快速搭建“我爱我家”家政服务小程序的设计与实现,提高开发效率、简化部署流程,并且提供一系列强大的功能以支持系统的稳定运行。
1.4.4 MySQL数据库
MySQL是一种流行的关系型数据库管理系统,广泛应用于各种Web应用程序和服务中。它是一种开源软件,由Oracle公司开发和维护。MySQL以其稳定性、可靠性和高性能而闻名,被许多开发人员和组织选择作为其首选的数据库解决方案。
MySQL支持多种操作系统,包括Linux、Windows和macOS,使其成为一个跨平台的数据库系统。它提供了强大的SQL语言支持,允许用户进行数据的增删改查操作,并支持复杂的查询和数据操作。此外,MySQL还提供了各种存储引擎,如InnoDB、MyISAM等,使用户可以根据应用程序的需求选择合适的存储引擎来优化性能和功能。
作为一种开源软件,MySQL拥有庞大的社区支持和活跃的开发者社区,用户可以从社区中获取各种技术支持、文档和工具,帮助他们更好地使用和管理MySQL数据库。
总的来说,MySQL是一种功能强大、性能优越、稳定可靠的关系型数据库管理系统,适用于各种规模的应用程序和服务,为用户提供了强大的数据存储和管理能力。
2 系统分析
2.1 可行性分析
2.1.1 经济可行性分析
Spring Boot作为一个基于Java的开源框架,具备丰富的功能和组件,非常适合用于开发校园跑腿服务系统。使用UniApp进行开发可以充分发挥其面向对象、跨平台和可扩展的特性。同时,Spring Boot与MySQL等关系型数据库紧密集成,提供了便捷的数据存储和管理方式。通过对SpringBoot技术在小程序开发中的应用进行分析,探讨其在开发校园跑腿服务系统中的优势和适用性,包括开发效率、用户体验、性能等方面。
2.1.2 技术可行性分析
从经济角度来看, 校园跑腿服务系统具备良好的经济可行性。小程序开发相对较低成本,不需要单独开发独立的移动应用程序,减少了开发和维护的成本。同时,Spring Boot框架提供了免费且开源的开发工具和库,降低了开发成本。此外,MySQL作为开源数据库管理系统,没有额外的购买和使用费用,可以降低系统的运行成本。
2.1.3 操作可行性分析
在操作可行性方面,校园跑腿服务系统具备良好的操作可行性。小程序作为一种轻量级应用形式,用户无需进行额外的安装和更新,可以直接在微信平台上访问和使用。基于小程序的界面设计通常简洁明了,易于操作和导航,提供良好的用户体验。
2.2 需求分析
2.2.1 功能需求分析
根据校园跑腿服务系统的角色,可以划分为学生用户模块、跑腿用户模块和管理员模块。具体功能如下:
前台学生用户端功能:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现发布订单等操作,就必须有这个系统的账号,如果没有账号的话,可以注册用户进行相关的操作。
(2)首页:学生用户可以查看校园跑腿服务系统的首页信息包括主导航、新闻资讯、我的等。
(3)新闻资讯:学生用户点击首页的“新闻资讯”按钮,可以查看到新闻资讯信息列表,点击可查看新闻资讯详情信息,学生用户可以进行点赞、收藏和发表评论信息。
(4)我的:学生用户在“我的”模块主要对基本信息、收藏、任务信息、任务订单、沟通记录、评价反馈、学生兑换、学生信用等模块的信息进行管理。
学生用户用例图如下所示。
图2.1 学生用户用例图
前台跑腿用户端功能:
(1)用户注册登录:游客可以随时进入到系统中,对系统中的信息浏览,但是想要实现接收订单等操作,就必须有这个系统的账号,如果没有账号的话,可以注册用户进行相关的操作。
(2)首页:跑腿用户可以查看校园跑腿服务系统的首页信息包括主导航、新闻资讯、我的等。
(3)新闻资讯:跑腿用户点击首页的“新闻资讯”按钮,可以查看到新闻资讯信息列表,点击可查看新闻资讯详情信息,跑腿用户可以进行点赞、收藏和发表评论信息。
(4)我的:跑腿用户在“我的”模块主要对基本信息、收藏、任务订单、沟通记录、评价反馈、跑腿兑换、跑腿信用等模块的信息进行管理。
跑腿用户用例图如下所示。
图2.2跑腿用户用例图
3、后台管理员功能
(1)登录:管理员在后台可以输入用户名+密码进行登录,管理员的用户名和密码是在数据库中直接设定好的。
(2)系统用户:管理员可以对校园跑腿服务系统中的管理员、学生用户和宠物主人进行增删改查。
(3)任务信息管理:管理员点击“任务信息管理”可以对系统的任务信息进行管理。
(4)服务类型管理:管理员点击“服务类型管理”可以对系统的服务类型进行管理。
(5)任务订单管理:管理员点击“任务订单管理”可以对系统的任务订单进行管理。
(6)沟通记录管理:管理员点击“沟通记录管理”可以对系统的沟通记录进行管理。
(7)评价反馈管理:管理员点击“评价反馈管理”可以对系统的评价反馈进行管理。
(8)积分兑换管理:管理员点击“积分兑换管理”可以对系统的积分兑换进行管理。
(9)学生兑换管理:管理员点击“学生兑换管理”可以对系统的学生兑换进行管理。
(10)跑腿兑换管理:管理员点击“跑腿兑换管理”可以对系统的跑腿兑换进行管理。
(11)系统管理:管理员点击“系统管理”菜单可以对首页展示的轮播图进行管理。
(12)通知公告管理:管理员点击“通知公告管理”菜单可以查看到系统中的所有通知公告信息,对已经存在的通知公告,管理员可以修改,也可以添加新的通知公告或者删除通知公告。
(13)资源管理:管理员点击“资源管理”菜单可以查看到系统中的所有新闻资讯和资讯分类信息,对已经存在的新闻资讯和资讯分类,管理员可以修改,也可以添加新的新闻资讯和资讯分类或者删除新闻资讯和资讯分类。
管理员用例图如下所示。
图2.3 管理员用例图
2.2.2 性能需求分析
本系统主要是为了方便用户发布订单信息、通过提供跑腿服务,使用户能够在领取物品的时候方便快速地进行收取,包括以下特点:
(1)界面简洁、操作简单方便。设计网站前端界面时应当站在用户的角度,尽量符合大众审美,迎合用户的使用习惯。整体简洁大方,主要功能位于主页显眼位置,方便用户查找使用,登录界面作为第一页面,用户可快速登录得到自身的功能主页,进行操作。各个页面统一风格,颜色搭配合理,便于用户浏览,个板块间布局合适,提高用户体验。
(2)运行流畅,响应速度快。虽然每日的信息发布交流有限,对系统的并发能力无太大要求,但为了保证用户体验,减少等待时间,仍应该尽可能提高网站的运行速度,可提高更合理的算法设计,更多的模型效率达到,而在业务流程中,减少无关业务量,也是提高运行速度的关键,访问数据库时,选择合适的数据库锁,设计切合实际的数据库表,都能一定程度上提高网站运行效率。
2.2.3 业务流程分析
业务流程图不仅能反映出内部业务之间的关系,而且能体现出管理顺序及信息的流动。校园跑腿服务系统必须支持整个组织在不同层次上的各种功能,各个功能模块之间又有各种不同相关的信息进行联系,构成了一个有机的整体,根据校园跑腿服务系统的特点以及结合所面临的实际情况,设计出了系统的业务流程图。
系统的业务流程如下图所示。
图2.4 业务流程图
3 系统设计
3.1 架构设计
MVC 是指 Model、View 和 Controller,翻译成中文分别是模型层、视图层和控制层。MVC 模式是一种设计模式,它强制性的把应用程序的输入、输出和处理全部分开,将其分为三个核心部分,这三个部分分别有不同的功能。
系统架构图如图3.1所示:
图3.1 系统架构图
视图层视图是指被用户所看到的并且能够与之进行交互的界面。视图可以向用户展示相关的数据,并接收用户输入的数据,但对用户数据不进行任何实际业务操作处理。
模型层通过控制层来处理视图层传递的数据,同一个模型可以给不同的视图提供数据,也可以被不同的视图重复使用。由于 Model 的主要内容是数据、方法和行为,其也是 MVC 中逻辑最为复杂,代码量最多的部分,其中包含了许多应用中需要用到的业务逻辑,因此模型层的开发也变得尤为重要,后期一般不会对模型层进行大规模改动,也是 MVC 中最稳定的部分。
控制层主要负责视图层和模型层之间的数据传输和处理请求操作。当用户通过视图发送数据和请求时,控制层可以接收请求和数据并决定调用哪些模型、通过模型的哪些操作来处理数据和请求,处理完成后,控制层再将数据返回给相应的视图。
3.2 功能模块设计
根据对系统的功能进行分析可以总结校园跑腿服务系统的具体功能模块包括下面的几个主要的功能模块:该系统主要从三大模块进行设计的,首先就是两个不同身份的用户参与操作需要的模块,此外还需要有管理员用到的模块,三者之间不是互相独立的,他们之间有着密切的联系,同数据库表中的数据连接起来进行操作。每个模块访问相同的数据库,但访问的表不同。系统的各个功能模块是根据所收集的资料研究得到的。在以上分析功能的基础上,系统模块分为多个模块。
本系统的功能模块图如图3.2所示。
图3.2 系统功能模块图
3.3 数据库设计
3.3.1 概念模型设计
根据前面的数据流程图,结合系统的功能模块设计,设计出符合系统的各信息实体。
系统E-R图如下图所示。
图3.3 系统数据库E-R图
3.3.2 数据库表的设计
数据库是校园跑腿服务系统的数据处理的基础,也是为界面数据的展示与存储的关键。校园跑腿服务系统的主要数据库表如下。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | communication_records_id | int | 10 | 0 | N | Y | 沟通记录ID | |
2 | task_name | varchar | 64 | 0 | Y | N | 任务名称 | |
3 | task_classification | varchar | 64 | 0 | Y | N | 任务分类 | |
4 | service_type | varchar | 64 | 0 | Y | N | 服务类型 | |
5 | pickup_location | varchar | 64 | 0 | Y | N | 取货地点 | |
6 | delivery_location | varchar | 64 | 0 | Y | N | 送达地点 | |
7 | running_time | varchar | 64 | 0 | Y | N | 跑腿时间 | |
8 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
9 | running_errand_users | int | 10 | 0 | Y | N | 0 | 跑腿用户 |
10 | student_content | text | 65535 | 0 | Y | N | 学生内容 | |
11 | running_errands_content | text | 65535 | 0 | Y | N | 跑腿内容 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表evaluation_feedback (评价反馈)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | evaluation_feedback_id | int | 10 | 0 | N | Y | 评价反馈ID | |
2 | task_name | varchar | 64 | 0 | Y | N | 任务名称 | |
3 | task_classification | varchar | 64 | 0 | Y | N | 任务分类 | |
4 | service_type | varchar | 64 | 0 | Y | N | 服务类型 | |
5 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
6 | student_phone_number | varchar | 64 | 0 | Y | N | 学生电话 | |
7 | running_errand_users | int | 10 | 0 | Y | N | 0 | 跑腿用户 |
8 | running_name | varchar | 64 | 0 | Y | N | 跑腿姓名 | |
9 | running_phone | varchar | 64 | 0 | Y | N | 跑腿电话 | |
10 | evaluation_content | text | 65535 | 0 | Y | N | 评价内容 | |
11 | feedback_content | text | 65535 | 0 | Y | N | 反馈内容 | |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 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 | redemption_of_points_id | int | 10 | 0 | N | Y | 积分兑换ID | |
2 | exchange_items | varchar | 64 | 0 | Y | N | 兑换物品 | |
3 | release_date | date | 10 | 0 | Y | N | 发布日期 | |
4 | redeem_points | int | 10 | 0 | Y | N | 0 | 兑换积分 |
5 | item_images | varchar | 255 | 0 | Y | N | 物品图片 | |
6 | item_introduction | longtext | 2147483647 | 0 | Y | N | 物品介绍 | |
7 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表running_errands_redemption (跑腿兑换)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | running_errands_redemption_id | int | 10 | 0 | N | Y | 跑腿兑换ID | |
2 | exchange_items | varchar | 64 | 0 | Y | N | 兑换物品 | |
3 | redeem_points | int | 10 | 0 | Y | N | 0 | 兑换积分 |
4 | running_errand_users | int | 10 | 0 | Y | N | 0 | 跑腿用户 |
5 | running_name | varchar | 64 | 0 | Y | N | 跑腿姓名 | |
6 | running_phone | varchar | 64 | 0 | Y | N | 跑腿电话 | |
7 | redemption_remarks | text | 65535 | 0 | Y | N | 兑换备注 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | running_errand_credit_id | int | 10 | 0 | N | Y | 跑腿信用ID | |
2 | running_errand_users | int | 10 | 0 | Y | N | 0 | 跑腿用户 |
3 | running_name | varchar | 64 | 0 | Y | N | 跑腿姓名 | |
4 | running_gender | varchar | 64 | 0 | Y | N | 跑腿性别 | |
5 | running_phone | varchar | 64 | 0 | Y | N | 跑腿电话 | |
6 | credit_rating | varchar | 64 | 0 | Y | N | 信用等级 | |
7 | credit_details | text | 65535 | 0 | Y | N | 信用详情 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | running_errand_users_id | int | 10 | 0 | N | Y | 跑腿用户ID | |
2 | running_name | varchar | 64 | 0 | N | N | 跑腿姓名 | |
3 | running_gender | varchar | 64 | 0 | Y | N | 跑腿性别 | |
4 | running_phone | varchar | 16 | 0 | Y | N | 跑腿电话 | |
5 | running_points | int | 10 | 0 | Y | N | 0 | 跑腿积分 |
6 | points_details | text | 65535 | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | service_type_id | int | 10 | 0 | N | Y | 服务类型ID | |
2 | service_type | 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_credit_id | int | 10 | 0 | N | Y | 学生信用ID | |
2 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
3 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
4 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
5 | student_phone_number | varchar | 64 | 0 | Y | N | 学生电话 | |
6 | credit_rating | varchar | 64 | 0 | Y | N | 信用等级 | |
7 | credit_details | text | 65535 | 0 | Y | N | 信用详情 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_exchange_id | int | 10 | 0 | N | Y | 学生兑换ID | |
2 | exchange_items | varchar | 64 | 0 | Y | N | 兑换物品 | |
3 | redeem_points | int | 10 | 0 | Y | N | 0 | 兑换积分 |
4 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
5 | student_name | varchar | 64 | 0 | Y | N | 学生姓名 | |
6 | student_phone_number | varchar | 64 | 0 | Y | N | 学生电话 | |
7 | redemption_remarks | text | 65535 | 0 | Y | N | 兑换备注 | |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | student_users_id | int | 10 | 0 | N | Y | 学生用户ID | |
2 | student_name | varchar | 64 | 0 | N | N | 学生姓名 | |
3 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
4 | student_phone_number | varchar | 16 | 0 | Y | N | 学生电话 | |
5 | student_points | int | 10 | 0 | Y | N | 0 | 学生积分 |
6 | points_details | text | 65535 | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | task_information_id | int | 10 | 0 | N | Y | 任务信息ID | |
2 | task_name | varchar | 64 | 0 | Y | N | 任务名称 | |
3 | task_classification | varchar | 64 | 0 | Y | N | 任务分类 | |
4 | service_type | varchar | 64 | 0 | Y | N | 服务类型 | |
5 | access_status | varchar | 64 | 0 | Y | N | 接取状态 | |
6 | pickup_location | varchar | 64 | 0 | Y | N | 取货地点 | |
7 | delivery_location | varchar | 64 | 0 | Y | N | 送达地点 | |
8 | task_date | date | 10 | 0 | Y | N | 任务日期 | |
9 | running_time | varchar | 64 | 0 | Y | N | 跑腿时间 | |
10 | salary_and_compensation | varchar | 64 | 0 | Y | N | 薪资报酬 | |
11 | number_of_tasks | varchar | 64 | 0 | Y | N | 任务数量 | |
12 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
13 | student_phone_number | varchar | 64 | 0 | Y | N | 学生电话 | |
14 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
15 | task_content | text | 65535 | 0 | Y | N | 任务内容 | |
16 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | task_order_id | int | 10 | 0 | N | Y | 任务订单ID | |
2 | task_name | varchar | 64 | 0 | Y | N | 任务名称 | |
3 | task_classification | varchar | 64 | 0 | Y | N | 任务分类 | |
4 | service_type | varchar | 64 | 0 | Y | N | 服务类型 | |
5 | pickup_location | varchar | 64 | 0 | Y | N | 取货地点 | |
6 | delivery_location | varchar | 64 | 0 | Y | N | 送达地点 | |
7 | running_time | varchar | 64 | 0 | Y | N | 跑腿时间 | |
8 | salary_and_compensation | varchar | 64 | 0 | Y | N | 薪资报酬 | |
9 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
10 | student_phone_number | varchar | 64 | 0 | Y | N | 学生电话 | |
11 | running_errand_users | int | 10 | 0 | Y | N | 0 | 跑腿用户 |
12 | running_name | varchar | 64 | 0 | Y | N | 跑腿姓名 | |
13 | running_phone | varchar | 64 | 0 | Y | N | 跑腿电话 | |
14 | task_status | varchar | 64 | 0 | Y | N | 任务状态 | |
15 | progress_description | text | 65535 | 0 | Y | N | 进度描述 | |
16 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
17 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
18 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
19 | 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 | 更新时间: |
4 系统实现
4.1 开发环境
本系统采用了前后端分离的架构设计,基于SpringBoot框架和UniApp开发,数据库选用关系型数据库MySQL,系统开发环境如表4.1所示。
表4.1 系统开发环境
硬件环境 | 软件环境 |
CPU: 2.0G 以上 | 操作系统:Windows 7及 以上版本 |
内存:8GB 以上 | 开发语言:Java 使用框架:SpringBoot+微信小程序 开发工具:UniApp 数据库:MySQL 5.6以上 |
硬盘:100MB以上 | 数据库管理工具:Navicat JDK版本:Java 1.8 |
显卡:图像级显卡以上 | 数据库:MySQL 5.6以上 |
4.2 功能模块实现
4.2.1 用户端首页模块
首页主要分别展示各个模块的最新动态,浏览者可以很清楚地看到不同模块的最新更新内容。并且系统首页每个部分可以跳转到相对应的模块,方便浏览者选择感兴趣的地方。前端首页界面如下图所示。
图4.1 前台首页模块实现图
4.2.2 用户端注册模块
当用户点击“注册”按钮的时候,当填写上自己的账号+密码+确认密码+昵称+邮箱+手机号等信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可注册成功。
用户端注册模块实现图如下所示。
图4.2 用户端注册模块实现图
注册关键代码如下所示。
/**
* 注册
* @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);
}
4.2.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.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}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.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
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());
tokenService.save(accessToken);
// 返回用户信息
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.2.4 用户端新闻资讯模块
当用户点击基于Springboot+uniapp的校园跑腿服务系统中的“新闻资讯”后将会进入到该“新闻资讯”列表的界面,然后选择想要看的新闻资讯信息,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作。界面如下图所示。
用户端新闻资讯模块界面图如下所示。
图4.4 用户端新闻资讯模块界面图
4.2.5 用户端积分兑换模块
当用户点击基于Springboot+uniapp的校园跑腿服务系统中的“积分兑换”后将会进入到该“积分兑换”列表的界面,然后选择想要的积分兑换信息,点击进入到详细界面,在详细界面可以收藏+赞+评论+兑换等操作。
积分兑换界面图如下所示。
图4.5 积分兑换界面图
4.2.6 管理员端系统用户模块
在后台系统用户管理中,主要是管理注册的学生用户、跑腿用户和管理员,管理员拥有对所有用户管控的功能。管理端系统用户实现图如下所示。
图4.10 管理端系统用户模块实现图
用户列表管理关键代码如下:
@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);
}
4.2.7 管理员服务类型管理模块
管理员点击“服务类型管理”可以查看到所有的服务类型信息,可以对其进行增删改查操作。管理端服务类型管理实现图如下所示。
图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);
}
4.2.8 管理员端评价反馈管理模块
管理员点击“评价反馈管理”会显示出所有用户提交的评价反馈信息,可以选择某一条评价反馈信息,点击详情进行审核回复,审核通过后添加确认评价反馈。
管理端评价反馈实现图如下所示。
图4.12 管理端评价反馈管理实现图
修改评价反馈关键代码如下:
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
4.2.9 管理员端系统管理模块
管理员点击“系统管理”菜单可以对系统的轮播图进行管理,查看到系统中的所有轮播图信息,对已经存在的轮播图,管理员可以修改,也可以发布新的轮播图信息。管理端系统轮播图管理实现图如下所示。
图4.13 管理端系统轮播图管理实现图
4.2.10 管理员端资源管理模块
管理员点击“资源管理”菜单能够对管理系统内的新闻资讯及其所属资讯分类信息进行增删改查。管理端资源管理实现图如下所示。
图4.14 管理端资源管理实现图
5.1测试计划
5.1.1 测试范围与主要内容
一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。
5.1.2 测试方法
黑盒测试又被人们称作为功能测试,通常是在程序的接口来做一些测试的方法,它一般包括对程序的功能和使用的方法来做出一些数据的接受和输出,同时还可以做出正确的输出信息,并保证与外部信息的完整性。
白盒测试通常被人们称作为结构测试,在整个程序的结构和处理当中它是由程序当中的逻辑测试和检验程序来完成一些正确的工作。
具体的功能测试它是包括:系统的适用性、准确性、安全性等功能测试。
5.2 功能测试
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表5.1 系统登录功能测试用例
功能描述 | 用于系统登录 | |
测试目的 | 检测登录时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的用户名和密码带有非法字符 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名或者密码为空 | 提示用户名或者密码错误 | 与预期结果一致 |
输入的用户名和密码不存在 | 提示用户名或者密码错误 | 与预期结果一致 |
输入正确的用户名和密码 | 登录成功 | 与预期结果一致 |
下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表5.2 注册功能测试用例
功能描述 | 用于用户注册 | |
测试目的 | 检测用户注册时的合法性检查 | |
测试数据以及操作 | 预期结果 | 实际结果 |
输入的手机号不合法 | 提示请输入正确的手机号码 | 与预期结果一致 |
输入的字段为空 | 提示必填项不能为空 | 与预期结果一致 |
输入的密码少于6位 | 提示密码必须为6-12位 | 与预期结果一致 |
输入的密码大于12位 | 提示密码必须为6-12位 | 与预期结果一致 |
下表是任务订单管理功能的测试用例,检测了任务订单管理中对任务订单信息的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;用户登录系统。
表5.3 任务订单管理的测试用例
功能描述 | 用于任务订单管理 | |
测试目的 | 检测任务订单管理时的各种操作的运行情况 | |
测试数据以及操作 | 预期结果 | 实际结果 |
点击添加任务订单信息,必填项合法输入,点击保存 | 提示添加成功 | 与预期结果一致 |
点击添加任务订单信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改任务订单信息,必填项修改为空,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击修改任务订单信息,必填项输入不合法,点击保存 | 提示必填项不能为空 | 与预期结果一致 |
点击删除任务订单信息,选择任务订单信息删除 | 提示删除成功 | 与预期结果一致 |
点击搜索任务订单信息,输入存在的任务订单信息名 | 查找出任务订单信息 | 与预期结果一致 |
点击搜索任务订单信息,输入不存在的任务订单信息名 | 不显示任务订单信息 | 与预期结果一致 |
5.3 测试结论
通过对校园跑腿服务系统的调试,能够检测校园跑腿服务系统的稳定性,为校园跑腿服务系统正式运行、稳定运行提供了可预测性的维护备案。能够帮助使用者熟悉整个校园跑腿服务系统,并对校园跑腿服务系统可能出现的错误有所了解。本章节提供了部分调试用例及调试日志,可以帮助使用者解决简单的错误问题,也加深了开发者对于此框架下的校园跑腿服务系统编写的了解度,为后期开发者顺利完成校园跑腿服务系统、发布任务订单提供了非常大的帮助。
6 总结与展望
随着科技的飞速发展,越来越多的行业和企业都在利用计算机技术来管理日益增长的数据。本文旨在探讨校园跑腿服务系统设计与实现,以满足校园跑腿服务系统信息化管理的需求。
本次毕业论文主要是利用Springboot+UniApp技术开发一个安全可靠,操作简易,同时具备业务可扩展的校园跑腿服务系统平台。本文详细的论述了系统的设计和开发,本系统的所有事务逻辑都是按照系统的需求分析进行设计的。在这个设计中,我花了大量的时间去理解系统开发中使用的知识,经过这段时间的努力工作最终完成了系统设计。通过这一阶段的学习,我发现了自己的不足,充分掌握了必要的应用技能,进一步的学习使我充实了自己的知识基础,完成了这个艰巨的任务。当遇到问题时,我很及时的寻求老师的帮助,通过专业的网站和论坛来解决,他们的帮助让我一步一步的成功克服了困难的问题。系统设计过程不容易,你需要不断充实自己,有勇气克服困难。系统开发的一些功能还不完善,需要继续改善后,通过用户体验来修改设计完美的系统,让用户得到更好的体验,我觉得很高兴,因为这是我第一次通过自己的努力实现这个系统,但绝不是我的最后一个,在未来我将努力实现更多的优秀的系统。
目前完成的校园跑腿服务系统设计与实现,还有许多有待改进的地方。一个是功能上的改进,第二个是技术上的改进。另外,系统如果能提供更多的功能就会使得系统更加丰富和多样化,比如兼职数据分析和可视化等。另外就是对前端UI的使用还不够熟练,视觉效果和界面观感有待提升,希望日后能对这个系统有所改进。
参考文献
[1]Gupta P M ,Kumar S ,Jatoth N D , et al.A new design approach of Rat-Race coupler based compact GaN HEMT power amplifier towards flat high efficiency over broadband[J].AEUE - International Journal of Electronics and Communications,2024,178155279-.
[2]罗光武,陈典灿,吴荷,等.应用Springboot+Vue框架的时间管理软件的设计与实现[J].工业控制计算机,2024,37(04):64-66.
[3]Chen L ,Zhu B ,Ru G , et al.Author Correction: Re-engineering the adenine deaminase TadA-8e for efficient and specific CRISPR-based cytosine base editing.[J].Nature biotechnology,2024,
[4]Liu Y ,Ma Q,Ou C, et al.Design and implementation of student micro-expression recognition system based on convolutional neural network[J].Computer Informatization and Mechanical System,2024,7(2):20-22.
[5]Barton J H ,Maru A ,Leaf A M , et al.Academic Detailing as a Health Information Technology Implementation Method: Supporting the Design and Implementation of an Emergency Department-Based Clinical Decision Support Tool to Prevent Future Falls.[J].JMIR human factors,2024,11e52592-e52592.
[6]Jasienski P J ,Shen Y ,Ohlbrock O P , et al.A computational implementation of Vector-based 3D Graphic Statics (VGS) for interactive and real-time structural design[J].Computer-Aided Design,2024,171103695-.
[7]Angela M V ,Harshini D ,Imran M P , et al.Rational design of quinoline-based D-A system to accomplish a switching from binary to ternary memory devices[J].Synthetic Metals,2024,305117598-.
[8]李明,冯树栋,白宗文,等.基于SpringBoot的成果需求匹配系统设计与实现[J].延安大学学报(自然科学版),2024,43(01):90-95.DOI:10.13876/J.cnki.ydnse.230026.
[9]王晓东,刘海燕,王迎,等.基于SpringBoot的气象信息资源管理系统设计与实现[J].电脑编程技巧与维护,2024,(03):79-82.DOI:10.16184/j.cnki.comprg.2024.03.028.
[10]郭甲天,陈婷,向阳.一种基于SpringBoot框架校园宿舍管理系统的设计与实现[J].电脑知识与技术,2024,20(07):37-40.DOI:10.14004/j.cnki.ckt.2024.0444.
[11]雷欣,马宏琳,郑霖,等.基于SpringBoot的域名信息系统设计与实现[J].电脑知识与技术,2024,20(05):44-47.DOI:10.14004/j.cnki.ckt.2024.0188.
[12]白茹鑫.基于SpringBoot+SSM框架的企业安全培训管理系统设计与实现[J].现代信息科技,2024,8(01):44-49.DOI:10.19850/j.cnki.2096-4706.2024.01.009.
[13]石雨昕,关家兴,邹博华,等.基于SpringBoot微服务架构设计与实现实验室开放课题管理系统[J].实验室检测,2024,2(01):101-106.
[14]张雷雨,单田清,梁霄.基于SpringBoot的水利地理信息系统设计与实现[J].连云港职业技术学院学报,2023,36(04):1-7.DOI:10.19858/j.cnki.1009-4318.2023.04.003.
[15]吴伶琳.基于SpringBoot的客户关系管理系统设计与实现[J].无线互联科技,2023,20(24):60-62.
[16]武际斌,段良华,金永亮.基于Vue+SpringBoot的课程思政素材库的设计与实现[C]//百色学院马克思主义学院.2023年思想政治教育论坛论文集.山东信息职业技术学院;,2023:3.DOI:10.26914/c.cnkihy.2023.087218.
[17]王连昆.智慧审批数据跑腿企业点单服务到家[N].滨城时报,2023-11-11(001).DOI:10.28019/n.cnki.nbfjs.2023.002293.
[18]牛占虎,郝晋娴.城关区一站式套餐服务让群众少跑腿[N].甘肃经济日报,2023-08-29(003).DOI:10.28283/n.cnki.ngsjj.2023.001669.
[19]叶子,周好雨,王圣婴.即时需求多,跑腿服务忙[J].科学之友,2023,(07):56-59.
[20]文静,赵敏坚.服务“送上门”企业“零跑腿”[N].韶关日报,2023-06-21(A05).DOI:10.28690/n.cnki.nsgrb.2023.001093.
致谢
眨眼之间,大学生活就要结束了。在本文的最后,我要感谢我和蔼可亲的导师、团结有爱的同学的帮助和鼓励。此刻,我找不到感谢之词可以用来表达我最深切的感激之情。尤其感谢我的指导老师,在选题的过程中与我进行了深入的交流,在毕业设计期间给我提供了一些指导。四年的学习生活让我受益良多,老师们的丰富的学术知识、认真负责的学习态度让我受益匪浅。在此,我深深地感谢那些曾经给予我帮助和指导的老师!
我们的论文得益于许多学者的贡献,他们的研究成果为我们提供了宝贵的指导,使我们能够更好地完成这篇文章。感谢我的同学和朋友在我的写作以及排版过程中给予热情的帮助,才使得我比较顺利的完成了这篇论文。
感谢大学里遇见的朋友,你们在我这四年里留下无数的温暖和快乐,让我对这个校园多了一份留念。最后,感谢我的父母、辅导员、班长,以及室友们对我大学生活上的关心和理解,让我能保持乐观和追求我所热爱的。尽管我的能力有限,但我仍然尽力去完善这篇论文,并且诚挚地希望各位老师和学友能够给予宝贵的指导与意见。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~