基于微信小程序的高校宿舍维修管理系统设计与实现

💗博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发、文档编写、答疑辅导等。
👇🏻 精彩专栏 推荐订阅👇🏻
计算机毕业设计精品项目案例(持续更新)
🌟文末获取源码+数据库+文档🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以和学长沟通,希望帮助更多的人

一.前言

在这里插入图片描述

高校宿舍作为学生日常生活的重要场所,其维修工作的效率和质量直接影响着学生居住的舒适度及安全性。然而,传统的宿舍报修流程往往存在报修不便、处理效率低下、信息反馈滞后等问题,这不仅增加了学生的不便,也给学校的宿舍管理带来了诸多挑战。鉴于此,开发一款基于微信小程序的高校宿舍报修系统,可以利用微信的普及优势,提供一个便捷高效的报修渠道,优化报修流程,提升维修服务质量,同时通过系统化管理,增强宿舍维修的透明度与监管力度。

该宿舍报修系统采用当下流行的技术栈SprintBoot作为后端开发框架,前端界面则使用Vue框架构建,MySQL数据库存储业务数据,MyBatis作为数据持久层框架,通过Axios实现前后端的数据交互。本系统遵循微服务架构理念,拥有用户管理、宿舍信息管理、报修申请管理、接单信息管理及维修反馈管理等业务模块,允许用户快捷上报宿舍设施损坏情况,维修人员及时响应,以及多角度的数据反馈和信息共享,全面涵盖了宿舍维修管理的各个环节。

通过系统的实施,学校的宿舍报修流程得到了显著优化,不仅增强了报修工作的时效性和透明度,还提高了维修工作的准确性和可追溯性。学生和维修人员均通过系统界面高效沟通,极大缓解了学生因报修带来的不便,并为宿舍管理人员提供了实时监控和统计分析的工具。总之,该系统的投入使用,对高校宿舍维修服务的提升具有重要的现实意义和深远的发展前景。


二.技术环境

jdk版本:1.8 及以上
ide工具:Eclipse或者 IDEA,微信小程序开发工具
数据库: mysql5.7 (必须5.7)
编程语言: Java
java框架:SpringBoot
maven: 3.6.1
详细技术:HTML+CSS+JAVA+SpringBoot+MYSQL+VUE+MAVEN+微信开发工具


三.功能设计

系统将分为用户,维修人员,管理员三种角色,用户与维修人员是小程序端,管理员是后台管理系统
具体功能设计说明如下所示:
(一)用户模块功能
1.注册登录:用户可注册自己的账号并登录,忘记密码功能
2.在线报修:用户选择维修项目,楼栋号,宿舍号,并对故障进行描述,可上传图片,然后提交
3.报修记录:用户可以查看自己提交的报修订单,实时显示维修进度,在审核未通过前可以修改信息,用户可对已完成的订单进行评价
4.投诉留言:留言板功能,显示所有用户的留言,用户可发表意见反馈,可上传图片(类似朋友圈)
5.通知公告:由管理员在后台发布通知
6.个人中心:可以修改个人信息和自己的密码,注销功能
(二)维修人员模块功能
1.维修接单:维修人员可接取后台已审核的订单
2.维修结果上报:维修人员到现场作业之后上报结果
3.个人中心:修改个人信息和密码
(三)管理员模块功能
1.通知公告管理:管理小程序内的通知信息,包括新增、删除、修改、查询
2.维修人员管理:管理维修人员的信息,包括维修人员的工号,账号,密码,手机号,维修人员无法注册自己的账号,由后台给定账号,对维修人员的增删改查,批量删除,模糊查询,分页查询
3.维修项目管理:管理故障项目,故障项目种类如:水龙头,门窗,空调等,对数据库数据的增删改查(同上)
4.楼栋管理:管理楼栋信息,包括添加楼栋,修改楼栋名,删除、批量删除楼栋
5.宿舍管理:管理宿舍信息,包括添加宿舍,修改宿舍号,删除、批量删除宿舍
6.投诉留言管理:管理用户在小程序内的留言,及时回复和改进
7.维修订单管理:管理维修订单,更改订单的状态(未审核-待接取-已接取-已维修-已完成),查看用户对该订单的评价
系统用例图如下所示:
在这里插入图片描述
在这里插入图片描述

程序上交给用户进行使用时,需要提供程序的操作流程图,这样便于用户容易理解程序的具体工作步骤,现如今程序的操作流程都有一个大致的标准,即先通过登录页面提交登录数据,通过程序验证正确之后,用户才能在程序功能操作区页面操作对应的功能。
在这里插入图片描述

四.数据设计

数据库概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。而且Mysql数据库是自我保护能力比较强的数据库,限于篇幅要求,仅列出关键部分实体属性图和E-R图,如下所述。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统总体E-R图如下所示:

在这里插入图片描述

五.部分效果展示

5.1学生微信端功能实现效果

登录界面,首先双击打开微信小程序端系统,连上网络之后会显示出本系统的登录界面,这是进入小程序的第初始页面“登录”,能成功进入到该登录界面则代表小程序的开启是成功的,接下来就可以操作本系统所带有的其他所有的功能,如图所示。
在这里插入图片描述

系统首页是用户注册登录后进入的第一个界面,用户可通过小程序端首页进入对应的页面或者通过小程序最下面的那一行导航栏中的“首页、宿舍信息、投诉留言、我的”进行详细操作,如图所示。

在这里插入图片描述

用户点击宿舍信息,在健康体检页面的输入栏宿舍编号、日期,进行搜索,还可以查看详细宿舍等信息。如有需要可以进行申请报修、收藏、评论等操作。如图所示。
在这里插入图片描述

在我的功能界面,用户点击“我的”进入我的页面,在我的页面可以对报修申请、维修派工单、接单信息、维修反馈、我的收藏、投诉留言、修改密码等进行详细操作,如图所示。
在这里插入图片描述

5.2管理员服务端功能实现效果

管理员登录进入高校报修求助平台小程序可以查看首页、维修工管理、用户管理、报修类型管理、宿舍信息管理、报修申请管理、维修派工单管理、接单信息管理、维修反馈管理、投诉留言、系统管理等信息。
在这里插入图片描述

宿舍信息管理模块的实现关注于三个主要问题:前端如何提交请求以管理宿舍信息、后端如何处理这些请求并与数据库交互以及操作结果如何展示给用户。为了解决这些挑战,前端选择了Vue框架,提供了一个灵活和响应式的用户界面来发起增删改查等请求。后端采用Springboot框架,简化了企业级应用的开发并优化了通信流程。数据传输和操作是通过集成了MyBatis的持久层框架和Axios的HTTP客户端来完成的,这是因为MyBatis提供了与SQL数据库交互的便利,并且Axios便于前端与后端之间的数据交换。这些技术的选择是为了确保系统的高效性能、良好的用户体验和后端逻辑的稳定性。
在这里插入图片描述
在设计报修申请管理模块时,面临的核心挑战包括如何处理数据查询与返回结果、用户角色权限的管理以及报修申请的审核与统计等功能。为了应对这些问题,采用了Springboot框架来构建后端接口,以简化开发流程和提升系统效率。通过接口设计,前端请求能够被有效地处理,并且根据参数执行相应的数据库操作。在权限管理方面,不同用户角色(如管理员与普通用户)的权限差异得到了严格限制,确保每个角色只能执行授权的操作。审核与统计功能的实现提供了对报修进度的追踪和维修资源的合理分配。整个解决方案的核心在于通过现代的前后端分离架构,使得系统更加模块化、可维护和安全。
在这里插入图片描述
维修派工单管理模块是一个关键的系统功能,它使管理员能够对维修工作进行有效监督和管理。在设计该模块时,我们主要考虑了权限管理、数据查询、分页与筛选以及数据校验和保存的问题。为了确保数据安全性和功能的合理性,我们通过获取管理员的用户名来区分用户和维修工的权限,仅展示对应角色相关的维修派工单信息。实现分页查询和条件筛选功能,确保管理员可以高效浏览并管理大量维修派工单。前后端数据的有效校验和安全保存也是我们设计过程中考虑的重要环节,以此来保证数据的准确性和系统的稳定运行。采用这些解决方案的原因是为了提高用户体验,确保操作的便捷性,并强化系统的稳定性和安全性。
在这里插入图片描述
维修反馈管理模块是软件系统中重要的组成部分,主要功能是对维修过程的反馈进行管理,确保信息准确和及时反馈。在实现这一模块时,面临了几个关键问题:必须确保不同角色能够看到他们应有权限的信息,即区分用户和维修工的数据可见性;由于维修反馈信息的量可能很大,所以需实现信息的分页展示以及模糊查询功能以提升用户体验;管理者还需要对这些信息执行编辑和删除操作。为了有效解决这些问题,采取了角色权限控制、分页与模犯查询的实现技术和数据操作的事务性控制。角色控制基于后端接口的权限判定,分页和查询则利用Mybatis-Plus的工具简化实现,而事务控制通过Spring的@Transactional注解来确保数据操作的安全性。这样的解决方案既考虑了系统的灵活性和扩展性,又确保了用户交互的便捷性。
在这里插入图片描述

部分功能代码

	/**
	 * 上传文件
	 */
	@RequestMapping("/upload")
    @IgnoreAuth
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
		    path = new File("");
		}
		File upload = new File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
		    upload.mkdirs();
		}
		String fileName = new Date().getTime()+"."+fileExt;
        if(StringUtils.isNotBlank(type) && type.contains("_template")) {
            fileName = type + "."+fileExt;
            new File(upload.getAbsolutePath()+"/"+fileName).deleteOnExit();
        }
		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}

	/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UsersEntity user = userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UsersEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UsersEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

源码及文档获取

文章下方名片联系我即可~
大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻

最新计算机毕业设计选题篇-选题推荐
小程序毕业设计精品项目案例-200套
Java毕业设计精品项目案例-200套
Python毕业设计精品项目案例-200套
大数据毕业设计精品项目案例-200套
💟💟如果大家有任何疑虑,欢迎在下方位置详细交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一点毕设

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值