摘 要
本文聚焦于基于SpringBoot框架的校园快递管理系统的设计与实现。随着电子商务的蓬勃兴起,校园快递业务量迅猛增长,传统的人工管理手段难以应对高效、精确的处理挑战。鉴于此,开发一套自动化、智能化的校园快递管理系统显得尤为重要。
该系统选用SpringBoot框架作为核心,融合MySQL数据库、前端Vue.js技术及Redis缓存等关键技术,全面覆盖快递信息的录入、查询、分发、签收等管理流程。得益于SpringBoot框架的依赖注入和AOP等特性,系统展现出高内聚、低耦合的架构优势,显著增强了代码的可维护性和可扩展性。
在设计阶段,系统全面剖析了校园快递的实际运作需求,建立了恰当的数据库架构,并优化了检索逻辑以确保系统顺畅运作。前端则采用自适应设计,适配各类设备,优化用户体验。
在实施阶段,项目遵循模块化开发原则,逐步推进各功能模块的开发与测试。经过集成测试和系统测试,验证了系统的稳定性和可靠性。
该系统已成功部署于某高校校园快递中心,显著提升了快递处理效率,降低了人工错误率,赢得了用户的广泛赞誉。展望未来,将持续优化系统功能,提高智能化水平,为校园快递管理提供更加高效、便捷的服务。
关键字:SpringBoot框架;校园快递管理;MySQL数据库;Vue.js;Redis缓存
Abstract
This paper focuses on the design and implementation of the campus express delivery management system based on the SpringBoot framework. With the booming rise of e-commerce and the rapid growth of campus express delivery business volume, the traditional manual management means are difficult to cope with the challenges of efficient and accurate processing. In view of this, it is particularly important to develop an automatic and intelligent campus express management system.
The system selects SpringBoot framework as the core, integrates key technologies such as MySQL database, front-end Vue.js technology, Redis cache and so on, and comprehensively covers the management process of input, query, distribution, receipt and receipt of express information. Thanks to the dependency injection and AOP characteristics of the SpringBoot framework, the system shows the architectural advantages of high cohesion and low coupling, which significantly enhances the maintainability and scalability of the code.
In the design stage, the system comprehensively analyzed the actual operation needs of campus express delivery, established an appropriate database architecture, and optimized the retrieval logic to ensure the smooth operation of the system. The front end adopts adaptive design, adapted to all kinds of devices, to optimize the user experience.
In the implementation stage, the project follows the principle of modular development, and gradually promotes the development and testing of each functional module. After the integration test and the system test, the stability and reliability of the system are verified.
The system has been successfully deployed in a university campus express delivery center, which has significantly improved the efficiency of express delivery processing, reduced the manual error rate, and won widespread praise from users. Looking into to the future, we will continue to optimize the system functions, improve the level of intelligence, and provide more efficient and convenient services for campus express management.
Keywords: SpringBoot framework; campus express management; MySQL database; Vue.js; Redis cache.
目录
第一章 绪 论
1.1选题背景和意义
随着电子商务的蓬勃发展和网络购物的日益普及,校园快递业务量呈现出爆炸式增长。大学生作为网络购物的主力军,其快递需求量大且集中,使得校园快递服务成为了校园生活中不可或缺的一部分。然而,传统的校园快递管理方式往往依赖于人工操作,存在处理效率低、信息不准确、查询困难等问题,难以满足日益增长的业务需求和学生对于高效、便捷服务的期望。
在此背景下,开发一套基于SpringBoot框架的校园快递管理系统显得尤为重要。SpringBoot框架作为Spring家族的一员,以其简洁、快速、高效的特点,成为了现代Java应用开发的首选框架。通过SpringBoot框架,可以快速构建稳定、可靠、可扩展的Web应用程序,满足校园快递管理系统的需求。
该系统旨在实现快递信息的自动化处理与智能化管理,提高快递处理效率,减少人工错误,提升用户体验。具体来说,系统可以实现对快递信息的实时录入、查询、分发、签收等功能,使快递管理更加透明、高效。同时,系统还可以提供智能推荐、数据分析等增值服务,帮助校园快递中心优化业务流程,提高服务质量。
此外,该系统的开发还具有重要的现实意义。一方面,它可以提高校园快递中心的工作效率,降低运营成本,提升服务质量,从而增强校园快递中心的竞争力。另一方面,它可以为广大学生提供更加便捷、高效的快递服务,满足其多样化的需求,提升其校园生活品质。
综上所述,基于SpringBoot框架的校园快递管理系统的设计与实现不仅具有重要的理论价值,还具有重要的现实意义。通过该系统的开发,可以推动校园快递服务的智能化、自动化进程,提高快递处理效率和服务质量,为校园快递行业的发展注入新的活力。同时,该系统也可以为其他类似场景下的管理系统开发提供有益的参考和借鉴,推动相关领域的技术进步和应用创新。
1.2国内外研究现状
随着高校规模的扩大和快递业务的快速增长,校园快递管理逐渐成为高校后勤管理的重要课题。传统的快递管理方式存在效率低、取件难、信息不透明等问题,难以满足现代校园的需求。基于SpringBoot框架的校园快递管理系统通过信息化、智能化的手段,能够有效解决这些问题。本文综述了国内外在校园快递管理系统领域的研究现状,总结了不同研究中采用的技术及其实现的功能,为基于SpringBoot的校园快递管理系统的设计与实现提供理论支持和技术参考。
例如马新等设计了微信快递代取平台,通过用户自助下单和代取人员提供服务的模式,有效解决了学生因取件距离远、排队时间长而面临的困扰,并规范了代取人员的管理[1]。与此同时,张立国等开发了视觉机械臂校园快递系统,该系统利用机器视觉识别快递包裹并进行自动消杀,结合GPS导航实现无人配送,显著提高了快递配送的效率和准确性[2]。
此外,李宗蔚和向安军等分别基于RFID技术优化了校园快递管理系统。李宗蔚的设计实现了快递的自动化入库和出库,提升了管理效率[3]。而向安军等的进一步优化则实现了快递的实时追踪和快速入库,有效减少了人工成本[4]。另外,熊志勇等将Python人脸识别技术融入快递取件环节,通过Dlib库实现刷脸取件,大大提升了取件的便利性和安全性[5]。国内研究注重系统的实用性和用户体验,结合本土化需求开发了多种高效的管理系统,但在算法优化和跨平台兼容性方面仍有提升空间。
国外在校园快递管理系统的研究中,注重技术创新和智能化应用,尤其是在智慧校园和物联网技术的应用上具有显著优势。Zhu Yiwa等提出了Campus Express平台,该平台不仅通过数字化手段为学生提供了丰富的在线教育服务,还整合了快递管理功能,显著提升了校园服务的综合性和便利性[6]。与此同时,Guowei Zhang等设计了轻量级CNN-ViT模型,该模型利用跨模块注意力机制,有效提升了快递包裹的检测精度和效率,为快递管理提供了强有力的技术支持[7]。此外,Diao Xudong等则研究了基于电动车的快递服务网络设计,通过结合充电管理,优化了快递配送路线,为校园快递的绿色、高效发展开辟了新的路径[8]。
本文综述了国内外在校园快递管理系统的研究中均取得了显著进展。国内研究注重系统的实用性和功能设计,结合本土化需求开发了多种高效的管理系统;国外研究则侧重于技术创新和智能化应用,为校园快递管理提供了先进的理论支持和技术方案。未来研究可以结合国内外优势,进一步优化算法设计、提升系统兼容性,并探索低成本、高效率的校园快递管理解决方案。基于SpringBoot框架的校园快递管理系统将在智慧校园建设中发挥重要作用,为高校师生提供更加便捷、高效的服务。
1.3研究内容
开发和实施校园快递管理系统,需要完成以下任务:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)在系统ACK完成之后,将根据系统开发的要求,选择JAVA技术来构建校园快递管理系统,并对其中的数据库进行搭建和开发,以确保该系统能够有效地实现其功能。此外,还将对所选择的技术进行详细的技术分析,以确保系统的可行性和安全性。
(3)在校园快递管理系统中,首先要确定系统的技术,然后进行在线确认,以确定系统的用户角色,并根据这些角色划分出相应的功能模块。系统的设计主要将用户分为管理员、注册用户角色和驿站用户角色,每个角色都有其独特的特点,而且每个功能模块都有其特定的功能,但是系统的数据库都是交互式的,用户可以随时根据自身的需求查看通知公告、最新资讯等内容,而驿站用户负责快递收发、信息录入及包裹管理等工作。管理员可以快速收集用户的详细信息,并能够在第一时间响应客户的需求。
(4)经过精心设计的系统功能模块已经ACK完毕,接下来就是程序和界面的开发。为了检验程序的完整性,会采取多种测试方法,让不同的用户编写和提交相关内容,并定期检查程序中的缺陷,一旦发现问题,立即采取在线解决措施,直至系统运行稳定,才可以将其上传至正式使用。
2.1微信开发者工具
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。
根据用户的需求,将采用不同的屏幕大小来制作小程序。
在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。
控制台:方便调试打印输出信息。
将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。
通过查看资源文件,可以快速地调整相关项目的文件目录,从而实现断点调试。
使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。
本地数据存储:显示的是本地存储的数据。
通过使用子父层级结构,可以更容易地进行视图调试。
微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。
微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
2.2小程序框架以及目录结构介绍
这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。
2.3 JAVA技术
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。
JAVA语言功能:
面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。
Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。
C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。
2.4 Mysql数据库
数据库是系统开发过程中不可或缺的一部分。 在WEB应用方面,MySQL AB开发了一个具有很大优势的MySQL关系数据库管理系统。 MySQL可以将数据存储在不同的表中,这非常灵活,并且还可以提高系统在实际应用中的速度。 数据库访问最常用于标准SQL语言,MySQL用于SQL语言,因此它具有高度兼容性。数据库的操作是必不可少的,包括对数据库表的增加、删除、修改、查询等功能。现如今,数据库可以分为关系型数据库和非关系型数据库,Mysql属于关系性数据库,Mysql数据库是一款小型的关系型数据库,它以其自身特点:体积小、速度快、成本低等,Mysql数据库是目前最受欢迎的开源数据库。
在WEB应用技术中, Mysql数据库支持不同的操作系统平台,虽然在不同平台下的安装和配置都不相同,但是差别也不是很大,Mysql在Windows平台下两种安装方式,二进制版和免安装版。安装完Mysql数据库之后,需要启动服务进程,相应的客户端就可以连接数据库,客户端可通过命令行或者图形界面工具登录数据库。
2.5 Springboot框架
Java框架的出现,极大地改变了Java的运行方式,因为它不仅可以支持复杂的框架结构,而且还可以支持多种复杂的操纵,从而极大地改善了Java的效率和可靠性。此外,Java框架也被广泛地用来取代EJB(EnterpriseJavaBeans),成为一种更加强大的框架。Spring框架可以有效地支撑多种AP的开发,其中包括:基于控制反向的核心功能,可以将对象的生命周期变得更加可视,采取面向切面的编程语言,以及采取多种可靠的长效技术,以及支撑多种Web框架,以满足不同的AP的需求。Spring框架拥有强大的控制反馈(IOC)功能,使得Java对象的配置与管理变得更加简单高效。该框架采取Java的反馈机制,允许使用者根据XML文件、类别及其相关的Java注释等信息,自由地调整Java对象的使用,从而实现更加高效的编程。Spring框架拥有一种独特的方法来实现切割和分层,它采用了AOP框架,并且在使用过程中支持多种方法的协调。AOP的目的是将复杂的任务分解成多个独立的部分,以便更好地管控和控制。Spring框架的AOP框架拥有丰富的AOP特征,尽管不及AspectJ框架,但它们的结合仍然是一种有效的解决方案,它们不仅支持基础的AspectJ,还支持更高级的aop,从而更好地支持企业的业务流水线。此外,SpringAOP还支持更多的事务处理和远程访问。Java的事务处理框架提供了一种灵活的方式,允许不同类型的事务,包括本地、远程、内部、外部的,都能够被有效的处理。它支持多种类型的事务,用户可以根据需要自定义事务处理模块,如XML、Java文档,还支持快速、安全的数据交换。Spring的强大的数据访问功能为开发者们带来了极大的便利,无论是JDBC、iBATS/MyBATIs、Hibernate、JDO、ApacheOJB、ApacheCayne,都能够轻松地实现数据的访问,而且,这些功能也能够被Spring的事务管理系统完美地整合,从而大大减少了开发者们面临的挑战,极大地改善了他们的工作效率,极大地推动了企业级的信息化进步。通过使用这种方法,可以更加轻松地进行数据访问。SpringMVC的诞生源于一个开发者的决定:他们决定改变传统的StrutsWeb框架,将呈现层、请求处理层和模型完全分离,从而创建一个更加高效、可靠的SpringMVC。
第三章 系统分析
3.1可行性分析
通过综合考虑经济、操作、技术等因素,可以对校园快递管理系统的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。
3.1.1经济可行性分析
考虑到Springboot、小程序及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升校园快递管理系统的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
3.1.2操作可行性分析
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
3.1.3技术可行性分析
从技术方面来说,基于SpringBoot框架的校园快递管理系统的设计与实现也是可行的。Spring Boot是一种流行的Java框架,提供了强大的开发支持。小程序是一种流行的移动应用开发平台,提供了便捷的开发和部署支持。MySQL是一种流行的关系型数据库管理系统,提供了强大的数据存储和管理支持。通过使用这些技术,校园快递管理系统可以实现便捷、高效的校园快递管理系统管理功能。
3.2功能需求分析
校园快递管理系统的设计与实现可以从功能层面进行详细描述,涉及到注册用户、驿站用户和管理员三个角色的具体需求,基于Spring Boot、Java语言、MySQL数据库以及微信小程序的架构进行实现。下面详细阐述各个功能模块:
1.注册用户功能描述
登录注册:注册用户通过登录或注册进入系统。
首页:提供校园快递服务的概览和导航。
通知公告:查看校园快递相关的最新公告。
下单邮寄:提交个人邮寄需求,选择服务选项。
最新资讯:获取校园快递和物流行业的最新动态。
我的:
下单邮寄:管理个人邮寄订单,查看历史记录。
物流信息:实时追踪个人订单的物流动态。
邮寄评价:对使用过的邮寄服务进行评价和反馈。
收件信息:存储和管理常用的收件地址和联系人。
基本信息:编辑和完善个人资料和偏好设置。
收藏:保存常用的服务链接或信息。
2.驿站用户功能描述:
后台功能描述:
登录注册:驿站用户通过登录或注册进入后台管理系统。
后台首页:展示驿站后台的主界面,提供操作导航。
软件信息管理:查看和管理与驿站相关的软件信息。
邮寄管理:处理驿站相关的邮寄订单,如揽收和派送。
前台功能描述:
首页:展示驿站的基本信息和服务内容。
通知公告:显示校园快递相关的最新公告。
下单邮寄:用户提交邮寄订单,选择寄送方式和物品信息。
最新资讯:发布和查看与校园快递相关的新闻和资讯。
我的:
下单邮寄:查看和管理用户自己的邮寄订单。
物流信息:实时跟踪订单的物流状态和位置。
邮寄评价:对完成的邮寄服务进行评价。
收件信息:设置和管理收件人的联系方式和地址。
基本信息:查看和编辑用户的个人信息。
收藏:收藏常用的服务或信息。
3.管理员功能描述
登录:管理员通过用户名和密码进行身份验证以进入系统。
后台首页:展示管理员后台的主界面,汇总关键信息和操作入口。
系统用户:管理所有用户的信息,包括用户角色和状态。
软件信息管理:维护系统相关软件的信息和版本更新。
引用管理:管理系统中引用的外部资源或文献。
邮寄管理:监控和处理所有邮寄订单的状态和流程。
系统管理:进行系统设置,如备份恢复、日志管理等。
通知公告管理:发布和编辑校园快递相关的通知和公告。
资源管理:管理系统中上传的文件和资源。
权限管理:分配和调整不同用户角色的权限。
通过这些功能的实现,整个校园快递管理系统系统可以高效、便捷地服务于用户与管理员,提升校园快递管理系统的的使用效率和管理的智能化水平。
校园快递管理系统注册用户角色用例图如下所示。

图3-1 注册用户角色用例图
校园快递管理系统驿站用户角色用例图如下所示。

图3-2 驿站用户角色用例图
校园快递管理系统管理员角色用例图如下所示。

图3-3管理员角色用例图
3.3性能需求分析
用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如浏览通知公告、最新资讯等操作应该迅速响应。
系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。
数据安全:用户信息等敏感数据需要加密存储,确保数据安全性。
系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。
日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。
基于以上性能需求将确保校园快递管理系统能够稳定、高效地运行,能够很好地满足用户和管理员的需求。
3.4系统流程分析
3.4.1用户注册流程图
注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-4用户注册流程图所示。

图3-4 用户注册流程图
3.4.2用户登录流程图
登录时,用户填写用户名、密码、选择身份进行登录,在登录过程中后端会对发送过来的信息进行验证和判断,具体的登录流程如图3-5用户登录流程图所示。

图3-5用户登录流程图
3.4.3系统操作流程
用户打开并进入系统后,会先显示登录界面,输入正确的用户名和密码,系统自动检测信息,若信息无误,则用户会进入系统功能界面,进行操作,否则会提示错误无法登录,操作流程如图3-6所示。

图3-6 系统操作流程图
3.4.4添加信息流程
管理员可以对通知公告、最新资讯等进行信息的添加,用户可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如图3-7所示。

3.4.5 修改信息流程
管理员可以对通知公告、最新资讯等进行的修改,用户可以对自己权限内的信息进行修改,首先进入修改信息界面,输入修改信息数据,系统进行数据的判断验证,修改信息合法则修改成功,信息更新至数据库,信息不合法则修改失败,重新输入。修改信息流程图如图3-8所示。

图3-8 修改信息流程图
3.4.6 删除信息流程
管理员可以对通知公告、最新资讯等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如图3-9所示。

图3-9 删除信息流程图
第四章 系统设计与实现
4.1系统总体设计思路
校园快递管理系统采用Browser/Server结构,(浏览器/服务器)和基于Web服务前后台交互的模式,是一个适用于Windows体系环境下的模型结构。只要用户有符合程序运行的硬件系统,并连上互联网,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1系统工作原理图
其最终前后台交互原理如图4-2所示。

图4-2前后台交互原理
具体交互流程为:浏览器中执行具体操作,操作命令将生成一个do方法。该方法使得浏览器能够访问后台中的Controller层,Controller层由于业务上的需要执行进而访问Service层。Service层收到指令后将会去调用内部DAO层的接口。接口将会和MyBatis层下的一个SQL语句相对接。对接好之后进而访问MySql数据库。更新底层数据,然后将数据同步回MyBatis层,同步变化后的数据将通过DAO层接口,Service层和后台Controller层,直观反映到浏览器页面上。
4.2系统结构设计
校园快递管理系统的整体结构设计如图4-3所示。

图4-3整体功能结构设计图
4.4数据库设计
数据库系统作为一个重要的组件,其优化针对整体网络的运行非常重要。为了构建一个高效的数据库系统,需要明确每个元素的特征,并将它们组合在一起。
4.4.1数据库设计原则
校园快递管理系统在进行数据库设计时,考虑到个人能力与数据库选择,选择了数据库Mysql。以下将使用E-R展示数据库中设计的实体及主要的字段和类型及数据库的描述。
4.4.2数据库实体
通过建立校园快递管理系统的E-R模型图。以此来设计详细的数据库资料实体,以下为具体图例:
(1)注册用户实体图如图4-4所示;

图4-4注册用户实体图
(2)收件信息实体E-R图如图4-5所示;

图4-5收件信息实体E-R图
(3)物流订单实体图如图4-6所示;

图4-6物流订单实体图
(4)驿站用户实体图如图4-7所示;

图4-7驿站用户实体图
(5)邮寄评价实体图如图4-8所示;

图4-8邮寄评价实体图
(6)数据库实体E-R图如图4-9所示:

图4-9数据库E-R图
4.4.3数据库表设计
通过对数据结构的深入分析,可以确定哪些表格和结构之间的关系,并且可以通过验证、调整和完善,来满足用户对数据和功能的需求,从而实现数据库的有效管理。
根据校园快递管理系统的特性,重新设计了数据库的概念模型,以满足其功能的需求,并且结构更加清晰明确。
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | parent | varchar | 64 | 0 | Y | N | 父级菜单 | |
| 8 | parent_sort | int | 10 | 0 | N | N | 0 | 父级菜单排序 |
| 9 | position | varchar | 32 | 0 | Y | N | 位置: | |
| 10 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
| 11 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
| 12 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
| 13 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
| 14 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
| 15 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
| 16 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
| 17 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
| 18 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
| 19 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
| 20 | option | text | 65535 | 0 | Y | N | 配置: | |
| 21 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | code_token_id | int | 10 | 0 | N | Y | ||
| 2 | token | varchar | 255 | 0 | Y | N | ||
| 3 | code | varchar | 255 | 0 | Y | N | 验证码 | |
| 4 | expire_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 失效时间 |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 6 | 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: |
表courier_services_company (快递公司)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | courier_services_company_id | int | 10 | 0 | N | Y | 快递公司ID | |
| 2 | corporate_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 | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | express_service_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 | 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_order_id | int | 10 | 0 | N | Y | 物流订单ID | |
| 2 | post_station_users | int | 10 | 0 | Y | N | 0 | 驿站用户 |
| 3 | station_name | varchar | 64 | 0 | Y | N | 驿站名称 | |
| 4 | employee_id | varchar | 64 | 0 | Y | N | 员工工号 | |
| 5 | registered_user | int | 10 | 0 | Y | N | 0 | 注册用户 |
| 6 | courier_services_company | varchar | 64 | 0 | Y | N | 快递公司 | |
| 7 | express_service | varchar | 64 | 0 | Y | N | 快递服务 | |
| 8 | order_number | varchar | 64 | 0 | N | N | 订单编号 | |
| 9 | courier_number | varchar | 64 | 0 | N | N | 快递单号 | |
| 10 | logistics_information | text | 65535 | 0 | Y | N | 物流信息 | |
| 11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 13 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 14 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 15 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | mailing_evaluation_id | int | 10 | 0 | N | Y | 邮寄评价ID | |
| 2 | registered_user | int | 10 | 0 | Y | N | 0 | 注册用户 |
| 3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 4 | order_number | varchar | 64 | 0 | N | N | 订单编号 | |
| 5 | post_station_users | int | 10 | 0 | Y | N | 0 | 驿站用户 |
| 6 | evaluation_time | datetime | 19 | 0 | Y | N | 评价时间 | |
| 7 | evaluation_level | varchar | 64 | 0 | Y | N | 评价等级 | |
| 8 | evaluation_details | text | 65535 | 0 | Y | N | 评价详情 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 11 | source_table | varchar | 255 | 0 | Y | N | 来源表 | |
| 12 | source_id | int | 10 | 0 | Y | N | 来源ID | |
| 13 | source_user_id | int | 10 | 0 | Y | N | 来源用户 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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_shipping_id | int | 10 | 0 | N | Y | 下单邮寄ID | |
| 2 | registered_user | int | 10 | 0 | Y | N | 0 | 注册用户 |
| 3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 4 | users_mobile_phone | varchar | 64 | 0 | Y | N | 用户手机 | |
| 5 | shipping_address | varchar | 64 | 0 | Y | N | 寄件地址 | |
| 6 | recipients_name | varchar | 64 | 0 | Y | N | 收件人名 | |
| 7 | recipient_number | varchar | 16 | 0 | Y | N | 收件号码 | |
| 8 | delivery_address | varchar | 64 | 0 | Y | N | 收件地址 | |
| 9 | courier_services_company | varchar | 64 | 0 | Y | N | 快递公司 | |
| 10 | express_service | varchar | 64 | 0 | Y | N | 快递服务 | |
| 11 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
| 12 | order_time | datetime | 19 | 0 | Y | N | 下单时间 | |
| 13 | post_station_users | int | 10 | 0 | Y | N | 0 | 驿站用户 |
| 14 | express_delivery_fee | double | 9 | 2 | Y | N | 0.00 | 快递费用 |
| 15 | delivery_status | varchar | 64 | 0 | Y | N | 快递状态 | |
| 16 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 17 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 18 | pay_state | varchar | 16 | 0 | N | N | 未支付 | 支付状态 |
| 19 | pay_type | varchar | 16 | 0 | Y | N | 支付类型: 微信、支付宝、网银 | |
| 20 | logistics_order_limit_times | int | 10 | 0 | N | N | 0 | 记录物流限制次数 |
| 21 | mailing_evaluation_limit_times | int | 10 | 0 | N | N | 0 | 用户评价限制次数 |
| 22 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 23 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | post_station_users_id | int | 10 | 0 | N | Y | 驿站用户ID | |
| 2 | station_name | varchar | 64 | 0 | Y | N | 驿站名称 | |
| 3 | employee_id | varchar | 64 | 0 | N | N | 员工工号 | |
| 4 | employee_mobile_phone | varchar | 16 | 0 | N | 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 | 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 | receiving_information_id | int | 10 | 0 | N | Y | 收件信息ID | |
| 2 | post_station_users | int | 10 | 0 | Y | N | 0 | 驿站用户 |
| 3 | employee_id | varchar | 64 | 0 | Y | N | 员工工号 | |
| 4 | employee_mobile_phone | varchar | 64 | 0 | Y | N | 员工手机 | |
| 5 | registered_user | int | 10 | 0 | Y | N | 0 | 注册用户 |
| 6 | courier_number | varchar | 64 | 0 | N | N | 快递单号 | |
| 7 | departure_location | varchar | 64 | 0 | Y | N | 发出地 | |
| 8 | arrival_time | datetime | 19 | 0 | Y | N | 到站时间 | |
| 9 | pick_up_location | varchar | 64 | 0 | Y | N | 取件地点 | |
| 10 | pick_up_number | varchar | 64 | 0 | Y | N | 取件号码 | |
| 11 | pick_up_status | varchar | 64 | 0 | Y | N | 取件状态 | |
| 12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | registered_user_id | int | 10 | 0 | N | Y | 注册用户ID | |
| 2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
| 4 | users_mobile_phone | varchar | 16 | 0 | N | N | 用户手机 | |
| 5 | collect_len | int | 10 | 0 | N | N | 0 | 收藏数 |
| 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 | schedule_id | smallint | 5 | 0 | N | Y | 日程ID:[0,32767] | |
| 2 | content | varchar | 255 | 0 | Y | N | 日程内容 | |
| 3 | scheduled_time | datetime | 19 | 0 | Y | N | 计划时间 | |
| 4 | user_id | int | 10 | 0 | N | N | 用户id | |
| 5 | create_time | datetime | 19 | 0 | Y | N | 创建时间 | |
| 6 | update_time | datetime | 19 | 0 | Y | N | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | score_id | int | 10 | 0 | N | Y | 评分ID: | |
| 2 | user_id | int | 10 | 0 | N | N | 0 | 评分人: |
| 3 | nickname | varchar | 64 | 0 | Y | N | 昵称: | |
| 4 | score_num | double | 5 | 2 | N | N | 0.00 | 评分: |
| 5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 7 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
| 8 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
| 9 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 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 | int | 10 | 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 | 更新时间: |
第五章 系统实现
5.1 登录注册模块的实现
注册用户通过微信授权登录,获取用户基本信息(如昵称、头像等),并完成首次注册。注册后,系统自动为用户生成唯一的账号,并绑定微信号,实现一键登录。系统登录界面如下图5-1所示。系统注册界面如下图5-2所示。

图5-1系统登录界面

图5-2 系统注册界面
代码如下:
注册页UserController.java,传入user对象,并将"user_id"、 "state"、 "user_group"、"login_time"、"phone"、"phone_state"、 "username"、"nickname"、"password"、"email"、"email_state"、"avatar"、"create_time"输入,重点是 "username"、"nickname"、"password"必须输入,通过获取username,数据库查询是否有该用户,如果存在,则提示“用户已存在”,否则执行将UserId置为空(数据库表中该字段已设置自动递增),代码如下:
/**
* 注册
* @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);
}
注册页password则使用了MD5加密,代码如下:
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;
}
登录页,首先传入"username"、"email"、"phone"、"password",用户可通过用户名、邮箱、手机号进行登陆,通过判断resultList来确定查询结果,然后执行查询用户组UserGroup,用户组里面不存在,依然报“用户不存在”,执行完以上代码,最后涉及到用户带有“审核”的,会查询examine_state(用户的审核状态),数据库表user_group中含有source_table和source_field进行查询,以上步骤完成,对输入的密码进行存储Token到数据库,匹对账号和密码,数据库中的AccessToken为令牌,用于身份认证,其代码如下:
/**
* 登录
* @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, "账号或密码不正确");
}
}
5.2 注册用户功能实现
5.2.1 用户首页模块
首页是用户进入小程序后的第一个页面。该页面展示了通知公告和最新资讯,提供轮播图展示等。首页如下图所示。

图5-3首页界面
5.2.2 最新资讯模块
点击首页“最新资讯”按钮,用户可以查看所有的最新资讯,支持关键词搜索,点击某条最新资讯可查看该最新资讯详情,用户可以对最新资讯进行评论、收藏、点赞,最新资讯列表界面如下图5-4所示。

图5-4最新资讯列表界面
5.2.3 通知公告模块
用户点击首页“通知公告”按钮,会进入通知公告产品展示列表,用实时滚动展示校园快递的最新公告与通知,确保用户能够第一时间获取重要信息。通知公告详情界面如下图5-5所示。

图5-5通知公告产品展示界面
5.2.4我的模块
用户点击导航栏“我的”,可以进入个人信息页面,用户可以查看和管理个人信息,包括下单邮寄、物流信息、邮寄评价、收件信息、基本信息、 收藏等。用户可以管理个人邮寄订单,查看历史记录。并且可以实时追踪个人订单的物流动态。我的界面如下图5-6所示。下单邮寄详情页面如下图5-7所示。物流信息页面如下图5-8所示。

图5-6我的界面

图5-7下单邮寄详情界面

图5-8物流信息界面
5.3 驿站用户功能实现
5.3.1软件信息管理界面
驿站用户可以实时查看驿站相关的软件更新,确保系统兼容性与稳定性,软件信息添加界面如下图5-9所示。软件信息列表界面如下图5-10所示。

图5-9软件信息添加界面图

图5-10软件信息列表界面图
5.3.2邮寄管理界面
驿站用户可以深度处理驿站邮寄订单,从揽收到派送的每一步都经过精心优化,提升客户满意度。界面如下图所示。

图5-11下单邮寄列表界面图

图5-12邮寄评价界面图
5.4 管理员功能实现
5.4.1轮播图管理界面
管理员点击“系统管理-轮播图管理”菜单,可以对前台展示的轮播图进行设置,界面如下图5-13所示。

图5-13轮播图管理界面图
5.4.2系统用户界面
管理员点击“系统用户”菜单,管理员可以管理系统中的用户信息,支持用户的增删改查操作。界面如下图所示。

图5-14用户管理界面图
代码如下:
新增一条数据,通过post传入一个json对象,然后经过request.getReader(),最后经过readBody()转成一个Map,含有String和Object,key用的是字段名,Object存放数据,最终得到Map,insert用拼装sql,读取body,组装成一个insert对象,runCountSql()语句,代码如下:
@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);
}
修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如下:
@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);
}
删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如下:
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());
}
5.4.3邮寄管理界面
管理员点击“邮寄管理”这个菜单,可以实时监控邮寄订单的全生命周期,从下单、揽收到派送,每一环节尽在掌握,提升服务效率与质量。界面如下图5-15所示。

图5-15邮寄管理界面图
5.4.4通知公告管理界面
管理员点击“通知公告管理”这个菜单,可以对系统中的公告信息进行管理,包括公告信息的增删改查等操作。通知公告管理界面如下图所示。

图5-16通知公告管理界面图
5.4.5资源管理界面
管理员点击“资源管理”菜单,管理员可以上传、编辑或删除系统的资源,如文章、图片、视频等。这些资源可用于最新资讯模块的展示。管理员还可以对资讯进行分类和标签化,方便用户查找和使用,界面如下图所示。

图5-17资源管理界面图
代码如下:
图片/文件/视频等的上传方法通过MultipartFile,代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}
第六章 系统的测试
6.1测试目的
在对该系统进行完详细设计和编码之后,就要对校园快递管理系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。
6.2功能测试
本系统的主要功能就是注册用户登录后,可搜索和浏览通知公告,管理员登录系统后台后可对通知公告进行管理,包括增改删查操作。测试设计如下所示:
用户登录前首先需注册成为系统用户,使用账号和密码可进行登录。用户登录功能测试用例设计如下表所示:
表6-1 用户登录功功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证有效登录 | 1. 输入正确的用户名和密码 <br> 2. 点击登录按钮 | 显示登录成功,跳转至用户首页 | 登录成功,跳转至用户首页 | 通过 |
| TC002 | 验证空用户名登录 | 1. 不输入用户名,输入正确密码 <br> 2. 点击登录按钮 | 显示用户名不能为空提示信息 | 显示用户名不能为空提示信息 | 通过 |
| TC003 | 验证空密码登录 | 1. 输入正确用户名,不输入密码 <br> 2. 点击登录按钮 | 显示密码不能为空提示信息 | 显示密码不能为空提示信息 | 通过 |
| TC004 | 验证错误用户名登录 | 1. 输入错误的用户名和正确密码 <br> 2. 点击登录按钮 | 显示用户名或密码错误提示信息 | 显示用户名或密码错误提示信息 | 通过 |
| TC005 | 验证错误密码登录 | 1. 输入正确用户名和错误密码 <br> 2. 点击登录按钮 | 显示用户名或密码错误提示信息 | 显示用户名或密码错误提示信息 | 通过 |
(2)通知公告模块功能测试
通知公告模块测试包括通知公告展示功能测试、通知公告添加功能测试、通知公告搜索功能测试。通知公告模块测试用例如表6.2-6.4所示。
通知公告展示功能测试用例设计如下表所示:
表6-2 通知公告展示功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证正常展示通知公告 | 1. 进入通知公告展示页面 <br> 2. 浏览展示的通知公告内容 | 能够正常显示通知公告内容 | 通知公告内容正常显示 | 通过 |
| TC002 | 验证通知公告链接跳转 | 1. 进入通知公告展示页面 <br> 2. 点击通知公告链接 | 能够跳转至相应通知公告详情页面 | 成功跳转至通知公告详情页面 | 通过 |
| TC003 | 验证搜索功能 | 1. 进入通知公告展示页面 <br> 2. 使用搜索功能搜索通知公告 | 显示符合搜索条件的通知公告列表 | 显示符合搜索条件的通知公告列表 | 通过 |
| TC004 | 验证商品状态展示 | 1. 进入通知公告展示页面 <br> 2. 选择商品状态 | 显示该状态下的通知公告列表 | 成功显示该状态下的通知公告列表 | 通过 |
| TC005 | 验证通知公告的评论功能 | 1. 进入通知公告详情展示页面 <br> 2. 查看通知公告并发表评论 | 评论成功显示在通知公告页面 | 评论成功显示在通知公告页面 | 通过 |
通知公告添加功能测试用例设计如下表所示:
表6-3 通知公告添加功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证添加通知公告 | 1. 进入通知公告添加界面 <br> 2. 输入通知公告 <br> 3. 点击添加按钮 | 通知公告成功添加到系统页面中 | 通知公告成功添加到系统页面中 | 通过 |
| TC002 | 验证通知公告商品状态选择 | 1. 进入通知公告添加界面 <br> 2. 选择商品状态 <br> 3. 输入通知公告 <br> 4. 提交通知公告 | 根据选择的商品状态成功添加通知公告 | 根据选择的动态类型成功添加通知公告 | 通过 |
| TC003 | 验证通知公告内容输入 | 1. 进入通知公告添加界面 <br> 2. 输入正确通知公告内容3. 点击添加按钮 | 通知公告内容成功录入系统 | 通知公告内容成功录入系统 | 通过 |
| TC004 | 验证通知公告图片上传 | 1. 进入通知公告添加界面 <br> 2. 上传通知公告相关图片 <br> 3. 点击添加按钮 | 图片成功上传并与通知公告关联 | 图片成功上传并与通知公告关联 | 通过 |
通知公告搜索功能测试用例设计如下表所示:
表6-4 通知公告搜索功能测试用例
| 测试编号 | 测试目的 | 测试步骤 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 验证通知公告输入物品名称搜索 | 1. 进入通知公告搜索界面 <br> 2. 输入商品名称 <br> 3. 确认并搜索 | 根据选择的商品名称关键词显示相关通知公告 | 根据选择的商品名称关键词成功显示相关通知公告 | 通过 |
6.3性能测试
- 兼容性测试
表6-5 兼容性测试用例
| 用例编号 | 测试类型 | 测试目标 | 操作过程 | 预期结果 |
| 兼容性_01 | 设备兼容性 | 测试系统在不同设备上的表现 | 在多种设备上访问系统并记录表现 | 系统在各种设备上都能正常加载和显示页面 |
| 兼容性_02 | 浏览器兼容性 | 测试系统在不同浏览器上的表现 | 在多种浏览器中访问系统并记录表现 | 系统在各种主流浏览器上都能正常加载和显示页面 |
| 兼容性_03 | 分辨率兼容性 | 测试系统在不同分辨率下的显示效果 | 在不同分辨率的设备上访问系统并记录表现 | 系统在各种分辨率下都能适应并正常显示内容 |
| 兼容性_04 | 操作系统兼容性 | 测试系统在不同操作系统上的运行情况 | 在不同操作系统上访问系统并记录表现 | 系统能够在常用操作系统上正常运行和显示 |
- 性能测试
表6-6 性能测试用例
| 用例编号 | 测试类型 | 测试目标 | 操作过程 | 预期结果 |
| 性能_01 | 负载测试 | 测试系统在正常负载下的性能 | 逐步增加用户数来模拟不同的负载情况 | 系统能够稳定处理并响应不同数量的用户请求 |
| 性能_02 | 压力测试 | 测试系统在极端负载下的性能 | 以超过系统承受极限的用户数来测试系统 | 系统能够在高负载情况下仍然保持正常运行 |
| 性能_03 | 并发测试 | 测试系统能同时处理多少并发用户请求 | 同时发送多个并发用户请求来测试系统性能 | 系统能够有效地处理多个并发请求 |
| 性能_04 | 数据量测试 | 测试系统在大量数据下的性能 | 向系统添加大量数据并测试系统响应时间 | 系统能够在大量数据情况下保持较快的响应时间 |
6.4测试结果
全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。
简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。
结 论
本论文基于Spring Boot框架、Java语言、MySQL数据库和微信小程序技术,设计并实现了一个校园快递管理系统系统。通过详细的需求分析、系统架构设计、数据库设计和功能实现,本系统成功解决了校园快递管理系统的管理中的诸多问题。
系统的设计与实现验证了微信小程序在校园快递管理中的有效性。注册用户能够通过小程序便捷地查看通知公告、最新资讯、物流信息等,极大提升了校园快递管理系统的使用效率。而管理员则通过后台管理系统,能够高效地进行邮寄管理、公告发布以及软件信息管理,确保了资源的公平分配和管理的透明度。该系统的实现有效地提高了校园快递管理系统的的利用率,减少了人工干预,提高了校园快递管理的智能化水平。
通过该系统的实现,展现了现代信息技术在校园快递管理中的广泛应用前景,特别是微信小程序和Spring Boot等技术的结合,为类似的资源管理系统提供了可借鉴的开发经验。尽管系统在当前实现中能够满足大部分基本需求,但仍可通过后续优化,如增加更智能的校园快递策略、改进用户界面设计等,进一步提升系统的性能与用户体验。
总体而言,该校园快递管理系统系统的成功实现,不仅为校园快递的管理提供了有力支持,也为其他类似管理需求的系统开发提供了实践依据,推动了校园快递管理的现代化与智能化发展。
参考文献
- 马新,杨春妮,李孟莹,等.大学校园微信快递代取平台设计[J].中国储运,2024,(04):179-180.DOI:10.16301/j.cnki.cn12-1204/f.2024.04.062.
- 张立国,高海阔,李洁,等.视觉机械臂校园快递系统的设计与实现[J].信息记录材料,2024,25(02):168-170.DOI:10.16009/j.cnki.cn13-1295/tq.2024.02.051.
- 李宗蔚.基于RFID的校园快递管理系统设计[J].中国物流与采购,2023,(18):101-102.DOI:10.16079/j.cnki.issn1671-6663.2023.18.029.
- 向安军,毛旭阳,王思杰,等.基于RFID的校园快递管理系统设计[J].山西电子技术,2022,(05):35-38.
- 熊志勇,刘诚志,朱晶,等.基于Python人脸识别校园快递的设计与实现[J].电脑知识与技术,2022,18(28):48-49+52.DOI:10.14004/j.cnki.ckt.2022.1807.
- Yiwa Z ,Yuqing Q ,Yuetong H , et al.Campus Express—Digital Transformation for Legacy Businesses[C]//[出版者不详],2022:
- Zhang G ,Li W ,Tang Y , et al.Lightweight CNN-ViT with cross-module representational constraint for express parcel detection[J].The Visual Computer,2024,(prepublish):1-13.
- Xudong D ,Meng Q ,Gangyan X .Electric vehicle-based express service network design with recharging management: A branch-and-price approach[J].Computers and Operations Research,2024,162
- 唐洪,刘晓莉,金秋.基于RFID技术的高校快递分拣系统及布局优化[J].价值工程,2023,42(21):158-160.
- 薛桂滢,郑丹,高锋.校园快递纸箱回收利用的系统设计研究——以四川师范大学为例[J].鞋类工艺与设计,2023,3(14):117-119.
- 龚中文,董丹华,蒋舒琪.某高校快递无接触配送的取件系统仿真设计与分析[J].物流技术与应用,2022,27(08):145-151.
- 吕极然.基于数据挖掘和可视化的快递行业研究[D].对外经济贸易大学,2022.DOI:10.27015/d.cnki.gdwju.2022.000285.
- 王小雨,石相宜,王菁,等.基于改进重心法的校园快递服务中心选址研究[J].地理空间信息,2022,20(03):127-130.
- 郑昌祺,孟一,成才鑫,等.代领快递抢单微信小程序运用分析[J].科技视界,2022,(09):70-72.DOI:10.19694/j.cnki.issn2095-2457.2022.09.19.
- 徐伟,李挺.基于Android的校园快递配送系统的研究与设计[J].科学技术创新,2021,(23):79-80.
- 林路结,吴家丽,王凤玲,等.条码技术在校园菜鸟驿站的应用[J].条码与信息系统,2021,(03):35-38.
- 孙秀娟,董文清,梁志广.基于微信小程序的校园快递代取平台的设计与实现[J].北京工业职业技术学院学报,2020,19(04):16-19+90.
- 高文彦,贾国强,唐亮.基于Android终端的快递代取软件开发[J].电脑知识与技术,2020,16(15):132-133.DOI:10.14004/j.cnki.ckt.2020.1771.
- 汪慧兴,黄有飞.校园快递代送APP开发项目[J].电子世界,2019,(07):73-74.DOI:10.19353/j.cnki.dzsj.2019.07.035.
- 张智林,阴毅.基于微信小程序的O2O模式校园快递的设计与实现[J].电子技术与软件工程,2019,(03):34.DOI:10.20109/j.cnki.etse.2019.03.033.
致 谢
在本论文的研究与撰写过程中,我得到了许多人的支持与帮助。在此,我谨向所有关心和支持我的人表示诚挚的感谢。
首先,我要感谢我的指导老师,他在整个研究过程中给予了我悉心的指导和无私的支持。他的专业知识和严谨态度对我有着深远的影响,使我在研究中受益匪浅。
其次,我要感谢我的家人,他们在我攻读学位期间给予了我无条件的理解与支持。在我遇到困难和挑战时,他们的鼓励让我倍感温暖,激励我不断前行。
同时,感谢所有参与问卷调查和用户测试的用户,你们的反馈和建议对本系统的改进和完善起到了重要作用。希望本研究的成果能够为大家的生活带来便利。
再次感谢所有关心和支持我的人,是你们的帮助让我顺利完成了这项研究。
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩
一键三连!!!
一键三连!!!
一键三连!!!
感谢一键三连!!!

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



