springboot安全认证的物流管理系统

99 篇文章 0 订阅
78 篇文章 0 订阅

 

         基于jwt安全认证的物流管理系统是为了方便员工用户能够在网站上查看物流订单、运输信息、配送信息、决策信息、客户信息、仓库信息等,于是开发了基于springboot框架设计与实现了一款简洁、轻便的基于jwt安全认证的物流管理系统。本系统解决了物流管理事务中的主要问题,包括以下多个功能模块:物流订单、运输信息、配送信息、决策信息、客户信息、客户服务、仓库信息、出库信息、入库信息等。

      本系统采用了JAVA语言、springboot框架,采用了B/S设计模式,凭借ORM技术将相关数据映射到数据库中,数据采用MySQL数据库进行存储,界面化操作便于上手。本系统具有良好的易用性和安全性,系统功能齐全,可以满足物流管理的相关工作。

关键词;基于jwt安全认证的物流管理系统JAVA语言;springboot框架;MySQL数据库;

Abstract

The logistics management system based on jwt security certification is to facilitate employees and users to view logistics orders, transportation information, distribution information, decision information, customer information, warehouse information, etc., so the springboot framework is developed to design and implement a simple and lightweight logistics management system based on jwt security certification. This system solves the main problems in logistics management affairs, including the following functional modules: logistics order, transportation information, distribution information, decision information, customer information, customer service, warehouse information, outbound information, inbound information, etc.

This system uses JAVA language, springboot framework, B/S design pattern, and maps relevant data to the database by ORM technology. The data is stored by MySQL database, and the interface operation is easy to get started. The system has good ease of use and security, the system has complete functions, and can meet the related work of logistics management.

Keywords; Logistics management system based on jwt safety certification; JAVA language; springboot framework; MySQL database;

目  录

  .................................................................................................................................... I

Abstract................................................................................................................................ II

1   ............................................................................................................................... 1

1.1课题的背景和意义.................................................................................................. 1

1.1.1课题的背景..................................................................................................... 1

1.1.2开发课题的意义及作用................................................................................. 1

1.2论文的结构.............................................................................................................. 2

1.3小结.......................................................................................................................... 2

2 相关技术简介及部署环境说明.................................................................................... 3

2.1 Spring Boot框架..................................................................................................... 3

2.2 JAVA语言介绍....................................................................................................... 3

2.3 Tomcat服务器简介................................................................................................. 4

2.4 MySQL数据库简介 ............................................................................................. 4

2.5 B/S架构................................................................................................................... 4

2.6小结.......................................................................................................................... 5

3 需求分析........................................................................................................................... 6

3.1基于jwt安全认证的物流管理系统的可行性分析.............................................. 6

3.2基于jwt安全认证的物流管理系统的需求分析.................................................. 6

3.3系统流程设计.......................................................................................................... 7

3.4小结.......................................................................................................................... 7

4 系统总体设计.................................................................................................................. 8

4.1数据库设计原则...................................................................................................... 8

4.2模型的设计.............................................................................................................. 9

4.3小结........................................................................................................................ 13

5 系统详细设计与实现................................................................................................... 14

5.1后台管理员功能模块............................................................................................ 16

5.2后台员工用户功能模块........................................................................................ 18

5.3小结........................................................................................................................ 20

6 系统测试......................................................................................................................... 21

6.1软件测试原则........................................................................................................ 22

6.2测试用例................................................................................................................ 23

................................................................................................................................... 28

参考文献............................................................................................................................. 29

  ................................................................................................................................. 29

1  

近些年来,随着电子科学技术的高速发展,计算机相关行业的发展创新。衍生出了各种各样方便快捷的电子设备[1]。如手机,电脑等。这些电子设备功能强大,方便所有类型的人们使用。但这些年来,人们对手机,电脑等电子高科技产物的依赖和需求也越来越大。现在的人们已经不再满足于它们各式各样的基础功能,例如与他人通讯,上网了解信息等。人们现在更希望的是随着科技的发展,手机、电脑等高科技产品可以给自己带来更多方便快捷、简单实用的功能。同时也希望自己在使用的时候可以更轻松的掌握使用这些设备的技巧。同时,伴随着这些电子设备的出现,操作系统就显的尤为重要,电子设备各式各样功能的顺利运行都要依靠它的稳定运行。操作系统可以管理、控制计算机的硬件资源和软件资源,也是计算机最为基本的系统软件。人们所有能涉及到和使用到的软件运行几乎都离不开它。它就像人类的大脑一样,控制着计算机的各种设备。但同样,操作系统在发展时自身也会出现很多问题,同样的系统不能应用在所有的硬件设备上。这个问题对于大部分的电子科技受益者来说很陌生,处理起来很有困难。会让使用者不能在第一时间使用,因此会造成很多负面的影响。

1.1课题的背景和意义

      1. 课题的背景

随着科学技术的不断发展,计算机现在已经成为了社会的必需品,人们通过因特网可以获得海量的信息,这些信息可以和各行各业进行关联,基于jwt安全认证的物流管理系统也不例外[1]

       传统线下方式管理的起源可以追溯到20世纪60年代末期。当时的计算机技术已经步入了实用技术阶段,由于各行业的工作大部分为高重复度的手工查找,这些工作耗费了大量人力资源又很容易出现细小的差错。这些问题恰恰可以通过计算机来解决,只是碍于技术条件限制,所以信息管理系统的发展比较迟缓。

直到20世纪90年代末信息管理系统迎来了革命性变革,由于计算机技术的高速发展和数据库技术、客户\服务器技术和因特网也都趋于成熟稳定。这为实现基于jwt安全认证的物流管理系统提供了强有力的基础。这次变革使基于jwt安全认证的物流管理系统的重心转移到计算机技术的角度上,用关系型数据库处理几乎所有与基于jwt安全认证的物流管理系统有关的数据。设计界面化、报表工具生成和信息分析工具的信息共享使得管理者脱离了日常许多繁琐与重复的工作,有更多精力长远规划基于jwt安全认证的物流管理系统发展和系统维护[2]

1.1.2开发课题的意义及作用

面对高重复性机械性的工作,工作者不可避免的会出现失误,而改正失误的成本也相当高。特别是近年来,互联网的来临,无论是对人类社会,还是对政治、经济等多方面领域影响深远,也给新时代的信息管理和信息系统带来新的机遇和挑战。网络电脑化越深入,影响越大,社会就越进入互联网时代基于jwt安全认证的物流管理系统作为计算机应用,适合做单一重复的操作,对高速发展的技术有着更强的适应性,只需要维护更新得当,大大的降低了人力成本[3]。基于jwt安全认证的物流管理系统有以下几个特性:

1)高自由度:基于jwt安全认证的物流管理系统是一种人性化设计的系统,可以根据用户的需要来添加不同功能的组件和界面,让基于jwt安全认证的物流管理系统更加的符合操作者的使用习惯,提供更多的便利功能。

2)高检索率:传统管理模式信息检索也需要系统的支持,不过纸质载体的体积大,占地面积广,复原困难等问题,就算检索到了位置,也会出现找不到资源的情况,基于jwt安全认证的物流管理系统可以不受物理空间的限制,能储存的资料也没有空间的限制,即搜即看,大大的提高了资源搜索效率。

3针对性该系统是根据设计需求为导向来开发基于jwt安全认证的物流管理系统的设计,所以针对性较强

(4)实用性该设计能够满足基于jwt安全认证的物流管理系统的实际的功能需求,能够在实际中让用户真正使用到,具有实际的应用价值,这将会及广大使用者,更快、更好地满足了他们的需求,为现代信息管理系统的建设提供了软件支持[4]

    1. 论文的结构

本文的主体结构如下:

第一章主要对当下的基于jwt安全认证的物流管理系统的背景和开发意义进行了重点论述。

第二章重点介绍本基于jwt安全认证的物流管理系统的相关的开发技术,并对软件的部署环境进行必要的说明。

第三章重点对基于jwt安全认证的物流管理系统进行需求分析和可行性论述。

第四章主要对基于jwt安全认证的物流管理系统各个模块总体的设计以文字加图表的形式进行说明。

第五章详细的对各个模块进行阐述。

第六章对基于jwt安全认证的物流管理系统的测试方法进行说明及测试结果的展示[5]

1.3小结

    本章结合了基于jwt安全认证的物流管理系统的历史和优势说明了开发基于jwt安全认证的物流管理系统的必然性和重要性,结合实际的系统体验来阐述开发基于jwt安全认证的物流管理系统的实际意义,粗略的介绍了此次系统的主要开发步骤和论文的安排。

 

2 相关技术简介及部署环境说明

2.1 Spring Boot框架

Spring Boot是由Pivotal团队提供的轻量级框架,其开箱即用约定优于配置的策略可以使开发者全身心的投入到业务逻辑代码的编写中,极大地提高了软件开发项目的效率。相比于Spring框架而言,Spring Boot框架更加能够节省程序员配置XML的时间,Spring Boot项目允许开发者使用它的所有模块和开发功能,此外, Spring Boot内置了服务器,简化了开发者启用服务器的整体流程,Spring Boot还可以自动适配不同类型的数据库以满足用户快速连接后台数据库管理的需求,这极大地方便了用户快速搭建应用程序的实现过程。 20144月,Spring Boot 1.0.0发布,截止到20222月,发布的Spring Boot版本为Spring Boot 3.0.0-M1。在系统的设计与开发中,为了能够快速搭建软件后台服务的开发环境,从技术实现的难度以及平台开发的成本两个方面考虑,Spring Boot框架能够使开发者更关注平台功能的业务逻辑代码实现,可采用Spring Boot框架搭建系统为前端App提供数据服务。因此,本案例项目后台开发选择Spring Boot框架。

2.2 JAVA语言介绍

Java语言正式诞生于1995年,是由SUN公司开发研制的OAK语言发展而来的。Java语言继承了OAK语言可跨平台运行的特点,融合了面向对象编程的风格,JAVA以其独有的开放性、跨平台性和面向网络的交互性席卷全球,以其安全性、易用性和开发周期短的特点,迅速从最初的编程语言发展成为全球第一大软件开发平台.广受时下程序开发人员的好评。后来又为了丰富Java语言的用途,提高生产力,将它进行设计和改造,以满足更多地开发和应用场景。经过改造后,它可以满足移动端开发,桌面应用开发和企业级应用开发。Java语言还为用户提供了丰富的类库,在掌握它的特性后,学习特定的工具包,就可以满足很多场景的开发。现在来看,Java语言在这三种平台的应用开发中,都占据了举足轻重的地位。

与其他语言相比,Java语言具有很多的优点,Java语言简单比较容易理解,有c语言的基础很容易就可以学会,中文和英文的学习资源也比较多,而且Java语言经过许多年的沉淀发展,逐渐演变出很多成熟的框架技术。企业还还可以封装自己的框架,让开发变得简单。它还具有跨平台性较其他语言这一个最大的优势,这意味着它只需要一次编译就可以运行在其他平台上。

2.3 Tomcat服务器简介

Tomcat是Apache公司的研发并发布的产品。 Tomcat 是一个小型的轻量级应用服务器, 在中小型系统和并发访问 用户不是很多的场合下被普遍使用。它还具有很强的稳定性。Tomcat是嵌入式的,不需要进行war文件的部署。并且,它也同时简化了Maven的配置。简化了程序员的开发步骤。

2.4 MySQL数据库简介

数据库在软件项目中扮演着操作管理数据的角色同时还能够保证数据的独立性、一致性和安全性,并为系统访问数据提供有效方式不仅如此数据库还能大大减少程序员开发程序时间。在日常能够接触实用的一般有两类数据库,一类是以(OracleDB2SQL ServerMySQL )为代表的关系型数据库和以(NoSqlMongeDB)为代表的非关系型数据库,两类数据库各有各的优缺点。其中非关系型数据库又分为网络数据库和层级数据库。网络数据库是指在计算机网络系统中应用数据库技术然后借助网络技术将存储于数据库中的大量信息及时发布出去;在成熟的数据库技术的帮助下,计算机网络实现了对网络中的各种数据的有效管理,用户与网络中的数据库数据交互也借此得以进行。IMS也是最早研制成功的数据库系统。关系数据结构、关系操作集合、关系完整性约束构成了关系模型。作为数据库另外一种区分方式的存储介质被大家分为磁盘和内存这 两种。例如:关系型数据库就存储在磁盘中,非关系型数据库则存储在内存中。典型的关系型数据库有:OracleDB2Microsoft SQL ServerMicrosoft AccessMySQLSQLite。小型关系型数据库:Microsoft AccessSQLite;中型关系型数据库:SQL ServerMysql;大型关系型数据库:OracleDB2

大家常用的其他关系形数据库系统大多是MySQL AB公司开发的,其中MySQL也是由这家开发的,所应用的分布式数据库管理系统是客户机/服务器体系结构得益于此结构,而且用这个系统建造的数据库具有很强的适用性,用CC++编写的系统让他拥有很强的适用性所以他可以在大部分操作系统上使用并能和php结合。不同的API函数针对不同的语言(C,C++,JAVA)来处理不同数据;为了更好地支持多CPU多线程通过使用核心线程来实现;提供的存储机制分为事务和非事务存储机制;MySQL采用双重许可,不管是从MySQL AB公司获得正式的商业许可又或是许可条款下以免费软件或开放源码软件的方式使用MySQL软件都是被允许的。

MySQL作为数据库拥有很多优点,其中由于是开放源码,所以使用成本特别低,而它体积小的特点决定了速度快的特性。因此,MySql具有开放性,多线程支持多种API,可跨数据库连接,国际化,数据库体积巨大等特点。简单的来说 MySql是一个开放的、快速的、多线程的、多用户的数据库服务器。

2.5 B/S架构

B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作。

B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:

1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。

2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。

2.6小结

本章详细的介绍了开发基于jwt安全认证的物流管理系统所需要的技术与工具,工欲善其事必先利其器,对于技术和工具了解的越多越清晰,才会在开发过程中如鱼得水。

3 需求分析

                             

3.1基于jwt安全认证的物流管理系统的可行性分析

3.1.1经济可行性

任何系统在开发之前,经济方面的问题都是最应该被考虑的,经济问题主要体现在两个方面。一方面是在开发时,现有可使用的设计资源能否满足系统的预计开发消耗;另一方面是在开发以后,系统的盈利能否保证系统的正常运行和日复一日的更新消耗

开发方面,因为在开发系统时使用的开发工具基本都是免费的,只有一些少量的人工费。所以,开发工具上的经济消耗都是很少的,都是在可控范围内的。另外,可以在确保质量的前提下,尽可能的减少设计成本,可以为开发之后的工作留下更多的经济资源[10]

在最大限度降低开发成本的同时,也可以让使用者最大限度的从系统中获利,对双方来说都是一个可行的基于jwt安全认证的物流管理系统。总结下来就是,该系统的各项开发费用都处于可控范围内。经过了种种分析和考虑后证明,该系统软件可以行得通的,经济方面的压力是在预料之内的。

3.1.2技术可行性

在研究技术可行性的时候,系统的开发环境是可以确定的,所以技术可行性最好与系统功能和性能以及一些实际的情况同时考虑。在可行性研究阶段,结合实际调整开发的内容和选择能够完成的技术体系是一个可用的手段,如果系统进入开发阶段,任何的调整都意味着会耗费更多的经历。需要再次明确的问题是,技术可行性不只是考虑在技术上是否可实现,实际上还包含了在当前的实际的情况下的技术可行性。有很多的因素例如时间不足、预期的开发目标技术难度比较难、不能有充足的技术积累、而且对于技术的掌握不够等这些实际存在的情况,都是要提前部署和认真规划的。

开发基于jwt安全认证的物流管理系统的技术内容分析,目前的状况是从网络硬件和相关技术上看是可行的。该系统采用了JAVAspringboot MySQL技术。到现在可以知道,很多的基础知识都是经过学习使用的,在后续的设计中还需要不断的练习,学习更多相关的技术经验来充实自己对于系统的开发[11]

3.1.3社会可行性

在社会可行性分析中,首先能结合国家经济和社会发展的实际情况,还需要能够让用户更加的便利,给使用者带来多方面的高效益,使得可以比较快速的发展以及应用,随着很多领域的发展,尤其是智能化的社会下,据统计许多的人都拥有属于自己的系统,这种情况下就带来很多的问题,比较突出的就是管理上的不足,从而出现低效率的原因。

在可行性分析中的收益分析,是比较清晰地发掘开发的系统带来的各种直接的有效的利益以及一些隐藏起来的好处,以便在后续的设计中更加的坚定和确信系统开发的意义。解决一些社会方面存在的问题,设计并开发系统肯定是要发现某类社会存在的问题,并且能够带来一定的社会价值。还有一些社会的影响力,是通过系统想优势和切实的好处来产生的,能够在一定的情况下提高效率,肯定会增加一些社会的进步和发展。社会上的可行性,包括法律上的可行性,也包括法律上的可能性,法律上的可行性,需要社会上的许多因素,可以来实现系统建设的现实性。如果所开发的系统与国家法律或政策等相关的因素不相符合,在某些信息化的邻域中使用的是一些加密的信息或者技术问题,还有不经过正常的操作使用其他的一些公开的信息等这些情况,这样的系统的开发在法律的范围中就是不能被允许的。

其中还有一个比较重要的用户使用可行性也是通过执行系统时的可行性,是从所有情况下用户的角度来考虑系统的可行性,由于设计开发相关的系统就是站在社会中广大的用户体验考虑的,所以在这个层面考虑也是符合的。

3.2基于jwt安全认证的物流管理系统的需求分析

需求分析在系统开发中有着十分重要的作用。软件项目凭借软件工程的思想和步骤可以大大的提高开发效率,缩短软件开发周期,保证了软件项目的质量。需求分析作为软件工程方法中的一步是至关重要的。软件需求工程是一门分析并记录软件需求的学科。需求分析简单的来说就是用户需要什么,系统需要什么,对此进行问题的列举,等级的排列,需要缜密的思分析和大量的调研[10]

基于jwt安全认证的物流管理系统在国内有很多值得借鉴的例子,功能也都趋于完善,因此此次基于jwt安全认证的物流管理系统将轻量化开发,要完成以下功能:

1)要支持完整的员工用户注册,登录功能,账号的管理通过管理员来实现。

2)为了员工用户能够方便修改个人信息,查看物流订单、运输信息、配送信息、决策信息、客户信息、客户服务、仓库信息、出库信息、入库信息等功能。

3)管理员通过后台系统来完成对所有信息的编辑,包括添加、删除等操作。

本课题要求实现一套基于jwt安全认证的物流管理系统,系统主要包括管理员模块和员工用户功能模块。

1)管理员用例图如下所示:

       

3-1管理员用例图

2)员工用户用例图如下所示:

             

 

3-2员工用户用例图

3.3系统流程设计

3.3.1 系统开发流程  

基于jwt安全认证的物流管理系统的设计和开发,首先要对用户的实际使用需求和具体情况进行细致的分析,分析出系统要完成的全部功能,然后再针对整个系统的工作流程和功能进行设计,力求每个模块都能够达到用户的要求,最后通过测试来解决问题,保证系统的稳定和正常的运转,本系统的开发流程如图3-3所示。

3-3系统开发流程图

3.3.2 用户登录流程

登录流程实现了管理员和其他用户的登录,在登录页面需要用户填写自己的信息,前端页面会将信息传递给后端接口,然后查询数据库确定该身份有效后登录成功,否则此用户登录失败,需要重新填写信息,进行再次验证,如图3-4所示。

3-4登录流程图

3.3.3 系统操作流程

系统操作流程分析是软件开发过程中的一个关键环节,它是整个系统整体的运行过程,必须保证其中的每一个步骤都是确定的,这样一个规范的流程图可以使开发者易于理解,快速的投入到接口开发中,从而提升系统开发效率。

同时,流程图还能减少开发者对系统操作流程产生歧义和降低沟通的成本,系统操作流程如图3-5所示。

3-5系统操作流程图

3.3.4 添加信息流程

系统的正常运行离不开数据的支撑,因此,在本系统中添加了数据插入功能,数据库中数据的缺失,会直接影响到数据的查询结果,查询结果错误又会导致逻辑处理出现偏差,最终导致系统性错误或故障,所以在对系统进行数据添加操作时,必须要对数据进行合法性校验,确定此条数据是否有惟一的主关键字和字段是否允许为空等等,若数据库表中不允许某字段为空,而程序没有进行该字段非空逻辑校验,那么就会出现数据存储失败,可能因此造成严重系统后果。添加信息流程如图3-6所示。

3-6添加信息流程图

3.3.5 修改信息流程

因为使系统的使用者是人,所以难免会有疏忽,从而造成系统输入的信息有误。或者由于其他原因导致数据发生改变,使得必须对系统内的数据进行相应的调整,所以在程序运行中,数据的修改操作是不可缺少的重要环节。

在进行数据更新时,必须要有一个惟一的主关键字,以便数据库能够查询到相应的数据;另外,还必须遵守数据插入过程的操作规范,以确保数据的正确性。修改信息流程图如图3-7所示。

3-7修改信息流程图

3.3.6 删除信息流程

删除操作在系统中并非是必须的,可根据用户及系统的需要来决定是否添加删除功能,删除操作就是使用delete语句将数据库中的某一匹配数据删除,因为此操作会导致用户数据丢失,所以为了避免使用者误按删除键,应在用户点击删除按钮时添加一个提示确认弹窗,当用户确定要删除时,再进行数据库的操作,并且在删除操作完成后要对用户进行反馈。删除信息流程图如图3-8所示。

3-8 删除信息流程图

3.4小结

基于jwt安全认证的物流管理系统旨在让用户能够轻松便捷的查询信息,让管理员的工作负担减轻。本章主要对基于jwt安全认证的物流管理系统的经济、技术、用户使用、法律、市场可行性进行分析。确认可行后,对基于jwt安全认证的物流管理系统进行了需求分析,从员工用户和管理员角度思考了可能会有的需求,是后续论文和应用开发的基础指导[11]

 

4 系统总体设计

此次基于jwt安全认证的物流管理系统通过springboot框架。springboot适合快速构建Web应用。springbootB/S设计模式中的视图分成了View模块和Template模块两部分,将动态的逻辑处理交给View处理,页面通过Template来实现。ModelTemplateView连在一起,如此划分后,程序中的每一部分只做一件事情,耦合度大大降低,便于开发者管理。为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该基于jwt安全认证的物流管理系统的功能结构图如下所示:

图4-1 系统总体结构图

4.1  数据库设计原则

数据库设计之后,根据数据库关系,可以更加清晰地了解到数据库结构,每一个数据表之间的关系,再创建数据表。快速更改和查询对应的信息,有了数据库就不用在程序和代码中寻找。

员工用户信息E-R如图4-2所示。

图4-2 员工用户信息E-R

客户信息E-R图如图4-3所示。

图4-3客户信息E-R

物流订单E-R图如图4-4所示。

图4-4物流订单E-R

客户服务E-R图如图4-5所示。

 图4-5客户服务E-R

基于jwt安全认证的物流管理系统总体E-R图如图4-6所示。

 图4-6基于jwt安全认证的物流管理系统总体E-R

4.2模型的设计

在关系数据E-R图中,分析并创建数据表,数据表用来记录信息,数据表关系由多个数据表组成,该系统中存在多个自定义模型,下面依次进行介绍。

表4-1: (客户信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

customer_information_id

int

10

0

N

Y

客户信息ID

2

employee_users

int

10

0

Y

N

0

员工用户

3

customer_number

varchar

64

0

Y

N

客户编号

4

customer_name

varchar

64

0

Y

N

客户名称

5

customer_phone

varchar

64

0

Y

N

客户电话

6

customer_level

varchar

64

0

Y

N

客户级别

7

number_of_collaborations

varchar

64

0

Y

N

合作次数

8

customer_situation

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

更新时间

表4-2: (客户服务)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

customer_service_id

int

10

0

N

Y

客户服务ID

2

employee_users

int

10

0

Y

N

0

员工用户

3

customer_number

varchar

64

0

Y

N

客户编号

4

customer_name

varchar

64

0

Y

N

客户名称

5

customer_phone

varchar

64

0

Y

N

客户电话

6

customer_level

varchar

64

0

Y

N

客户级别

7

service_name

varchar

64

0

Y

N

服务名称

8

service_date

date

10

0

Y

N

服务日期

9

service_type

varchar

64

0

Y

N

服务类型

10

service_content

text

65535

0

Y

N

服务内容

11

handling_situation

text

65535

0

Y

N

处理情况

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4-3:(决策信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

decision_information_id

int

10

0

N

Y

决策信息ID

2

decision_name

varchar

64

0

Y

N

决策名称

3

decision_type

varchar

64

0

Y

N

决策类型

4

release_date

date

10

0

Y

N

发布日期

5

decision_content

text

65535

0

Y

N

决策内容

6

optimize_content

text

65535

0

Y

N

优化内容

7

evaluation_content

text

65535

0

Y

N

评估内容

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

 

表4-4: (配送信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

delivery_information_id

int

10

0

N

Y

配送信息ID

2

employee_users

int

10

0

Y

N

0

员工用户

3

order_number

varchar

64

0

Y

N

订单编号

4

name_of_goods

varchar

64

0

Y

N

货物名称

5

quantity_of_goods

varchar

64

0

Y

N

货物数量

6

volume_of_goods

varchar

64

0

Y

N

货物体积

7

consignee_name

varchar

64

0

Y

N

收货人姓名

8

delivery_phone_number

varchar

64

0

Y

N

收货电话

9

receiving_address

varchar

64

0

Y

N

收货地址

10

transport_tracking_number

varchar

64

0

Y

N

运输单号

11

transport_date

date

10

0

Y

N

运输日期

12

transportation_method

varchar

64

0

Y

N

运输方式

13

delivery_date

date

10

0

Y

N

配送日期

14

delivery_vehicles

varchar

64

0

Y

N

配送车辆

15

delivery_personnel

varchar

64

0

Y

N

配送人员

16

delivery_status

varchar

64

0

Y

N

配送状态

17

logistics_costs

varchar

64

0

Y

N

物流成本

18

delivery_route

text

65535

0

Y

N

配送路线

19

delivery_situation

text

65535

0

Y

N

配送情况

20

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

21

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4-5: (员工用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

employee_users_id

int

10

0

N

Y

员工用户ID

2

employee_no

varchar

64

0

N

N

员工工号

3

employee_name

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

更新时间

表4-6:(用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表4-7:(物流订单)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

logistics_orders_id

int

10

0

N

Y

物流订单ID

2

employee_users

int

10

0

Y

N

0

员工用户

3

order_number

varchar

64

0

Y

N

订单编号

4

name_of_goods

varchar

64

0

Y

N

货物名称

5

quantity_of_goods

varchar

64

0

Y

N

货物数量

6

volume_of_goods

varchar

64

0

Y

N

货物体积

7

consignee_name

varchar

64

0

Y

N

收货人姓名

8

delivery_phone_number

varchar

64

0

Y

N

收货电话

9

receiving_address

varchar

64

0

Y

N

收货地址

10

current_address

varchar

64

0

Y

N

当前地址

11

order_date

date

10

0

Y

N

下单日期

12

order_status

varchar

64

0

Y

N

订单状态

13

examine_state

varchar

16

0

N

N

未审核

审核状态

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4-8:(出库信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

outbound_information_id

int

10

0

N

Y

出库信息ID

2

warehouse_name

varchar

64

0

Y

N

仓库名称

3

warehouse_address

varchar

64

0

Y

N

仓库地址

4

warehouse_area

varchar

64

0

Y

N

仓库面积

5

product_number

varchar

64

0

Y

N

产品编号

6

product_name

varchar

64

0

Y

N

产品名称

7

employee_users

int

10

0

Y

N

0

员工用户

8

employee_name

varchar

64

0

Y

N

员工姓名

9

outbound_date

date

10

0

Y

N

出库日期

10

outbound_quantity

varchar

64

0

Y

N

出库数量

11

outbound_instructions

text

65535

0

Y

N

出库说明

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4-9: (入库信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

storage_information_id

int

10

0

N

Y

入库信息ID

2

warehouse_name

varchar

64

0

Y

N

仓库名称

3

warehouse_address

varchar

64

0

Y

N

仓库地址

4

warehouse_area

varchar

64

0

Y

N

仓库面积

5

product_number

varchar

64

0

Y

N

产品编号

6

product_name

varchar

64

0

Y

N

产品名称

7

employee_users

int

10

0

Y

N

0

员工用户

8

employee_name

varchar

64

0

Y

N

员工姓名

9

storage_date

date

10

0

Y

N

入库日期

10

inventory_quantity

varchar

64

0

Y

N

入库数量

11

storage_instructions

text

65535

0

Y

N

入库说明

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4-10:(运输信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

transportation_information_id

int

10

0

N

Y

运输信息ID

2

employee_users

int

10

0

Y

N

0

员工用户

3

order_number

varchar

64

0

Y

N

订单编号

4

name_of_goods

varchar

64

0

Y

N

货物名称

5

quantity_of_goods

varchar

64

0

Y

N

货物数量

6

volume_of_goods

varchar

64

0

Y

N

货物体积

7

consignee_name

varchar

64

0

Y

N

收货人姓名

8

delivery_phone_number

varchar

64

0

Y

N

收货电话

9

receiving_address

varchar

64

0

Y

N

收货地址

10

transport_tracking_number

varchar

64

0

Y

N

运输单号

11

transport_date

date

10

0

Y

N

运输日期

12

transportation_method

varchar

64

0

Y

N

运输方式

13

transport_vehicles

varchar

64

0

Y

N

运输车辆

14

transportation_days

int

10

0

Y

N

0

运输天数

15

transportation_route

text

65535

0

Y

N

运输路线

16

transportation_situation

text

65535

0

Y

N

运输情况

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表4-11: (仓库信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

warehouse_information_id

int

10

0

N

Y

仓库信息ID

2

warehouse_name

varchar

64

0

Y

N

仓库名称

3

warehouse_address

varchar

64

0

Y

N

仓库地址

4

warehouse_area

varchar

64

0

Y

N

仓库面积

5

product_number

varchar

64

0

Y

N

产品编号

6

product_name

varchar

64

0

Y

N

产品名称

7

product_inventory

int

10

0

Y

N

0

产品库存

8

sorting_situation

text

65535

0

Y

N

分拣情况

9

storage_situation

text

65535

0

Y

N

仓储情况

10

outbound_situation

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

更新时间

4.3

本章介绍了基于jwt安全认证的物流管理系统各个模块以及之间的相互联系,从宏观角度上介绍了每一个模块的作用,而后通过表格的方式介绍了每一个模型的属性,最后通过多张ER图,说明了实体间的联系。

5 系统详细设计与实现

按照软件工程的流程来说,在系统的详细设计与实现阶段,要把模块、视图、模板进行相应的组合完成一个个所需的功能,此章将会把设计中模块进行说明如何设计和实现的。

5.1 后台管理员功能模块

管理员登录,通过登录页面输入用户名、密码信息,进行登录操作,如图5-1所示。

5-1管理员登录界面图

 

  管理员点击登录摁钮页面跳转到基于jwt安全认证的物流管理系统对后台首页、系统用户、物流订单管理、运输信息管理、配送信息管理、决策信息管理、客户信息管理、客户服务管理、仓库信息管理、出库信息管理、入库信息管理等功能,进行相应操作,如图5-2所示。

5-2管理员功能界面图

员工用户信息功能在视图层(view层)进行交互,比如点击“添加”按钮或填写员工用户信息信息表单。这些员工用户信息动作被视图层捕获并作为请求发送给相应的控制器层(control1er层)。控制器接收到这些请求后,调用服务层(service层)以执行相关的业务逻辑,例如验证输入数据的有效性和与数据库的交互。服务层处理完这些逻辑后,进一步与数据访问对象层(DAO层)交互,后者负责具体的数据操作如查询、添加、更新或删除员工用户信息,并将操作结果返回给控制器。最终,控制器根据这些结果更新视图层,以便员工用户信息功能可以看到最新的信息或相应的操作反馈。在员工用户信息页面的输入栏中输入员工工号、员工姓名进行查询,可以查看到员工用户详细信息,并根据需要进行修改或者删除等操作;如图5-3所示:

5-3员工用户界面

管理员点击物流订单管理,在物流订单页面对员工用户、订单编号、货物名称、货物数量、货物体积、收货人姓名、收货电话、收货地址等信息,进行查询,修改详情、运输或删除物流订单等操作。如图5-4所示:

5-4物流订单管理界面

 

管理员点击运输信息管理,在运输信息页面对员工用户、订单编号、货物名称、货物数量、货物体积、收货人姓名、收货电话、收货地址等信息,进行查询、修改详情、配送或删除运输信息等操作。如图5-5所示:

5-5运输信息管理界面

管理员点击决策信息管理,在决策信息页面对决策名称。决策类型、发布日期、决策内容、优化内容、评估内容、创建时间、更新时间等信息,进行查询、添加、修改详情或删除决策信息等操作。如图5-6所示:

5-6决策信息管理界面

 

管理员点击客户信息管理,在客户信息页面对员工用户、客户编号、客户名称、客户电话、客户级别、合作资料、客户情况、创建时间等信息,进行查询、添加、服务或删除客户信息等操作。如图5-7所示:

5-7客户信息管理界面

管理员点击客户服务管理,在客户服务页面对客户信息页面对员工用户、客户编号、客户名称、客户电话、客户级别、服务名称、服务日期、服务类型、服务内容、处理情况等信息,进行查询、修改详情或删除客户服务等操作。如图5-8所示:

5-8客户服务管理界面

 

管理员点击仓库信息管理,在仓库信息页面对仓库名称、仓库地址、仓库面积、产品编号、产品名称、产品库存、分拣情况、仓储情况等信息,进行查询、出库、入库、修改详情、添加或删除仓库信息等操作。如图5-9所示:

5-9仓库信息管理界面

管理员点击出库信息管理,在出库信息页面对仓库名称、仓库地址、仓库面积、产品编号、产品名称、员工用户、员工姓名、出库日期等信息,进行查询、修改详情或删除出库信息等操作。如图5-10所示:

5-10出库信息管理界面

 

管理员点击入库信息管理,在入库信息管理页面对仓库名称、仓库地址、仓库面积、产品编号、产品名称、员工用户、员工姓名、入库日期等信息,进行查询、修改详情或删除入库信息等操作。如图5-11所示:

5-11入库信息管理界面

5.2 后台员工用户功能模块

在注册流程中,员工用户在Vue前端填写必要信息(如帐号、密码等)并提交。前端将这些信息通过HTTP请求发送到Java后端。后端处理这些信息,检查用户名是否唯一,并将新用户数据存入MySQL数据库。完成后,后端向前端发送注册成功的确认,前端随后通知员工用户完成注册。这个过程实现了新用户的数据收集、验证和存储。员工用户注册,通过注册页面输入详细信息信息,进行注册操作,如图5-12所示。

5-12员工用户注册界面图

在登录流程中,员工用户首先在Vue前端界面输入用户名和密码。这些信息通过HTTP请求发送到Java后端。后端接收请求,通过与MySQL数据库交互验证用户凭证。如果认证成功,后端会返回给前端,允许员工用户访问系统。这个过程涵盖了从员工用户输入到系统验证和响应的全过程。员工用户登录,通过登录页面输入详细信息信息,进行登录操作,如图5-13所示。

5-13员工用户登录界面图

员工用户点击后台管理,然后页面跳转到系统后台,在员工用户主页面,主要包括对后台首页、物流订单管理、运输信息管理、配送信息管理、决策信息管理、客户信息管理、客户服务管理、仓库信息管理、出库信息管理、入库信息管理等功能进行操作。员工用户主页面如图5-14所示:

5-14员工用户主界面图

5.4 小结

      本章介绍了基于jwt安全认证的物流管理系统的各个模块和实现功能,注册和功能展示,对模块下的关键功能进行了介绍,并通过截图展示了实现效果,每个模块的编写都以用户为中心,方便用户为原则设计的。

 

6 系统测试

系统测试(Software Testing)是指在设计基本完成后对软件的各项功能进行测试,检测其能否达到在系统设计之初对其的预期情况[13]。预估系统上线后的情况,对出现问题的地方进行及时修改。软件测试作为系统设计的最终阶段,它的准确性往往影响了系统的最终使用感。因为软件是由数据、文档以及程序代码组成的,所以软件测试的对象就不仅仅是程序的本身,还有包括软件设计过程中形成的数据、文档等。但软件测试也存在着问题,软件测试注重的是软件设计的最终结果,其并没有关心整个系统在开发过程中发生的问题。软件测试必须假设和考虑在设计过程中发生的问题。并对软件测试中发现的问题进行回归测试。要更好的通过软件测试检测系统以更好的找出问题来提高系统的质量。软件测试要以最少的人力和经济消耗来完成系统的设计结尾工作。而且所有的测试都要以人为本,任何的测试都要考虑到用户使用的实际体验感,要确保用户有一个好的使用体验。要确保整个软件测试过程都按照原定的规则进行,以确保最终设计的系统的完整性和实用性[14]

6.1软件测试原则

编筐编篓,重在收口。软件测试的完成效果直接影响到整个系统的使用效果。对于软件测试来说,如果能早点发现系统的漏洞,就能及时修改,可以让设计的成本减少。进行软件测试的时候,测试员们需要制定自己的测试脚本,让这个脚本尽可能多的覆盖系统需要测试的各个路径,避免系统疏漏。同时,在软件测试的过程中,要检测程序有没有进行与系统预期功能要求无关的代码运行。避免多余的程序运行对系统产生破坏,降低效率,增加成本。同时在测试后,还要尽量保留所有测试用例,这样可以帮助日后想要修改时可以及时找到原先的用例,可以再直接进行测试。以下是总结下来比较重要的一些软件测试原则:

1)要尽可能早的进行软件测试。

随着系统的设计进行,设计过程中每一个阶段发生的错误都有可能导致在后续的开发设计的时候连续出错,如果等到软件设计工作基本全都完成再进行测试,可能会导致大量的错误同时出现,而且很难找到它们出错的源头。因为开发设计的每一步都与后续程序紧密相连,如果不及时找出错误,可能会因一处错误导致后续整个程序瘫痪。所以要坚持尽早进行软件测试的原则,一来可以减少牵一发而动全身的错误,二来可以降低成本。

2)软件测试证明软件存在缺陷。

通过软件测试可以检测系统设计时是否存在错误和缺陷,但并不能说明系统是不存在任何缺陷的。软件测试的目的是辅助软件开发,让程序员可以尽可能早的发现错误,提高质量。软件开发的过程或多或少都会产生一些错误,软件测试就是尽可能地发现错误和缺陷,尽可能优化程序。

3)缺陷集群效应原则。

一个软件核心的地方可能就只有那么小的一部分,但就是那一小部分,却能引发软件大规模的损坏。当我们进行软件测试的时候要特别注意那一小部分,也就是核心的部分,因为它们几乎控制了整个软件的稳定性,它们是最容易出现错误的,控制好它们几乎就控制了软件的八成稳定性。但我们也不能只仅限于这小部分模块的检查,也要对剩余的地方进行适当的测试。

4)以人为本原则。

基于jwt安全认证的物流管理系统设计的目的就是为人服务,任何的缺陷和错误的修改方向都要在使用者的角度去进行。要做到尽可能贴近使用者的日常模式,从使用者的角度去出发,去修改。

5)经常更新测试方式

测试人员应该尽量避免对系统所有的部分都使用同一种测试方式。一些测试方式只能检测特定的模块,并不能对整个系统都进行有效的测试,甚至无法发现一处错误。所以,为了能更好的发挥软件测试的作用,软件测试的时候应该经常更新测试方法,让测试的质量最大化。

6.2测试用例                       

部分系统测试用例如表6-1所示。

6-1 测试用例表

测试功能、流程

预期结果

实际结果

结论

进行登录实验。需要管理员输入相应的信息验证,看能否进入

录入信息验证通过,

转入管理员界面

登陆成功,

成功跳转页面

测试成功

对用户的登录进行测试。管理员就录入特定的信息,看能否成功登录

录入特定信息,

可以登录,可以在数据后台找到信息

可以登录,在后台找到了对应信息

测试成功

测试登录功能是否符合规定。测试员要输入错误的登录信息,检查能否登录

在输入错误的信息后,系统会发现错误,禁止测试人员登录

输入错误信息后,系统禁止登录

测试成功

对兼容性进行测试,让软件在不同的电子类产品上进行登录测试

都可以成功打开软件,正常运行

可以在不同的设备上和其他软件共存

测试成功

                                                                         续表6-1

测试功能、流程

预期结果

实际结果

结论

安装测试,在试验机上登录软件,检测能否按预期正常运行

登录后可以进行正常操作,可以发行

在试验机上可以正常运行,没有卡顿

测试成功

                                    

 

结 论

本次论文介绍了开发一款基于springboot的基于jwt安全认证的物流管理系统的全部过程,该系统运用了java语言进行编写、MySQL数据库存储数据、B/S设计模式、搭建出了一款简洁方便的基于jwt安全认证的物流管理系统,于是看来我对整个软件的开发过程有了更全面的理解,其中也包括了整个操作过程。我对于系统的后台如何协调进行了深层次的了解。同时,通过使用不同的编程语言,也加深了我对不同的知识和学习方法的了解。

从论文选题到具体每一步功能的实施,我都遇到了一个又一个的难点问题。因为我只是接触到编程的一点点皮毛知识,没有深入了解过,更没有能力去发展一个大型的系统。刚开始的时候,我对此一无所知。我在意识到自己现有的能力和基础之后,我通过书籍和网络查找相关的信息来补充自己的不足,去学习更多的知识。在有了一个比较完善的理论架构后,我就有了一个比较明确的目标,然后我开始寻找和基于jwt安全认证的物流管理系统相关的话题,找出一些基础的架构,并着手进行编写代码。在实际的编程过程中,我花了大量的时间来处理各种不同的逻辑问题。在编写该程序的过程中,我也遇到了很多以前从未遇到的BUG。我用了百度,请教老师,和同学商量等方法,也在网上请教了专业人士,让自己可以更好的明白自身问题并解决问题。

参考文献

  1.  王兆媛. 基于springboot框架的决策信息管理系统的设计与实现[D]. 吉林大学2019.

[2] 刘红梅. 基于 UML 的宿舍管理建模[J]. 计算机与现代化,2019.

[3] 肖旻, 陈行. 基于java技术编程特点及应用之探讨[J]. 电脑知识与技术, 2019(34):8177-8178.

[4] 郑岚. java访问MySQL数据库[J]. 电脑编程技巧与维护, 2020(6):59-61.

[5] 刘班.基于springboot快速开发Web应用[J].电脑知识与技术,2020,5(07):1616-1618.

[6] 周文豪.数字教学以及RFID在世界企业中的应用状况[J].中国电子商情(RFID技术与应用),2019(03):65-70.

[7] MARTELLI A, RAVENSCROFT A, ASCHER D. java cookbook[M]. CA:O’Reilly Media. Inc, 2019.

[8] 徐鑫. 中小型图书馆网站设计与实现[D].郑州大学,2021.

[9] 马卫.springboot的基于jwt安全认证的物流管理系统的设计与实现[J].电脑知识与技术,2020, 08(18):4310-4311.

[10] 曹玉良. 软件开发项目中的需求分析探讨[J]. 科技展望, 2019, 27(3).

[11] 周仁平. 教育技术学术博客研究[J]. 软件导刊(教育技术), 2019(6):88-90.

[12] Li Z. Design and Implementation of the Software Testing Management System Based on springboot[J]. Applied Mechanics & Materials, 2020, 525:707-710.

[13] MOORE D, WILLIAM B R. Professional java frameworks:Web 2.0 programming with springboot and Turbogears[M].USA:Wiley Publishing, Inc. 2019

[14] 于园园. 软件测试技术与测试管理研究[J]. 江苏科技信息, 2020(7):66-68.

[15] 朱晓敏. 软件测试的相关技术应用研究[J].电子测试,2019(1):122-123.

 

时光飞逝,转眼间四年的大学就要过去了。当我做到了大学里最后任务的最后一个模块时,我意识到自己将要毕业了,将离开陪伴了自己四年快乐时光的校园。回想起在学校的四年,让我有很深的感触。回想起在学校的点点滴滴,让我有太多无法忘记的人和事。学校的室友,同学,朋友,老师,图书馆,教学楼等,当这些东西在我脑里闪过的时候,我的心里很不是滋味。

首先,我要感谢我的亲人。他们无论何时都是我最亲近的人,无论我对他们怎么发脾气,他们都不会生我的气。每次当我因为某些事而无法承受的时候,他们总是会第一时间来关心我,来给我出主意,帮我度过难关。今后,我也会努力前进,回报我的亲人们对我的支持。

当然,还要感谢我的毕设指导老师。他是一位发自内心希望我们以后能功成名的老师。他陪伴了我几乎整个大学时光,他每次上课的时候都会向我们分享他所做过的程序。将他自己的实战经验授予我们。他会将自己觉的最有用的东西交给我们,还会向我们分享他觉得非常实用的软件,如果我们无法下载,他也会帮我们下载软件。记得在大四上学期的时候,他还帮助我们重装系统,给我们安装最实用的软件。他也是一个非常有责任感的老师,他会经常询问我们的论文情况,如果我们有问题,他都会在第一时间给我们解答。或许对于一位老师来讲,学生学有所成是他的期望。

还要感谢我的室友们。虽然这几年的生活会有磕磕绊绊,但是每次我有困难或者不开心的时候,他们都会给我建议,让我不在难过。每当我过生日的时候,他们都会不约而同的为我庆祝。每当我有困难的时候,他们总是站在我这一边,为我考虑。而在和他们沟通后,我都会从坏心情里走出来,变的愉悦。所以,我也很感谢他们这四年的陪伴。

  • 29
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值