题目:

设备报修管理系统小程序


摘  要

设备报修管理系统小程序是一款基于Spring Boot框架开发的便捷工具,旨在提高设备报修的效率和准确性。该系统小程序结合了现代移动互联网技术的优势,为用户提供了快速、便捷的报修服务。

系统小程序主要面向三类用户:管理员、后勤用户和负责用户。管理员可以通过系统全面管理用户信息、报修申请、报修类型等,确保系统的正常运行和数据的准确性。后勤用户则可以通过系统提交报修申请,并实时跟踪处理进度,提高报修效率。负责用户则可以通过系统查看报修申请、参与交流讨论等,加强与后勤用户的沟通和协作。

在功能设计方面,系统小程序提供了丰富的功能模块,包括登录注册、报修申请管理、网站公告管理、交流论坛等。这些功能模块不仅满足了用户的日常需求,还提高了系统的互动性和用户体验。

技术方面,系统小程序采用了Spring Boot框架进行开发,确保了系统的稳定性和可扩展性。同时,系统还采用了前后端分离的设计模式,提高了开发效率和系统的可维护性。

总的来说,设备报修管理系统小程序是一款功能全面、操作便捷、安全可靠的设备报修管理工具。它为用户提供了高效、准确的报修服务,提高了设备维护的效率和质量,是现代企业不可或缺的一款工具。

关键字:设备报修管理系统、Spring Boot框架、管理员、后勤用户、报修申请管理

Abstract

Equipment repair management system applet is a convenient tool developed based on Spring Boot framework, aiming to improve the efficiency and accuracy of equipment repair. The system small program combines the advantages of modern mobile Internet technology, and provides users with fast and convenient repair service.

System applet is mainly aimed at three types of users: administrator, logistics users and responsible users. The administrator can comprehensively manage the user information, repair application and repair type through the system to ensure the normal operation of the system and the accuracy of the data. Logistics users can submit the repair application through the system, and track the processing progress in real time to improve the efficiency of repair. The responsible users can check the repair application, participate in the communication and discussion through the system, and strengthen the communication and cooperation with the logistics users.

In terms of functional design, the system applet provides a wealth of functional modules, including login registration, repair application management, notice and announcement management, communication forum and so on. These functional modules not only meet the daily needs of users, but also improve the interactivity and user experience of the system.

In terms of technology, the system applet adopts the Spring Boot framework to ensure the stability and scalability of the system. At the same time, the system also adopts the design mode of front and rear end separation, which improves the development efficiency and the system maintainability.

In general, the equipment repair management system small program is a comprehensive function, convenient operation, safe and reliable equipment repair management tool. It provides users with efficient and accurate repair service, improves the efficiency and quality of equipment maintenance, and is an indispensable tool for modern enterprises.

Keywords: equipment repair management system, Spring Boot framework, administrator, logistics users, repair application management.


目录

摘  要

第一章 绪 论

1.1选题背景和意义

1.2国内外研究现状

1.2.1国内研究现状:

1.2.2国外研究现状:

1.3研究内容

第二章 开发工具及关键技术介绍

2.1微信开发者工具

2.2小程序框架以及目录结构介绍

2.3 JAVA技术

2.4 Mysql数据库

2.5 Springboot框架

第三章 系统分析

3.1可行性分析

3.1.1经济可行性分析

3.1.2操作可行性分析

3.1.3技术可行性分析

3.2功能需求分析

3.3性能需求分析

3.4系统流程分析

3.4.1用户注册流程图

3.4.2用户登录流程图

3.4.3系统操作流程

3.4.4添加信息流程

3.4.5 修改信息流程

3.4.6 删除信息流程

第四章 系统设计与实现

4.1系统总体设计思路

4.2系统结构设计

4.4数据库设计

4.4.1数据库设计原则

4.4.2数据库实体

4.4.3数据库表设计

第五章 系统实现

5.1 登录注册模块的实现

5.2 负责用户功能实现

5.2.1 用户首页模块

5.2.2 新闻资讯模块

5.2.3 网站公告模块

5.2.4我的模块

5.3 后勤用户功能实现

5.3.1报修申请管理界面

5.3.2后台首页界面

5.3.3修改密码界面

5.4 管理员功能实现

5.4.1轮播图管理界面

5.4.2系统用户界面

5.4.3报修申请管理界面

5.4.4通知公告管理界面

5.4.5资源管理界面

第六章  系统的测试

6.1测试目的

6.2功能测试

6.3性能测试

6.4测试结果

结  论

参考文献

致  谢

第一章  绪 论

1.1选题背景和意义

随着现代科技的飞速发展,各类设备在企业和家庭中的应用越来越广泛。然而,设备的故障和损坏也随之而来,给人们的生产和生活带来了诸多不便。传统的报修方式往往存在流程繁琐、效率低下等问题,难以满足现代社会的快节奏需求。因此,开发一款便捷、高效的设备报修管理系统小程序显得尤为重要。

Spring Boot框架作为当前主流的Java开发框架,以其简洁、易用、高效的特点,受到了广大开发者的青睐。它提供了丰富的内置功能,简化了开发流程,降低了开发成本,使得开发者能够更加专注于业务逻辑的实现。因此,选择Spring Boot框架作为设备报修管理系统小程序的开发平台,不仅能够提高开发效率,还能够保证系统的稳定性和可扩展性。

设备报修管理系统小程序的选题背景主要源于以下几个方面:设备数量的急剧增加,使得传统的报修方式难以应对;人们对报修效率的要求越来越高,需要一种更加便捷、高效的报修方式;移动互联网技术的普及,为开发小程序提供了良好的技术基础。

该小程序的开发具有重要意义。首先,它能够简化报修流程,提高报修效率。用户只需通过小程序提交报修申请,系统即可自动分配任务给相关人员,大大缩短了报修周期。其次,它能够加强用户与维修人员之间的沟通协作。用户可以随时查看报修进度,维修人员也可以及时反馈处理情况,提高了双方的互动性和协作效率。此外,该小程序还能够为企业节省人力物力成本,提高经济效益。通过自动化处理报修申请,企业可以减少人工干预,降低运营成本。

综上所述,设备报修管理系统小程序的开发具有重要的现实意义和应用价值。它不仅能够解决传统报修方式存在的问题,提高报修效率和质量,还能够为企业节省成本,提升竞争力。同时,该小程序的开发也符合当前移动互联网技术的发展趋势,具有广阔的市场前景和应用空间。因此,选择Spring Boot框架开发设备报修管理系统小程序是一个明智的选择,具有深远的意义。

1.2国内外研究现状

1.2.1国内研究现状:

在国内随着信息技术的不断发展,设备报修管理系统正逐步向智能化、便捷化方向转变。微信小程序作为一种轻量级的应用,因其无需下载安装、即用即走的特点,在设备报修管理领域展现出巨大潜力。例如陈淼与羊开云在《基于微信小程序的校园报修管理系统设计》[1]中,利用Java语言和MySQL数据库技术,设计了一款B/S模式的校园报修管理系统小程序。该系统实现了用户登录、报修提交等功能,有效解决了传统报修方式中的漏报、错报及接收不及时等问题,提升了报修管理的效率和可靠性。张网娟等人在《基于“互联网+”的设备报修系统设计与实现》[2]中,借助微信公众平台,结合移动互联网、二维码和云开发技术,构建了闭环化的设备报修流程。该系统基于微信小程序实现,涵盖了设备查询、报修管理、维修管理等功能,为水务设备报修管理提供了智能化、系统化的解决方案。

还有铁风莲等人在《基于微信小程序的设备维修平台》[3]中,针对实验室设备故障频次增加的问题,提出了依托微信小程序平台和移动终端搭建电子设备维修平台的方案。该平台包括报修信息采集、维修信息追踪、消息推送等功能模块,提高了实验室的管理效率和安全性。刘百平在《基于微信小程序的图书馆设备运维管理系统构建研究》[4]中,深入分析了设备运维管理小程序的开发过程,实现了设备运维管理的信息化,提高了管理效率,满足了读者需求。郑俊海在《基于微信小程序的后勤报修管理系统的设计与实现》[5]中,采用微信小程序与Java的SSH2框架技术,开发了后勤报修管理系统。该系统不仅为师生提供了便利,还大大提高了后勤报修管理的效率。

综上所述,基于微信小程序设计的设备报修管理系统在多个领域均取得了显著成效。这些系统通过集成移动互联网、数据库、云开发等技术,实现了设备报修的智能化、便捷化管理,提高了管理效率和服务质量。未来,随着技术的不断进步和用户需求的不断变化,基于微信小程序的设备报修管理系统将继续优化升级,为更多领域提供高效、便捷的报修管理解决方案。

1.2.2国外研究现状:

在国外,设备报修管理系统小程序的研究与发展已经取得了显著的进展。随着工业4.0和物联网技术的兴起,越来越多的研究者开始关注如何将这些先进技术应用于设备维护管理中,以提高效率、降低成本并确保设备的稳定运行。例如Zongzhao Yang《Research and Design of Industrial Equipment Maintenance Management System Based on the Internet of Things》[6]研究展示了物联网技术在工业设备维护中的应用,通过实时监测、智能诊断等功能有效管理设备健康。这为设备报修小程序提供了启示,可集成物联网技术,实现设备状态的即时反馈与智能分析,提升报修效率与用户体验。Szpytko Janusz与Salgado-Duarte《Maintenance Management Practices Using Digital Twins Framework: Oil Extraction Pumping System Case Study》[7]的研究利用数字孪生框架,通过自适应模型与机器学习自我校准,优化油提取泵系统的维护管理。设备报修小程序可借鉴此技术,为设备创建数字副本,预测故障并提供精准维修建议,缩短维修周期,提高维修质量。Alarcón Mariano等人《Cesáraeo F H L D G .Energy and maintenance management systems in the context of industry 4.0. Implementation in a real case》[8]的研究,强调工业4.0背景下,能源管理与维护管理系统的整合重要性。设备报修小程序应与公司主要管理系统(ERP、DCS、MES)无缝对接,共享数据,协同流程。这不仅能提升工作效率,还能为企业提供全面的设备维护管理视图,促进能源效率与维护成本的双重优化,确保工厂安全高效运行。

综上所述,国外在设备报修管理系统小程序的研究方面,主要聚焦于物联网技术、数字孪生框架以及工业4.0背景下的能源与维护管理整合。这些研究通过先进的技术手段,实现了对工业设备的实时监测、智能诊断、预测性维护和远程控制等功能,有效地提高了设备管理的效率和准确性。这些成果为设备报修管理系统小程序的发展提供了宝贵的参考和借鉴。

1.3研究内容

开发和实施设备报修管理系统小程序,需要完成以下任务:

(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。

(2)在系统ACK完成之后,将根据系统开发的要求,选择JAVA技术来构建设备报修管理系统小程序,并对其中的数据库进行搭建和开发,以确保该系统能够有效地实现其功能。此外,还将对所选择的技术进行详细的技术分析,以确保系统的可行性和安全性。

(3)在设备报修管理系统小程序中,首先要确定系统的技术,然后进行在线确认,以确定系统的用户角色,并根据这些角色划分出相应的功能模块。系统的设计主要将用户分为管理员、负责用户角色和后勤用户角色,每个角色都有其独特的特点,而且每个功能模块都有其特定的功能,但是系统的数据库都是交互式的,负责用户可以随时根据自身的需求查看网站公告、新闻资讯等内容,而后勤用户负责报修申请管理等工作。管理员可以快速收集用户的详细信息,并能够在第一时间响应客户的需求。

(4)经过精心设计的系统功能模块已经ACK完毕,接下来就是程序和界面的开发。为了检验程序的完整性,会采取多种测试方法,让不同的用户编写和提交相关内容,并定期检查程序中的缺陷,一旦发现问题,立即采取在线解决措施,直至系统运行稳定,才可以将其上传至正式使用。

开发工具及关键技术介绍

2.1微信开发者工具

微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试。

根据用户的需求,将采用不同的屏幕大小来制作小程序。

在完成了视图布置之后,可以通过执行编辑功能,快速更改当前的视图界面。

控制台:方便调试打印输出信息。

将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。

通过查看资源文件,可以快速地调整相关项目的文件目录,从而实现断点调试。

使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。

本地数据存储:显示的是本地存储的数据。

通过使用子父层级结构,可以更容易地进行视图调试。

微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。

微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。

2.2小程序框架以及目录结构介绍

这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特 特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。

2.3 JAVA技术

Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,SSM(java server pages),和XML技术。

JAVA语言功能:

面向对象编程是一种革命性的软件开发方法,它将复杂的程序结构转换为可编程的对象,从而大大简化了编程过程,并且极大地提升了程序的安全性。它的出现,使得编程者可以更加轻松地完成任务,并且可以更好地控制程序的运行,从而更好地满足用户的需求。

Java的一个重要优势在于它的跨平台特性,这使得编程变得更加便捷。通过使用Java,您可以轻松访问多个不同的平台,而不必担心编译时会出现问题。

C++的缺陷之一便是它没有有效地利用可重复使用的资源,这使得它的资源需求量大大增加,而这种情况下,它的垃圾回收机制正好可以有效地解决这一问题,因而减少了资源的使用,进而节约了巨量的资源。一些优秀的编程人员通常都会将一块内存地址设为堆栈,以便当它被使用的时候自动解锁,但是一些初学者或者初入者往往忽略了这一步骤,结果就是程序的性能受到了影响,甚至出现了崩溃的情况。因此,许多C++专家在开发代码时,通常会先检查一个指针的值,如果它已经被移动,就把它的值调整到NULL,这样才能够有效地完成代码的执行。

2.4 Mysql数据库

数据库是系统开发过程中不可或缺的一部分。 在WEB应用方面,MySQL AB开发了一个具有很大优势的MySQL关系数据库管理系统。 MySQL可以将数据存储在不同的表中,这非常灵活,并且还可以提高系统在实际应用中的速度。 数据库访问最常用于标准SQL语言,MySQL用于SQL语言,因此它具有高度兼容性。数据库的操作是必不可少的,包括对数据库表的增加、删除、修改、查询等功能。现如今,数据库可以分为关系型数据库和非关系型数据库,Mysql属于关系性数据库,Mysql数据库是一款小型的关系型数据库,它以其自身特点:体积小、速度快、成本低等,Mysql数据库是目前最受欢迎的开源数据库。

在WEB应用技术中, Mysql数据库支持不同的操作系统平台,虽然在不同平台下的安装和配置都不相同,但是差别也不是很大,Mysql在Windows平台下两种安装方式,二进制版和免安装版。安装完Mysql数据库之后,需要启动服务进程,相应的客户端就可以连接数据库,客户端可通过命令行或者图形界面工具登录数据库。

2.5 Springboot框架

Java框架的出现,极大地改变了Java的运行方式,因为它不仅可以支持复杂的框架结构,而且还可以支持多种复杂的操纵,从而极大地改善了Java的效率和可靠性。此外,Java框架也被广泛地用来取代EJB(EnterpriseJavaBeans),成为一种更加强大的框架。Spring框架可以有效地支撑多种AP的开发,其中包括:基于控制反向的核心功能,可以将对象的生命周期变得更加可视,采取面向切面的编程语言,以及采取多种可靠的长效技术,以及支撑多种Web框架,以满足不同的AP的需求。Spring框架拥有强大的控制反馈(IOC)功能,使得Java对象的配置与管理变得更加简单高效。该框架采取Java的反馈机制,允许使用者根据XML文件、类别及其相关的Java注释等信息,自由地调整Java对象的使用,从而实现更加高效的编程。Spring框架拥有一种独特的方法来实现切割和分层,它采用了AOP框架,并且在使用过程中支持多种方法的协调。AOP的目的是将复杂的任务分解成多个独立的部分,以便更好地管控和控制。Spring框架的AOP框架拥有丰富的AOP特征,尽管不及AspectJ框架,但它们的结合仍然是一种有效的解决方案,它们不仅支持基础的AspectJ,还支持更高级的aop,从而更好地支持企业的业务流水线。此外,SpringAOP还支持更多的事务处理和远程访问。Java的事务处理框架提供了一种灵活的方式,允许不同类型的事务,包括本地、远程、内部、外部的,都能够被有效的处理。它支持多种类型的事务,用户可以根据需要自定义事务处理模块,如XML、Java文档,还支持快速、安全的数据交换。Spring的强大的数据访问功能为开发者们带来了极大的便利,无论是JDBC、iBATS/MyBATIs、Hibernate、JDO、ApacheOJB、ApacheCayne,都能够轻松地实现数据的访问,而且,这些功能也能够被Spring的事务管理系统完美地整合,从而大大减少了开发者们面临的挑战,极大地改善了他们的工作效率,极大地推动了企业级的信息化进步。通过使用这种方法,可以更加轻松地进行数据访问。SpringMVC的诞生源于一个开发者的决定:他们决定改变传统的StrutsWeb框架,将呈现层、请求处理层和模型完全分离,从而创建一个更加高效、可靠的SpringMVC。


第三章 系统分析

3.1可行性分析

通过综合考虑经济、操作、技术等因素,可以对设备报修管理系统小程序的可行性进行全面评估。这将有助于确定项目的成功概率,并为项目规划提供坚实的基础。

 3.1.1经济可行性分析

考虑到Springboot、小程序及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升设备报修管理系统小程序的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性

 3.1.2操作可行性分析

系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性

 3.1.3技术可行性分析

从技术方面来说,设备报修管理系统小程序也是可行的。Spring Boot是一种流行的Java框架,提供了强大的开发支持。小程序是一种流行的移动应用开发平台,提供了便捷的开发和部署支持。MySQL是一种流行的关系型数据库管理系统,提供了强大的数据存储和管理支持。通过使用这些技术,设备报修管理系统小程序可以实现便捷、高效的设备报修管功能。

3.2功能需求分析

设备报修管理系统小程序的设计与实现可以从功能层面进行详细描述,涉及到负责用户、后勤用户和管理员三个角色的具体需求,基于Spring Boot、Java语言、MySQL数据库以及微信小程序的架构进行实现。下面详细阐述各个功能模块:

1.负责用户功能描述

登录注册:负责用户通过登录或注册账号,进入系统使用各项功能。

首页:展示系统的主要功能和最新动态,方便用户快速了解。

报修申请:提交设备报修申请,详细描述问题和设备信息。

网站公告:查看系统发布的最新公告和通知,获取重要信息。

新闻资讯:浏览与设备报修相关的新闻和资讯,增强知识储备。

交流论坛:参与用户间的交流讨论,分享经验和解决问题。

我的(收藏、评论、报修申请):管理个人收藏的内容、发表的评论以及提交的报修申请。

2.后勤用户功能描述:

登录注册:后勤用户通过登录或注册账号,进入系统使用相关功能。

后台首页:展示后勤用户后台的主要信息和概览。

报修申请管理:提交、查看自己提交的报修申请,跟踪处理进度。

3.管理员功能描述

登录:管理员通过输入用户名和密码进行身份验证,登录系统。

后台首页:展示管理员后台的主要信息和概览,便于快速了解系统状态。

系统用户:管理系统中所有用户的信息,包括添加、删除、修改等操作。

报修申请管理:审核、处理用户提交的报修申请,跟踪报修进度。

报修类型管理:定义和分类不同的报修类型,方便管理和统计。

系统管理:进行系统设置,包括权限分配、数据备份与恢复等。

通知公告管理:发布、编辑和删除系统内的通知和公告,确保信息传达。

资源管理:管理系统中使用的各类资源,如图片、文档等。

交流管理:监管用户间的交流内容,维护良好的交流氛围。

通过这些功能的实现,整个设备报修管理系统小程序系统可以高效、便捷地服务于用户与管理员,提升设备报修管理系统小程序的的使用效率和管理的智能化水平。

设备报修管理系统小程序负责用户角色用例图如下所示。

图3-1 负责用户角色用例图

设备报修管理系统小程序后勤用户角色用例图如下所示。

图3-2 后勤用户角色用例图

设备报修管理系统小程序管理员角色用例图如下所示。

图3-3管理员角色用例图

3.3性能需求分析

用户操作响应时间:系统应保证用户在操作平台时的响应速度,例如浏览网站公告、新闻资讯等操作应该迅速响应。

系统稳定性:平台应具备一定的容错能力和稳定性,防止因为意外情况导致系统崩溃。

数据安全:用户信息等敏感数据需要加密存储,确保数据安全性。

系统并发能力:平台应考虑到可能大量用户同时访问的情况,保证系统的并发处理能力。

日志记录:系统需要记录用户操作日志、异常日志等,便于排查问题和分析用户行为。

基于以上性能需求将确保设备报修管理系统小程序能够稳定、高效地运行,能够很好地满足用户和管理员的需求。

3.4系统流程分析

3.4.1用户注册流程图

注册的过程,第一部分是账号的注册,第二部分是信息完善。在业务开展过程中,管理员可对用户信息进行修改等管理操作,注册流程如图3-4用户注册流程图所示。

图3-4 用户注册流程图

3.4.2用户登录流程图

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

图3-5用户登录流程图

3.4.3系统操作流程

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

图3-6 系统操作流程图

3.4.4添加信息流程

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

图3-7 添加信息流程图

3.4.5 修改信息流程

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

1图3-8 修改信息流程图

3.4.6 删除信息流程

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

图3-9 删除信息流程图

第四章 系统设计与实现

4.1系统总体设计思路

设备报修管理系统小程序采用Browser/Server结构,(浏览器/服务器)和基于Web服务前后台交互的模式,是一个适用于Windows体系环境下的模型结构。只要用户有符合程序运行的硬件系统,并连上互联网,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1系统工作原理图

其最终前后台交互原理如图4-2所示。

图4-2前后台交互原理

具体交互流程为:浏览器中执行具体操作,操作命令将生成一个do方法。该方法使得浏览器能够访问后台中的Controller层,Controller层由于业务上的需要执行进而访问Service层。Service层收到指令后将会去调用内部DAO层的接口。接口将会和MyBatis层下的一个SQL语句相对接。对接好之后进而访问MySql数据库。更新底层数据,然后将数据同步回MyBatis层,同步变化后的数据将通过DAO层接口,Service层和后台Controller层,直观反映到浏览器页面上。

4.2系统结构设计

设备报修管理系统小程序的整体结构设计如图4-3所示。

图4-3整体功能结构设计图

4.4数据库设计

数据库系统作为一个重要的组件,其优化针对整体网络的运行非常重要。为了构建一个高效的数据库系统,需要明确每个元素的特征,并将它们组合在一起。

4.4.1数据库设计原则

设备报修管理系统小程序在进行数据库设计时,考虑到个人能力与数据库选择,选择了数据库Mysql。以下将使用E-R展示数据库中设计的实体及主要的字段和类型及数据库的描述。

4.4.2数据库实体

通过建立设备报修管理系统小程序E-R模型图。以此来设计详细的数据库资料实体以下为具体图例

(1)负责用户实体图如4-4示;

图4-4负责用户实体图

2报修申请实体E-R图如图4-5所示;

图4-5报修申请实体E-R图

3)报修类型实体图如图4-6所示;

图4-6报修类型实体图

4后勤用户实体图如图4-7所示;

图4-7后勤用户实体图

5)轮播图实体图如图4-8所示;

图4-8轮播图实体图

6)数据库实体E-R图如图4-9所示:

图4-9数据库E-R图

4.4.3数据库表设计

通过对数据结构的深入分析,可以确定哪些表格和结构之间的关系,并且可以通过验证、调整和完善,来满足用户对数据和功能的需求,从而实现数据库的有效管理。

根据设备报修管理系统小程序的特性,重新设计了数据库的概念模型,以满足其功能的需求,并且结构更加清晰明确。

表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

用户编号:

表article (文章:用于内容管理系统的文章)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

标题:[0,125]用于文章和html的title标签中

3

type

varchar

64

0

N

N

0

文章分类:[0,1000]用来搜索指定类型的文章

4

hits

int

10

0

N

N

0

点击数:[0,1000000000]访问这篇文章的人次

5

praise_len

int

10

0

N

N

0

点赞数

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

8

source

varchar

255

0

Y

N

来源:[0,255]文章的出处

9

url

varchar

255

0

Y

N

来源地址:[0,255]用于跳转到发布该文章的网站

10

tag

varchar

255

0

Y

N

标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开

11

content

longtext

2147483647

0

Y

N

正文:文章的主体内容

12

img

varchar

255

0

Y

N

封面图

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

display

smallint

5

0

N

N

100

显示顺序:[0,1000]决定分类显示的先后顺序

3

name

varchar

16

0

N

N

分类名称:[2,16]

4

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

6

icon

text

65535

0

Y

N

分类图标:

7

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表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

parent

varchar

64

0

Y

N

父级菜单

8

parent_sort

int

10

0

N

N

0

父级菜单排序

9

position

varchar

32

0

Y

N

位置:

10

mode

varchar

32

0

N

N

_blank

跳转方式:

11

add

tinyint

3

0

N

N

1

是否可增加:

12

del

tinyint

3

0

N

N

1

是否可删除:

13

set

tinyint

3

0

N

N

1

是否可修改:

14

get

tinyint

3

0

N

N

1

是否可查看:

15

field_add

text

65535

0

Y

N

添加字段:

16

field_set

text

65535

0

Y

N

修改字段:

17

field_get

text

65535

0

Y

N

查询字段:

18

table_nav_name

varchar

500

0

Y

N

跨表导航名称:

19

table_nav

varchar

500

0

Y

N

跨表导航:

20

option

text

65535

0

Y

N

配置:

21

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

22

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表code_token

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

code_token_id

int

10

0

N

Y

2

token

varchar

255

0

Y

N

3

code

varchar

255

0

Y

N

验证码

4

expire_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

失效时间

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表collect (收藏)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

来源表:

4

source_field

varchar

255

0

Y

N

来源字段:

5

source_id

int

10

0

N

N

0

来源ID:

6

title

varchar

255

0

Y

N

标题:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表comment (评论)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

comment_id

int

10

0

N

Y

评论ID:

2

user_id

int

10

0

N

N

0

评论人ID:

3

reply_to_id

int

10

0

N

N

0

回复评论ID:空为0

4

content

longtext

2147483647

0

Y

N

内容:

5

nickname

varchar

255

0

Y

N

昵称:

6

avatar

varchar

255

0

Y

N

头像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

9

source_table

varchar

255

0

Y

N

来源表:

10

source_field

varchar

255

0

Y

N

来源字段:

11

source_id

int

10

0

N

N

0

来源ID:

表forum (论坛)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

forum_id

mediumint

8

0

N

Y

论坛id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用户ID

4

nickname

varchar

16

0

Y

N

昵称:[0,16]

5

praise_len

int

10

0

Y

N

0

点赞数

6

hits

int

10

0

N

N

0

访问数

7

title

varchar

125

0

N

N

标题

8

keywords

varchar

125

0

Y

N

关键词

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

来源地址

11

tag

varchar

255

0

Y

N

标签

12

img

text

65535

0

Y

N

封面图

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

16

avatar

varchar

255

0

Y

N

发帖人头像:

17

type

varchar

64

0

N

N

0

论坛分类:[0,1000]用来搜索指定类型的论坛帖

18

istop

int

10

0

N

N

0

是否置顶

表forum_type (论坛分类)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_id

smallint

5

0

N

Y

分类ID:[0,10000]

2

name

varchar

16

0

N

N

分类名称:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述该分类的作用

4

url

varchar

255

0

Y

N

外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置

5

father_id

smallint

5

0

N

N

0

上级分类ID:[0,32767]

6

icon

varchar

255

0

Y

N

分类图标:

7

create_time

timestamp

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:

表logistics_users (后勤用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

logistics_users_id

int

10

0

N

Y

后勤用户ID

2

logistics_name

varchar

64

0

Y

N

后勤姓名

3

logistics_gender

varchar

64

0

Y

N

后勤性别

4

logistics_phone_number

varchar

16

0

Y

N

后勤电话

5

examine_state

varchar

16

0

N

N

未审核

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表notice (公告)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

标题:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表praise (点赞)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

praise_id

int

10

0

N

Y

点赞ID:

2

user_id

int

10

0

N

N

0

点赞人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

5

source_table

varchar

255

0

Y

N

来源表:

6

source_field

varchar

255

0

Y

N

来源字段:

7

source_id

int

10

0

N

N

0

来源ID:

8

status

bit

1

0

N

N

1

点赞状态:1为点赞,0已取消

表repair_application (报修申请)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

repair_application_id

int

10

0

N

Y

报修申请ID

2

repair_title

varchar

64

0

Y

N

报修标题

3

type_of_repair_report

varchar

64

0

Y

N

报修类型

4

responsible_for_users

int

10

0

Y

N

0

负责用户

5

user_name

varchar

64

0

Y

N

用户姓名

6

contact_number

varchar

64

0

Y

N

联系电话

7

equipment_name

varchar

64

0

Y

N

设备名称

8

equipment_location

varchar

64

0

Y

N

设备位置

9

repair_picture

varchar

255

0

Y

N

报修图片

10

reason_for_repair_report

text

65535

0

Y

N

报修原因

11

logistics_users

int

10

0

Y

N

0

后勤用户

12

repair_progress_report

varchar

64

0

Y

N

报修进度

13

progress_description

text

65535

0

Y

N

进度描述

14

collect_len

int

10

0

N

N

0

收藏数

15

examine_state

varchar

16

0

N

N

未审核

审核状态

16

examine_reply

varchar

16

0

Y

N

审核回复

17

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

18

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表responsible_for_users (负责用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

responsible_for_users_id

int

10

0

N

Y

负责用户ID

2

user_name

varchar

64

0

Y

N

用户姓名

3

user_gender

varchar

64

0

Y

N

用户性别

4

contact_number

varchar

16

0

Y

N

联系电话

5

examine_state

varchar

16

0

N

N

未审核

审核状态

6

user_id

int

10

0

N

N

0

用户ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表schedule (日程管理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

schedule_id

smallint

5

0

N

Y

日程ID:[0,32767]

2

content

varchar

255

0

Y

N

日程内容

3

scheduled_time

datetime

19

0

Y

N

计划时间

4

user_id

int

10

0

N

N

用户id

5

create_time

datetime

19

0

Y

N

创建时间

6

update_time

datetime

19

0

Y

N

更新时间

表score (评分)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

score_id

int

10

0

N

Y

评分ID:

2

user_id

int

10

0

N

N

0

评分人:

3

nickname

varchar

64

0

Y

N

昵称:

4

score_num

double

5

2

N

N

0.00

评分:

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

7

source_table

varchar

255

0

Y

N

来源表:

8

source_field

varchar

255

0

Y

N

来源字段:

9

source_id

int

10

0

N

N

0

来源ID:

表slides (轮播图)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

slides_id

int

10

0

N

Y

轮播图ID:

2

title

varchar

64

0

Y

N

标题:

3

content

varchar

255

0

Y

N

内容:

4

url

varchar

255

0

Y

N

链接:

5

img

varchar

255

0

Y

N

轮播图:

6

hits

int

10

0

N

N

0

点击量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

创建时间:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间:

表type_of_repair_report (报修类型)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

type_of_repair_report_id

int

10

0

N

Y

报修类型ID

2

type_of_repair_report

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

更新时间

表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

int

10

0

N

Y

用户ID:[0,8388607]用户获取其他与用户相关的数据

2

state

smallint

5

0

N

N

1

账户状态:[0,10](1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

0

Y

N

所在用户组:[0,32767]决定用户身份和权限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登录时间:

5

phone

varchar

11

0

Y

N

手机号码:[0,11]用户的手机号码,用于找回密码时或登录时

6

phone_state

smallint

5

0

N

N

0

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

7

username

varchar

16

0

N

N

用户名:[0,16]用户登录时所用的账户名称

8

nickname

varchar

16

0

Y

N

昵称:[0,16]

9

password

varchar

64

0

N

N

密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成

10

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

创建时间:

表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

更新时间:


第五章 系统实现

5.1 登录注册模块的实现

负责用户通过微信授权登录,获取用户基本信息(如昵称、头像等),并完成首次注册。注册后,系统自动为用户生成唯一的账号,并绑定微信号,实现一键登录。系统登录界面如下图5-1所示。系统注册界面如下图5-2所示。

图5-1系统登录界面

图5-2 系统注册界面

注册如下:

    /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}     

注册页password则使用了MD5加密,代码如下:

    public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

}

登录其代码如下:

 /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

    }

5.2 负责用户功能实现

5.2.1 用户首页模块

首页是用户进入小程序后的第一个页面。该页面展示了网站公告和新闻资讯,提供轮播图展示等。首页如下图所示。

图5-3页界面

5.2.2 新闻资讯模块

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

图5-4新闻资讯列表界面

5.2.3 网站公告模块

用户点击首页“网站公告”按钮,会进入网站公告产品展示列表,用实时滚动展示设备报修的最新公告与通知,确保用户能够第一时间获取重要信息。网站公告详情界面如下图5-5所示。

图5-5网站公告产品展示界面

5.2.4我的模块

负责用户可以在“我的”页面中管理个人收藏的内容、发表的评论以及提交的报修申请,方便随时查看和跟踪自己的操作和进度。我的界面如下图5-6所示。收藏详情页面如下图5-7所示。报修申请页面如下图5-8所示。

图5-6我的界面

图5-7收藏详情界面

图5-8报修申请界面

5.3 后勤用户功能实现

5.3.1报修申请管理界面

后勤用户可以提交新的报修申请,详细描述设备故障问题和相关信息,并查看自己提交的报修申请的审核和处理进度,确保问题得到及时解决,报修申请列表界面如下图5-9所示。报修申请详情界面如下图5-10所示

5-9报修申请列表界面图

5-10报修申请详情界面图

5.3.2后台首页界面

后勤用户登录后,可以看到自己的后台首页,展示与自己相关的报修申请、待处理任务等信息,方便快速了解自己的工作重点界面如下图所示。

5-11后台首页界面图

5.3.3修改密码界面

后勤用户可以通过修改密码功能,更新自己的登录密码,提高账户的安全性。

5-12修改密码界面图

修改密码代码如下:

    /**

     * 修改密码

     * @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.4 管理员功能实现

5.4.1轮播图管理界面

管理员点击“系统管理-轮播图管理”菜单,可以对前台展示的轮播图进行设置界面如下图5-13所示。

5-13轮播图管理界面图

5.4.2系统用户界面

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

5-14用户管理界面图

增删改代码如下:

新增一条数据,通过post传入一个json对象,然后经过request.getReader(),最后经过readBody()转成一个Map,含有String和Object,key用的是字段名,Object存放数据,最终得到Map,insert用拼装sql,读取body,组装成一个insert对象,runCountSql()语句,代码如下:

    @PostMapping("/add")

    @Transactional

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

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

        return success(1);

    }

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

    service.insert(map);

     return success(1);

 }

修改一个数据,原理与add基本一致,不同点在于通过readConfig()读取关键字,以及通过readQuery()获取URL后面?指定位置的标识,转成Map对象后,执行update操作,同样通过拼接的sql语句执行,执行过程读取query,toWhereSql()语句完成数据库操作,body为修改对象的值,代码如下:

    @PostMapping("/set")

@Transactional

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

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

    }

删除一条数据,通过readQuery(),获取URL后面的对象地址,删除FROM具体的table,query删除查询FindConfig语句,代码如下:

    @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

5.4.3报修申请管理界面

管理员可以审核、处理用户提交的报修申请,查看申请的详细信息,包括设备名称、故障描述、申请时间等,并跟踪报修进度,确保问题得到及时解决。界面如下图5-15所示。

5-15报修申请管理界面图

5.4.4通知公告管理界面

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

5-16通知公告管理界面图

5.4.5资源管理界面

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

5-17资源管理界面图

图片/文件/视频等的上传方法通过MultipartFile,代码如下:

   @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

    }


章  系统的测试

6.1测试目的

在对该系统进行完详细设计和编码之后,就要对设备报修管理系统小程序的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。

6.2功能测试

本系统的主要功能就是负责用户登录后,可搜索和浏览网站公告,管理员登录系统后台后可对网站公告进行管理,包括增改删查操作。测试设计如下所示:

(1)登录模块功能测试

用户登录前首先需注册成为系统用户,使用账号和密码可进行登录。用户登录功能测试用例设计如下表所示:

6-1 用户登录功功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证有效登录

1. 输入正确的用户名和密码 <br> 2. 点击登录按钮

显示登录成功,跳转至用户首页

登录成功,跳转至用户首页

通过

TC002

验证空用户名登录

1. 不输入用户名,输入正确密码 <br> 2. 点击登录按钮

显示用户名不能为空提示信息

显示用户名不能为空提示信息

通过

TC003

验证空密码登录

1. 输入正确用户名,不输入密码 <br> 2. 点击登录按钮

显示密码不能为空提示信息

显示密码不能为空提示信息

通过

TC004

验证错误用户名登录

1. 输入错误的用户名和正确密码 <br> 2. 点击登录按钮

显示用户名或密码错误提示信息

显示用户名或密码错误提示信息

通过

TC005

验证错误密码登录

1. 输入正确用户名和错误密码 <br> 2. 点击登录按钮

显示用户名或密码错误提示信息

显示用户名或密码错误提示信息

通过

(2)网站公告模块功能测试

网站公告模块测试包括网站公告展示功能测试、网站公告添加功能测试、网站公告搜索功能测试。网站公告模块测试用例如表6.2-6.4所示。

网站公告展示功能测试用例设计如下表所示:

6-2 网站公告展示功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证正常展示网站公告

1. 进入网站公告展示页面 <br> 2. 浏览展示的网站公告内容

能够正常显示网站公告内容

网站公告内容正常显示

通过

TC002

验证网站公告链接跳转

1. 进入网站公告展示页面 <br> 2. 点击网站公告链接

能够跳转至相应网站公告详情页面

成功跳转至网站公告详情页面

通过

TC003

验证搜索功能

1. 进入网站公告展示页面 <br> 2. 使用搜索功能搜索网站公告

显示符合搜索条件的网站公告列表

显示符合搜索条件的网站公告列表

通过

TC004

验证商品状态展示

1. 进入网站公告展示页面 <br> 2. 选择商品状态

显示该状态下的网站公告列表

成功显示该状态下的网站公告列表

通过

TC005

验证网站公告的评论功能

1. 进入网站公告详情展示页面 <br> 2. 查看网站公告并发表评论

评论成功显示在网站公告页面

评论成功显示在网站公告页面

通过

网站公告添加功能测试用例设计如下表所示

6-3 网站公告添加功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证添加网站公告

1. 进入网站公告添加界面 <br> 2. 输入网站公告 <br> 3. 点击添加按钮

网站公告成功添加到系统页面中

网站公告成功添加到系统页面中

通过

TC002

验证网站公告商品状态选择

1. 进入网站公告添加界面 <br> 2. 选择商品状态 <br> 3. 输入网站公告 <br> 4. 提交网站公告

根据选择的商品状态成功添加网站公告

根据选择的动态类型成功添加网站公告

通过

TC003

验证网站公告内容输入

1. 进入网站公告添加界面 <br> 2. 输入正确网站公告内容3. 点击添加按钮

网站公告内容成功录入系统

网站公告内容成功录入系统

通过

TC004

验证网站公告图片上传

1. 进入网站公告添加界面 <br> 2. 上传网站公告相关图片 <br> 3. 点击添加按钮

图片成功上传并与网站公告关联

图片成功上传并与网站公告关联

通过

网站公告搜索功能测试用例设计如下表所示

6-4 网站公告搜索功能测试用例

测试编号

测试目的

测试步骤

预期结果

实际结果

是否通过

TC001

验证网站公告输入物品名称搜索

1. 进入网站公告搜索界面 <br> 2. 输入商品名称 <br> 3. 确认并搜索

根据选择的商品名称关键词显示相关网站公告

根据选择的商品名称关键词成功显示相关网站公告

通过

6.3性能测试

  1. 兼容性测试

6-5 兼容性测试用例

用例编号

测试类型

测试目标

操作过程

预期结果

兼容性_01

设备兼容性

测试系统在不同设备上的表现

在多种设备上访问系统并记录表现

系统在各种设备上都能正常加载和显示页面

兼容性_02

浏览器兼容性

测试系统在不同浏览器上的表现

在多种浏览器中访问系统并记录表现

系统在各种主流浏览器上都能正常加载和显示页面

兼容性_03

分辨率兼容性

测试系统在不同分辨率下的显示效果

在不同分辨率的设备上访问系统并记录表现

系统在各种分辨率下都能适应并正常显示内容

兼容性_04

操作系统兼容性

测试系统在不同操作系统上的运行情况

在不同操作系统上访问系统并记录表现

系统能够在常用操作系统上正常运行和显示

  1. 性能测试

6-6 性能测试用例

用例编号

测试类型

测试目标

操作过程

预期结果

性能_01

负载测试

测试系统在正常负载下的性能

逐步增加用户数来模拟不同的负载情况

系统能够稳定处理并响应不同数量的用户请求

性能_02

压力测试

测试系统在极端负载下的性能

以超过系统承受极限的用户数来测试系统

系统能够在高负载情况下仍然保持正常运行

性能_03

并发测试

测试系统能同时处理多少并发用户请求

同时发送多个并发用户请求来测试系统性能

系统能够有效地处理多个并发请求

性能_04

数据量测试

测试系统在大数据下的性能

向系统添加大量数据并测试系统响应时间

系统能够在大数据情况下保持较快的响应时间

6.4测试结果

全部测试用例都已通过,且不存在漏洞,实现了本论文开始时所作要求和期望。本系统运行稳定,使用流畅,可以满足客户需求。试运行后进行系统评估,可以认为该系统达到预定的目标要求,可以满足用户的需求,也满足了系统开发前所作目标。系统在经过大量重复测试后运行十分稳定,安全实用,功能模块已经达到预定目标所需。在规定的时间内实现系统的大部分功能,且满足要求,节省开发成本,有助于提高科学管理水平,符合本人经济情况。

简而言之,经过严格的测试,可以发现该系统的功能和性能非常出色,它的精度、可靠性、稳健性都达到了极高的水平,而且它还支持快速、精细的点击操作,使用者的使用感受更加良好。此外,它还支持各种主流浏览器,满足不同的使用要求。

结  论

本论文基于Spring Boot框架、Java语言、MySQL数据库和微信小程序技术,设计并实现了一个设备报修管理系统小程序系统。通过详细的需求分析、系统架构设计、数据库设计和功能实现,本系统成功解决了设备报修管理系统小程序的管理中的诸多问题。

系统的设计与实现验证了微信小程序在设备报修管理中的有效性。负责用户能够通过小程序便捷地查看网站公告、新闻资讯、报修申请等,极大提升了设备报修管理系统小程序的使用效率。而管理员则通过后台管理系统,能够高效地进行报修申请管理、公告发布以及系统管理,确保了资源的公平分配和管理的透明度。该系统的实现有效地提高了设备报修管理系统小程序的的利用率,减少了人工干预,提高了设备报修管理的智能化水平。

通过该系统的实现,展现了现代信息技术在设备报修管理中的广泛应用前景,特别是微信小程序和Spring Boot等技术的结合,为类似的资源管理系统提供了可借鉴的开发经验。尽管系统在当前实现中能够满足大部分基本需求,但仍可通过后续优化,如增加更智能的设备报修策略、改进用户界面设计等,进一步提升系统的性能与用户体验。

总体而言,该设备报修管理系统小程序系统的成功实现,不仅为设备报修的管理提供了有力支持,也为其他类似管理需求的系统开发提供了实践依据,推动了设备报修管理的现代化与智能化发展。


参考文献

  1. 陈淼,羊开云.基于微信小程序的校园报修管理系统设计[J].网络安全技术与应用,2024,(01):57-60.
  2. 张网娟,汪晋舟,蒋马利,等.基于“互联网+”的设备报修系统设计与实现[J].电子设计工程,2023,31(07):156-159+164.DOI:10.14022/j.issn1674-6236.2023.07.032.
  3. 铁风莲,刘林立,林思嫔.基于微信小程序的设备维修平台[J].信息技术与信息化,2021,(08):200-202.
  4. 刘百平.基于微信小程序的图书馆设备运维管理系统构建研究[J].电脑知识与技术,2020,16(36):77-79+94.DOI:10.14004/j.cnki.ckt.2020.3689.
  5. 郑俊海.基于微信小程序的后勤报修管理系统的设计与实现[J].电脑与电信,2019,(06):53-56.DOI:10.15966/j.cnki.dnydx.2019.06.013.
  6. Yang Z .Research and Design of Industrial Equipment Maintenance Management System Based on the Internet of Things[J].Forum on Research and Innovation Management,2024,2(3):
  7. Janusz S ,Yorlandys S .Maintenance Management Practices Using Digital Twins Framework: Oil Extraction Pumping System Case Study[J].IFAC PapersOnLine,2023,56(2):6612-6617.
  8. Mariano A ,Manuel F M ,Cesáraeo F H L D G .Energy and maintenance management systems in the context of industry 4.0. Implementation in a real case[J].Renewable and Sustainable Energy Reviews,2021,142
  9. 符捷,陈梅,刘霞.基于微信小程序的医院设施设备报修系统设计[J].电子设计工程,2024,32(19):58-61+66.DOI:10.14022/j.issn1674-6236.2024.19.012.
  10. 刘锦.智慧校园故障报修信息管理系统开发研究[J].互联网周刊,2024,(18):51-53.
  11. 何磊,洪军,王杰,等.数据驱动的高校食堂智慧报修小程序设计与应用——以中国科学技术大学为例[J].现代食品,2024,30(11):45-50.DOI:10.16736/j.cnki.cn41-1434/ts.2024.11.013.
  12. 包俊辉,黎海祥.浅谈基于智能化的校园网上报修管理平台研究[J].家电维修,2024,(04):31-33.
  13. 游晶,邱淑丽,李敬文.基于SpringBoot的校园智慧报修系统的设计与实现[J].电脑知识与技术,2023,19(32):50-52+65.DOI:10.14004/j.cnki.ckt.2023.1718.
  14. 邹骅,刘沈.微信公众号结合Web的高校多媒体报修系统设计[J].江苏工程职业技术学院学报,2023,23(03):15-19.DOI:10.19315/j.issn.2096-0425.2023.03.004.
  15. 王岱琳,吴小嵩.一种基于钉钉小程序的办公终端网络报修系统设计[J].中国科技信息,2023,(10):62-66.
  16. 许粲.基于Java的学校网络报修系统设计与研究[J].信息记录材料,2023,24(03):181-184.DOI:10.16009/j.cnki.cn13-1295/tq.2023.03.071.
  17. 郄阳.维修管理系统软件设计[J].软件,2023,44(01):81-84+97.
  18. 李丹,张未未.基于小程序与云开发的网络报修系统的设计与实现[J].微型电脑应用,2022,38(12):187-189+192.
  19. 郝建敏,沈群,韩路.智慧校园信息化报修系统平台的设计与实现[J].软件,2022,43(12):40-42.
  20. 李广用,陈伟康.基于微信小程序的网络故障报修系统的设计[J].现代信息科技,2021,5(03):25-27+31.DOI:10.19850/j.cnki.2096-4706.2021.03.007.


致  谢

在本论文的研究与撰写过程中,我得到了许多人的支持与帮助。在此,我谨向所有关心和支持我的人表示诚挚的感谢。

首先,我要感谢我的指导老师,他在整个研究过程中给予了我悉心的指导和无私的支持。他的专业知识和严谨态度对我有着深远的影响,使我在研究中受益匪浅。

其次,我要感谢我的家人,他们在我攻读学位期间给予了我无条件的理解与支持。在我遇到困难和挑战时,他们的鼓励让我倍感温暖,激励我不断前行。

同时,感谢所有参与问卷调查和用户测试的用户,你们的反馈和建议对本系统的改进和完善起到了重要作用。希望本研究的成果能够为大家的生活带来便利。

再次感谢所有关心和支持我的人,是你们的帮助让我顺利完成了这项研究。

  

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

更多推荐