随着电子商务的快速发展和校园物流需求的增加,校园快递管理成为大学校园中一个重要而复杂的问题。传统的人工管理方式已经无法满足高效、准确和安全的校园快递服务需求,因此引入信息化管理系统成为解决这些问题的关键。本文旨在设计和开发一款基于SpringBoot框架的校园快递管理系统。该系统将提供全面、高效、准确和安全的校园快递服务,满足用户对于快递寄件、收件、查询和反馈等方面的需求。
通过研究和实现该系统,旨在提高校园快递管理的效率和服务质量,推动校园物流的数字化转型和智能化发展。该系统将为学校和用户提供便捷、可靠的校园快递服务,改善用户体验,提高校园形象。
关键词:校园快递管理系统;Java语言;SpringBoot框架;Mysql数据库
With the rapid development of e-commerce and the increasing demand for campus logistics, campus express delivery management has become an important and complex issue in university campuses. The traditional manual management methods can no longer meet the requirements of efficient, accurate, and secure campus express delivery services. Therefore, the introduction of information management systems has become the key to solving these problems. This article aims to design and develop a campus express delivery management system based on the SpringBoot framework. The system will provide comprehensive, efficient, accurate, and secure campus express delivery services to meet the needs of users for express delivery, receiving, querying, and feedback.
By researching and implementing this system, the aim is to improve the efficiency and service quality of campus express delivery management, and promote the digital transformation and intelligent development of campus logistics. This system will provide convenient and reliable campus express delivery services for schools and users, improve user experience, and enhance campus image.
Keywords: Campus express delivery management system; JAVA language; SpringBoot; MYSQL database.
校园快递管理系统是针对大学校园内快递管理的问题而设计和开发的一种信息化管理系统。随着互联网和电子商务的快速发展,校园内的快递量不断增加,传统的人工管理方式已经无法满足高效、准确和安全的快递服务需求。传统的校园快递管理存在诸多问题,包括快递接收和分发过程繁琐、易出错、时效性低等。此外,由于快递涉及个人信息和贵重物品,安全性也是一个重要的考虑因素。因此,引入信息化管理系统成为解决这些问题的有效途径。该系统的应用将提高校园快递管理的效率、准确性和安全性,推动校园管理的数字化转型和智能化发展。
引入信息化系统可以实现对校园快递流程的自动化和智能化,提高快递接收、分发和交付的效率。通过系统的支持,可以简化操作流程、优化资源分配,减少人力成本和时间消耗。校园快递管理系统可以提供准确的快递追踪和查询功能,方便用户了解包裹的状态和送达进度。同时,系统还可以提供实时通知和提醒,保证快递的及时性和可靠性,提升快递服务的质量和用户满意度。校园快递涉及到个人信息和贵重物品,安全性和保密性是重要考虑因素。信息化系统可以实现快递包裹的安全管理,如身份验证、签名确认等,提供安全可靠的服务,防止包裹丢失或被盗。校园快递管理系统作为校园数字化转型的一部分,可以推动校园管理向数字化、智能化方向发展。通过引入信息化系统,学校可以实现快递数据的集中管理和分析,为校园决策提供数据支持,提高整体管理水平和效能。
综上所述,研究校园快递管理系统具有重要的实践意义。该系统的应用将提高校园快递管理的效率和准确性,增强服务质量和用户满意度,促进校园数字化转型,并为相关领域的研究和实践提供参考和借鉴,推动校园快递管理的发展和创新。
在国内,对于校园快递管理系统的研究还相对较少,但随着电子商务和校园物流的发展,相关研究逐渐受到重视。部分研究关注校园物流管理的问题,包括快递接收、分发和交付等环节的优化和改进。通过研究校园物流网络的布局、人员配备和信息技术应用等方面,提高校园快递管理的效率和服务质量。一些研究探讨了信息化技术在校园快递管理中的应用,包括快递查询系统、手机APP下单和快递柜等。这些技术的引入可以提高校园快递的可追踪性、时效性和用户体验。部分研究关注校园快递的安全和保密问题,研究如何通过技术手段和管理策略,防止快递包裹丢失或被盗,并确保个人信息和贵重物品的安全性。一些研究探讨学校与快递企业的合作模式和管理机制,以实现校园快递服务的共享和优化。通过建立校园快递管理平台、制定合作协议等方式,提高快递的效率和管理水平。
总的来说,国内对于校园快递管理系统的研究还处于起步阶段,相关研究较为有限。未来的研究可以进一步深入探讨校园快递业务流程优化、信息化技术应用、安全保障等方面,为校园快递管理系统的发展提供更多的理论和实践支持。同时,也可以借鉴国外相关研究成果,加强国际交流与合作,推动校园快递管理的创新和进步。
在国外,校园快递管理系统的研究已经得到了广泛关注,并取得了一些重要成果。国外研究注重校园物流管理的效率和可持续性。研究者通过优化校园内的物流网络、改进物流设施和运营策略等,提高校园快递管理的效率和服务质量。国外研究关注信息化技术在校园快递管理中的应用。研究者探索如何利用智能手机APP、快递自动化系统和物联网技术等,提供方便快捷的下单和查询服务,实现快递包裹的追踪和时效性管理。国外研究注重校园快递的安全和保密问题。研究者关注快递包裹的防盗、安全存储和交付过程的监控等,提出相应的安全管理措施和技术手段。他们强调校园快递管理的可持续发展。研究者关注减少碳排放、优化运输路线、推广可再生能源等,以降低环境影响并提升校园物流的可持续性。国外研究倡导学校与社区、政府和快递企业的合作,共同推进校园快递管理的改进。通过建立合作机制、分享资源和信息,提高校园快递服务的效率和满意度。
综上所述,国外对于校园快递管理系统的研究已经取得了丰硕的成果,涵盖了校园物流管理、信息化技术应用、快递安全保密、可持续发展和学校与社区合作等方面。未来的研究可以深入探讨这些领域的前沿技术和最佳实践,为校园快递管理系统的发展提供更多的理论和实践支持,并加强国际交流与合作,推动校园快递管理的创新和进步。
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对系统需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第1章 交代项目的背景、开发这个系统的现状以及论文的章节安排情况。
第2章 对系统的具体需求展开分析。
第3章 阐述了系统的设计,其中涵盖了功能设计以及数据库的设计。
第4章 阐明了校园快递管理系统各个功能模块的实现,以图文的形式进行展示。
第5章 罗列了部分系统调试与测试的记录。
第6章 介绍了校园快递管理系统研究的结论。
校园快递管理系统存储所使用的是Mysql数据库以及开发中所使用的是IDEA、Tomcat这些开发工具的使用,能够给我们的编写工作带来许多的便利。系统使用SpringBoot框架进行开发,使系统的可扩展性和维护性更佳,减少Java配置代码,简化编程代码,目前SpringBoot框架也是很多用户选择的框架之一。
在开发校园快递管理系统中所使用的开发软件像IDEA开发工具、Tomcat服务器、MySQL数据库、Photoshop图片处理软件等,这些都是开源免费的,这些环境在学校都进行了系统的学习,自己能够独立操作完成,不需要额外花费,而且系统的开发工具从网上都可以直接下载,因此在经济方面是可行的。
此次项目设计的时候我参考了很多类似系统的成功案例,对它们的操作界面以及功能都进行了系统的分析,将众多案例结合在一起,突出以人为本简化操作,所以具有基本计算机知识的人都会操作本项目。因此操作可行性也没有问题。
校园快递管理系统基于SpringBoot框架开发,旨在提供全面、高效、准确和安全的校园快递服务。该系统涵盖管理员、普通用户和员工用户三个角色,并具备快递寄件管理、快递订单管理、寄件信息管理、收件信息管理、意见反馈管理和通知公告管理等主要功能。用户可以方便地填写寄件信息、查询快递状态、进行意见反馈,并及时接收重要通知公告;管理员能够管理用户账号、审核寄件信息、更新订单状态以及发布通知公告;员工用户可以处理快递订单、更新快递状态等。通过该系统的应用,可以提升校园快递管理的效率和服务质量,满足校园物流需求的不断增长。具体功能分析如下:
普通用户端:
- 快递寄件管理:允许用户填写寄件信息,包括寄件人信息、快递类型、快递数量、收件姓名、收件电话、快递柜名等。用户可以查看自己已提交的寄件信息,进行修改或取消寄件。
- 寄件信息管理:用户可以查看自己的寄件信息列表,包括员工用户信息、普通用户信息、快递编号、快递费用、快递重量、寄出时间、订单状态等详细信息。可以对寄件信息进行编辑,如修改收件人地址、添加备注等。
- 收件信息管理:用户可以查看自己的收件信息列表,包括寄件人、收件人、快递状员工用户信息、普通用户信息、收件电话、快递公司、快递编号、数量、运费险、派发状态、位置信息、快递柜名等详细信息。可以对收件信息进行查询、编辑等。
- 意见反馈管理:用户可以通过系统提交意见和问题反馈。用户可以查看反馈的处理进展和回复,并与管理员进行沟通和解决问题。
- 通知公告管理:用户可以查看管理员发布的通知公告,及时了解重要信息和业务变更。
管理员端:
- 系统用户管理:管理员可以添加、编辑和删除系统用户的账号信息,包括管理员、普通用户和员工用户。可以设置用户的权限和角色,控制用户对系统功能的访问和操作权限。
- 快递寄件管理:管理员可以查看和管理所有用户的快递寄件信息。可以审核寄件申请,确认快递单号的有效性,确保快递信息的准确性。
- 快递订单管理:管理员可以查看和管理所有用户的快递订单信息,包括订单状态的更新和处理。可以修改订单状态,如确认寄件、派送中、已签收等。
- 寄件信息管理:管理员可以查看和编辑用户的寄件信息,包括寄件人信息、收件人信息、物品描述等。可以对寄件信息进行修改或删除,确保寄件信息的准确性和完整性。
- 收件信息管理:管理员可以查看和编辑用户的收件信息,包括收件人信息和快递状态等。可以更新快递状态,如已派送、已签收等。
- 意见反馈管理:管理员可以查看用户提交的意见和问题反馈。可以及时回复用户的反馈,并解决问题或提供帮助。
- 快递类型管理:管理员可以添加、编辑和删除快递类型,方便用户选择适合的快递服务。可以设置快递类型的计费规则和配送范围。
- 智能快递柜管理:管理员可以管理智能快递柜的使用情况,包括柜子的分配和维护。
- 通知公告管理:管理员可以发布系统通知和公告,向用户传达重要信息和业务变更。可以编辑和删除已发布的通知公告,确保信息的及时性和有效性。
员工用户端:
- 快递订单管理:员工用户可以查看和管理自己负责的快递订单信息。可以更新订单状态,如确认寄件、派送中、已签收等。
- 寄件信息管理:员工用户可以查看和编辑自己负责的寄件信息,包括寄件人信息、收件人信息、物品描述等。可以对寄件信息进行修改或删除,确保寄件信息的准确性和完整性。
- 收件信息管理:员工用户可以查看和编辑自己负责的收件信息,包括收件人信息和快递状态等。可以更新快递状态,如已派送、已签收等。
- 通知公告管理:员工用户可以查看管理员发布的通知公告,及时了解重要信息和业务变更。
校园快递管理系统的非功能性需求比如校园快递管理系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表2.1 校园快递管理系统非功能需求表
安全性 | 主要指校园快递管理系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指校园快递管理系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响校园快递管理系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着校园快递管理系统的页面展示内容进行操作,就可以了。 |
可维护性 | 校园快递管理系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
校园快递管理系统中用户角色用例图如图2.1所示:
图2.1用户角色用例图
校园快递管理系统中管理员用例图如图2.2所示:
图2.2 管理员用例图
系功能模块分成了普通用户、员工用户、管理员后台三个模块,每个模块登录进去对应相应的功能,具体的功能模块图如图3.1所示。
图3.1 校园快递管理系统功能模块图
数据库的设计承载者系统的各种数据,在建立数据库的时候,主要是数据库模型的设计以及各个数据库表的设计两部分。
下面是整个校园快递管理系统中主要的数据库表总E-R实体关系图。
图3.2 校园快递管理系统总E-R关系图
通过前面E-R关系图可以看到项目需要创建很多个数据表。以下是项目中的主要数据库表的关系模型:
表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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | employee_users_id | int | 10 | 0 | N | Y | 员工用户ID | |
2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
3 | employee_gender | varchar | 64 | 0 | Y | N | 员工性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | express_delivery_id | int | 10 | 0 | N | Y | 快递寄件ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | express_delivery_type | varchar | 64 | 0 | Y | N | 快递类型 | |
5 | number_of_express_deliveries | int | 10 | 0 | Y | N | 0 | 快递数量 |
6 | recipient_name | varchar | 64 | 0 | Y | N | 收件姓名 | |
7 | receiving_phone_number | varchar | 64 | 0 | Y | N | 收件电话 | |
8 | express_cabinet_name | varchar | 64 | 0 | Y | N | 快递柜名 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | express_delivery_type_id | int | 10 | 0 | N | Y | 快递类型ID | |
2 | express_delivery_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 | express_orders_id | int | 10 | 0 | N | Y | 快递订单ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
4 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
5 | express_delivery_type | varchar | 64 | 0 | Y | N | 快递类型 | |
6 | number_of_express_deliveries | varchar | 64 | 0 | Y | N | 快递数量 | |
7 | recipient_name | varchar | 64 | 0 | Y | N | 收件姓名 | |
8 | receiving_phone_number | varchar | 64 | 0 | Y | N | 收件电话 | |
9 | express_cabinet_name | varchar | 64 | 0 | Y | N | 快递柜名 | |
10 | express_number | varchar | 64 | 0 | Y | N | 快递编号 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | feedback_id | int | 10 | 0 | N | Y | 意见反馈ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户名称 | |
4 | feedback_title | varchar | 64 | 0 | Y | N | 反馈标题 | |
5 | feedback_time | date | 10 | 0 | Y | N | 反馈时间 | |
6 | feedback_content | text | 65535 | 0 | Y | N | 反馈内容 | |
7 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
8 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | 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: |
表intelligent_express_cabinet (智能快递柜)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | intelligent_express_cabinet_id | int | 10 | 0 | N | Y | 智能快递柜ID | |
2 | express_cabinet_name | 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 | 更新时间 |
表notification_announcement (通知公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notification_announcement_id | int | 10 | 0 | N | Y | 通知公告ID | |
2 | announcement_name | varchar | 64 | 0 | Y | N | 公告名称 | |
3 | announcement_title | varchar | 64 | 0 | Y | N | 公告标题 | |
4 | announcement_image | varchar | 255 | 0 | Y | N | 公告图片 | |
5 | release_time | date | 10 | 0 | Y | N | 发布时间 | |
6 | announcement_content | text | 65535 | 0 | Y | N | 公告内容 | |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | receiving_information_id | int | 10 | 0 | N | Y | 收件信息ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
4 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
6 | receiving_phone_number | varchar | 64 | 0 | Y | N | 收件电话 | |
7 | express_delivery_companies | varchar | 64 | 0 | Y | N | 快递公司 | |
8 | express_number | varchar | 64 | 0 | Y | N | 快递编号 | |
9 | number_of_express_deliveries | varchar | 64 | 0 | Y | N | 快递数量 | |
10 | freight_insurance | int | 10 | 0 | Y | N | 0 | 运费险 |
11 | distribution_status | varchar | 64 | 0 | Y | N | 派发状态 | |
12 | position_information | varchar | 64 | 0 | Y | N | 位置信息 | |
13 | express_cabinet_name | varchar | 64 | 0 | Y | N | 快递柜名 | |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | sensitive_vocabulary_id | int | 10 | 0 | N | Y | 敏感词汇ID | |
2 | sensitive_vocabulary | 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 | shipping_information_id | int | 10 | 0 | N | Y | 寄件信息ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
4 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
5 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
6 | express_number | varchar | 64 | 0 | Y | N | 快递编号 | |
7 | express_delivery_fees | int | 10 | 0 | Y | N | 0 | 快递费用 |
8 | express_weight | varchar | 64 | 0 | Y | N | 快递重量 | |
9 | sending_time | datetime | 19 | 0 | Y | N | 寄出时间 | |
10 | order_status | varchar | 64 | 0 | Y | N | 订单状态 | |
11 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
12 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | 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 | 创建时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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所示。

图4.1 登录界面图
登录代码如下:
* 登录
* @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.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.3 密码修改界面图
密码修改代码如下:
/**
* 修改密码
* @param data
* @param request
* @return
*/
@PostMapping("change_password")
public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){
// 根据Token获取UserId
String token = request.getHeader("x-auth-token");
Integer userId = tokenGetUserId(token);
// 根据UserId和旧密码获取用户
Map<String, String> query = new HashMap<>();
String o_password = data.get("o_password");
query.put("user_id" ,String.valueOf(userId));
query.put("password" ,service.encryption(o_password));
int count = service.selectBaseCount(service.count(query, service.readConfig(request)));
if(count > 0){
// 修改密码
Map<String,Object> form = new HashMap<>();
form.put("password",service.encryption(data.get("password")));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,"密码修改失败!");
}
快递寄件管理:允许用户填写寄件信息,包括寄件人信息、快递类型、快递数量、收件姓名、收件电话、快递柜名等。用户可以查看自己已提交的寄件信息,进行修改或取消寄件。界面如下图所示。

图4.4 快递寄件添加界面图
寄件信息管理:用户可以查看自己的寄件信息列表,包括员工用户信息、普通用户信息、快递编号、快递费用、快递重量、寄出时间、订单状态等详细信息。可以对寄件信息进行编辑,如修改收件人地址、添加备注等。界面如下图所示。

图4.5寄件信息管理界面图
收件信息管理:用户可以查看自己的收件信息列表,包括寄件人、收件人、快递状员工用户信息、普通用户信息、收件电话、快递公司、快递编号、数量、运费险、派发状态、位置信息、快递柜名等详细信息。可以对收件信息进行查询、编辑等。界面如下图所示。

图4.6收件信息管理界面图
意见反馈管理:用户可以通过系统提交意见和问题反馈。用户可以查看反馈的处理进展和回复,并与管理员进行沟通和解决问题。界面如下图所示。

图4.7意见反馈管理界面图
系统用户管理:管理员可以添加、编辑和删除系统用户的账号信息,包括管理员、普通用户和员工用户。可以设置用户的权限和角色,控制用户对系统功能的访问和操作权限。界面如下图所示。

图4.8 系统用户管理界面图
通知公告管理:管理员可以发布系统通知和公告,向用户传达重要信息和业务变更。可以编辑和删除已发布的通知公告,确保信息的及时性和有效性。界面如下图所示。

图4.9 通知公告管理界面图
通过前面章节的介绍,我们可以看到校园快递管理系统已经完成了,但是能不能投入使用还是未知,因为在每个项目正式使用之前必须对开发的项目进行测试,如果不进行测试一旦投入使用可能会出现很多未可知的问题,比如使用人数太多导致系统瘫痪,比如某一功能存在bug信息填写错误等,这些错误将给使用者带来很多的困扰,甚至造成更大的损失,因此测试是项目投入使用的最后一步,为用户提供一个运行顺畅、完美的项目也就是我们进行最后测试的目的。
用户登录功能测试:
表5.1 用户登录功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
用户登录模块测试 | 用户登录成功的情况 | 点击前登录界面输入账号和密码分别输入admin和admin后点击“登录”按钮。 | 登录成功并调整到用户界面 | 正确 |
快递寄件添加功能测试:
表5.2 快递寄件添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
快递寄件添加模块测试 | 快递寄件添加成功的情况 | 在快递寄件的页面中将点击添加,输入快递寄件相关信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
快递寄件添加模块测试 | 快递寄件添加失败的情况 | 在快递寄件页面中不填写的收件人姓名,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
查询通知公告功能模块测试:
表5.3 查询通知公告功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
查询通知公告功能测试 | 查询成功的情况 | 在通知公告界面输入公告标题进行查询 | 查询成功 | 正确 |
通知公告添加功能测试:
表5.4 通知公告添加功能测试表
测试名称 | 测试功能 | 操作过程 | 预期结果 | 测试结果 |
通知公告添加模块测试 | 通知公告添加成功的情况 | 在通知公告添加管理的页面中,输入公告信息,输入正确的信息后然后点击“提交”按钮。 | 提示添加成功 | 正确 |
通知公告添加模块测试 | 通知公告添加失败的情况 | 在通知公告页面中不填写的公告标题,其他信息正常输入“提交”按钮。 | 提示“添加失败,信息不能为空” | 正确 |
通过编写校园快递管理系统的测试用例,已经检测完毕用户的登录模块、快递寄件添加模块、通知公告模块、通知公告添加模块的功能测试,在对以上功能得测试过程中,发现了系统中的很多漏送并进行了完善,经过多人在线进行测试,系统完全可以正常运行,当然在后期的维护中系统将不断完善。
在开发校园快递管理系统之前我胸有成竹,觉得很简单,但在实际的开发中我发现了自身的很多问题,许多编程思想和方法都还没有掌握牢靠,比如Bootsatrp、Jquery、AJAX 、Spring、SpringMVC、mybeatis等许多Java Web开发技术,通过开发这个校园快递管理系统我成长了很多,懂得了做什么事情都要脚踏实地,不能眼高手低,在本次校园快递管理系统的开发中我逐渐掌握逐渐熟悉的技术。
同时,在本次项目中我也暴露了诸多问题。对于Java的编程知识有所欠缺,环境配置和算法上出现诸多问题,时常导致项目运行出错,或者目标的实现有问题。或者实现想法时算法未优化,使得代码冗长,程序运行不顺畅。
[1]黄赛英.基于Springboot的医院档案管理系统设计[J].集成电路应用,2023,40(11):384-385.
[2]林圣峰,姚锦江,林涛,刘嘉校,田智卓,李超.基于SpringBoot的高校实验室管理系统设计[J].无线互联科技,2023,20(18):80-82.
[3]李宗蔚.基于RFID的校园快递管理系统设计[J].中国物流与采购,2023,(18):101-102.
[4]李琴,崔名扬,钱奕文,刘晶晶.基于SpringBoot的研究生学术档案管理系统开发[J].电脑知识与技术,2023,19(18):46-48+51.
[5]张文.基于SpringBoot的国有企业固定资产信息管理系统的设计与实现[D].华东师范大学,2023.
[6]王以伍,舒晖.基于SpringBoot+Vue前后端分离的高校实验室预约管理系统的设计与实现[J].现代计算机,2023,29(01):114-117.
[7]银莉,杜啸楠.基于SpringBoot和Vue的社区服务平台设计与实现[J].电子技术,2022,51(12):182-183.
[8]Yu Yang.Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):
[9]向安军,毛旭阳,王思杰,黄乙航,孙益鑫,徐素莉.基于RFID的校园快递管理系统设计[J].山西电子技术,2022,(05):35-38.
[10]赵梓皓,崔应留,葛晨,沈盈之,雷妤婷.基于SpringBoot的社区防控管理系统的设计与实现[J].软件,2022,43(10):154-159.
[11]熊志勇,刘诚志,朱晶,朱柳羽,田超越,朱广彬.基于Python人脸识别校园快递的设计与实现[J].电脑知识与技术,2022,18(28):48-49+52.
[12]刘世超.快递运输信息查询管理系统.内蒙古自治区,阿拉善盟创客科技有限公司,2022-06-21.
[13]Wu Hejing.Commerce Middle Office Management System Based on Springboot[J].International Journal of Advanced Network, Monitoring and Controls,2022,7(2):32-45.
[14]林伟琼.社区团购快递信息管理系统设计与实现[J].物联网技术,2021,11(12):86-89.
[15]Fuyuan Cheng.Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J].Advances in Educational Technology and Psychology,2021,5(2):
[16]吕菊保.基于云计算的快递物流管理系统的研究[J].中小企业管理与科技(下旬刊),2021,(03):174-175.
[17]Guanhong Chen,Jiangming Xu.Design and implementation of efficient Learning platform based on SpringBoot Framework[J].Journal of Electronics and Information Science,2020,6(1):
[18]Jian Chen,Chen Jian,Pan Hailan.Design of Man Hour Management Information System on SpringBoot Framework[J].Journal of Physics: Conference Series,2020,1646(1):012136-.
[19]杨传琦,丁宁,吕聪.“最后一公里”校园智能快递系统设计[J].信息记录材料,2020,21(05):82-83.
[20]马梓昂,贾克斌.基于Web的高性能智能快递柜管理系统[J].计算机应用与软件,2020,37(04):1-5+47.
结束语
至此论文结束,感谢您的阅读。在此我要特别的感谢我的导师,虽然我在实习期间很忙,论文撰写的时候经常是停停改改,但是我的导师依旧十分的负责,时不时的询问我的任务进展情况,跟进我的论文进度,在指导老师的帮助下,我逐步完成了自己的论文和程序,从导师身上也学习到很多知识和经验,这些知识和经验令我受益匪浅。同时我也从导师身上看到了自己的不足,不论是在技术层面上还是在对待工作的态度上,导师如同明镜一般照出了我的缺点我的不足。此外,我还要感谢在我实习期间在论文和程序上帮助过我的同学和社会人士,此前我对于SpringBoot框架方面的一些知识还不了解,是他们在我编写程序过程中给了我很多的启发和感想,也帮助了我对于程序的调试和检测。没有他们我是不能顺利完成本次毕业设计的。至此,我的毕业设计就花上了一个圆满的句号了。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~