springboot校园失物招领系统--附源码18156

摘  要

随着移动互联网技术的发展和智能手机的普及,微信小程序作为一种轻量级的应用形式,为用户提供便捷的服务体验。针对校园内失物招领信息管理分散、效率低下的问题,本文设计并实现了一款基于微信小程序的校园失物招领系统。

系统前端利用微信小程序开发工具进行界面设计,后端则选用基于Java的SpringBoot 框架进行开发,并结合MySQL数据库存储数据。在功能模块方面,系统主要包括失物招领信息发布、寻物启事信息搜索,失物信息查询、失物认领申请提交等功能。拾到物品的师生可以通过小程序快速发布失物信息;失主能够方便地查询相关信息并提交认领申请;管理员可在线审核并处理认领请求。此外,系统还提供地图功能,提高了物品找回的成功率。通过测试表明,该系统具有良好的用户体验和较高的运行效率,有效解决了传统失物招领方式中存在的诸多问题,为校园社区提供了更加高效、便捷的服务平台。

关键词:校园;失物招领系统;微信小程序

Abstract

With the development of mobile Internet technology and the popularity of smart phones, WeChat applet, as a lightweight application form, provides users with a convenient service experience. In response to the problem of scattered and inefficient management of lost and found information on campus, this article designs and implements a campus lost and found system based on WeChat mini program.

The front-end of the system uses WeChat mini program development tools for interface design, while the back-end is developed using the Java based SpringBoot framework and combined with MySQL database for data storage. In terms of functional modules, the system mainly includes functions such as publishing lost and found information, searching for lost and found notice information, querying lost and found information, and submitting lost and found claim applications. Teachers and students who have found items can quickly publish lost and found information through the mini program; The owner can easily search for relevant information and submit a claim application; Administrators can review and process claim requests online. In addition, the system also provides map functionality, which improves the success rate of item retrieval. Tests have shown that the system has a good user experience and high operational efficiency, effectively solving many problems in traditional lost and found methods and providing a more efficient and convenient service platform for campus communities.

Keywords:Campus; Lost and Found System; WeChat Mini Program

目  录

1 绪  论

1.1 项目背景

1.2 项目意义

1.3 国内外研究现状

1.4 研究内容

2 相关技术介绍

2.1 Java语言

2.2 MySQL

2.3 Spring Boot框架

2.4 微信小程序

3 系统分析

3.1 可行性分析

3.1.1 经济可行性

3.1.2 技术可行性

3.1.3 操作可行性

3.1.4 社会可行性

3.2 对功能的规定

3.2.1 功能概述

3.2.2 系统用例分析

3.2.3 数据流程图

3.3 其他专门要求

3.4 系统流程分析

3.4.1 程序操作流程

3.4.2 信息添加流程

3.4.3 信息删除流程

3.5 本章小结

4 系统总体设计

4.1 总体设计原则

4.2 系统功能模块设计

4.2.1 整体功能结构设计

4.2.2 系统用户模块设计

4.2.3 失物招领管理模块设计

4.3 数据库设计

4.3.1 E-R图

4.3.2 数据库表结构设计

4.4 本章小结

5 系统实现

5.1 用户端(注册用户)功能实现

5.1.1 用户注册界面

5.1.2 用户登录界面

5.1.3 首页界面

5.1.4 新闻资讯界面

5.1.5 我的界面

5.2 管理端功能模块

5.2.1系统用户界面

5.2.2失物类型管理界面

5.2.3失物招领管理界面

5.2.4认领信息管理界面

5.2.5寻物启事管理界面

5.2.6系统管理界面

5.2.7公告通知管理界面

5.2.8资源管理界面

6  系统测试

6.1  系统测试目的

6.2  功能测试用例

6.3  测试结果

7结束语

参考文献

致  谢

 

1    

1.1项目背景

在校园环境中,学生、教职工等人员在日常生活中经常会遇到丢失物品的情况,例如书本、钱包、手机、校园卡等。同时,也可能有人员捡到他人的失物,需要寻找失主归还。因此,校园失物招领的需求是普遍存在的。传统的失物招领方式,如布告栏、校园广播等,存在信息传播速度慢、覆盖面有限、更新不及时等问题。这些局限性使得失物招领的效率低下,失主和捡拾者往往难以快速匹配。

随着移动互联网和智能手机技术的普及,以及微信小程序平台的不断成熟和完善,开发基于微信小程序的校园失物招领系统已经成为可能。此外,校园内的网络技术、终端设备以及用户群体等条件也为该系统的实施提供了有力支持。微信小程序作为一种新兴的移动互联网应用形态,具有便捷性、即用即走、低成本等特点。它可以快速开发、部署和推广,能够覆盖大量用户,且用户无需下载安装即可使用。因此,利用微信小程序开发基于微信小程序的校园失物招领系统具有显著的优势。

1.2项目意义

在信息化快速发展的今天,校园失物招领问题已经成为各个学校亟待解决的问题。传统的失物招领方式由于宣传力度不够、信息反馈不及时等问题,导致失物找回的成功率较低。因此,开发一种基于微信小程序的校园失物招领系统具有重要的现实意义。

首先,可以解决校园失物招领问题,降低同学们的损失。传统的校园失物招领方式存在诸多问题,如宣传力度不够、信息反馈不及时等。而微信小程序具有广泛的用户基础和便捷的信息传播方式,可以将失物信息快速传递给校园内的师生,提高失物找回的成功率。

其次,可以提高管理水平,推动校园信息化建设。将微信小程序应用于校园失物招领系统中,不仅可以解决失物招领问题,还可以提高校园的整体管理水平。通过信息化手段解决校园内的问题,可以推动校园信息化建设,为同学们提供更加便捷、高效的服务。

最后,有助于培养同学们的社会责任感和意识。通过使用微信小程序进行失物招领,可以让同学们更加关注校园内的公共事务,培养他们的社会责任感和团队合作意识同时,同学们在帮助他人找回失物的过程中,也可以增强彼此之间的友谊和信任。

1.3国内外研究现状

在国外,失物招领管理系统的研究和应用已经取得了较为成熟的发展。很多国家的公共场所、交通系统以及大型活动场合都采用了高度信息化的失物招领系统。例如,在欧美的一些高校、机场和火车站等场所,普遍采用基于物联网和云计算技术的失物管理平台。这类系统集成了RFID(无线射频识别)、GPS定位等技术,不仅能够实时追踪失物,还可以通过数据分析预测失物丢失的高发区域,进而优化管理措施。此外,国外的失物招领系统往往具有更广泛的集成性,能够与社交媒体、电子邮件和移动应用程序相结合,使失主和拾物者之间的信息交互更加便捷,提升了找回失物的效率。

国内的失物招领管理系统起步相对较晚,但近年来随着信息技术的快速发展,也逐渐得到了广泛的应用。许多高校和公共场所开始开发和推广基于Web或移动端的失物招领系统。这类系统主要通过用户的自主发布和查询实现失物和拾物信息的快速对接。目前,国内大部分的失物招领系统功能相对基础,多集中于信息的发布、查询和简单的交流互动。相比于国外,国内的系统在智能化、数据分析和多平台集成方面仍有一定差距。例如,一些高校虽然开发了失物招领平台,但系统功能较为单一,用户体验和数据管理的便捷性有待进一步提升。

然而,随着大数据和物联网技术的应用,国内的失物招领系统正逐步朝着智能化方向发展。例如,一些大型综合性高校已经在尝试结合人脸识别和RFID技术,来提升失物的识别和管理效率。此外,基于微信小程序、支付宝等移动端平台的失物招领功能,也为系统的普及带来了更广阔的应用前景。

总的来说,国外的失物招领管理系统在技术应用和功能完善度上相对成熟,尤其在智能化和集成化方面走在前列。而国内系统则正在快速发展,并逐渐向智能化方向迈进,虽然起步较晚,但随着信息技术的普及和用户需求的提升,国内的失物招领管理系统有着巨大的发展潜力。通过借鉴国外的先进经验并结合国内实际需求,未来国内的失物招领系统将在功能多样性、智能化处理和用户体验方面得到更大提升。

1.4研究内容

1.需求分析:通过问卷调查、随机访谈等方式了解学生和教职工在失物招领方面的具体需求,如信息发布、物品查找等功能,并结合在图书馆或者网上查找与系统相关的资料,对系统进行需求分析,根据需求分析结果,明确系统的各项功能需求,包括但不限于用户注册与登录、失物信息录入、失物信息查询、失物认领申请、管理员审核等。

2.技术架构选择:系统前端采用基于微信小程序开发工具和技术栈(如WXML、WXSS、JavaScript)进行界面设计和交互逻辑实现。后端采用基于Java的Spring Boot框架实现业务逻辑层和数据访问层,采用MySQL存储和管理系统数据。

3.数据库设计:针对系的功能需求,设计合理的数据库表结构,包括用户表、失物认领表、评论表等。通过合理的数据设计,提高数据存储和查询效率。

4.系统界面设计:从用户需求出发,设计一个简洁友好且易于操作的系统界面,以提升用户体验。

5.数据管理和隐私保护:对敏感信息进行加密处理,防止数据泄露,保障用户信息安全。不同的用户角色设置不同级别的访问权限,确保只有授权人员可以查看或修改特定的数据。

6.系统实现:完成各个功能模块的开发及具体编程实现,将设计结果转化为计算机可运行的程序。

7.系统测试与完善:结合实际对系统的运行进行测试分析,如果发现系统有存在的问题将对问题进行分析并解决问题,确保系统的正常运行。

2  相关技术介绍

2.1Java语言

在本研究中,Java语言是构建基于微信小程序的校园失物招领系统的核心技术之一。主要使用Java语言开发后端系统,采用Spring Boot框架来实现业务逻辑和数据交互。Spring Boot简化了配置和开发过程,提供了一套开箱即用的解决方案,能够专注于业务功能的实现。同时,Java的多线程和并发处理能力,使平台能够高效处理大量用户请求和并发交易,保证系统的稳定性和响应速度。此外,Java语言的跨平台特性和丰富的类库支持,使得系统具有良好的可移植性和可扩展性,能够适应不同的操作环境和业务需求。总之,Java语言在本系统中的应用,为实现一个高效、安全、稳定的基于微信小程序的校园失物招领系统提供了坚实的技术基础。

2.2MySQL

MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在基于微信小程序的校园失物招领系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。

2.3Spring Boot框架

在本研究中,Spring Boot框架被用于开发基于微信小程序的校园失物招领系统的后端系统。Spring Boot是基于Spring框架的一款快速开发工具,提供了简化的配置和自动化的设置,极大地提高了开发效率。它通过"约定优于配置"的理念,减少了人员的配置工作,使得项目能够快速启动和运行。Spring Boot内置了嵌入式服务器(如Tomcat),无需进行复杂的服务器配置即可运行项目。此外,Spring Boot还支持微服务架构,方便系统的模块化开发和部署,提高了系统的可扩展性和维护性。通过Spring Boot能够快速构建出一个高效、稳定且具备良好扩展性的后端系统,满足基于微信小程序的校园失物招领系统的复杂需求。

2.4微信小程序

微信小程序框架是一套基于微信平台的开发框架,用于构建和开发微信小程序应用。它提供了一系列的开发工具、组件库和接口,帮助开发者快速搭建小程序的前端界面和逻辑。

微信小程序框架采用了类似于Web开发的技术栈,主要使用HTML、CSS和JavaScript来构建页面和处理业务逻辑。开发者可以通过编写WXML(微信小程序的模板语言)、WXSS(微信小程序的样式表语言)和JS文件来实现小程序的界面展示和功能实现。

微信小程序框架提供了丰富的组件库,包括基础组件(如按钮、图标、滚动视图等)和扩展组件(如地图、视频播放器、音频播放器等),使开发者能够快速构建出各种复杂的小程序界面。

此外,微信小程序框架还提供了丰富的API接口,用于访问微信平台的各种功能和服务,如用户信息、支付、地理位置等。开发者可以通过调用这些API接口来实现小程序的各种功能和交互。

微信小程序框架还支持模块化开发和组件化开发的思想,使得开发者可以将小程序拆分成多个模块和组件,提高代码的可维护性和复用性。

3  系统分析

系统分析是项目开发的前提,旨在明确用户基本需求并确定开发的必要性。通过可行性分析(涵盖技术、经济等方面)评估项目整体的可行性。具体需求则通过用户用例图进行详细分析。

3.1可行性分析

3.1.1经济可行性

采用Spring Boot+微信小程序技术栈进行开发,可以在现有资源的基础上实现系统,避免了大规模的基础设施投资。系统的维护和升级成本相对较低,因为这些技术都是开源的,且社区活跃,可以获得大量的技术支持和更新。因此,从经济角度分析是可行的。

3.1.2技术可行性

Spring Boot是一个强大的Java开发框架,提供了快速构建Spring应用程序的途径。其自动配置、嵌入式Web服务器等特点使其成为开发高效、可靠和可扩展应用程序的理想选择。小程序作为一种轻量级的应用程序,具有无需下载、安装即可使用的优点,能够降低用户使用门槛,方便快速推广。上述技术的组合已在实际项目中得到验证,且都有完善的社区支持和丰富的资源库,为系统的开发提供了良好的技术基础。因此,从技术层面分析是可行的。

3.1.3操作可行性

Spring Boot的简洁性和高度集成的特点使得系统的部署和运行相对简单,容易维护和管理。此外,用户无需像传统应用那样下载和安装,只需通过微信平台即可直接访问系统,这大大降低了用户的使用门槛,并提高了系统的可用性和便利性。因此,从操作层面来说是可行的。

3.1.4社会可行性

基于微信小程序的校园失物招领系统具有广泛的用户基础和社会认可度。微信作为社交媒体平台的代表之一,拥有庞大的用户群体和高度的用户黏性。通过微信小程序开发的基于微信小程序的校园失物招领系统可以充分利用微信的社交属性,实现信息的快速传播和共享,提高失物招领的效率和质量。因此,从社会角度分析是可行的。

综合来看,基于微信小程序的校园失物招领系统设计与实现在经济、技术、操作、市社会等方面都具有较高的可行性。

3.2对功能的规定

3.2.1功能概述

本系统可以分为用户端(注册用户)和管理端(管理员)这两大功能模块,各模块功能说明如下:

1.注册用户功能说明

(1)注册登录:游客可以通过注册成为系统用户,注册后可以使用个人的账号密码可进行登录系统前台,使用系统功能。

(2)首页:用户通过首页可以查看系统轮播图、网站公告、新闻资讯、寻物启事、失物招领等信息。例如,点击“失物招领”进入页面可以查看失物招领列表中某个失物信息的详情并可以进行点赞、收藏、认领、评论、分享和评论操作。

(3)新闻资讯:用户可以查看管理员发布的新闻资讯信息,点击某个资讯可以进入详情页面查看该资讯的详细信息并可以进行点赞、收藏和评论。

(4)我的:用户点击首页正下方的“我的”进入页面可以查看和管理基本信息、收藏、失物招领、认领信息和寻物启事信息。例如,点击“基本信息”进入页面可以修改个人信息和登录密码;点击“收藏”可以查看或删除收藏列表信息。

2管理员功能说明

(1)登录:管理员可以通过账号密码登录后台。

(2)后台首页:管理员可以查看后台首页展示的相关内容。

(3)系统用户:管理员拥有对所有系统用户(管理员、注册用户)的账号进行全面操作管控的权限。通过用户姓名这一关键信息,管理员可以轻松地实现用户的增加、删除、修改及查询操作。

(4)失物类型管理:管理员点击“失物类型列表”可以查看列表中某个类型的详情,可以对列表信息进行查询、重置和删除操作。点击“失物类型添加”进入页面填写类型名称后点击“提交”即可完成失物类型信息的添加。

(5)失物招领管理:管理员点击“失物招领列表”可以查看列表中某个失物招领的详情和评论,并对用户提交的失物招领信息进行审核;管理员对失物招领信息进行增删改查操作。

(6)失物认领管理:管理员点击“认领信息列表”可以查看列表中某个认领信息的详情并进行审核和回复,可以对列表信息进行查询、重置和删除操作。支持通过输入物品名称、选择物品类型和审核状态查询认领信息。

(7)寻物启事管理:管理员点击“寻物启事列表”可以查看列表中某个寻物启事信息的详情并进行审核和回复,管理员可以对寻物启事信息进行增删改查操作。

(8)系统管理:管理员负责轮播图信息的管理和维护,包括查看特定轮播图的详细信息、查询轮播图记录、重置内容、添加新轮播图以及删除现有轮播图。

(9)公告通知管理:公告通知管理界面供管理员创建、编辑、发布和删除通知公告,确保能及时向用户传达重要信息、公告、更新或事件等内容。

(10)资源管理:在该界面,管理员可以对最新资讯及其分类信息进行增删改查操作。例如,点击“新闻资讯”进入页面后,管理员可以通过点击某条资讯后的“详情”按钮查看该资讯的具体内容,或通过“查看评论”按钮浏览用户对该资讯的评论。

(11)我的:管理员点击我的头像下方的“个人信息”可以修改个人基本信息;点击“修改密码”可以修改登录密码,密码修改后可以使用新密码登录系统;点击“网站首页”可以查看网站首页信息;点击“退出”即可退出系统登录。

3.2.2系统用例分析

基于微信小程序的校园失物招领系统的设计与实现的完整UML用例图分别是图3.1和图3.2。

注册用户角色的用例图如下图2.1所示。

图3.1注册用户用例图

管理员用例图如下图3.2所示。

图3.2管理员用例图

3.2.3数据流程图

系统数据流图更加关注的是系统中数据的实际流动和处理,它能够清晰地展示出数据的规模和特征,因此,它在系统结构化分析中扮演着至关重要的角色,受到广泛的认可。

基于微信小程序的校园失物招领系统的顶层数据流如下图3.3所示。

图3.3系统顶层数据流图

在系统的顶层,用户作为外部实体,第一步就是进行登录验证。用户信息表会返回一个密码,如果它是正确的,就会登录系统;如果是错误的,就会收到反馈信息。登录完成后,根据用户的不同需求,可以进行读写数据库。

系统底层数据流如下图3.4所示。

图3.4 系统底层数据流图

系统的基础架构由管理员和用户组成,他们之间的数据流动可以通过数据表的形式进行,这些数据表可以提供必要的信息,以便进行复杂的逻辑操作。

3.3其他专门要求

性能需求:系统需确保快速响应和高吞吐量,以支持大量用户同时访问,即使在高峰时段也能保持流畅的操作体验,避免因延迟或卡顿影响用户体验。

可用性:安系统必须具备高可用性,采用冗余部署、负载均衡等策略,确保即使部分组件故障也能迅速恢复服务,减少服务中断时间,保障用户业务的连续性。

安全性:鉴于系统处理用户敏感信息,如个人信息等,必须实施严格的安全措施,包括数据加密、访问控制、防攻击机制等,以保护用户数据免受未授权访问或泄露。

可维护性:系统设计应注重可维护性,采用模块化、标准化的架构,提供详尽的开发文档和用户手册,确保系统易于理解和维护,降低长期运维成本。

可扩展性:随着业务的发展,系统可能需要扩展功能或提升性能。因此,系统需具备灵活的可扩展性,能够轻松添加新模块、优化性能,以应对未来增长的需求。

易用性:用户界面应直观易用,符合用户习惯,提供清晰的导航和友好的操作反馈,帮助用户快速上手并高效完成任务,提升整体用户满意度。

3.4系统流程分析

3.4.1程序操作流程

用户访问系统,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图3.1所示。

图3.5程序操作流程图

3.4.2信息添加流程

用户访问系统,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

管理员可以对用户信息、失物类型等进行信息的添加,用户可以对自己权限内的信息进行添加,输入信息后,系统会自行验证输入的信息和数据,若信息正确,会将其添加到数据库内,若信息有误,则会提示重新输入信息,添加信息流程如下图3.2所示。

图3.6信息添加流程图

3.4.3信息删除流程

管理员可以对用户信息、轮播图信息、公告通知信息等进行信息的删除,对要删除的信息进行选中后,点击删除按钮,系统会询问是否确定,若点击确定,则系统会删除掉选中的信息,并在数据库内对信息进行删除,删除信息流程图如写=下图3.3所示。

图3.7信息删除流程图

3.5本章小结

本章主要通过对基于微信小程序的校园失物招领系统的可行性分析、功能需求分析、用例分类、系统性能分析、流程分析,确定整个基于微信小程序的校园失物招领系统要实现的功能。同时也为基于微信小程序的校园失物招领系统的代码实现和测试提供了标准。

4  系统总体设计

系统总体设计主要包括设计原则、功能模块设计、数据库设计等方面。总体设计的目标是实现一个稳定、安全、高效的系统,满足用户的需求。

4.1总体设计原则

一个系统要在开发和维护的过程中方便使用,必须采取一定的设计原则,其主要设计原则有:

简单性:系统功能简单易懂,用户只需要掌握基本的智能手机/计算机操作能力即可使用。

针对性:针对特定的用户,没有多余的其他功能,使用户可以专心使用。

实用性:能够满足用户查看失物招领信息、发布寻物启事、提交失物认领等方面的需求。

先进性:本系统的代码采用读取数据的方式,方便后续开发、拓展。

4.2系统功能模块设计

4.2.1整体功能结构设计

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。基于微信小程序的校园失物招领系统由多个功能模块组成,每个模块下又包含具体的功能操作。系统整体功能结构图如下图所示。

图4.1系统整体功能结构图

4.2.2系统用户模块设计

用户模块是系统中一个重要的功能模块,它涉及用户的注册、登录、个人信息管理等操作。在用户模块设计中,我们将定义用户数据的结构和属性,包括用户名、密码、邮箱等。同时,还需要实现用户注册、登录、修改密码等功能,并对用户输入进行验证和处理。用户模块的结构图如下图所示。如下图:

图4.2系统用户模块结构图

4.2.3失物招领管理模块设计

失物招领管理模块是本系统中的重要功能之一。该模块的设计旨在提供对失物招领信息的发布、编辑、删除和查看等管理功能,以便及时、准确地向用户发布相关的失物招领信息。其模块功能结构,具体的结构图如下:

图4.3失物招领管理模块结构图

4.3数据库设计

4.3.1E-R图

E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。根据前文可以得出本基于微信小程序的校园失物招领系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.4总E-R图

4.3.2 数据库表结构设计

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。

表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

文章描述

表claim_information (认领信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

claim_information_id

int

10

0

N

Y

认领信息ID

2

item_name

varchar

64

0

Y

N

物品名称

3

type_of_item

varchar

64

0

Y

N

物品类型

4

pick_up_location

varchar

64

0

Y

N

捡取地点

5

publish_user

int

10

0

Y

N

0

发布用户

6

claim_user

int

10

0

Y

N

0

认领用户

7

application_time

datetime

19

0

Y

N

申请时间

8

reason_for_claiming

varchar

64

0

Y

N

认领原因

9

remarks_details

text

65535

0

Y

N

备注详情

10

examine_state

varchar

16

0

N

N

未审核

审核状态

11

examine_reply

varchar

16

0

Y

N

审核回复

12

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

13

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

14

source_table

varchar

255

0

Y

N

来源表

15

source_id

int

10

0

Y

N

来源ID

16

source_user_id

int

10

0

Y

N

来源用户

表lost_and_found (失物招领)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

lost_and_found_id

int

10

0

N

Y

失物招领ID

2

item_name

varchar

64

0

Y

N

物品名称

3

type_of_item

varchar

64

0

Y

N

物品类型

4

item_pictures

varchar

255

0

Y

N

物品图片

5

pick_up_location

varchar

64

0

Y

N

捡取地点

6

publish_user

int

10

0

Y

N

0

发布用户

7

pick_up_time

datetime

19

0

Y

N

捡取时间

8

contact_information

varchar

64

0

Y

N

联系方式

9

recruitment_details

longtext

2147483647

0

Y

N

招领详情

10

praise_len

int

10

0

N

N

0

点赞数

11

examine_state

varchar

16

0

N

N

未审核

审核状态

12

examine_reply

varchar

16

0

Y

N

审核回复

13

claim_information_limit_times

int

10

0

N

N

0

认领限制次数

14

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表registered_user (注册用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

registered_user_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_information

varchar

64

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

更新时间

表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

更新时间:

4.4本章小结

整个基于微信小程序的校园失物招领系统的设计主要对系统功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。

5  系统实现

基于微信小程序的校园失物招领系统的实现主要是根据前面的系统需求分析和系统总体设计来设计页面并实现业务逻辑。主要从基于微信小程序的校园失物招领系统界面实现、业务逻辑实现这两部分进行介绍。

5.1用户端(注册用户)功能实现

5.1.1  用户注册界面

用户注册界面用于新用户进行账号注册,输入账号、密码、确认密码、昵称、邮箱、身份、用户姓名、联系方式等用户个人信息后点击“立即注册”按钮进行注册。其界面如下图5.1所示。

图5.1用户注册界面设计

5.1.2用户登录界面

用户登录界面用于已注册用户进行账号登录,输入用户名跟密码点击登录按钮,验证通过后即可登录。其界面如下图5.2所示。

图5.2用户登录界面设计

登录代码如下:

/**

     * 登录

     * @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.1.3首页界面

用户通过首页可以查看系统轮播图、公告通知、新闻资讯、寻物启事、失物招领等信息。例如点击“网站公告”进入页面可以查看系统发布的相关公告信息。其界面如下图5.3所示。

图5.3首页界面设计

点击“失物招领”进入页面可以查看失物招领列表中某个失物信息的详情并可以进行点赞、收藏、认领、评论、分享和评论操作,点击详情下方的“认领”进入页面填写认领原因后点击“提交”即可完成认领申请的提交,同时还提供地图服务功能。其界面如下图5.4所示。

图5.4失物招领界面设计

点击“寻物启事”进入页面可以查看寻物启事列表中某个寻物启事的详情信息并可以点赞、收藏、评论和分享,点击详情下方的“分享”可以通过微信、支付宝等方式进行转发。其界面如下图5.5所示。

图5.5寻物启事界面设计

5.1.4新闻资讯界面

用户点击首页正下方的“新闻资讯”进入页面可以查看管理员发布的新闻资讯信息,点击某个资讯可以进入详情页面查看该资讯的详细信息并可以进行点赞、收藏和评论。其界面如下图5.6所示。

图5.6新闻资讯界面设计

5.1.5我的界面

用户点击首页正下方的“我的”进入页面可以查看和管理基本信息、收藏、失物招领、认领信息和寻物启事信息。例如,点击“基本信息”进入页面可以修改个人信息和登录密码;点击“收藏”可以查看或删除收藏列表信息;可以对失物招领、寻物启事信息进行增删改查操作。其界面图如下图5.7所示。

图5.7我的界面设计

5.2管理端功能模块

5.2.1系统用户界面

管理员拥有对所有系统用户(管理员、注册用户)的账号进行全面操作管控的权限。通过用户姓名这一关键信息,管理员可以轻松地实现用户的增加、删除、修改及查询操作。其界面图如下图5.8所示。

图5.8系统用户界面设计

查询的代码如下:

    @RequestMapping("/get_obj")

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

        List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));

        if (resultList.size() > 0) {

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("obj",resultList.get(0));

            return success(jsonObject);

        } else {

            return success(null);

        }

    }

5.2.2失物类型管理界面

管理员点击“失物类型列表”可以查看列表中某个类型的详情,可以对列表信息进行查询、重置和删除操作。点击“失物类型添加”进入页面填写类型名称后点击“提交”即可完成失物类型信息的添加。其界面图如下图5.9所示。

图5.9失物类型管理界面设计

添加信息的代码如下:

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

 }

5.2.3失物招领管理界面

管理员点击“失物招领列表”可以查看列表中某个失物招领的详情和评论,并对用户提交的失物招领信息进行审核,可以对列表信息进行查询、重置和删除操作。点击“失物招领添加”进入页面填写物品名称、物品类型、捡取地点等信息后点击“提交”即可完成失物招领信息的添加。其界面图如下图5.10所示。

图5.10失物招领管理界面设计

5.2.4认领信息管理界面

管理员点击“认领信息列表”可以查看列表中某个认领信息的详情并进行审核和回复,可以对列表信息进行查询、重置和删除操作。支持通过输入物品名称、选择物品类型和审核状态查询认领信息。其界面图如下图5.11所示。

图5.11认领信息管理界面设计

5.2.5寻物启事管理界面

管理员点击“寻物启事列表”可以查看列表中某个寻物启事信息的详情并进行审核和回复,管理员可以对寻物启事信息进行增删改查操作。其界面图如下图5.12所示。

图5.12寻物启事管理界面图

删除的代码如下:

  @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.2.6系统管理界面

管理员负责轮播图信息的管理和维护,包括查看特定轮播图的详细信息、查询轮播图记录、重置内容、添加新轮播图以及删除现有轮播图。其界面图如下图5.13所示。

图5.13系统管理界面图

图片/文件上传的代码如下:

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

    }

5.2.7公告通知管理界面

公告通知管理界面供管理员创建、编辑、发布和删除通知公告,确保能及时向用户传达重要信息、公告、更新或事件等内容。通过该界面,管理员可以高效地管理所有公告通知,保证信息传递的准确性和时效性。其界面图如下图5.14所示。

图5.14公告通知管理界面图

5.2.8资源管理界面

在该界面,管理员可以对最新资讯及其分类信息进行增删改查操作。例如,点击“新闻资讯”进入页面后,管理员可以通过点击某条资讯后的“详情”按钮查看该资讯的具体内容,或通过“查看评论”按钮浏览用户对该资讯的评论。其界面图如下图5.15所示。

图5.15资源管理界面图

6  系统测试

6.1  系统测试目的

基于微信小程序的校园失物招领系统测试旨在确保功能正常、性能稳定和安全可靠,验证各项功能符合需求规格,检查易用性和用户体验,评估响应时间和并发能力以保证高负载下的正常运行,并通过安全测试防范各类威胁,从而全面保障系统的稳定性、可靠性和安全性。

6.2  功能测试用例

系统测试旨在检验系统功能是否正常工作。通过功能测试用例的执行,可以有效评估系统功能的正确性、完整性和稳定性,帮助发现和解决潜在的功能缺陷,确保系统能够按照预期功能正常运行。功能测试用例包括用户注册、用户登录、失物招领录入、失物认领提交、失物认领申请审核。

测试用例编号

功能模块

测试用例描述

预期结果

TC001

用户注册

输入有效的用户名、密码、邮箱和角色信息

注册成功,用户账户创建成功

TC002

用户注册

输入已有用户名

注册失败,提示用户名已存在

表6-1 注册功能测试用例

测试用例编号

功能模块

测试用例描述

预期结果

TC003

用户登录

输入正确的用户名和密码

登录成功,进入首页

TC004

用户登录

输入错误的用户名或密码

登录失败,提示用户名或密码错误

TC005

用户登录

输入注册邮箱,使用忘记密码功能

提示发送重置密码链接到邮箱

表6-2 登录功能测试用例

测试用例编号

功能模块

测试用例描述

预期结果

TC006

失物招领录入

管理员填写完整的失物招领信息录入

失物招领录入成功,由管理员审核通过后展示在用户端失物招领界面

TC007

失物招领录入

管理员录入失物招领时缺少必要信息

失物招领录入失败,提示补充必要信息

表6-3 失物招领录入功能测试用例

测试用例编号

功能模块

测试用例描述

预期结果

TC008

失物认领申请

注册用户选择某个失物并填写失物认领信息

申请提交成功,生成失物认领记录

TC009

失物认领提交

注册用户提交失物认领时缺少必要信息

失物认领提交失败,提示补充失物认领信息

表6-4 失物认领提交功能测试用例

测试用例编号

功能模块

测试用例描述

预期结果

TC010

失物认领审核

管理员查看失物认领详情并进行审核

审核成功,失物认领状态更新为已审核

TC011

失物认领审核

管理员查看申请详情并拒绝失物认领申请

审核成功,失物认领状态更新为已拒绝

表6-5 失物认领审核功能测试用例

6.3  测试结果

在本次测试中,主要对用户注册、用户登录、失物招领录入、失物认领提交、失物认领申请审核功能进行了详细测试。测试结果显示,用户注册功能有效信息可成功创建账户;已有用户名则提示冲突。用户登录功能在输入正确凭据时能成功登录,在输入错误凭据时会提示错误信息。失物招领录入功能在填写完整信息时能够成功录入失物招领信息,而在缺少必要信息时则提示补充信息。失物认领申请功能能够生成记录。失物认领申请审核功能能正确更新申请状态。总体而言,所有测试用例均达到预期效果,系统功能表现稳定。

7结束语

通过本文的研究和实践,成功地基于微信小程序框架设计并实现了一个基于微信小程序的校园失物招领系统。该系统具有稳定、高效、可靠的特点,通过合理的功能模块设计和前后端分离的架构,提供了良好的用户体验。在系统测试中,验证了系统的稳定性和功能完整性,表明基于微信小程序在快速开发和高质量软件构建方面具有显著优势。

本文的研究结果显示,利用微信小程序可以快速构建一个高效且可靠的校园失物招领系统。该系统通过精心设计的功能模块和优化的用户体验,为师生提供了便捷的失物招领发表、查看和认领服务,显著提升了校园内物品丢失问题的解决效率。同时,微信小程序的轻量化特性简化了系统的开发和维护流程,降低了技术门槛,使得系统能够迅速响应并适应校园需求的变化。然而,本研究在某些方面仍有改进空间。例如,在系统安全性和性能优化上的考量尚不够深入,这可能影响到长期使用的稳定性和数据保护。未来的研究应着重于以下几点:

增强系统安全性:加强用户身份验证机制,确保个人信息和失物信息的安全;引入加密技术和访问控制策略,防止未授权访问。

优化系统性能:针对高并发场景进行压力测试,优化数据库查询和页面加载速度,保证系统在高峰期也能流畅运行。

丰富功能特性:考虑增加通知提醒、智能匹配等功能,提高失物找回的成功率;引入评价反馈系统,持续改善用户体验。

探索新技术应用:结合图像识别、自然语言处理等AI技术,实现自动分类和描述生成,进一步简化用户操作步骤;研究区块链技术的应用潜力,以提升数据透明度和不可篡改性。

综上所述,基于微信小程序的校园失物招领系统不仅提供了一种创新的服务模式,也为未来的优化和发展指明了方向。通过不断的技术革新和完善,该系统有望成为校园管理和服务的重要组成部分,有效促进校园生活的和谐与便利。

参考文献

[1]梁微,钱彤,范鑫.高校失物招领平台搭建及其效果——以西南财经大学为例[J].高校后勤研究,2024,(S1):123-125.

[2]李静,常齐月.基于微信小程序的校园互助平台设计[J].软件,2023,44(06):104-106+143.

[3]张志云.基于微信小程序的校园服务平台设计与应用[J].信息与电脑(理论版),2023,35(09):143-145.

[4]秦彬,李冰,樊续徳,等.校园失物招领小程序的设计与开发[J].无线互联科技,2022,19(20):84-88.

[5]张守涵.基于OCR技术的智能招领系统研究与应用[D].西安电子科技大学,2022.DOI:10.27389/d.cnki.gxadu.2022.003236.

[6]朱志慧,蔡洁.基于SpringBoot+Vue+Uni-app框架的校园失物招领系统[J].电子技术与软件工程,2022,(17):62-65.

[7]张杨帆,郝钰鑫,李隐峰,等.基于图像识别的失物招领微信小程序设计[J].电子科技,2022,35(10):33-38.

[8]弋改珍.校园失物招领微信小程序的设计与开发[J].福建电脑,2021,37(11):104-106.

[9]宋龙生,倪胜巧.校园失物招领微信小程序的设计与实现[J].计算机时代,2021,(10):86-89.

[10]魏域蔚,员文莉,韩嘉炜,等.“一物寻一物”——用于失物招领的图像匹配功能的实现[J].电子制作,2021,(12):40-41+86.

[11]王庆月,吴宇,张天宝.基于微信小程序的失物招领系统开发[J].电子质量,2020,(10):66-70.

[12]康耀龙,张景安,冯丽露.校园失物招领APP的设计与开发[J].电子技术与软件

工程,2020,(17):73-74.

[13]巩小芳,李敏,高万福.基于微信小程序的校园失物招领平台的设计与实现——以甘肃农业大学失物招领平台为例[J].农家参谋,2020,(04):285.

[14]李泳.Spring Boot开发与测试实战[M].人民邮电出版社:202211.435.

[15]朱金波.Java编程语言在计算机软件开发中的应用优势分析[J].信息记录材料,2023,24(05):68-70.

[16]王希,戴靓婕.MySQL数据库技术在Web动态网页设计中的运用研究[J].软件,2024,45(07):77-79.

[17]刘天元,夏明.微信小程序开发与运用[J].电子世界,2021,(23):206-207.

[18]Chen H ,Li H ,Sun X , et al.Innovation of University Management Model under the Background of Intelligent Campus Platform Services[J].Contemporary Education and Teaching Research,2024,5(02):

[19]Chaoman X .Construction of Smart Campus Cloud Service Platform Based on Big Data Computer System[J].Procedia Computer Science,2022,208583-589.

[20]Weigang F .Application Analysis of One-stop Service Platform for Smart Campus of Mobile Terminal[J].Journal of Physics: Conference Series,2021,2037(1):

致  谢

这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,

其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。

最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。

再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值