随着科技的飞速发展,数码产品更新换代速度加快,中小型数码公司面临着巨大的市场竞争压力。在数字化浪潮的冲击下,中小型数码公司面临着转型升级的压力和机遇。传统的管理模式已经无法满足日益增长的市场需求。如何在激烈的竞争中脱颖而出,实现可持续发展,成为了企业管理者亟待解决的问题。为此,本文提出了一种基于中小型数码公司管理系统。系统采用Spring Boot框架进行开发,Spring Boot作为一种轻量级、易上手的Java开发框架,已经在企业级应用开发中得到了广泛应用。其简洁的配置、高效的性能以及良好的扩展性,使得基于中小型数码公司管理系统具有更高的可行性和实用性。
本文首先阐述了系统的研究背景和意义;然后对系统进行了可行性、功能性等分析;接着详细介绍了系统的设计原理和实现细节,主要包括系统架构、整体功能模块和数据库设计;最后对系统进行了部署和测试。通过本系统的的成功实施,可以帮助企业提高管理效率、增强市场竞争力,从而实现可持续发展。
关键词:中小型;数码公司管理体系统;Spring Boot
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
随着信息技术的发展,企业信息化管理已经成为提升竞争力的关键。中小型数码公司作为数字领域的重要参与者,其业务和管理需求对数字化和智能化的要求更为突出。中小型数码公司往往面临着多角色、多业务、多流程的管理挑战。传统的手工管理方式不仅效率低下,而且容易出错。因此,企业需要一种高效、便捷、自动化的管理系统来提升信息管理的效率和质量,优化业务流程,加强决策支持。
随着信息技术的快速发展,尤其是互联网技术的广泛应用,为中小型数码公司管理系统的研究和开发提供了有力的支持。Spring Boot是一个开源的Java开发框架,它简化了Spring应用的初始搭建以及开发过程。使用Spring Boot可以快速地搭建出高效、可扩展的应用程序。因此,采用Spring Boot框架和开发中小型数码公司管理系统,可以大大提高开发效率,缩短开发周期,同时也保证了系统的稳定性和可靠性。
在国内,尤其是中小型企业,管理系统的建设仍然处于起步阶段,面临着操作复杂、成本高昂等问题。因此,研究并开发适合中小型数码公司的管理系统具有重要的现实意义。因研究基于中小型数码公司管理系统的意义主要体现在以下几个方面:
首先,可以提升企业管理效率。通过引入该系统,中小型数码公司可以实现对各类信息的快速处理、分析和决策。这不仅提高了企业内部各部门之间以及企业与客户之间的协同效率,还降低了人工操作可能带来的误差,从而为企业创造了更大的价值。
其次,可以降低企业运营成本。通过引入该系统可以实现自动化、智能化的业务流程管理,减少了企业对人力资源的依赖。同时,系统的集中存储和备份功能也减少了企业在硬件和软件方面的投入,从而降低了企业的运营成本。
再次,可以加强企业数据安全。随着企业信息化程度的提高,数据安全问题也日益突出。采用Spring Boot开发的中小型数码公司管理系统通过采用先进的加密技术和安全防护措施,可以确保企业数据的安全性和完整性,避免因数据泄露或损坏而给企业带来损失。
最后,有助于推动行业技术进步。随着中小型数码公司管理系统的广泛应用和推广,将推动整个行业的技术进步和升级。这不仅有利于提升整个行业的竞争力,还有助于推动经济的持续发展和社会的进步。
论文将分层次进行编排,除去论文摘要致谢文献参考部分,论文主要架构如下:
第一章:绪论,此章节对所设计和实现的系统的背景以及意义进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章:系统分析,此章节所做的主要的工作是对系统进行了技术、经济和操作方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第三章:系统总体设计,主要是对系统的功能结构进行设计,并对系统数据库的概念结构以及物理结构的设计进行了分析。
第四章:系统详细设计与实现,根据系统功能的划分,分别的对系统所需要实现的前台客户功能和后台管理员功能进行了分析和说明。
第五章:系统测试,主要介绍了系统测试目的和对系统的部分功能界面进行测试并对测试结果作出总结。
第六章:结论,主要对系统的开发设计工作进行总结。
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
技术可行性
Java是一种跨平台的编程语言,具有丰富的类库和良好的兼容性,广泛应用于各种场景。Java语言具有较高的性能和稳定性,可以满足系统高并发、大数据处理的需求。此外,Spring Boot是一个非常流行的Java开发框架,Spring Boot不仅能够帮助开发者快速搭建应用的基本框架,还提供了丰富的扩展点,使得开发者可以灵活地定制和优化应用程序,满足不同场景下的需求。因此,从技术层面分析是可行的。
(2)经济可行性
Spring Boot的自动配置功能可以根据应用程序的依赖和环境来进行自动配置,减少了大量的手动配置工作,可以降低开发成本;另外,Spring Boot的代码质量和可维护性较高,可以降低后期维护成本。因此,从经济角度分析是可行的。
(3)社会可行性
该系统具有良好的用户界面和操作流程设计,使得使用系统的用户能够快速地掌握并使用该系统。此外,系统的稳定性和易用性也能够保证用户在日常工作中的操作流畅性和效率。因此,从操作角度分析是可行的。
系统流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
用户通过登录才能访问系统及权限以内的功能,对此将实现各种应用及管理等功能,用户登录流程图如下图2-1所示。
图2-1 登录流程图
如果系统里面存在一些没有用的数据,相关的管理人员还可以对这些数据进行删除,数据删除时流程图如下图2-3所示。
图2-2 数据删除流程图
按照基于中小型数码公司管理系统的角色,主要包括管理员、客户用户和员工用户这三大功能模块,各模块功能如下。
通过2.3功能的分析,得出了本系统的用例图:
管理员用例图如下图2-3所示。
图2-3管理员用例图
客户用户用例图如下图2-4所示。
图2-4客户用户用例图
员工用户用例图如下图2-5所示。
图2-5 员工用户用例图
本章主要通过对基于中小型数码公司管理系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个系统要实现的功能。同时也为系统的代码实现和测试提供了标准。
基于中小型数码公司管理系统的架构设计、功能模块设计、数据库系统设计。
本系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1系统架构设计图
表现层(UI):又称UI层,主要完成本系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本系统时的舒适度。UI的界面设计也要适应不同版本的系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本系统的数据是放在服务端的MySQL数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本系统的数据存储和管理功能。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了系统中的用例。那么接下来就要开始对本系统的主要功能和数据库开始进行设计。基于根据前面章节的需求分析得出,其总体设计模块图如图3-1所示。
图3-2 系统功能模块图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称,基于中小型数码公司管理系统中的主要的数据库E-R模型图如下图3-3、3-4、3-5所示。
图3-3 客户用户信息E-R图
图3-4通知公告信息E-R图
图3-5项目信息E-R图
通过上一小节中基于中小型数码公司管理系统中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | ||
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 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
整个基于中小型数码公司管理系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
管理员负责添加员工用户和客户用户账号信息,可以查看系统用户(管理员、员工用户、客户用户)列表中某个用户的详情,可以对系统用户信息进行查询、重置、添加和删除操作。其界面如下图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-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()) {
} else {
}
}
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-3所示。
图4-3项目信息管理界面图
管理人员可以查看任务信息列表中某个任务的详情,可以对任务信息进行查询、重置和删除操作。其界面如下图4-4所示。
图4-4任务信息管理界面图
管理员可以查看反馈意见列表中某个客户的反馈意见详情并进行审核和回复;可以对反馈意见信息进行查询、重置、添加和删除操作。其界面如下图4-5所示。
图4-5反馈意见管理界面图
客户用户账号由管理员进行添加,用户可以通过管理员提供的账号密码登录系统。在登录界面,用户需要输入正确的用户名和密码才能成功登录系统。系统会对用户的输入进行验证,验证通过后即可登录,登录界面提供密码找回的选项。其界面如下图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-7所示。
图4-7项目信息管理界面图
用户可以添加反馈意见信息;可以查看反馈意见列表中某个反馈意见的详情,可以查询和重置反馈意见信息。其界面如下图4-8所示。
图4-8反馈意见管理界面图
用户点击“更多信息”的下拉菜单“个人信息”进入页面可以查看个人信息详情和修改个人头像、昵称等信息。其界面如下图4-9所示。
图4-9个人信息界面图
用户可以查看通知公告列表中某个通知公告的详情,可以对列表信息进行查询和重置操作。其界面如下图4-10所示。
图4-10通知公告管理界面图
用户可以查看项目信息列表中某个项目的详情,可以对列表信息进行查询和重置操作。其界面如下图4-11所示。
图4-11项目信息管理界面图
用户可以查看任务信息列表中某个任务的详情并提交任务状态和任务进度信息,可以对列表信息进行查询和重置操作。其界面如下图4-12所示。
图4-12任务信息管理界面图
用户点击“更多信息”的下拉菜单“修改密码”进入页面填写原密码、新密码、请确认新密码信息后点击“提交”,系统会对输入的信息进行验证,验证通过后即可完成修改,修改后可以用新密码登录系统。其界面如下图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,"密码修改失败!");
}
通过测试可以检查出潜藏的缺陷,从而确保系统的性能和稳定性,避免Bug的出现,并确保系统的功能和性价比达到预期的要求。
在对系统进行测试的时候我们主要应用到两种测试的方法,通过测试我们就能找出可能存在的问题保证系统成功运行。
从软件的内部构造和具体实施是否有关系的观点来看:黑盒测试和白盒测试。
1)黑盒测试:测试系统功能,当用户进行相应的操作时,系统是否能够及时且准确的反馈数据,并执行相应功能。需要对功能以及使用方法进行详细的测试,保证所有的操作信息都能够完整的输出输入。
2)白盒测试:主要是对系统的结构进行测试,了解系统在运行过程中是否可以正常的工作。
中小型数码公司管理系统的测试主要从下面几方面进行:
(1)窗体测试:例如用户登录界面,在用户名和密码输入时,需要界面窗口弹出,给予用户反馈,我对窗口的设计进行了测试,确保每一个窗口在用户进行相应操作后,能够及时的弹出。
(2)数据跟踪:进行数据跟踪,我们就能知道系统功能是否在顺利的执行当中。将数据库中的相关的信息进行调动,弹出我们需要的相对应的数据信息。同时,在追踪过程中,我们也更容易的发现系统的问题所在,便于解决问题和维护系统。
(3)综合测试:完成上述测试后,需要对系统进行由内而外的重新检测,来宏观的发现系统中存在的问题,并且及时的进行解决,系统的设计要结合实际的使用情况有针对性的进行开发,可以满足不同人的需求。
中小型数码公司管理系统的设计基本达到理想的开发状态,在各个功能的运行方面,表现较为良好,基本满足用户的使用需求,及时矫正了较多的错误信息。总体说来,软件通过了相应的测试。
表5-1:用户登录测试表
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
登录模块 | 用户名:admin 密码:123 | 弹出错误提示,提示密码错误 | 弹出错误提示,提示密码错误 | 通过 |
登录模块 | 用户名:123 密码:admin | 弹出错误提示,提示用户名错误 | 弹出错误提示,提示用户名错误 | 通过 |
登录模块 | 用户名:admin 密码:admin | 管理员登录成功 | 管理员登录成功 | 通过 |
表5-2:修改密码测试表
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
修改密码模块 | 原密码:666 新密码:123 确认密码:123 | 弹出错误提示,提示原密码错误 | 弹出错误提示,提示原密码错误 | 通过 |
修改密码模块 | 原密码:admin 新密码:123 确认密码:333 | 弹出错误提示,提示确认密码不一致 | 弹出错误提示,提示确认密码不一致 | 通过 |
修改密码模块 | 原密码:admin 新密码:123 确认密码:123 | 密码修改成功 | 密码修改成功 | 通过 |
测试的过程要按照指定好的计划一步一步的实行,测试时候一定不要着急,并且将测试的结果进行详细的记录,我们在进行测试的时候做好选择自动化的测试,这样更加的准确也更快捷,如果采用人工测试的方法就不会这么的方便,很可能会出现一些问题,而且极其测试不会疲劳也不会出现问题。在测试的时候一定要非常专注,时刻关注着测试的结果,一旦发现异常及时进行修改;最后,测试完之后的文档应该保存下来,方便以后测试时用到。
通过测试,我们可以直观的感受到,在我们最开始进行系统设计的时候,先把思路理清楚,才能有机会把代码写好。有好的逻辑性的代码在后期的测试中才能避免出现问题,也可以给我们节省很多的时间和不必要的操作。
在开发中小型数码公司管理系统之前,需对用户的实际需求进行分析。这不仅包括对系统的可行性研究,还包括对功能需求和其他需求的详细分析。在可行性分析阶段,本人从技术性和经济性等多个角度对系统实现的可能性进行了全面评估,结果表明,该系统的实施是可行的。
本文首先概述了中小型数码公司管理系统开发的背景及其意义,接着详细阐述了系统的具体业务需求,并根据这些需求对系统的结构以及功能模块进行了精细的设计。这个系统划分为多个独特的功能模块,每个模块都具有其独特的功能和作用。
在深入分析系统功能需求的过程中,本人对系统的总体架构和功能模块进行了深入研究,并选择了最适合的系统开发技术来完成各个模块的开发工作。系统开发完成后进行了系统的测试。测试结果表明,该系统在功能和性能方面都满足了预期的要求,具有极高的稳定性和可靠性。
[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.
首先,我要感谢我的论文指导老师。在论文完成的整个过程中,指导老师始终给予我无微不至的关爱与指导。在论文写作的过程中,导师那耐心细致的指导,以及提出的具有建设性的意见,都给予了我极大的帮助,让我受益匪浅。导师严谨的治学态度、敬业精神以及高水平的教学能力,都给我树立了追求卓越的典范,这对我以后的人生道路和学业成就都产生了极大的积极影响。
此外,我还要感谢我班的同学们,他们既是我的同窗好友,又是我的良师益友。正是由于你们的支持和关怀,使得我在大学期间的学习和生活都变得异常充实。感谢那些在大学期间给予我帮助的所有老师和同学们,是你们给予了我在学业道路上的前进动力。
当然,我也不能忘记我的父母,是他们用无私的爱抚养我成人。你们的养育之恩我将永生难忘,将来我一定会用我的成绩回报你们。在成长的道路上,我会不断努力,不负众望,用实际行动来回报你们对我的期望。
总之,在这篇论文中,我要感谢所有给予我帮助的人,包括指导老师、同学们、家人和朋友们。是你们的支持与关爱,让我在学术和个人生活中取得了优异的成绩。我会珍惜这份感恩之情,将这份力量用于学习和未来的生活中,不断追求卓越,成为一个更加优秀的人。