基于中小型数码公司管理系统的设计与实现---附源码91969

目  录

摘要

1 绪论

1.1 研究背景

1.2 研究意义

1.3论文结构与章节安排

2系统分析

2.1 可行性分析

2.2 系统流程分析

2.2.1 用户登录流程

2.2.2数据删除流程

2.3 系统功能分析

2.4 系统用例分析

2.5本章小结

3 系统总体设计

3.1 系统架构设计

3.2 系统功能模块设计

3.3 数据库设计

3.3.1 数据库概念结构设计

3.3.2 数据库逻辑结构设计

表access_token (登陆访问时长)

表auth (用户权限管理)

表customer_users (客户用户)

表employee_users (员工用户)

表feedback (反馈意见)

表hits (用户点击)

表notification_announcement (通知公告)

表project_information (项目信息)

表task_information (任务信息)

表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.2客户用户功能模块

4.2.1用户登录界面

4.2.2项目信息管理界面

4.2.3反馈意见管理界面

4.3员工用户功能模块

4.3.1个人信息界面

4.3.2通知公告管理界面

4.3.3项目信息管理界面

4.3.3任务信息管理界面

4.3.4修改密码界面

5系统测试

5.1  测试目的

5.2  测试方法

5.3  功能测试

5.4  测试结论

6 结论

参考文献

致  谢

摘要

    随着科技的飞速发展,数码产品更新换代速度加快,中小型数码公司面临着巨大的市场竞争压力。在数字化浪潮的冲击下,中小型数码公司面临着转型升级的压力和机遇。传统的管理模式已经无法满足日益增长的市场需求。如何在激烈的竞争中脱颖而出,实现可持续发展,成为了企业管理者亟待解决的问题。为此,本文提出了一种基于中小型数码公司管理系统。系统采用Spring Boot框架进行开发,Spring Boot作为一种轻量级、易上手的Java开发框架,已经在企业级应用开发中得到了广泛应用。其简洁的配置、高效的性能以及良好的扩展性,使得基于中小型数码公司管理系统具有更高的可行性和实用性。

本文首先阐述了系统的研究背景和意义;然后对系统进行了可行性、功能性等分析;接着详细介绍了系统的设计原理和实现细节,主要包括系统架构、整体功能模块和数据库设计;最后对系统进行了部署和测试。通过本系统的的成功实施,可以帮助企业提高管理效率、增强市场竞争力,从而实现可持续发展。

关键词:中小型;数码公司管理体系统;Spring Boot

Abstract

With the rapid development of technology, the speed of digital product updates is accelerating, and small and medium-sized digital companies are facing enormous market competition pressure. Under the impact of the digital wave, small and medium-sized digital companies are facing pressure and opportunities for transformation and upgrading. The traditional management model is no longer able to meet the growing market demand. How to stand out in fierce competition and achieve sustainable development has become an urgent issue for enterprise managers. Therefore, this article proposes a management system based on small and medium-sized digital companies. The system is developed using the Spring Boot framework. As a lightweight and easy-to-use Java development framework, Spring Boot has been widely used in enterprise level application development. Its concise configuration, efficient performance, and good scalability make the management system based on small and medium-sized digital companies more feasible and practical.

This article first elaborates on the research background and significance of the system; Then, feasibility and functionality analyses were conducted on the system; Then, the design principles and implementation details of the system were introduced in detail, mainly including system architecture, overall functional modules, and database design; Finally, the system was deployed and tested. The successful implementation of this system can help enterprises improve management efficiency, enhance market competitiveness, and achieve sustainable development.

Keywords: Small and medium-sized; Digital company management system; Spring Boot

1 绪论

1.1 研究背景

随着信息技术的发展,企业信息化管理已经成为提升竞争力的关键。中小型数码公司作为数字领域的重要参与者,其业务和管理需求对数字化和智能化的要求更为突出。中小型数码公司往往面临着多角色、多业务、多流程的管理挑战。传统的手工管理方式不仅效率低下,而且容易出错。因此,企业需要一种高效、便捷、自动化的管理系统来提升信息管理的效率和质量,优化业务流程,加强决策支持。

随着信息技术的快速发展,尤其是互联网技术的广泛应用,为中小型数码公司管理系统的研究和开发提供了有力的支持。Spring Boot是一个开源的Java开发框架,它简化了Spring应用的初始搭建以及开发过程。使用Spring Boot可以快速地搭建出高效、可扩展的应用程序。因此,采用Spring Boot框架和开发中小型数码公司管理系统,可以大大提高开发效率,缩短开发周期,同时也保证了系统的稳定性和可靠性。

1.2 研究意义

在国内,尤其是中小型企业,管理系统的建设仍然处于起步阶段,面临着操作复杂、成本高昂等问题。因此,研究并开发适合中小型数码公司的管理系统具有重要的现实意义。因研究基于中小型数码公司管理系统的意义主要体现在以下几个方面:

首先,可以提升企业管理效率。通过引入该系统,中小型数码公司可以实现对各类信息的快速处理、分析和决策。这不仅提高了企业内部各部门之间以及企业与客户之间的协同效率,还降低了人工操作可能带来的误差,从而为企业创造了更大的价值。

其次,可以降低企业运营成本。通过引入该系统可以实现自动化、智能化的业务流程管理,减少了企业对人力资源的依赖。同时,系统的集中存储和备份功能也减少了企业在硬件和软件方面的投入,从而降低了企业的运营成本。

再次,可以加强企业数据安全。随着企业信息化程度的提高,数据安全问题也日益突出。采用Spring Boot开发的中小型数码公司管理系统通过采用先进的加密技术和安全防护措施,可以确保企业数据的安全性和完整性,避免因数据泄露或损坏而给企业带来损失。

最后,有助于推动行业技术进步。随着中小型数码公司管理系统的广泛应用和推广,将推动整个行业的技术进步和升级。这不仅有利于提升整个行业的竞争力,还有助于推动经济的持续发展和社会的进步。

1.3论文结构与章节安排

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

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

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

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

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

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

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

2系统分析

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

2.1 可行性分析

(1)技术可行性

Java是一种跨平台的编程语言,具有丰富的类库和良好的兼容性,广泛应用于各种场景。Java语言具有较高的性能和稳定性,可以满足系统高并发、大数据处理的需求。此外,Spring Boot是一个非常流行的Java开发框架,Spring Boot不仅能够帮助开发者快速搭建应用的基本框架,还提供了丰富的扩展点,使得开发者可以灵活地定制和优化应用程序,满足不同场景下的需求。因此,从技术层面分析是可行的。

(2)经济可行性

Spring Boot的自动配置功能可以根据应用程序的依赖和环境来进行自动配置,减少了大量的手动配置工作,可以降低开发成本;另外,Spring Boot的代码质量和可维护性较高,可以降低后期维护成本。因此,从经济角度分析是可行的。

(3)社会可行性

该系统具有良好的用户界面和操作流程设计,使得使用系统的用户能够快速地掌握并使用该系统。此外,系统的稳定性和易用性也能够保证用户在日常工作中的操作流畅性和效率。因此,从操作角度分析是可行的。

2.2 系统流程分析

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

2.2.1 用户登录流程

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

图2-1 登录流程图

2.2.2数据删除流程

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

图2-2  数据删除流程图

2.3 系统功能分析

按照基于中小型数码公司管理系统的角色,主要包括管理员、客户用户和员工用户这三大功能模块,各模块功能如下。

  1. 管理员功能
  1. 登录:管理员的账号和密码是事先在数据库中设定好的,管理员可以通过输入正确的账号和密码进行登录。
  2. 后台首页:管理员可以查看后台首页展示的相关内容。
  3. 系统用户:管理员负责添加员工用户和客户用户账号信息,可以查看系统用户(管理员、员工用户、客户用户)列表中某个用户的详情,可以对系统用户信息进行增删改查操作。
  4. 通知公告管理:通知公告管理界面是管理员用来发布和管理系统中的通知公告的界面,以便向用户传达各种重要信息、公告、更新或事件等内容。管理员可以对通知公告信息进行增删改查操作。
  5. 项目信息管理:管理员可以查看项目信息列表中某个项目的详情并提交分配任务信息,可以对项目信息进行增删改查操作。
  6. 任务信息管理:管理人员可以查看任务信息列表中某个任务的详情,可以对任务信息进行查询、重置和删除操作。
  7. 反馈意见管理:管理员可以查看反馈意见列表中某个客户的反馈意见详情并进行审核和回复;可以对反馈意见信息进行增删改查操作。
  8. 更多信息:用管理员点击“更多信息”的下拉菜单“个人信息”进入页面可以查看个人信息详情和修改个人头像、昵称等信息;点击“修改密码”可以修改登录密码,修改后可以用新密码登录系统;点击“退出”即可退出系统登录。
  1. 客户用户功能
  1. 登录:客户用户账号由管理员进行添加,用户可以通过管理员提供的账号密码登录系统。
  2. 后台首页:用户可以查看后台首页展示的相关内容。
  3. 项目信息管理:用户可以查看自己的企业的项目信息,可以查看项目信息列表中某个项目信息的详情,可以对列表信息进行查询和重置操作。
  4. 反馈意见管理:用户可以添加反馈意见信息;可以查看反馈意见列表中某个反馈意见的详情,可以查询和重置反馈意见信息。
  5. 更多信息:用户点击“更多信息”的下拉菜单“个人信息”进入页面可以查看个人信息详情和修改个人头像、昵称等信息;点击“修改密码”可以修改登录密码,修改后可以用新密码登录系统;点击“退出”即可退出系统登录。
  1. 员工用户功能
  1. 登录:员工用户账号由管理员进行添加,用户可以通过管理员提供的账号密码登录系统。
  2. 后台首页:用户可以查看后台首页展示的相关内容。
  3. 通知公告管理:用户可以查看通知公告列表中某个通知公告的详情,可以对列表信息进行查询和重置操作。
  4. 项目信息管理:用户可以查看项目信息列表中某个项目的详情,可以对列表信息进行查询和重置操作。
  5. 任务信息管理:用户可以查看任务信息列表中某个任务的详情并提交任务状态和任务进度信息,可以对列表信息进行查询和重置操作。
  6. 更多信息:用户点击“更多信息”的下拉菜单“个人信息”进入页面可以查看个人信息详情和修改个人头像、昵称等信息;点击“修改密码”可以修改登录密码,修改后可以用新密码登录系统;点击“退出”即可退出系统登录。

2.4 系统用例分析

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

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

图2-3管理员用例图

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

图2-4客户用户用例图

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

图2-5 员工用户用例图

2.5本章小结

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

3 系统总体设计

本章主要讨论的内容包括基于中小型数码公司管理系统的架构设计、功能模块设计、数据库系统设计。

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实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称,基于中小型数码公司管理系统中的主要的数据库E-R模型图如下图3-3、3-4、3-5所示。

图3-3 客户用户信息E-R图

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

图3-5项目信息E-R图

3.3.2 数据库逻辑结构设计

通过上一小节中基于中小型数码公司管理系统中总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

更新时间:

表customer_users (客户用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

customer_users_id

int

10

0

N

Y

客户用户ID

2

company_name

varchar

64

0

Y

N

公司名称

3

customer_name

varchar

64

0

Y

N

客户姓名

4

customer_gender

varchar

64

0

Y

N

客户性别

5

customer_phone_number

varchar

16

0

Y

N

客户电话

6

examine_state

varchar

16

0

N

N

已通过

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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_positions

varchar

64

0

Y

N

员工职位

6

employee_id

varchar

64

0

N

N

员工工号

7

examine_state

varchar

16

0

N

N

已通过

审核状态

8

user_id

int

10

0

N

N

0

用户ID

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表feedback (反馈意见)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

feedback_id

int

10

0

N

Y

反馈意见ID

2

feedback_title

varchar

64

0

Y

N

反馈标题

3

customer_users

int

10

0

Y

N

0

客户用户

4

customer_name

varchar

64

0

Y

N

客户姓名

5

feedback_content

text

65535

0

Y

N

反馈内容

6

manage_replies

text

65535

0

Y

N

管理回复

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表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

announcement_image

varchar

255

0

Y

N

公告图片

6

announcement_content

text

65535

0

Y

N

公告内容

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表project_information (项目信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

project_information_id

int

10

0

N

Y

项目信息ID

2

project_number

varchar

64

0

Y

N

项目编号

3

entry_name

varchar

64

0

Y

N

项目名称

4

customer_users

int

10

0

Y

N

0

客户用户

5

project_date

date

10

0

Y

N

项目日期

6

deadline

date

10

0

Y

N

截止日期

7

project_status

varchar

64

0

Y

N

项目状态

8

project_progress

text

65535

0

Y

N

项目进度

9

project_description

text

65535

0

Y

N

项目描述

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表task_information (任务信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

task_information_id

int

10

0

N

Y

任务信息ID

2

task_name

varchar

64

0

Y

N

任务名称

3

project_number

varchar

64

0

Y

N

项目编号

4

entry_name

varchar

64

0

Y

N

项目名称

5

employee_users

int

10

0

Y

N

0

员工用户

6

task_date

date

10

0

Y

N

任务日期

7

task_deadline

varchar

64

0

Y

N

任务期限

8

task_content

text

65535

0

Y

N

任务内容

9

task_status

varchar

64

0

Y

N

任务状态

10

task_progress

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

更新时间

表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本章小结

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

4 系统详细设计与实现

4.1管理员功能模块

4.1.1系统用户界面

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

图4-1系统用户界面图

添加的代码如下:

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

 }

删除的代码如下:

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

通知公告管理界面是管理员用来发布和管理系统中的通知公告的界面,以便向用户传达各种重要信息、公告、更新或事件等内容。管理员可以对通知公告信息进行查询、重置、添加和删除操作。其界面如下图4-2所示。

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

图片上传的代码如下:

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

    }

4.1.3项目信息管理界面

管理员可以添加项目信息,可以查看项目信息列表中某个项目的详情并提交分配任务信息,可以对列表信息进行查询、重置和删除操作。其界面如下图4-3所示。

图4-3项目信息管理界面图

4.1.4任务信息管理界面

管理人员可以查看任务信息列表中某个任务的详情,可以对任务信息进行查询、重置和删除操作。其界面如下图4-4所示。

图4-4任务信息管理界面图

4.1.5反馈意见管理界面

管理员可以查看反馈意见列表中某个客户的反馈意见详情并进行审核和回复;可以对反馈意见信息进行查询、重置、添加和删除操作。其界面如下图4-5所示。

图4-5反馈意见管理界面图

4.2客户用户功能模块

4.2.1用户登录界面

客户用户账号由管理员进行添加,用户可以通过管理员提供的账号密码登录系统。在登录界面,用户需要输入正确的用户名和密码才能成功登录系统。系统会对用户的输入进行验证,验证通过后即可登录,登录界面提供密码找回的选项。其界面如下图4-6所示。

图4-6用户登录界面图

登录代码如下:

 /**

     * 登录

     * @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-7所示。

图4-7项目信息管理界面图

4.2.3反馈意见管理界面

用户可以添加反馈意见信息;可以查看反馈意见列表中某个反馈意见的详情,可以查询和重置反馈意见信息。其界面如下图4-8所示。

图4-8反馈意见管理界面图

4.3员工用户功能模块

4.3.1个人信息界面

用户点击“更多信息”的下拉菜单“个人信息”进入页面可以查看个人信息详情和修改个人头像、昵称等信息。其界面如下图4-9所示。

图4-9个人信息界面图

4.3.2通知公告管理界面

用户可以查看通知公告列表中某个通知公告的详情,可以对列表信息进行查询和重置操作。其界面如下图4-10所示。

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

4.3.3项目信息管理界面

用户可以查看项目信息列表中某个项目的详情,可以对列表信息进行查询和重置操作。其界面如下图4-11所示。

图4-11项目信息管理界面图

4.3.3任务信息管理界面

用户可以查看任务信息列表中某个任务的详情并提交任务状态和任务进度信息,可以对列表信息进行查询和重置操作。其界面如下图4-12所示。

图4-12任务信息管理界面图

4.3.4修改密码界面

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

图4-13修改密码界面图

修改密码的代码如下:

/**

     * 修改密码

     * @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,"密码修改失败!");

    }

5系统测试

5.1  测试目的

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

5.2  测试方法

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

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

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

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

中小型数码公司管理系统的测试主要从下面几方面进行:

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

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

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

5.3  功能测试

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

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

模块名称

测试用例

预期结果

实际结果

是否通过

登录模块

用户名:admin   密码:123  

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

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

通过

登录模块

用户名:123   

密码:admin   

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

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

通过

登录模块

用户名:admin   

密码:admin   

管理员登录成功

管理员登录成功

通过

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

模块名称

测试用例

预期结果

实际结果

是否通过

修改密码模块

原密码:666

新密码:123

确认密码:123  

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

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

通过

修改密码模块

原密码:admin   新密码:123

确认密码:333  

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

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

通过

修改密码模块

原密码:admin   新密码:123

确认密码:123  

密码修改成功

密码修改成功

通过

5.4  测试结论

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

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

6 结论

在开发中小型数码公司管理系统之前,需对用户的实际需求进行分析。这不仅包括对系统的可行性研究,还包括对功能需求和其他需求的详细分析。在可行性分析阶段,本人从技术性和经济性等多个角度对系统实现的可能性进行了全面评估,结果表明,该系统的实施是可行的。

本文首先概述了中小型数码公司管理系统开发的背景及其意义,接着详细阐述了系统的具体业务需求,并根据这些需求对系统的结构以及功能模块进行了精细的设计。这个系统划分为多个独特的功能模块,每个模块都具有其独特的功能和作用。

在深入分析系统功能需求的过程中,本人对系统的总体架构和功能模块进行了深入研究,并选择了最适合的系统开发技术来完成各个模块的开发工作。系统开发完成后进行了系统的测试。测试结果表明,该系统在功能和性能方面都满足了预期的要求,具有极高的稳定性和可靠性。

参考文献

[1]张乐.基于数字经济视域的企业管理信息系统优化升级路径研究[J].企业改革与管理,2024,(02):29-31.

[2]鲍海云.ERP系统在企业管理中的应用[J].市场瞭望,2024,(02):105-107.

[3]雷虹天.通讯数码类零售企业的服务质量管理研究——以某公司为例[J].中国商论,2024,(01):151-154.

[4]李文龙,包彩霞.互联网企业数据资产价值评估研究——以神州数码为例[J].商业会计,2023,(23):68-73.

[5]张亚伟,霍敏霞,陈端君.基于区块链的企业管理系统设计与分析[J].中小企业管理与科技,2023,(16):142-145.

[6]李虹,李舟.数字经济背景下企业管理信息系统发展路径探究[J].广西广播电视大学学报,2023,34(04):37-40.

[7]魏文娟,刘朝阳.基于大数据视角的企业管理信息化系统建设研究[J].中国管理信息化,2023,26(14):79-81.

[8]王博.浅谈计算机技术在企业信息化管理中的应用[J].商场现代化,2023,(11):106-108.

[9]梁文娟.IT分销企业数字化转型对业绩影响研究[D].北京交通大学,2023.

[10]温凤玲.基于区块链的企业管理系统设计与应用分析[J].技术与市场,2023,30(04):109-111.

[11]张汉舟.大数据时代企业管理模式创新分析——基于企业价值生态系统视角[J].全国流通经济,2023,(06):80-83.

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

[13]张晨.基于Java Web的反序列化信息安全漏洞挖掘研究[J].成都航空职业技术学院学报,2022,38(03):50-53.

[14]任健,兰全祥.类型转换在JavaWeb中的应用浅析[J].信息技术与信息化,2022,(07):125-128.

[15]黄丽萍.基于Java的Web软件程序框架分层设计探讨[J].信息记录材料,2022,23(07):74-76.

[16]金斗.Web应用高并发下的负载均衡研究与优化[D].长江大学,2022.

[17]Liang C .School Vehicle Management System Based on JAVA Language[J].Academic Journal of Computing  Information Science,2023,6(9):

[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]Sunday O B ,Nduka O S .  MySQL Database Server: Deploying Software Application to Enhance Visibility and Accountability    [J].  Current Journal of Applied Science and Technology,  2023,  42  (4):  16-23.

[20]黄赛英.基于Springboot的医院档案管理系统设计[J].集成电路应用,2023,40(11):384-385.

致  谢

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

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

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

     总之,在这篇论文中,我要感谢所有给予我帮助的人,包括指导老师、同学们、家人和朋友们。是你们的支持与关爱,让我在学术和个人生活中取得了优异的成绩。我会珍惜这份感恩之情,将这份力量用于学习和未来的生活中,不断追求卓越,成为一个更加优秀的人。

点赞+收藏+关注  →私信领取本源代码、数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值