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

💗博主介绍:✌全网粉丝15W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者,计算机毕设实战导师。目前专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌
💗主要服务内容免费功能设计、选题定题、开题报告、任务书、程序开发、论文编写和辅导、论文降重、程序讲解、答辩辅导等,欢迎咨询~
👇🏻 精彩专栏 推荐订阅👇🏻
计算机毕业设计精品项目案例(持续更新)
🌟文末获取源码+数据库+文档🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以和学长沟通,希望帮助更多的人

一.前言

在这里插入图片描述

传统宿舍报修方式存在上报流程繁杂、维修周期长、管理维护方式不规范等问题,学生对传统报修方式的满意度较低。而微信小程序具有占用内存小、开发成本低、操作便捷等优点,因此开发一款基于微信小程序的高校宿舍报修系统具有重要意义。该系统的设计与实现旨在简化宿舍报修流程,提高学生宿舍管理的效率和质量,改善学生居住环境,提升学校的管理水平和服务质量。

该宿舍报修系统采用当下流行的技术栈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) {
		YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", username));
		if(u==null || !u.getMima().equals(password)) {
			return R.error("账号或密码不正确");
		}
		
		String token = tokenService.generateToken(u.getId(), username,"yonghu",  "用户" );
		return R.ok().put("token", token);
	}
	/**
     * 注册
     */
	@IgnoreAuth
    @RequestMapping("/register")
    public R register(@RequestBody YonghuEntity yonghu){
    	//ValidatorUtils.validateEntity(yonghu);
    	YonghuEntity u = yonghuService.selectOne(new EntityWrapper<YonghuEntity>().eq("yonghuzhanghao", yonghu.getYonghuzhanghao()));
		if(u!=null) {
			return R.error("注册用户已存在");
		}
		Long uId = new Date().getTime();
		yonghu.setId(uId);
        yonghuService.insert(yonghu);
        return R.ok();
    }

为什么选择我们

大学毕业那年,曾经有幸协助指导老师做过毕业设计课题分类、论文初选(查看论文的格式)、代码刻录等打杂的事情,也帮助过同界N多同学完成过毕业设计工作,毕业后在一家互联网大厂工作8年,先后从事Java前后端开发、系统架构设计等方面的工作,有丰富的编程能力和水平,也在工作之余指导过别人完成过一些毕业设计的工作。2016年至今,团队已指导上万名学生顺利通过毕业答辩,目前是csdn特邀作者、CSDN全栈领域优质创作者,博客之星、掘金/华为云/B站/知乎等平台优质作者,计算机毕设实战导师,专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎咨询~✌

源码及文档获取

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

最新计算机毕业设计选题篇-选题推荐
小程序毕业设计精品项目案例-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、付费专栏及课程。

余额充值