摘 要
随着科技的进步和互联网的普及,校园生活也在逐步数字化和智能化。特别是在高校环境中,学生对于便捷、高效和个性化的服务需求日益增强。校园内的餐饮服务作为日常生活的重要组成部分,其服务质量和效率直接影响到学生的满意度和校园生活的便利性。
传统的校园餐饮服务模式通常依赖于食堂或第三方餐饮供应商,虽然能够满足基本的饮食需求,但在某些特定场景下,如用餐高峰期、特殊饮食需求或临时用餐需求等,学生可能会面临排队等待、选择有限或无法满足个性化需求等问题。因此,开发一种新型的、基于互助模式的校园送餐系统显得尤为必要。
校园互助送餐系统正是为了解决上述问题而设计的。该系统利用SpringBoot框架的灵活性和高效性,结合现代Web技术和移动应用开发技术,构建一个连接学生、食堂和餐饮供应商的平台。在这个平台上,学生可以发布自己的用餐需求,食堂和餐饮供应商可以提供相应的餐饮服务,同时鼓励学生之间通过互助模式共享餐食,从而减少等待时间、提高用餐效率,并满足学生的个性化需求。
该系统还注重用户体验和信息安全。通过友好的界面设计、简洁的操作流程和严格的数据保护措施,我们旨在为用户提供一个安全、便捷、高效的校园送餐体验。
校园互助送餐系统的设计与实现旨在通过技术手段解决校园餐饮服务的痛点,为学生带来更加便捷、高效和个性化的用餐体验。我们期待这一系统能够成为校园生活的一部分,为广大学生带来实实在在的便利。
关键词:校园互助送餐系统;Web技术;Spring Boot框架
Design and Implementation of Campus Mutual Aid Meal Delivery System
Abstract
With the progress of science and technology and the popularity of the Internet, campus life is also gradually becoming digital and intelligent. Especially in the university environment, students have an increasing demand for convenient, efficient, and personalized services. As an important component of daily life, the quality and efficiency of campus catering services directly affect the satisfaction of students and the convenience of campus life.
The traditional campus catering service model usually relies on canteens or third-party catering suppliers. Although it can meet basic dietary needs, in certain specific scenarios, such as peak dining periods, special dietary needs, or temporary dining needs, students may face problems such as queuing, limited choices, or inability to meet personalized needs. Therefore, it is particularly necessary to develop a new type of campus meal delivery system based on mutual assistance mode.
The campus mutual aid meal delivery system is designed to address the aforementioned issues. This system utilizes the flexibility and efficiency of the SpringBoot framework, combined with modern web technology and mobile application development technology, to build a platform that connects students, cafeterias, and catering suppliers. On this platform, students can post their dining needs, and cafeterias and catering suppliers can provide corresponding catering services. At the same time, students are encouraged to share meals through mutual assistance mode, thereby reducing waiting time, improving dining efficiency, and meeting personalized needs of students.
In addition, the system also focuses on user experience and information security. Through a user-friendly interface design, concise operating procedures, and strict data protection measures, we aim to provide users with a safe, convenient, and efficient campus meal delivery experience.
In summary, the design and implementation of the campus mutual aid meal delivery system aims to solve the pain points of campus catering services through technological means, and bring students a more convenient, efficient, and personalized dining experience. We look forward to this system becoming a part of campus life and bringing tangible convenience to students.
Key words:Campus mutual aid meal delivery system; Web technology; Spring Boot framework
目 录
随着高校规模的不断扩大和学生需求的日益多样化,传统的校园餐饮服务模式已经难以满足现代大学生的期望。特别是在用餐高峰期,学生往往面临长时间的排队等待,这不仅影响了他们的学习效率,也降低了校园生活的质量。此外,对于一些有特殊饮食需求或对食物过敏的学生来说,找到合适的食物变得更加困难。
与此同时,校园内存在大量的餐饮资源,包括食堂、小吃街、校外餐饮店等,但学生往往难以获取这些资源的实时信息,导致选择有限或错过用餐时机。此外,由于学生之间的用餐需求存在时间和空间上的不平衡,有时某些地方的食物供应过剩,而另一些地方则供不应求。
因此,开发一个校园互助送餐系统显得尤为重要。该系统旨在通过技术手段,整合校园内的餐饮资源,实现信息的实时共享和有效匹配。通过该系统,学生可以更加方便地获取用餐信息,提前预订或选择送餐服务,从而减少等待时间,提高用餐效率。同时,该系统还可以鼓励学生之间通过互助模式共享餐食,减少食物浪费,促进校园内的环保和可持续发展。
校园互助送餐系统的设计与实现是基于现代高校环境和学生需求的综合考虑,旨在通过技术手段解决校园餐饮服务的痛点,为学生带来更加便捷、高效和个性化的用餐体验。这一系统的实现将有助于提高校园生活的质量,促进学生的身心健康和全面发展。
-
- 国内外研究现状
国内研究现状
在国内,随着高校规模的不断扩大和学生需求的多样化,校园互助送餐系统的研究与应用逐渐受到关注。近年来,一些高校和研究机构开始探索基于互联网和移动应用的校园送餐服务模式。例如,有些学校已经推出了自己的校园送餐APP或小程序,通过在线预订、支付和配送等功能,为学生提供更加便捷的用餐体验。同时,一些创业团队也看到了校园送餐市场的潜力,纷纷进入这一领域,推出了各具特色的产品和服务。
然而,目前国内的校园互助送餐系统还处于发展阶段,仍存在一些问题和挑战。例如,系统的稳定性和安全性需要进一步加强,用户体验和服务质量需要不断优化,同时还需要解决食品安全、配送效率等问题。
国外研究现状
在国外,尤其是在一些发达国家,校园互助送餐系统的研究与应用已经相对成熟。许多高校和研究机构已经建立了完善的校园餐饮服务体系,通过先进的技术和管理手段,为学生提供多样化、个性化的用餐选择。例如,一些国外的高校采用了智能餐盘系统,学生可以通过自助选餐、自动结算等方式,快速完成用餐过程。同时,一些国外的创业团队也推出了具有创新性的校园送餐服务,如无人机配送、自动驾驶车辆送餐等,进一步提高了送餐效率和服务质量。
总结
从国内外研究现状来看,校园互助送餐系统的发展前景广阔,但仍需要解决一些技术和管理上的挑战。未来,我们可以借鉴国内外的成功经验和技术手段,结合实际情况,设计和实现更加完善、高效、安全的校园互助送餐系统,为学生带来更加便捷、舒适、健康的用餐体验。
校园互助送餐系统的设计与实现旨在解决当前校园餐饮服务中存在的问题,满足学生对便捷、高效、个性化用餐的需求。该系统通过整合校园内的餐饮资源,利用现代互联网技术,构建一个连接学生、食堂和餐饮供应商的平台,实现信息的实时共享和有效匹配。
该系统的研究目的不仅在于提供一个技术解决方案,更在于推动校园餐饮服务的升级和转型。通过引入互助模式,鼓励学生之间共享餐食,减少食物浪费,促进环保和可持续发展。同时,该系统还可以为食堂和餐饮供应商提供更多的市场机会和服务渠道,促进校园餐饮市场的繁荣和发展。
校园互助送餐系统不仅具有显著的现实意义,而且在多个方面都能为校园生活带来积极的影响。这一系统能有效缓解用餐高峰时学生排队等候的困扰,显著提升用餐效率,从而为学生节省宝贵的时间和精力。此外,它还能灵活满足学生的个性化需求,无论是特殊饮食要求还是临时用餐需求,都能得到更加周到和个性化的服务。更重要的是,借助互联网技术和移动应用,该系统能够推动校园餐饮服务的智能化和数字化进程,进一步促进校园生活的现代化和便捷化。
校园互助送餐系统的设计与实现具有重要的研究目的和意义。它不仅可以解决当前校园餐饮服务中存在的问题,满足学生的多样化需求,还可以推动校园餐饮服务的升级和转型,促进校园生活的现代化和便捷化。这一系统的实现将为广大学生带来实实在在的便利,同时也为校园餐饮市场的繁荣和发展做出贡献。
在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。校园互助送餐系统的可行性分析如下所示:
校园互助送餐系统采用的是Java编程语言并于freemarker的模式,数据库部分采用的是当前流行的MySQL数据库,校园互助送餐系统中的所有数据资源都存储在MySQL数据库中,本系统多处采用了Ajax的异步操作,Ajax技术可以对用户指定部分的数据进行局部刷新,不仅减少了服务器对页面的解析而且极大增加了用户的体验度。本系统的环境配置也较为简单,因为用的是Myeclipse编辑器,而Myeclipse里面有自带的Tomcat服务器和JDK环境,因此不需要我们在重新配置。
校园互助送餐系统是在Java和MySQL的环境中运行的,而系统的成本也只是主要分布在软件的开发和维护上。但如果系统上线投入使用之后,不仅可以方便人们,还节省了用户的时间和精力,而且还极大限度的方便了运营者,减少了运营者的工作强度。校园互助送餐系统其实也不太复杂,在开发的时候经济支出也不大,在开发系统时时间用的也不多,从时间的优势和对经济利益方面产生的好处远超过维护和管理的成本,所以开发此系统是可行合适的。
本系统是基于浏览器和服务器的校园互助送餐系统,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。
-
- 功能需求分析
校园互助送餐系统的设计与实现分为四大部分:管理员、学生用户、配送用户、店家用户。
- 管理员管理功能需求如下:
登录:管理员需要能够通过管理员账号和密码登录系统,以便进行管理和监控。
后台首页:管理员需要一个后台首页,用于显示系统运行的整体情况,包括订单数量、活动数量、用户数量等重要信息。
系统用户管理:管理员需要进行系统用户的管理,包括添加新用户、重置密码、禁用用户等操作。
配送订单管理:管理员需要能够查看所有的配送订单,包括订单的状态、配送员信息、配送时间等,并能够进行订单的分配、调度和管理。
配送打分管理:管理员需要能够查看配送员的评分情况,对配送员的表现进行监控和管理。
活动信息管理:管理员需要能够发布和管理各种活动信息,包括活动的名称、时间、地点、内容等。
活动分类管理:管理员需要对活动信息进行分类管理,方便用户查找相关的活动信息。
系统管理:管理员需要可以管理系统首页的轮播图,包括上传、编辑、删除轮播图等操作。
通知公告管理:管理员需要能够发布网站的通知公告,包括系统更新、重要通知等内容。
商城管理:管理员需要管理系统中的商城功能,包括商品管理、库存管理、价格设置等。管理员应可以添加新商品、编辑商品信息、下架过期商品等。
权限管理:管理员需要能够管理系统中各个用户的权限,包括设置不同用户的操作权限和访问权限。
(二)学生用户功能需求如下:
注册登录:学生用户需要能够注册账号并通过账号密码登录系统,以便进行个人信息管理和下单操作。
首页:学生用户登录后能够浏览到系统的首页,显示最新的活动信息、热门餐品、以及通知公告等内容。
购物车:学生用户可以将想要购买的餐品加入购物车,方便统一管理和下单。
活动信息:学生用户能够查看系统发布的各类活动信息,包括送餐优惠、满减活动等。
餐品信息:学生用户可以浏览系统中的餐品信息,包括菜单、价格、口味等,并进行选择和下单。
通知公告:学生用户可以查看系统发布的通知公告,包括系统更新、重要通知等内容。
我的:学生用户可以查看和管理个人信息,包括基本信息、收货地址、收藏的餐品、订单历史、购物车状态、配送订单状态以及进行配送员的打分等操作。
配送订单:学生用户可以查看自己的配送订单,包括订单状态、配送员信息、配送时间等,并能够对配送员的服务进行评分。
(三)店家用户功能需求如下:
注册登录:店家用户需要能够通过注册账号并登录系统,以便管理自己的店铺信息和订单。
后台首页:店家用户登录后能够查看店铺的整体运营情况,包括订单数量、销售情况、配送情况等重要信息。
配送订单管理:店家用户需要能够查看自己店铺的配送订单,包括订单状态、配送员信息、配送时间等,并能够更新订单状态和配送信息。
配送打分管理:店家用户需要能够查看用户对配送员的评分情况,以便了解配送服务质量。
商城管理:店家用户需要能够管理自己店铺的商城功能,包括菜品管理、库存管理、价格设置、菜单更新等。店家用户应可以添加新的菜品、编辑菜品信息、下架过期菜品等操作。
(四)配送用户功能需求如下:
注册登录:配送用户需要能够通过注册账号并登录系统,以便接受配送订单和管理个人信息。
后台首页:配送用户登录后能够查看个人的配送订单情况,包括待配送订单、已完成订单、配送评分等重要信息。
配送订单管理:配送用户需要能够查看自己需要配送的订单,包括订单详情、配送地址、联系方式等,并能够更新订单状态和配送信息。
配送打分管理:配送用户需要能够查看用户对自己的配送服务的评分情况,以便了解自己的服务质量。
通过2.2功能的分析,得出了系统的用例图:
学生用户角色用例如图2-1所示。

图2-1学生用户用例图
配送用户角色用例如图2-2所示。

图2-2配送用户用例图
管理员角色用例如图2-3所示。

图2-3管理员用例图
店家用户角色用例如图2-4所示。

图2-4店家用户用例图
(1)增加数据流程
系统中的所有用户(管理员、学生用户、配送用户和店家用户)都可以实现增加数据功能,图2-5显示的就是在增加数据时的流程。

图2-5增加数据流程图
(2)修改数据流程
人无完人,每个人都有出错的时候,在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图2-6显示的就是修改数据的流程。

图2-6修改数据流程图
(3)删除数据流程
在系统中经常会出现一些过期的数据,比如订单信息等,那就可以直接删除这些数据,图2-7就是删除数据时的流程图。

图2-7删除数据流程图
由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。
DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。
MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。
系统架构如下图所示。

图3-1系统架构图
进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是后台首页、系统用户、配送订单管理、配送打分管理、活动信息管理、活动分类管理、系统管理、通知公告管理、商城管理、权限管理。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。
系统功能结构图如下所示。

图3-2系统功能结构图
一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。
-
-
- 数据库E-R图设计
-
本校园互助送餐系统采用的是mysql数据库,数据存储快,因为校园互助送餐系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,
系统的主要实体间关系E-R图如下图所示。

图3-3系统E-R图
此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示以下几个表。
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 用户编号: |
表activity_classification (活动分类)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | activity_classification_id | int | 10 | 0 | N | Y | 活动分类ID | |
| 2 | activity_classification | 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 | address_id | int | 10 | 0 | N | Y | 收货地址: | |
| 2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
| 3 | phone | varchar | 13 | 0 | Y | N | 手机: | |
| 4 | postcode | varchar | 8 | 0 | Y | N | 邮编: | |
| 5 | address | varchar | 255 | 0 | N | N | 地址: | |
| 6 | user_id | mediumint | 8 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
| 7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | cart_id | int | 10 | 0 | N | Y | 购物车ID: | |
| 2 | title | varchar | 64 | 0 | Y | N | 标题: | |
| 3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
| 4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
| 8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
| 9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
| 10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
| 11 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 12 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
| 13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 14 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | delivery_order_id | int | 10 | 0 | N | Y | 配送订单ID | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
| 3 | store_name | varchar | 64 | 0 | Y | N | 店铺名称 | |
| 4 | store_user | int | 10 | 0 | Y | N | 0 | 店家用户 |
| 5 | delivery_name | varchar | 64 | 0 | Y | N | 外卖名称 | |
| 6 | order_quantity | varchar | 64 | 0 | Y | N | 下单数量 | |
| 7 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
| 8 | student_phone_number | varchar | 64 | 0 | Y | N | 学生电话 | |
| 9 | delivery_address | varchar | 64 | 0 | Y | N | 配送地址 | |
| 10 | delivery_users | int | 10 | 0 | Y | N | 0 | 配送用户 |
| 11 | delivery_phone_number | varchar | 64 | 0 | Y | N | 配送电话 | |
| 12 | delivery_status | varchar | 64 | 0 | Y | N | 配送状态 | |
| 13 | delivery_content | text | 65535 | 0 | Y | N | 配送内容 | |
| 14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | delivery_scoring_id | int | 10 | 0 | N | Y | 配送打分ID | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
| 3 | store_name | varchar | 64 | 0 | Y | N | 店铺名称 | |
| 4 | store_user | int | 10 | 0 | Y | N | 0 | 店家用户 |
| 5 | delivery_name | varchar | 64 | 0 | Y | N | 外卖名称 | |
| 6 | student_users | int | 10 | 0 | Y | N | 0 | 学生用户 |
| 7 | delivery_users | int | 10 | 0 | Y | N | 0 | 配送用户 |
| 8 | student_scoring | int | 10 | 0 | Y | N | 0 | 学生打分 |
| 9 | scoring_remarks | varchar | 64 | 0 | Y | N | 打分备注 | |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | delivery_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 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
| 5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | event_information_id | int | 10 | 0 | N | Y | 活动信息ID | |
| 2 | activity_name | varchar | 64 | 0 | Y | N | 活动名称 | |
| 3 | activity_classification | varchar | 64 | 0 | Y | N | 活动分类 | |
| 4 | event_date | date | 10 | 0 | Y | N | 活动日期 | |
| 5 | activity_duration | varchar | 64 | 0 | Y | N | 活动期限 | |
| 6 | cover_photo | varchar | 255 | 0 | Y | N | 封面图片 | |
| 7 | content_details | longtext | 2147483647 | 0 | Y | N | 内容详情 | |
| 8 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
| 9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
| 10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | food_information_id | int | 10 | 0 | N | Y | 餐品信息ID | |
| 2 | store_name | varchar | 64 | 0 | Y | N | 店铺名称 | |
| 3 | store_user | int | 10 | 0 | Y | N | 0 | 店家用户 |
| 4 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
| 5 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
| 6 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
| 7 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 8 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 9 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 10 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 11 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
| 12 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
| 13 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
| 14 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
| 15 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
| 16 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
| 17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | goods_id | mediumint | 8 | 0 | N | Y | 产品id:[0,8388607] | |
| 2 | title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品和html的<title>标签中 | |
| 3 | img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
| 4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
| 5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
| 8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 9 | type | varchar | 64 | 0 | N | N | 商品分类: | |
| 10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
| 11 | content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
| 12 | img_1 | text | 65535 | 0 | Y | N | 主图1: | |
| 13 | img_2 | text | 65535 | 0 | Y | N | 主图2: | |
| 14 | img_3 | text | 65535 | 0 | Y | N | 主图3: | |
| 15 | img_4 | text | 65535 | 0 | Y | N | 主图4: | |
| 16 | img_5 | text | 65535 | 0 | Y | N | 主图5: | |
| 17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 19 | customize_field | text | 65535 | 0 | Y | N | 自定义字段 | |
| 20 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 21 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | int | 10 | 0 | N | Y | 商品分类ID: | |
| 2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 3 | name | varchar | 255 | 0 | Y | N | 商品名称: | |
| 4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
| 5 | icon | varchar | 255 | 0 | Y | N | 图标: | |
| 6 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 7 | source_field | 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 | 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 | logistics_delivery_id | int | 10 | 0 | N | Y | 物流配送ID | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
| 3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 4 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
| 5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易总额 |
| 6 | the_date_of_issuance | date | 10 | 0 | Y | N | 发货日期 | |
| 7 | delivery_number | varchar | 30 | 0 | Y | N | 配送订单 | |
| 8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
| 9 | shipping_address | varchar | 64 | 0 | Y | N | 收货地址 | |
| 10 | delivery_status | varchar | 64 | 0 | Y | N | 配送状态 | |
| 11 | signing_status | varchar | 64 | 0 | Y | N | 签收状态 | |
| 12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
| 13 | contact_name | varchar | 255 | 0 | Y | N | 联系人名字 | |
| 14 | merchant_id | int | 10 | 0 | Y | N | 商家id | |
| 15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | order_id | int | 10 | 0 | N | Y | 订单ID: | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单号: | |
| 3 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
| 4 | title | varchar | 32 | 0 | Y | N | 商品标题: | |
| 5 | img | varchar | 255 | 0 | Y | N | 商品图片: | |
| 6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
| 7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
| 8 | num | int | 10 | 0 | N | N | 1 | 数量: |
| 9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
| 10 | norms | varchar | 255 | 0 | Y | N | 规格: | |
| 11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 12 | contact_name | varchar | 32 | 0 | Y | N | 联系人姓名: | |
| 13 | contact_email | varchar | 125 | 0 | Y | N | 联系人邮箱: | |
| 14 | contact_phone | varchar | 11 | 0 | Y | N | 联系人手机: | |
| 15 | contact_address | varchar | 255 | 0 | Y | N | 收件地址: | |
| 16 | postal_code | varchar | 9 | 0 | Y | N | 邮政编码: | |
| 17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
| 18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
| 19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 21 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
| 22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 23 | remark | text | 65535 | 0 | Y | N | 订单备注 | |
| 24 | delivery_state | varchar | 16 | 0 | Y | N | 未配送 | 发货状态:未配送,已配送 |
| 25 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 折扣 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 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 | store_user_id | int | 10 | 0 | N | Y | 店家用户ID | |
| 2 | store_name | varchar | 64 | 0 | Y | N | 店铺名称 | |
| 3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 4 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
| 5 | contact_phone_number | varchar | 16 | 0 | Y | N | 联系电话 | |
| 6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 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 | Y | N | 学生姓名 | |
| 3 | student_gender | varchar | 64 | 0 | Y | N | 学生性别 | |
| 4 | student_phone_number | varchar | 16 | 0 | Y | N | 学生电话 | |
| 5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
| 6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
| 7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 8 | 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.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-5餐品信息界面图
当用户浏览到心仪的商品时,可以将商品添加至购物车内,查看购物车列表,修改或者删除购物车。我的购物车界面如下图所示。

图4-6我的购物车界面图
用户可以查看订单的详细信息,包括订单编号、下单时间、订单备注等,可以对订单进行支付。我的订单界面如下图所示。

图4-7我的订单界面图
用户输入收货人、手机号及详细地址可以对收货地址进行添加。收货地址界面如下图所示。

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

图4-9管理员登录界面图
4.2.2 管理员功能界面
管理员可以查看后台首页、系统用户、配送订单管理、配送打分管理、活动信息管理、活动分类管理、系统管理、通知公告管理、商城管理、权限管理等,并且可以根据需要进行相应的操作,在功能界面还可以查看商品销售金额统计和商品销售数量统计。管理员功能界面如下图所示。

图4-10管理员功能界面图
4.2.3 系统用户管理界面
管理员可以对系统中所有的用户角色进行管控,包含了管理员、学生用户、店家用户、配送用户这四种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。

图4-8系统用户管理界面图
4.2.4订单列表界面
店家用户点击“订单列表”这个菜单,可以查看所有的订单列表信息,包括商品名称、订单号、商品图片、价格、原价、购买数量、总价、联系人名称、联系人地址、
订单状态等信息,还可以进行查询、重置和删除等操作。订单列表界面如下图所示。

图4-9订单列表管理界面图
配送用户点击“配送订单管理”这个菜单,可以查看所有的配送订单信息,包括订单编号、店铺名称、店家用户、外卖名称、下单数量、学生用户、学生电话等信息,还可以进行查询和重置等操作。配送订单界面如下图所示。

图4-10配送订单管理界面图
配送用户点击“配送打分管理”这个菜单,可以查看所有的配送打分信息,包括订单编号、店铺名称、店家用户、外卖名称、学生用户、配送用户、学生打分等信息,还可以进行查询和重置等操作。配送打分管理界面如下图所示。

图4-11配送打分管理界面图
管理员点击“活动信息管理”这个菜单,可以查看活动信息列表和活动信息添加这两个子菜单,查看所有的活动信息,包括活动名称、活动分类、活动日期、活动期限、封面图片、创建时间、更新时间等信息。还可以添加新的活动信息。活动信息列表和活动信息添加如下图所示。

图4-12活动信息列表界面图

图4-13活动信息添加界面图
4.2.8 轮播图管理界面
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。轮播图管理界面如下图所示。

图4-14轮播图管理界面图
轮播图添加代码:
@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-12通知公告管理界面图
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中都是难以避免的。虽然这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果,如系统崩溃,安全信息泄露,系统无法正常启动等,为了避免这些问题,我们需要测试程序,再测试过程中发现问题,并纠正它们,从而使系统更长时间稳定成熟。本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但对于长期使用而言是非常重要和必要系统的开发。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,系统测试是检查软件是否合格的关键步骤,以及是否符合设计目标的参考。测试主要是查看软件中数据的准确性,正确的操作与否,以及操作的结果,还有哪些方面需要改进。
校园互助送餐系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在校园互助送餐系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
-
- 系统测试方法
在对校园互助送餐系统进行测试的时候在找到问题的情况下必须在第一时间找到解决问题的办法,不要存在侥幸的心理,这样才能让校园互助送餐系统开发的质量可以过关,并且开发的周期会大大缩短,还有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个校园互助送餐系统开发所牵扯的该问题都必须一一解决,提高校园互助送餐系统的安全性、稳定性。
白盒测试与黑盒测试是测试中比较常用的两种方法。
①结构测试俗称白盒测试:这种测试是在对程序的处理过程与结构都有详尽谅解的前提下,顺从程序内部的逻辑而完成的系统测试,以确定系统中所有的通路都能够遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对程序功能能够按照设计正常实现的一种检测,在程序接口处进行,检测程序手法数据是否正常,与外部信息的交换是否完整。
用户登录测试:
| 模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
| 登录模块 | 用户名:admin 密码:123 | 弹出错误提示,提示密码错误 | 弹出错误提示,提示密码错误 | 通过 |
| 登录模块 | 用户名:123 密码:admin | 弹出错误提示,提示用户名错误 | 弹出错误提示,提示用户名错误 | 通过 |
| 登录模块 | 用户名:admin 密码:admin | 管理员登录成功 | 管理员登录成功 | 通过 |
删除分类测试:
| 模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
| 删除分类模块 | 分类名:最新通知 | 删除成功、页面自动跳转 | 删除成功、页面自动跳转 | 通过 |
修改密码测试:
| 模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
| 修改密码模块 | 原密码:666 新密码:123 确认密码:123 | 弹出错误提示,提示原密码错误 | 弹出错误提示,提示原密码错误 | 通过 |
| 修改密码模块 | 原密码:admin 新密码:123 确认密码:333 | 弹出错误提示,提示确认密码不一致 | 弹出错误提示,提示确认密码不一致 | 通过 |
| 修改密码模块 | 原密码:admin 新密码:123 确认密码:123 | 密码修改成功 | 密码修改成功 | 通过 |
通过对功能的测试,校园互助送餐系统的基本功能都是可行的,不管是系统里面的功能,还是界面的设计都是可值得推广宣传的。
校园互助送餐系统的整体功能模块的实现,主要是对自己在大学这几年时间所学内容的一个测试,对于系统,主要是通过现在智能化的校园互助送餐系统进行开始系统的实现,并且可以根据需求进行数据信息的增加修改删除等操作,完美的解决了当下校园互助送餐系统所遇到的问题。
经过一个学期的毕业设计的实现完成已接近尾声,到目前为止,当我回想起整个学期的系统开发日,收获颇丰。毕业设计的主要任务是建立一个智能化的校园互助送餐系统的信息系统,主要使用springboot+vue框架和Mysql数据库的开发工具,对系统的每个功能模块进行相对应的操作,最后,系统调试结果表明系统基本可以满足功能要求。
校园互助送餐系统的开发对我大学学习的改进有很大帮助。它使我能够学习计算机知识的相关技术方面问题及与人交往的沟通交流方面,让我意识到无论我们做什么,我们都需要坚持不懈,努力工作,只有这样尝试了并且坚持去做了,我们才可以成功,才可以获得成功的喜悦,如果没有尝试,只是想,那连成功的机会都没有,实际操作进行做了,才会越来越近的靠近成功,随着道路一路向前,未来的路是美好的。
校园互助送餐系统的实现,是自己第一次完成的设计一个送餐系统。在项目的设计过程中,我克服了各种困难,并且在面对这些困难,我积极的面对,想办法解决问题,并且更好的掌握了理论知识和动手操作实践能力,从系统的开发到设计完成,我完成了一个更全面、更完善、更安全的平台管理系统,这也让我取得了很大的成就感,也使我对未来的生活更有信心。
参考文献
[1]Kartini A G ,Gumilar I ,Abidin Z H , et al.3D model of Pawon Cave: The first prehistoric dwelling discovery in West Java, Indonesia[J].Digital Applications in Archaeology and Cultural Heritage,2024,32e00311-.
[2]苏婉怡,揣小龙,刘美瑜等.基于Java技术的实验室管理系统设计与实现[J].无线互联科技,2023,20(23):58-60.
[3]杜朋轩,陈芳,曹梦川.基于Java Web的智慧农业信息采集系统的设计与实现[J].科技资讯,2023,21(23):162-165.DOI:10.16661/j.cnki.1672-3791.2307-5042-8177.
[4]Perdinan ,A F R ,P D S , et al.Tidal Flood Hazard Assessment in Pekalongan City, Central Java[J].IOP Conference Series: Earth and Environmental Science,2023,1266(1):
[5]J Z ,H E ,Taryono .Abundance and Composition of Solid Waste in the Citarum River, West Java Province[J].IOP Conference Series: Earth and Environmental Science,2023,1266(1):
[6]Perdinan ,Cahyaning S J ,Akhmad F , et al.The Contribution of Climate Factors on the Availability of Hydropower Energy in West Java[J].IOP Conference Series: Earth and Environmental Science,2023,1266(1):
[7]Putrinadia V A ,Budihastuti R U ,Melinawati E , et al.#330 : Factors Affect Infertile Woman to Access Infertility Services in Central Java, Indonesia[J].Fertility Reproduction,2023,05(04):
[8]田玉昆.基于Java Web技术的手机销售网站的设计与实现[J].电脑知识与技术,2023,19(32):47-49.DOI:10.14004/j.cnki.ckt.2023.1766.
[9]苏兵.基于微服务的校园点餐系统后台的设计与实现[J].电脑与电信,2023,(11):23-28.DOI:10.15966/j.cnki.dnydx.2023.11.008.
[10]陈海燕,常莹,张燕宁.基于Android系统的校园点餐系统中不同数据存储方式的教学研究[J].电脑编程技巧与维护,2023,(09):57-60.DOI:10.16184/j.cnki.comprg.2023.09.012.
[11]孙杰,张涛鹏,杨洁等.基于Android的高校食堂订餐系统“掌上校园帮”设计与开发[J].计算机时代,2023,(01):78-81.DOI:10.16644/j.cnki.cn33-1094/tp.2023.01.019.
[12]张巧岭.“求捎带”校园订餐系统前端设计[J].现代信息科技,2022,6(03):14-17.DOI:10.19850/j.cnki.2096-4706.2022.03.004.
[13]许量为,李建勇.校园智能送餐机器人的设计与实现[J].中国新技术新产品,2021,(22):15-17.DOI:10.13612/j.cnki.cntp.2021.22.005.
[14]张巧岭.校园订餐系统设计[J].电子世界,2021,(20):162-163.DOI:10.19353/j.cnki.dzsj.2021.20.065.
[15]陈江辉,於立杰,李强.智慧校园食堂订餐系统信息化平台的设计[J].网络安全技术与应用,2021,(03):43-44.
[16]刘彩霞,顾帅,杨正涛.校园送餐机器人控制系统的设计[J].制造业自动化,2021,43(01):93-95+108.
[17]孙瑜霞,王泽元,刘硕洲等.关于高职“校园一点通”微信点餐系统的构建研究[J].数码世界,2020,(09):33-34.
[18]古入次仁,陈浩,索南尖措.基于SSM和Java的校园点餐系统[J].中国高新科技,2020,(14):122-123.DOI:10.13535/j.cnki.10-1507/n.2020.14.51.
[19]李新锦,鲁志萍,刘苑如.基于微信小程序的校园点餐系统的设计[J].电脑知识与技术,2020,16(07):50-51+56.DOI:10.14004/j.cnki.ckt.2020.0756.
[20]黄朝富,姬小波,吕明等.基于微信平台的校园点餐系统的设计与实现[J].工业控制计算机,2020,33(01):112-113+127.
致谢
经过几个月时间的努力终于完成了这篇文章,在文章的写作与研究的过程中遇到了很多困难,都在同学和老师的帮助下解决了。尤其非常感谢我最敬爱的老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行文章的修改。老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇丰。此外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此,向帮助和指导过我的老师表示最衷心的感谢!感谢这篇文章所涉及到的各位学者。本文引用了数位学者的文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇文章的写作。感谢我的同学和朋友,在我写文章的过程中给与了我很多素材和帮助,还在文章的撰写和排版过程中提供热情的帮助。同时,感谢我的室友对我的热心指导和帮助,经常有不懂之处都是大家在帮助我,才使得我比较顺利的完成了这篇文章。由于我水平有限,所写文章难免有不足之处,恳请各位老师和学友批评和指正!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
校园互助送餐系统的设计与实现
801

被折叠的 条评论
为什么被折叠?



