目  录

摘要

1 绪论

1.1 研究背景

1.2 研究意义

1.3开发现状

1.4论文结构与章节安排

2系统分析

2.1 可行性分析

2.2 系统流程分析

2.2.1 用户登录流程

2.2.2 数据删除流程

2.3 系统功能分析

2.3.1 功能性分析

2.3.2 非功能性分析

2.4 系统用例分析

2.5本章小结

3 系统总体设计

3.1 系统架构设计

3.2 系统功能模块设计

3.3 数据库设计

3.3.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

表access_token (登陆访问时长)

表auth (用户权限管理)

表data_classification (数据分类)

表data_information (数据信息)

表employee_users (员工用户)

表hits (用户点击)

表notification_announcement (通知公告)

表upload (文件上传)

表user (用户账户:用于保存用户登录信息)

表user_group (用户组:用于用户前端身份和鉴权)

3.4本章小结

4 系统详细设计与实现

4.1管理员功能模块

4.1.1后台首页界面

4.1.2系统用户界面

4.1.3 通知公告管理界面

4.1.4数据信息管理界面

4.1.5数据分类管理界面

4.1.6权限管理界面

4.1.7修改密码界面

4.2员工用户功能模块

4.2.1用户登录界面

4.2.2通知公告管理界面

4.2.3数据信息管理界面

5系统测试

5.1  测试目的

5.2  测试方法

5.3  功能测试

5.4  测试结论

6 结论

参考文献

致  谢

摘要

随着互联网技术的飞速发展,数据已经成为企业最宝贵的资源之一。在邮政行业,每天都有大量的文本数据需要处理,包括快递单据、邮件详情单等。这些数据对于提高邮政服务质量和效率具有重要意义。然而,传统的数据处理方式已经无法满足现代邮政业的需求。为此,本文提出了一种基于Spring Boot的邮政文本数据管理系统。

本系统采用Spring Boot+VUE的架构,分为前端和后端两部分。前端使用VUE框架,实现用户界面及交互;后端使用Spring Boot框架,处理业务逻辑、数据存储等。两者通过Restful API进行通信,实现前后端的分离。同时采用Hadoop技术进行数据采集和分析。Hadoop是一个开源的分布式计算系统,可以处理大规模数据集。它基于MapReduce计算模型,将数据分布式存储在多个服务器上,并通过并行计算提高数据处理速度。Hadoop的HDFS(Hadoop Distributed File System)分布式文件系统可以保证数据的高可用性和可靠性。

关键词:邮政行业;文本数据;Spring Boot+VUE;Hadoop

Abstract

With the rapid development of Internet technology, data has become one of the most valuable resources for enterprises. In the postal industry, there is a large amount of text data that needs to be processed every day, including express delivery documents, mail detail lists, etc. These data are of great significance for improving the quality and efficiency of postal services. However, traditional data processing methods are no longer able to meet the needs of modern postal industry. Therefore, this article proposes a postal text data management system based on Spring Boot.

This system adopts the architecture of Spring Boot+VUE and is divided into two parts: front-end and back-end. The front-end uses the VUE framework to achieve user interface and interaction; The backend uses the Spring Boot framework to handle business logic, data storage, and more. The two communicate through the Restful API to achieve front-end and back-end separation. Simultaneously using Hadoop technology for data collection and analysis. Hadoop is an open-source distributed computing system that can handle large-scale datasets. It is based on the MapReduce computing model, which stores data in a distributed manner on multiple servers and improves data processing speed through parallel computing. Hadoop's HDFS (Hadoop Distributed File System) distributed file system ensures high availability and reliability of data.

Keywords: Postal industry; Text data; Spring Boot+VUE; Hadoop

1 绪论

    1. 研究背景

在数字化时代,邮政系统面临着大量的文本数据处理和管理挑战。传统的邮政文本数据处理方式可能无法满足当前高效、准确、实时的数据处理需求。随着大数据技术的快速发展,Hadoop作为一种分布式存储和计算框架,能够处理海量的非结构化数据,为邮政文本数据管理提供了新的解决方案。此外,Spring Boot是一个轻量级的Java后端开发框架,具有快速开发、简化配置、内嵌服务器等特点,适合用于构建中小型的Web应用程序。而Vue.js则是一个优秀的前端框架,具有轻量级、组件化、响应式等特点,适合用于构建单页应用程序。将Spring Boot和Vue.js技术相结合,可以充分发挥两者的优势,实现邮政文本数据管理系统系统的快速开发、高效运行和良好用户体验。

该系统可以利用Hadoop的分布式处理能力,对邮政系统中的大量文本数据进行高效存储和计算,同时结合Spring Boot框架的易用性和灵活性,实现邮政文本数据的快速处理和精确管理。此外,该系统还可以利用大数据技术提供的统计统计分析功能,为邮政业务的决策和优化提供有力支持。

1.2 研究意义

随着信息技术的快速发展,邮政行业作为国家重要的通信与物流网络,其信息化建设的步伐也在不断加快。邮政文本数据管理系统作为邮政信息化建设的重要组成部分,对于提升邮政业务处理效率、优化客户服务体验以及实现邮政数据资源的高效管理和利用具有重要意义。

首先,可以提高处理效率:随着邮政业务量的不断增长,传统的文本数据处理方式已经无法满足日益增长的数据量和处理速度的要求。通过该系统可以利用Hadoop的分布式处理能力,实现海量数据的快速存储和计算,从而大大提高邮政文本数据的处理效率。

其次,可以降低运营成本。通过自动化管理和优化资源配置,该系统可以降低邮政文本数据管理的运营成本。此外,通过利用大数据技术的分析统计功能,该系统还可以帮助邮政企业更好地了解企业运行情况,优化业务流程,进一步提高运营效率。

再次,可以增强数据安全性。Hadoop提供了高度可扩展的分布式存储解决方案,可以有效地保护邮政文本数据的安全。结合Spring Boot框架的灵活性和易用性,该系统可以实现高效的数据访问控制和数据加密,保障邮政数据的机密性和完整性。

最后,有助于促进技术创新。该系统的研究和应用可以推动邮政行业的技术创新和升级。通过引入先进的大数据技术和快速开发框架,可以提升邮政企业的技术实力和市场竞争力,为未来的业务发展奠定坚实的基础。

1.3开发现状

邮政文本数据管理系统,作为邮政行业信息化建设的重要组成部分,近年来得到了快速发展。该系统旨在通过技术手段,实现对邮政业务文本数据的高效管理、分析和应用,以提升邮政服务的质量和效率。邮政文本数据管理系统主要涵盖数据采集、存储、处理、分析和可视化等多个环节。系统通过自动化工具收集邮政业务过程中产生的各类文本数据,包括邮件详情、客户反馈、内部通知等,然后进行结构化存储和高效处理。通过先进的数据分析技术,系统能够挖掘出数据中的潜在价值,为邮政业务决策提供有力支持。

目前,邮政文本数据管理系统的技术架构已经相对成熟。系统采用微服务架构,将不同功能模块拆分为独立的服务,提高了系统的可扩展性和可维护性。同时,系统集成了大数据处理框架,能够处理海量文本数据,并实时更新分析结果。

在数据采集方面,系统利用多种手段,包括API接口、数据抓取、文件导入等,实现了对邮政业务文本数据的全面覆盖。同时,系统还支持定制化数据采集方案,以适应不同业务场景的需求。

在数据存储方面,系统采用了分布式文件系统,实现了对海量文本数据的高效存储和快速访问。同时,系统还引入了数据库索引技术,提高了数据检索的速度和准确性。

数据处理与分析是邮政文本数据管理系统的核心功能之一。系统采用了自然语言处理(NLP)和机器学习等先进技术,对文本数据进行预处理、情感分析、关键词提取等操作,挖掘出数据中的潜在价值。此外,系统还支持可视化分析工具,帮助用户直观了解数据分析结果。

在系统运用方面,邮政文本数据管理系统的应用已经渗透到邮政业务的各个环节。在客户服务方面,系统通过对客户反馈的文本数据进行分析,帮助客服人员快速识别客户需求和问题,提高客户满意度。在业务优化方面,系统通过对邮件详情等文本数据进行分析,发现业务流程中的瓶颈和问题,为业务改进提供数据支持。

尽管邮政文本数据管理系统在开发方面取得了显著进展,但仍面临一些挑战。如何进一步提高数据处理的速度和准确性、加强数据安全保护、实现与其他系统的无缝集成等,都是未来系统开发中需要重点考虑的问题。展望未来,随着技术的不断进步和应用需求的日益增长,邮政文本数据管理系统将在提升邮政服务质量和效率方面发挥更加重要的作用。

1.4论文结构与章节安排

论文将分层次进行编排,除去论文摘要致谢文献参考部分,正文部分主要结构如下:

第一章:绪论,此章节对所设计和实现的系统的背景以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。

第二章:系统分析,此章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。

第三章:系统总体设计,主要是对系统的架构、功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。

第四章:系统详细设计与实现,根据系统功能的划分,分别的对系统所需要实现的顾客用户功能和后台管理员功能进行了分析和说明。

第五章:系统测试,主要介绍了系统测试目的和对系统的部分功能界面进行测试并对测试结果作出总结。

第六章:结论,主要对系统的开发设计工作进行总结。

2系统分析 

系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。

2.1 可行性分析

(1)技术可行性

Spring Boot作为一种成熟的Java框架,具有丰富的功能和广泛的社区支持,使得开发过程更为简便和高效。VUE用于前端框架,能实现双向数据绑定,可以让开发者更轻松地管理和更新页面上的数据,同时具有可扩展性和良好的兼容性。此外,Hadoop是一个开源的分布式计算平台,它能够存储和处理大规模数据。Hadoop非常适合处理邮政文本数据这类的大数据场景。Spring Boot和Hadoop可以整合在一起,通过Spring Boot提供Web服务接口,后台利用Hadoop进行数据处理。这种整合方式已经在很多项目中得到了验证。因此,从技术层面分析是可行的。

(2)经济可行性

Spring Boot和Hadoop是开源技术,不需要购买昂贵的商业软件或硬件,可以大大降低项目成本。此外,这些开源技术都有庞大的社区支持,这意味着在维护和技术支持方面相对容易和经济,可以降低维护成本。因此,从经济层面分析是可行。

(3)操作可行性

Spring Boot框架具有良好的可维护性和可扩展性,便于后期的维护和升级。此外,采用Web方式进行管理,用户界面友好,操作简便,可以满足不同用户的需求。因此,从操作角度来看是可行的。

(4)社会可行性

该系统可以提高邮政业务的处理效率和服务质量,进一步提升邮政行业的整体竞争力。同时,系统还可以为政府、企业和个人提供更加精准的数据服务,助力社会各领域的数字化转型。因此,从社会角度分析是可行的。

2.2 系统流程分析

系统流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。

2.2.1 用户登录流程

用户通过登录才能访问系统及权限以内的功能,对此将实现各种应用及管理等功能,用户登录流程图如下图2-1所示。

图2-1  用户登录流程图

2.2.2 数据删除流程

如果系统里面存在一些没有用的数据,相关的管理人员还可以对这些数据进行删除,数据删除时流程图如下图2-2所示

图2-2  数据删除流程图

2.3 系统功能分析

2.3.1 功能性分析

按照基于Spring Boot的邮政文本数据管理系统的角色,主要包括管理员和员工用户这两大功能模块。

  1. 管理员功能
  1. 登录:管理员的账号和密码是事先在数据库中设定好的,管理员可以通过在后台输入正确的账号和密码进行登录。
  2. 后台首页:管理员可以查看后台首页展示的员工用户统计、通知公告统计、数据信息统计图信息。
  3. 系统用户:管理员负责员工用户账号信息的添加。管理员可以查看系统用户(管理员、员工用户)列表中某个用户的详情,可以对用户信息进行增删改查操作。
  4. 通知公告管理:管理员可以通过该界面进行通知公告进行增删改查操作,以便向用户传达各种重要信息、公告、更新或事件等内容。
  5. 数据信息管理:管理员可以查看数据信息列表中某个数据的详情,可以对数据信息进行增删改查操作。
  6. 数据分类管理:管理员可以查看数据分类列表中某个分类的详情,可以对数据分类信息进行增删改查操作。
  7. 权限管理:管理员可以查看权限列表中某个用户的权限详情,可以对用户权限进行增删改查操作。
  8. 更多信息:管理员点击“更多信息”的下拉菜单“个人信息”可以修改个人头像和昵称等信息;点击“修改密码”可以修改登录密码,修改后可以用新密码登录系统;点击“退出”即可退出系统登录。
  1. 员工用户功能
  1. 登录:员工用户账号由管理员进行添加,用户可以通过管理员提供的账号密码登录系统。
  2. 后台首页:后台可以查看后台首页展示的相关信息。
  3. 通知公告管理:用户可以查看系统发布的通知公告信息列表中某个通知公告的详情,可以查询和重置通知公告信息。
  4. 数据信息管理:用户可以添加数据信息;可以查看数据信息列表中某个数据的详情和下载附件,可以对列表信息进行查询和重置操作。
  5. 更多信息:用户点击“更多信息”的下拉菜单“个人信息”可以修改个人头像和昵称等信息;点击“修改密码”可以修改登录密码,修改后可以用新密码登录系统;点击“退出”即可退出系统登录。

2.3.2 非功能性分析

基于Spring Boot的邮政文本数据管理系统 的非功能性需求比如基于Spring Boot的邮政文本数据管理系统 的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:

2-1基于Spring Boot的邮政文本数据管理系统非功能需求表

安全性

主要指系统数据库的安装,数据库的使用和密码的设定必须合乎规范。

可靠性

可靠性是指系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。

性能

性能是影响系统占据市场的必要条件,所以性能最好要佳才好。

可扩展性

比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。

易用性

用户只要跟着系统的页面展示内容进行操作,就可以了。

可维护性

系统开发的可维护性是非常重要的,经过测试,可维护性没有问题

2.4 系统用例分析

通过2.3功能的分析,得出了本系统的用例图:

管理员用例图如下图2-3所示。

图2-3管理员用例图

员工用户用例图如下图2-4所示。

图2-4 员工用户用例图

2.5本章小结

本章主要通过对基于Spring Boot的邮政文本数据管理系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个基于Spring Boot的邮政文本数据管理系统要实现的功能。同时也为基于Spring Boot的邮政文本数据管理系统的代码实现和测试提供了标准。

3 系统总体设计

本章主要讨论的内容包括基于Spring Boot的邮政文本数据管理系统的架构设计、功能模块设计、数据库系统设计。

3.1 系统架构设计

本系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。

图3-1系统架构设计图

表现层(UI):又称UI层,主要完成本系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本系统时的舒适度。UI的界面设计也要适应不同版本的系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。

业务逻辑层(BLL):主要完成本系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。

数据层(DL):由于本系统的数据是放在服务端的MySQL数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本系统的数据存储和管理功能。

3.2 系统功能模块设计

在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本系统中的用例。那么接下来就要开始对本系统的主要功能和数据库开始进行设计。 根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。

图3-2 系统功能模块图

3.3 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

3.3.1 数据库概念结构设计

在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称,基于Spring Boot的邮政文本数据管理系统中的主要的数据库E-R模型图如下图3-3、3-4、3-5所示。

图3-3 员工用户信息E-R图

图3-4 通知公告信息E-R图

图3-5数据信息E-R图

3.3.2 数据库逻辑结构设计

通过上一小节中基于Spring Boot的邮政文本数据管理系统 中总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

用户编号:

表auth (用户权限管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

表data_classification (数据分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

data_classification_id

int

10

0

N

Y

数据分类ID

2

data_classification

varchar

64

0

Y

N

数据分类

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表data_information (数据信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

data_information_id

int

10

0

N

Y

数据信息ID

2

data_number

varchar

64

0

Y

N

数据编号

3

employee_users

int

10

0

Y

N

0

员工用户

4

data_name

varchar

64

0

Y

N

数据名称

5

data_classification

varchar

64

0

Y

N

数据分类

6

data_date

date

10

0

Y

N

数据日期

7

data_quantity

varchar

64

0

Y

N

数据数量

8

data_attachments

varchar

255

0

Y

N

数据附件

9

zip_code

varchar

64

0

Y

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

更新时间

表employee_users (员工用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

employee_phone_number

varchar

16

0

Y

N

员工电话

5

employee_id

varchar

64

0

N

N

员工工号

6

examine_state

varchar

16

0

N

N

已通过

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表hits (用户点击)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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:

表notification_announcement (通知公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notification_announcement_id

int

10

0

N

Y

通知公告ID

2

announcement_number

varchar

64

0

Y

N

公告编号

3

announcement_title

varchar

64

0

Y

N

公告标题

4

announcement_date

date

10

0

Y

N

公告日期

5

number_of_announcements

varchar

64

0

Y

N

公告数量

6

announcement_image

varchar

255

0

Y

N

公告图片

7

announcement_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

更新时间

表upload (文件上传)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

文件类型

表user (用户账户:用于保存用户登录信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

email

varchar

64

0

Y

N

邮箱:[0,64]用户的邮箱,用于找回密码时或登录时

11

email_state

smallint

5

0

N

N

0

邮箱认证:[0,1](0未认证|1审核中|2已认证)

12

avatar

varchar

255

0

Y

N

头像地址:[0,255]

13

open_id

varchar

255

0

Y

N

针对获取用户信息字段

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

vip_level

varchar

255

0

Y

N

会员等级

16

vip_discount

double

11

2

Y

N

0.00

会员折扣

表user_group (用户组:用于用户前端身份和鉴权)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

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

更新时间:

3.4本章小结

整个基于Spring Boot的邮政文本数据管理系统 的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

4 系统详细设计与实现

基于Spring Boot的邮政文本数据管理系统的详细设计与实现主要是根据前面的的需求分析和总体设计来设计页面并实现业务逻辑。主要从界面实现、业务逻辑实现这两部分进行介绍。

4.1管理员功能模块

4.1.1后台首页界面

后台首页界面为管理员提供了方便快捷地查看员工用户统计、通知公告统计、数据信息统计等重要信息的功能,帮助管理者更好地了解和分析当前企业的运行情况,以便制定相应的管理策略。其界面如下图4-1所示。

图4-1后台首页界面图

4.1.2系统用户界面

管理员负责员工用户账号信息的添加。管理员可以查看系统用户(管理员、员工用户)列表中某个用户的详情,可以对用户信息进行增删改查操作。其界面如下图4-2所示。

图4-2系统用户界面图

添加的代码如下:

  @PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

4.1.3 通知公告管理界面

通知公告管理界面是管理员用来管理系统中的通知公告的界面。管理员可以通过该界面进行通知公告进行增删改查操作,以便向用户传达各种重要信息、公告、更新或事件等内容。其界面如下图4-3所示。

图4-3通知公告管理界面图

删除的代码如下:

   @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());

    }

4.1.4数据信息管理界面

管理员可以添加数据信息;可以查看数据信息列表中某个数据详情和下载数据附件,可以数据信息列表信息进行查询、重置和删除操作。其界面如下图4-4所示。

图4-4数据信息管理界面图

4.1.5数据分类管理界面

管理员可以查看数据分类列表中某个分类的详情,可以对数据分类列表信息进行查询、重置和删除操作,点击“数据分类添加”进入页面填写数据分类名称后点击“提交”即可完成数据分类信息的添加。其界面如下图4-5所示。

图4-5数据分类管理界面图

4.1.6权限管理界面

管理员负责对不同的用户角色在访问系统时设置不同的访问权限,避免用户使用超出自己权限的功能,管理员可以查看权限列表中某个用户的权限详情,可以对用户权限进行增删改查操作。其界面如下图4-6所示。

图4-6权限管理界面图

4.1.7修改密码界面

管理员点击“更多信息”的下拉菜单“修改密码”进入页面填写原密码、新密码、请确认新密码信息后点击“提交”,系统验证输入的信息无误后即可完成密码的修改,修改后可以用新密码登录系统。其界面如下图4-7所示。

图4-7修改密码界面图

修改密码的代码如下:

 /**

     * 修改密码

     * @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.2员工用户功能模块

4.2.1用户登录界面

用户登录界面用于已注册用户进行账号登录,用户需要输入正确的用户名和密码才能成功登录系统。登录界面应对用户的输入进行验证,并提供密码找回选项。其界面如下图4-8所示。

图4-8用户登录界面图

登录代码如下:

/**

     * 登录

     * @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.2通知公告管理界面

用户可以查看系统发布的通知公告信息;点击列表中某个公告后面的“详情”进入页面可以查看该公告的详情,用户可以查询和重置通知公告信息。其界面如下图4-9所示。

图4-9 通知公告管理界面图

4.2.3数据信息管理界面

用户可以查看数据信息列表中某个数据的详情和下载附件,可以查询和重置数据列表信息;点击“数据信息添加”进入页面填写数据编号、员工用户、数据名称等信息和上传数据附件后点击“提交”即可完成数据信息的添加。其界面展示如下图4-10所示。

图4-10数据信息管理界面图

文件上传的代码如下:

 @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, "上传失败");

    }

5系统测试

5.1  测试目的

无论什么样的系统,测试都至关重要,通过测试可以检查出潜藏的缺陷,从而确保系统的性能和稳定性,避免Bug的出现,并确保系统的功能和性价比达到预期的要求。

5.2  测试方法

在对系统进行测试的时候我们主要应用到两种测试的方法,通过测试我们就能找出可能存在的问题保证系统成功运行。

从软件的内部构造和具体实施是否有关系的观点来看:黑盒测试和白盒测试。

1)黑盒测试:测试系统功能,当用户进行相应的操作时,系统是否能够及时且准确的反馈数据,并执行相应功能。需要对功能以及使用方法进行详细的测试,保证所有的操作信息都能够完整的输出输入。

2)白盒测试:主要是对系统的结构进行测试,了解系统在运行过程中是否可以正常的工作。

基于Spring Boot的邮政文本数据管理系统的测试主要从下面几方面进行:

(1)窗体测试:例如用户登录界面,在用户名和密码输入时,需要界面窗口弹出,给予用户反馈,我对窗口的设计进行了测试,确保每一个窗口在用户进行相应操作后,能够及时的弹出。

(2)数据跟踪:进行数据跟踪,我们就能知道系统功能是否在顺利的执行当中。将数据库中的相关的信息进行调动,弹出我们需要的相对应的数据信息。同时,在追踪过程中,我们也更容易的发现系统的问题所在,便于解决问题和维护系统。

(3)综合测试:完成上述测试后,需要对系统进行由内而外的重新检测,来宏观的发现系统中存在的问题,并且及时的进行解决,系统的设计要结合实际的使用情况有针对性的进行开发,可以满足不同人的需求。

5.3  功能测试

基于Spring Boot的邮政文本数据管理系统的设计基本达到理想的开发状态,在各个功能的运行方面,表现较为良好,基本满足用户的使用需求,及时矫正了较多的错误信息。总体说来,软件通过了相应的测试。

表5-1:用户登录测试表

模块名称

测试用例

预期结果

实际结果

是否通过

登录模块

用户名:admin   密码:123  

弹出错误提示,提示密码错误

弹出错误提示,提示密码错误

通过

登录模块

用户名:123   

密码:admin   

弹出错误提示,提示用户名错误

弹出错误提示,提示用户名错误

通过

登录模块

用户名:admin   

密码:admin   

管理员登录成功

管理员登录成功

通过

表5-2:修改密码测试表

模块名称

测试用例

预期结果

实际结果

是否通过

修改密码模块

原密码:666

新密码:123

确认密码:123  

弹出错误提示,提示原密码错误

弹出错误提示,提示原密码错误

通过

修改密码模块

原密码:admin   新密码:123

确认密码:333  

弹出错误提示,提示确认密码不一致

弹出错误提示,提示确认密码不一致

通过

修改密码模块

原密码:admin   新密码:123

确认密码:123  

密码修改成功

密码修改成功

通过

5.4  测试结论

测试的过程要按照指定好的计划一步一步的实行,测试时候一定不要着急,并且将测试的结果进行详细的记录,我们在进行测试的时候做好选择自动化的测试,这样更加的准确也更快捷,如果采用人工测试的方法就不会这么的方便,很可能会出现一些问题,而且极其测试不会疲劳也不会出现问题。在测试的时候一定要非常专注,时刻关注着测试的结果,一旦发现异常及时进行修改;最后,测试完之后的文档应该保存下来,方便以后测试时用到。

通过测试,我们可以直观的感受到,在我们最开始进行系统设计的时候,先把思路理清楚,才能有机会把代码写好。有好的逻辑性的代码在后期的测试中才能避免出现问题,也可以给我们节省很多的时间和不必要的操作。

6 结论

在基于Spring Boot的邮政文本数据管理系统的开发之前,需要先对用户的具体需求进行分析。包括系统的可行性分析、功能需求分析以及其他需求等。在可行性分析过程中,对系统实现的技术性、经济性等方面进行了分析。总体上证明了系统实施的可行性。

本文总结了基于Spring Boot的邮政文本数据管理系统开发背景与意义,然后阐述了系统的具体业务需求,并根据系统需求对系统结构以及功能模块等进行了详细地设计,将整个系统划分为多个不同的功能模块。在分析系统功能需求时,对整个系统的总体架构以及功能模块等进行了分析,并选择合适的系统开发技术完成了对各个模块的开发工作。系统开发完成之后进行了部署,同时进行了系统的测试过程,通过测试证明了系统在功能以及性能等方面都达到了预期的要求,具有较高的稳定性与可靠性。

参考文献

[1]曹灿,孙凯明,郝明,等.基于大数据技术的档案管理系统设计与实现[J].自动化技术与应用,2024,43(03):152-154.

[2]姚丽敏,马允雪.大数据角度下以数据挖掘为支持的科研管理系统设计思考[J].山西能源学院学报,2024,37(01):56-58.

[3]陶雨棚,陈庆奎,黄陈.面向流式数据的弹性缓存管理系统设计[J].智能计算机与应用,2024,14(02):62-68.

[4]彭成.基于多层索引及缓存的空间数据管理系统[J].电脑知识与技术,2023,19(36):59-61.

[5]姜一波.基于SpringBoot+Vue的在线考试系统设计与实现[J].无线互联科技,2023,20(23):68-71.

[6]任宏,李春林,李晓峰.基于Hadoop技术的物联网大数据同步存储系统设计[J].网络安全和信息化,2023,(12):85-87.

[7]那蓉萃.基于Hadoop的工业物联网大数据处理及应用[J].信息记录材料,2023,24(12):221-223+226.

[8]黄娟.基于SpringBoot和Vue.js的医院数据提取管理平台的设计与实现[J].信息与电脑(理论版),2023,35(22):91-93.

[9]左文涛,胡必波,刘钟凌.Hadoop架构下数量关联规则的数据挖掘研究[J].信息记录材料,2023,24(11):210-212+216.

[10]戴建成,王华,范玉婷.基于SpringBoot+VUE的高校廉政档案管理系统设计与实现[J].产业与科技论坛,2023,22(21):58-60.

[11]林圣峰,姚锦江,林涛,等.基于SpringBoot的高校实验室管理系统设计[J].无线互联科技,2023,20(18):80-82.

[12]徐凰耀.基于Hadoop技术的电子商务配送系统设计和实现研究[J].信息与电脑(理论版),2023,35(15):144-146.

[13]蔡守波.基于文本数据的智能家居业的态势感知系统研究与实现[D].华东师范大学,2022.

[14]罗子淦.文本聚类中特征选择和文本表示的研究与应用[D].电子科技大学,2022.

[15]邵小庆.我国快递服务政府监管问题研究[D].山东大学,2021.

[16]季志江.基于J2EE的邮政物流管理系统研究[J].科技视界,2021,(15):192-193.

[17]Hejing W .Commerce Middle Office Management System Based on Springboot[J].International Journal of Advanced Network, Monitoring and Controls,2022,7(2):32-45.

[18]Yang Y .Design and Implementation of Student Information Management System Based on Springboot[J].Advances in Computer, Signals and Systems,2022,6(6):

[19]Giuseppe M D ,Orazio T .A Hierarchical Hadoop Framework to Process Geo-Distributed Big Data[J].Big Data and Cognitive Computing,2022,6(1):5-5.

[20]熊群毓.大数据时代MySQL数据库的应用分析[J].信息与电脑(理论版),2023,35(14):209-212.

致  谢

首先,我要感谢我的论文指导老师。在论文完成的整个过程中,指导老师始终给予我无微不至的关爱与指导。在论文写作的过程中,导师那耐心细致的指导,以及提出的具有建设性的意见,都给予了我极大的帮助,让我受益匪浅。导师严谨的治学态度、敬业精神以及高水平的教学能力,都给我树立了追求卓越的典范,这对我以后的人生道路和学业成就都产生了极大的积极影响。

此外,我还要感谢我班的同学们,他们既是我的同窗好友,又是我的良师益友。正是由于你们的支持和关怀,使得我在大学期间的学习和生活都变得异常充实。感谢那些在大学期间给予我帮助的所有老师和同学们,是你们给予了我在学业道路上的前进动力。

当然,我也不能忘记我的父母,是他们用无私的爱抚养我成人。你们的养育之恩我将永生难忘,将来我一定会用我的成绩回报你们。在成长的道路上,我会不断努力,不负众望,用实际行动来回报你们对我的期望。

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐