目 录
警务工作面临着诸多挑战,如信息获取不及时、应急反应不迅速、安全防范措施不到位等。这些问题严重影响了警务工作效率,甚至可能危及人民群众的生命财产安全。随着科技的飞速发展,移动互联网的普及,人们对移动终端的依赖性也越来越强。在警务工作中,如何运用科技手段提高安全防范和应急救援效率,成为了一个亟待解决的问题。为此,本文提出来一种基于小程序的警务安全防范与应急救援指南系统,开发此系统旨在通过科技手段,为警务工作人员提供便捷、高效、实时的安全防范与应急救援信息,提高警务工作效率,保障人民群众的生命财产安全。
本系统主要分为小程序用户端和后台管理端两大模块。前端采用VUE.JS构建用户界面并实现交互逻辑,采用微信小程序作为前端展示界面。用户端包括注册用户和救援人员这两个用户角色,实现了安全知识、应急救助、应急装备、天气预报、新闻资讯查看等功能。后台管理端采用Django框架处理业务逻辑和数据存储,实现了用户管理、安全知识管理、紧急求助管理、任务派遣管理等核心功能。
关键词:警务工作、应急救援;小程序
Abstract
Police work faces many challenges, such as untimely information acquisition, slow emergency response, and inadequate security measures. These issues seriously affect the efficiency of police work and may even endanger the safety of people's lives and property. With the rapid development of technology and the popularization of mobile Internet, people are increasingly dependent on mobile terminals. In police work, how to use technological means to improve safety precautions and emergency rescue efficiency has become an urgent problem to be solved. Therefore, this article proposes a police security prevention and emergency rescue guide system based on mini programs. The development of this system aims to provide convenient, efficient, and real-time security prevention and emergency rescue information for police personnel through technological means, improve the efficiency of police work, and ensure the safety of people's lives and property.
This system is mainly divided into two modules: the mini program user end and the backend management end. The front-end adopts VUE JS builds a user interface and implements interactive logic, using WeChat mini programs as the front-end display interface. The user end includes two user roles: registered user and rescue personnel, achieving functions such as safety knowledge, emergency rescue, emergency equipment, weather forecast, and news information viewing. The backend management end adopts the Django framework to handle business logic and data storage, achieving core functions such as user management, security knowledge management, emergency assistance management, and task dispatch management.
Keywords: Police work and emergency rescue; Mini Program
1 绪论
1.1 研究背景
随着社会的快速发展和人口密度的增加,各种突发事件如自然灾害、公共安全事件等频繁发生,对人民生命财产安全构成了严重威胁。因此,建立一个高效、快速响应的警务安全防范与应急救援系统显得尤为重要。
随着移动互联网的普及和智能手机使用的广泛,小程序作为一种轻量级应用,因其无需安装、不占内存、即用即走的特点,逐渐成为了用户获取服务和信息的重要途径。警务安全防范与应急救援工作对于时效性和准确性有着极高的要求。传统的警务工作方式和救援手段往往受限于时间和地域,难以在第一时间作出响应。而小程序能够实现信息的快速传递和实时更新,有助于提高警务工作和救援行动的效率,为安全防范和应急救援提供有力支持。在警务安全防范与应急救援领域,小程序能够为用户提供便捷、高效的服务,满足用户在紧急情况下的快速响应需求。
此外,Django是一个强大的Web开发框架,具有简单易用、功能强大、安全性高等特点。使用Django开发基于小程序的警务安全防范与应急救援指南系统可以快速实现网站功能,提高开发效率,并保证网站的安全性和稳定性。
随着科技的快速发展,移动互联网已经深入到人们的生活中,警务安全也成为公众关注的焦点。基于小程序的警务安全防范与应急救援指南系统的研究目标主要体现在以下几个方面:
首先,提升警务安全防范与应急救援的信息化水平。该小程序的研究旨在通过信息化手段,将警务安全防范与应急救援的各项工作纳入到一个统一的平台上,实现信息的实时更新、共享与利用。这不仅可以提高信息处理的效率和准确性,还能增强各部门之间的协同合作能力,从而提升整体工作效率。
其次,优化用户体验,提高应急响应速度。该小程序设计简洁明了、易于操作,使用户能够迅速获取所需信息并采取相应行动。同时,通过优化系统架构和算法,实现快速响应和高效处理用户请求,确保在紧急情况下能够迅速启动应急响应机制,降低损失和风险。
再次,增强公众安全意识和提功便捷的应急求助服务。通过提供实时的警务安全信息和应急救助等知识,增强公众的安全意识和自我保护能力。同时通过小程序,用户可以发布紧急求助信息,救援人员通过小程序可以缩短应急反应时间,为人民群众提供更及时、更有效的服务。
最后,促进警务数字化转型。通过构建基于小程序的警务安全防范与应急救援指南系统,有助于推动警务工作的数字化转型。系统可以整合各类警务数据资源,实现数据的共享与互通,提高警务工作的信息化水平。
1.3论文章节安排
论文将分层次进行编排,除去论文摘要致谢文献参考部分,正文部分主要结构如下:
第一章:绪论,此章节对所设计和实现的系统的研究背景、研究目标进行详细的论述以及说明,同时进行了论文整体框架的结构的简要介绍。
第二章:相关技术介绍,主要对系统开发所采用的相关技术进行介绍。
第三章:系统分析,此章节所做的主要的工作是对系统进行了技术、经济等方面可行性的分析;对系统实行了总体功能的需求、用例分析。
第四章:系统总体设计,主要是对功能结构进行设计,并对系统数据库的概念结构设计进行了分析。
第五章:系统详细设计与实现,根据系统功能的划分,分别的对系统所需要实现的前台用户端功能和后台管理端功能进行了分析和说明。
第六章:系统测试,主要介绍了系统测试目的和对系统的部分功能界面进行测试并对测试结果作出总结。
第七章:结论。对整个研究工作进行了总结。
2.1.微信开发者工具
微信开发者工具是一款由腾讯公司推出的集成开发环境(IDE),专门用于开发和调试微信小程序和公众号。该工具提供了丰富的功能和工具,旨在简化和加速开发过程。
微信开发者工具支持多种开发语言,包括HTML、CSS和JavaScript,使开发人员能够轻松创建小程序或公众号的前端界面和逻辑。它还提供了强大的代码编辑器和调试工具,方便开发人员编写、调试和测试代码。
除了基本的开发功能,微信开发者工具还提供了一些高级功能,如实时预览、真机调试、性能分析、代码压缩和发布等。开发人员可以在工具中即时查看小程序或公众号的效果,并在真机上进行调试,以确保应用程序在不同平台上的兼容性和稳定性。
此外,微信开发者工具还提供了丰富的插件和扩展,开发人员可以根据自己的需求选择和安装相应的插件,增强开发体验和效率。微信开发者工具是一款功能强大的开发工具,为开发者提供了全面的开发和调试功能,帮助他们快速、高效地开发微信小程序和公众号。通过使用微信开发者工具,开发人员可以更好地实现自己的创意,并为用户提供优质的微信应用体验。微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
2.2 Django框架
Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是Open Stack的Horizon组件采用这种架构进行设计的主要原因。另外,在Django框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性。Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
1.3.1 用于创建模型的对象关系映射;
1.3.2 为最终用户设计较好的管理界面;
1.3.3 URL 设计;
1.3.4 设计者友好的模板语言;
1.3.5 缓存系统。
Django(发音:[`dʒæŋɡəʊ]) 是用python语言写的开源web开发框架(open source web framework),它鼓励快速开发,并遵循MVC设计。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。
Django 根据比利时的爵士音乐家Django Reinhardt命名,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。
由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SD Times评选为2013 SD Times 100,位列“API、库和框架”分类第6位,被认为是该领域的佼佼者。
2.3 Python语言
早在上个世纪90年代,Python就由吉多·范罗苏姆进行创造,自诞生之日起,Python就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今。Python语言是真的是一种纯面向对象的计算机语言,在Python的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Python中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多。Python另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程。如今,随着编程思想的继续发展,Python也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本管理系统采用Python编程语言进行后台的开发,一是鉴于标准化制定以后,Python语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Python代码的能力。
2.4 MySQL数据库
MySQL 经过多次的更新,功能层面已经非常的丰富和完善了,从MySQL4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的MySQL支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷。
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
3.1 可行性分析
(1)技术可行性
Django作为一个成熟的Python Web框架,具有稳定且强大的性能。它提供了丰富的库和内置组件,能够大大简化开发过程,加快开发速度。同时,Django的文档完善,社区活跃,开发者可以轻松找到解决问题的方案。此外,微信小程序本身具备便捷的用户交互体验和良好的用户基础。微信小程序作为腾讯公司推出的轻量级应用,具有开发简单、使用方便、易于推广等优点。同时,微信小程序的用户基数庞大,用户粘性高,为平台的推广和运营提供了良好的基础。因此,从技术层面分析是可行的。
(2)经济可行性
基于小程序的警务安全防范与应急救援指南系统开发和运营成本相对较低。一方面,Django支持多种数据库,提供了大量的第三方库和工具,可以帮助开发者提高开发效率,减少开发成本。另一方面微信小程序的开发和运营成本相对较低,不需要额外的安装和维护费用。因此,从经济角度分析是可行的。
(3)社会可行性
社会可行性主要关注系统实施过程中可能涉及的法律法规、伦理道德以及社会影响等方面。基于小程序的警务安全防范与应急救援指南系统的开发与应用,符合国家对公共安全和社会稳定的重视和投入。同时,该系统能够提升公众的安全意识和自救能力,有助于减少安全事故的发生和减轻灾害损失。因此,从社会角度分析是可行的。
按照基于小程序的警务安全防范与应急救援指南系统的角色,主要包括用户端(注册用户、救援人员)和管理端(管理员)这两大功能模块,各模块功能如下。
1.用户端注册用户功能
- 注册登录:新用户可以通过注册成为系统用户,注册后可以用账号密码登录系统。
- 首页:用户登录进入小程序后可以查看首页展示的轮播图、安全知识、应急救助、应急装备、紧急求助、天气预报、新闻资讯等信息。点击“紧急求助”进入页面填写事件类型、求助详情、上传求助图片和实时定位后点击“提交”即可完成求助信息的发布。
- 安全互助:用户可以发布帖子;可以查看安全互助列表中某个帖子的详情并可以进行点赞、收藏和评论。
- 新闻资讯:用户可以查看新闻资讯列表中的某个资讯的详情并可以点赞、收藏和评论。
- 我的:用户点击首页右下角“我的”进入页面可以查看和管理基本信息、收藏、实时报警、安全存档、紧急求助和论坛管理信息。点击“退出登录”即可退出系统。
- 用户端救援人员功能
- 登录:救援人员账号由管理员添加,用户可以用管理员提供的账号密码登录。
- 首页:用户登录进入小程序后可以查看首页展示的轮播图、安全知识、应急救助、应急装备、天气预报、新闻资讯等信息。
- 安全互助:用户可以发布帖子;可以查看安全互助列表中某个帖子的详情并可以进行点赞、收藏和评论。
- 新闻资讯:用户可以查看新闻资讯列表中的某个资讯的详情并可以点赞、收藏和评论。
- 我的:用户点击首页右下角“我的”进入页面可以查看和管理基本信息、收藏、任务派遣、事件报告、通讯协作助和论坛管理信息。点击“退出登录”即可退出系统。
- 管理端管理员功能
- 登录:管理员的账号和密码是事先在数据库中设定好的,管理员可以通过在后台输入正确的账号和密码进行登录。
- 后台首页:管理员可以查看后台首页展示的相关信息。
- 系统用户:管理员负责对救援人员账号的添加,可以对系统用户信息(管理员、注册用户、救援人员)进行增删改查操作
- 事件类型管理:管理员可以查看事件类型列表中某个类型的详情,可以对事件类型信息进行增删改查操作。
- 安全知识管理:管理员可以查看安全知识列表中某个安全知识的详情和评论,可以对安全知识信息进行增删改查操作。
- 应急救助管理:管理员可以查看应急救助列表中某个应急救助的详情和评论,可以对应急救助信息进行增删改查操作。
- 应急装备管理:管理员可以查看应急装备列表中某个应急装备的详情和评论,可以对应急装备信息进行增删改查操作。
- 实时报警管理:管理员可以查看实时报警列表中某个实时报警的详情,可以对实时报警信息进行增删改查操作。
- 安全存档管理:管理员可以查看安全存档列表中某个安全存档的详情,可以对安全存档信息进行增删改查操作。
- 紧急求助管理:管理员可以查看紧急求助列表中某个用户提交的紧急求职详情并提交受理信息,可以对紧急求助信息进行增删改查操作。
- 任务派遣管理:管理员可以查看任务派遣列表中某个任务派遣的详情并提交报告进度信息,可以对列表信息进行查询、重置和删除操作。
- 事件报告管理:管理员可以查看事件报告列表中某个事件报告的详情,可以对列表信息进行查询、重置和删除操作。
- 通讯协作管理:管理员可以查看通讯协作列表中某个通讯协作的详情,可以对通讯协作信息进行增删改查操作。
- 系统管理:管理员可以查看轮播图列表中某一轮播图详情,可以对轮播图信息进行增删改查操作。
- 系统公告管理:管理员可以查看系统公告列表中某一公告详情,可以对公告信息进行增删改查操作。
- 资源管理:管理员可以查看新闻资讯列表中某一资讯详情和评论信息,可以对新闻资讯、新闻分类信息进行增删改查操作。
- 交流管理:管理员可以查看安全互助列表中某个帖子的详情和评论,可以对安全互助、内容分类信息进行增删改查操作。
- 我的:管理员可以修改个人信息和登录密码;点击“退出”即可退出系统的登录。
3.3 系统用例分析
通过3.2功能的分析,得出了本系统的用例图:
用户端注册用户用例图如下图3-1所示。

图3-1注册用户用例图
用户端救援人员用例图如下图3-2所示。

图3-2救援人员用例图
管理端管理员用例图如下图3-3所示

图3-3 管理员角色用例图
系统流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
3.4.1 用户登录流程
用户通过登录才能访问系统及权限以内的功能,对此将实现各种应用及管理等功能,用户登录流程图如下图3-4所示。

图3-4 用户登录流程图
3.4.2 数据添加流程
用户成功登入系统后就能够实现数据添加的操作,添加的信息由用户自己填写,填写后的信息需经过系统验证,验证通过后即可完成数据的添加。数据添加的流程如下图3-5所示。

图3-5 数据添加流程图
3.4.3 数据删除流程
如果系统里面存在一些没有用的数据,相关的管理人员还可以对这些数据进行删除,数据删除时流程图如下图3-5所示。

图3-6 数据删除流程图
本章主要通过对基于小程序的警务安全防范与应急救援指南系统的可行性分析、流程分析、功能需求分析、系统用例分析,确定整个系统要实现的功能。同时也为系统的代码实现和测试提供了标准。
本章主要讨论的内容包括基于小程序的警务安全防范与应急救援指南系统的总体设计原则、系统结构设计、数据库系统设计。
一个系统要在开发和维护的过程中方便使用,必须采取一定的设计原则,其主要设计原则有:
简单性:系统功能简单易懂,只需要掌握基本的智能手机/计算机操作能力即可使用。
针对性:针对特定的用户,没有多余的其他功能,使用户可以专心使用。
实用性:能够满足用户查看安全知识、应急救助、用户信息等方面的需求。
先进性:本系统的代码采用读取数据的方式,方便后续开发、拓展。
4.2 系统结构设计
整个系统是由多个功能模块组合而成的,要将所有的功能模块都一一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行系统整体的设计。基于小程序的警务安全防范与应急救援指南系统结构图如图4-1所示。

图4-1 系统结构图
4.3 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
4.3.1 数据库概念结构设计
数据库概念结构设计主要涉及数据库的实体和实体之间的关系。通过实体关系模型或者其他适当的模型,我们将定义系统中涉及的各个实体以及它们之间的联系。下面是整个基于小程序的警务安全防范与应急救援指南系统中主要的数据库表总E-R实体关系图。

图4-2 系统总E-R关系图
4.3.2 数据库逻辑结构设计
通过上一小节中基于小程序的警务安全防范与应急救援指南系统中总E-R关系图上得出一共需要创建很多个数据表。在此主要罗列几个主要的数据库表结构设计。
表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 | 更新时间: |
表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: |
表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: |
表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已取消 |
表registered_users (注册用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | mobile_phone_number | varchar | 16 | 0 | N | N | 手机号码 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表rescue_personnel (救援人员)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | rescue_personnel_id | int | 10 | 0 | N | Y | 救援人员ID | |
2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
3 | employee_id | varchar | 64 | 0 | N | N | 员工工号 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表task_dispatch (任务派遣)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | task_dispatch_id | int | 10 | 0 | N | Y | 任务派遣ID | |
2 | task_progress | varchar | 64 | 0 | Y | N | 任务进度 | |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | mobile_phone_number | varchar | 64 | 0 | Y | N | 手机号码 | |
5 | rescue_personnel | int | 10 | 0 | Y | N | 0 | 救援人员 |
6 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
7 | event_type | varchar | 64 | 0 | Y | N | 任务类型 | |
8 | task_location | varchar | 64 | 0 | Y | N | 任务地点 | |
9 | urgency_level | varchar | 64 | 0 | Y | N | 紧急程度 | |
10 | task_content | 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 | 更新时间 |
表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 | 文件类型 |
表urgent_assistance (紧急求助)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | urgent_assistance_id | int | 10 | 0 | N | Y | 紧急求助ID | |
2 | registered_users | int | 10 | 0 | Y | N | 0 | 注册用户 |
3 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
4 | mobile_phone_number | varchar | 16 | 0 | Y | N | 手机号码 | |
5 | event_type | varchar | 64 | 0 | Y | N | 事件类型 | |
6 | image_upload | varchar | 255 | 0 | Y | N | 图片上传 | |
7 | help_details | text | 65535 | 0 | Y | N | 求助详情 | |
8 | location_address | varchar | 64 | 0 | Y | N | 当前位置 | |
9 | location_lng | varchar | 64 | 0 | Y | N | 当前位置经度 | |
10 | location_lat | varchar | 64 | 0 | Y | N | 当前位置纬度 | |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
4.4本章小结
整个基于小程序的警务安全防范与应急救援指南系统的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
5.1注册用户功能模块
5.1.1 用户注册界面
用户注册界面用于新用户进行账号注册,用户需要填写必要的个人信息并选择合适的用户名和密码。注册界面应该进行输入验证和数据格式检查,确保用户提供有效的信息。系统会对输入的信息进行验证,验证通过后即可完成注册。其界面展示如下图5-1所示。

图5-1 用户注册界面图
注册代码如下:
def Register(self, ctx):
print("===================注册=====================")
userService = service_select("user")
body = ctx.body
if "username" not in body and body["username"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名不能为空",
}
}, ensure_ascii=False))
if "user_group" not in body and body["user_group"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户组不能为空",
}
}, ensure_ascii=False))
if "password" not in body and body["password"] == '':
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "密码不能为空",
}
}, ensure_ascii=False))
post_param = body
post_param['nickname'] = body["nickname"] or ""
post_param['password'] = md5hash(body["password"])
obj = userService.Get_obj({"username": post_param['username']}, {"like": False})
if obj:
return ctx.response(json.dumps({
"error": {
"code": 70000,
"message": "用户名已存在",
}
}, ensure_ascii=False))
ret = {
"error": {
"code": 70000,
"message": "注册失败",
}
}
bl = userService.Add(post_param)
if bl:
ret = {
"result": {
"bl": True,
"message": "注册成功"
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
5.1.2 用户登录界面
用户登录界面用于已注册用户进行账号登录,用户需要输入正确的用户名和密码才能成功登录系统。登录界面应对用户的输入进行验证,并提供密码找回的选项。其界面如下图5-2所示。

图5-2用户登录界面图
登录代码如下:
def Login(self, ctx):
print("===================登录=====================")
ret = {
"error": {
"code": 70000,
"message": "账户不存在",
}
}
body = ctx.body
password = md5hash(body["password"]) or ""
obj = service_select("user").Get_obj(
{"username": body["username"]}, {"like": False}
)
if obj:
user_group = service_select("user_group").Get_obj({'name': obj['user_group']}, {"like": False})
if user_group and user_group['source_table'] != '':
user_obj = service_select(user_group['source_table']).Get_obj({"user_id": obj['user_id']}, {"like": False})
if user_obj['examine_state'] == '未通过':
ret = {
"error": {
"code": 70000,
"message": "账户未通过审核",
}
}
return ret
if user_obj['examine_state'] == '未审核':
ret = {
"error": {
"code": 70000,
"message": "账户未审核",
}
}
return ret
if obj["state"] == 1:
if obj["password"] == password:
timeout = timezone.now()
timestamp = int(time.mktime(timeout.timetuple())) * 1000
token = md5hash(str(obj["user_id"]) + "_" + str(timestamp))
ctx.request.session[token] = obj["user_id"]
service_select("access_token").Add(
{"token": token, "user_id": obj["user_id"]}
)
obj["token"] = token
ret = {
"result": {"obj": obj}
}
else:
ret = {
"error": {
"code": 70000,
"message": "密码错误",
}
}
else:
ret = {
"error": {
"code": 70000,
"message": "用户账户不可用,请联系管理员",
}
}
return ctx.response(json.dumps(ret, ensure_ascii=False))
5.1.3首页界面
用户登录进入小程序后可以查看首页展示的轮播图、安全知识、应急救助、应急装备、紧急求助、天气预报、新闻资讯等信息。点击“紧急求助”进入页面填写事件类型、求助详情、上传求助图片和实时定位后点击“提交”即可完成求助信息的发布。点击安全知识/应急救助/应急装备进入页面后可以查看安全知识/应急救助/应急装备列表中某个安全知识/应急救助/应急装备的详情并可以点赞、收藏和评论。点击“天气预报”进入页面可以查看天气预报信息。其主界面展示如下图5-3所示。

图5-3 首页界面图
5.1.4安全互助界面
用户可以查看安全互助列表中某个帖子的详情并可以进行点赞、收藏和评论;点击“发布内容”进入页面填写标题、分类、正文等信息后点击“发表内容”即可完成帖子的发布。其界面如下图5-4所示。

图5-4安全互助界面图
5.1.5 新闻资讯界面
用户点击首页下方的“新闻资讯”进入页面可以查看新闻资讯列表中的某个资讯的详情并可以点赞、收藏和评论。其界面如下图5-5所示。

图5-5新闻资讯界面图
5.1.6 我的界面
用户点击首页右下角“我的”进入页面可以查看和管理基本信息、收藏、实时报警、安全存档、紧急求助和论坛管理信息。点击“基本信息”可进入页面可以修改密码和修改资料,密码修改后可以用新密码登录。点击“安全存档”进入页面后点击添加进入安全存档信息添加页面填写存档标题、存档内容和上传图片及视频后点击“提交”即可完成安全存档信息的添加,可以对安全存档信息进行增删改查操作。可以查询和重置实时报警信息;可以查询、添加和删除、紧急求助、论坛管理信息;可以查看或删除收藏列表信息。其界面如图5-6所示。

图5-6 我的界面图
用户登录进入小程序后可以查看首页展示的轮播图、安全知识、应急救助、应急装备、天气预报、新闻资讯等信息。点击安全知识/应急救助/应急装备进入页面后可以查看安全知识/应急救助/应急装备列表中某个安全知识/应急救助/应急装备的详情并可以点赞、收藏和评论。点击“天气预报”进入页面可以查看天气预报信息。点击某个新闻资讯可查看该资讯的详情并可以点赞、收藏和评论。其主界面展示如下图5-7所示。

图5-7 首页界面图
用户点击首页右下角“我的”进入页面可以查看和管理基本信息、收藏、任务派遣、事件报告、通讯协作助和论坛管理信息。点击“任务派遣”进入页面可以查看列表中某个任务的详情并可以提交报告进度。点击“事件报告”可以查看列表中某个事件报告的详情。可以查询和重置任务派遣、事件报告信息;可以查询、添加和删除通讯协作、论坛管理信息;可以查看或删除收藏列表信息。其界面如下图5-8所示:

图5-8 个人中心界面图
删除的代码如下:
def Del(self, ctx):
if len(ctx.query) == 0:
errorMsg = {"code": 30000, "message": "删除条件不能为空!"}
return errorMsg
result = self.service.Del(ctx.query, self.config)
if self.service.error:
return {"error": self.service.error}
return {"result": result}
5.3管理员功能模块
5.3.1 系统用户界面
管理员负责对救援人员账号的添加;可以查看系统用户(管理员、注册用户、救援人员)列表中某各用户的详情,可以对系统用户信息进行增删改查操作。其界面如下图5-9所示。

图5-9系统用户界面图
添加的代码如下:
def Add(self, ctx):
body = ctx.body
unique = self.config.get("unique")
obj = None
if unique:
qy = {}
for i in range(len(unique)):
key = unique[i]
qy[key] = body.get(key)
obj = self.service.Get_obj(qy)
if not obj:
error = self.Add_before(ctx)
if error["code"]:
return {"error": error}
error = self.Events("add_before", ctx, None)
if error["code"]:
return {"error": error}
result = self.service.Add(body, self.config)
if self.service.error:
return {"error": self.service.error}
res = self.Add_after(ctx, result)
if res:
result = res
res = self.Events("add_after", ctx, result)
if res:
result = res
return {"result": result}
else:
return {"error": {"code": 10000, "message": "已存在"}}
管理员可以添加紧急求助信息;点击紧急求助管理下方的“紧急求助列表”可以查看列表中某个用户提交的紧急求职详情并提交受理信息,可以对列表信息进行查询、重置和删除操作。其界面如下图5-10所示。

图5-10紧急求助管理界面图
管理员点击安全知识管理下方的“安全知识列表”可以查看列表中某个安全知识的详情和评论,可以对列表信息进行查询、重置和删除操作。点击“安全知识添加”进入页面填写文章名称、事件分类、文章内容等信息后点击“提交”即可完成安全知识的添加。其界面如下图5-11所示。

图5-11安全知识管理界面图
管理员点击任务派遣管理下方的“任务派遣列表”可以查看列表中某个任务的详情并可以提交报告进度信息,可以对列表信息进行查询、重置和删除操作。其界面如下图5-12所示。

图5-12任务派遣管理界面图
管理员点击系统管理下方的“轮播图管理”可以查看轮播图列表中某一轮播图详情;点击列表上方的“添加”进入页面填写标题、上传图片后点击“提交”即可完成轮播图的添加。可以对轮播图信息进行增删改查操作。其界面如下图5-13所示。

图5-13系统管理界面图
5.3.6系统公告管理界面
管理员点击系统公告管理下方的“系统公告”可以查看列表中某一公告详情;点击列表上方的“添加”进入页面填写标题和正文后点击“提交”即可完成系统公告的添加。可以对公告信息进行增删改查操作。其界面如下图5-14所示。

图5-14系统公告管理界面图
5.3.7资源管理界面
管理员点击资源管理下方的“新闻资讯”可以查看新闻资讯列表中某一资讯详情和评论信息;点击“新闻分类”可以查看新闻分类列表中某一分类详情;可以对新闻资讯、新闻分类信息进行增删改查操作。其界面如下图5-15所示。

管理员点击交流管理下方的“安全互助”可以查看列表中某个帖子的详情和评论;点击“内容分类”可以查看内容分类列表中某一分类的详情;可以对安全互助、内容分类信息进行增删改查操作。其界面如下图5-16所示。

图5-16交流管理界面
6系统测试
6.1测试目的
系统测试的目的是确保系统的功能完整、性能稳定,并验证系统是否符合预期的设计和需求。通过系统测试,可以发现和修复潜在的错误和缺陷,提高系统的质量和可靠性。同时,系统测试还可以评估系统在不同条件下的性能表现,包括并发性能、响应时间和容错能力等。通过全面的系统测试,可以确保系统在正式上线前达到高品质的状态。
6.2 测试用例
系统测试包括:用户登录功能测试、新闻资讯查看功能测试、安全知识添加功能测试、密码修改功能测试,如表6-1、6-2、6-3、6-4所示:
用户登录功能测试:
表6-1 用户登录功能测试表
测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
TC001 | 使用正确的用户名和密码进行登录 | 成功登录系统,跳转到用户首页 | 登录成功,跳转到用户首页 | 通过 |
TC002 | 使用不存在的用户名进行登录 | 显示错误提示信息:用户名不存在 | 显示错误提示信息:用户名不存在 | 通过 |
TC003 | 使用正确的用户名和错误的密码进行登录 | 显示错误提示信息:密码错误 | 显示错误提示信息:密码错误 | 通过 |
TC004 | 不输入用户名和密码直接点击登录按钮 | 显示错误提示信息:用户名和密码不能为空 | 显示错误提示信息:用户名和密码不能为空 | 通过 |
新闻资讯查看功能测试:
表6-2 新闻资讯查看功能测试表
测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
TC001 | 打开新闻资讯页面,检查是否能够正确展示新闻资讯列表信息 | 新闻资讯列表显示正确 | 新闻资讯列表显示正确 | 通过 |
TC002 | 点击新闻资讯查看按钮,检查是否能正常打开页面 | 新闻资讯详情页面显示正确 | 新闻资讯详情页面显示正确 | 通过 |
TC003 | 检查新闻资讯搜索功能 | 根据关键字搜索到相关新闻资讯并正确展示 | 根据关键字搜索到相关新闻资讯并正确展示 | 通过 |
管理员添加安全知识界面测试:
表6-3 管理员添加安全知识界面测试表
测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
TC001 | 使用合法的信息添加一个新的安全知识信息 | 安全知识信息成功添加到系统 | 安全知识信息成功添加到系统 | 通过 |
TC002 | 使用已存在的安全知识名称添加一个景点项目信息 | 显示错误提示信息:安全知识名称已存在 | 显示错误提示信息:安全知识名称已存在 | 通过 |
TC003 | 添加安全知识信息时不输入必填信息 | 显示错误提示信息:必填字段不能为空 | 显示错误提示信息:必填字段不能为空 | 通过 |
TC004 | 使用不存在的关键字进行搜索 | 搜索结果为空 | 搜索结果为空 | 通过 |
表6-4密码修改功能测试表
测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
TC001 | 输入正确的原密码和新密码进行修改 | 密码成功修改 | 密码成功修改 | 通过 |
TC002 | 输入错误的原密码和新密码进行修改 | 显示错误提示信息:原密码错误 | 显示错误提示信息:原密码错误 | 通过 |
TC003 | 不输入原密码和新密码直接点击修改按钮 | 显示错误提示信息:密码不能为空 | 显示错误提示信息:密码不能为空 | 通过 |
6.3 测试结果
通过编写基于小程序的警务安全防范与应急救援指南系统的测试用例,已经检测完毕系统测试包括:用户登录功能测试、新闻资讯查看功能测试、安全知识添加功能测试、密码修改功能测试,通过这四大模块为 基于小程序的警务安全防范与应急救援指南系统的设计与实现的后期推广运营提供了强力的技术支撑基于小程序的警务安全防范与应急救援指南系统。
至此,基于小程序的警务安全防范与应急救援指南系统开发工作已经结束。在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Django、小程序、MySQL数据库等,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,本人才能够成功的在预期内完成了这个系统。同时在这个过程当中本人也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
[1]徐健.基于微服务和中台技术架构的移动警务生态系统建设研究[J].科技与创新,2024,(07):102-104+107.
[2]高敏钦.基于微信小程序的智慧校园平台设计[J].河北软件职业技术学院学报,2024,26(01):12-15.
[3]陈佳乐.基于微信小程序的图书馆座位预约系统[J].电脑编程技巧与维护,2024,(03):63-65+75.
[4]李鹏,高燕,王思源.基于微信小程序的智能语音家居系统[J].微型电脑应用,2024,40(02):225-228.
[5]张良峰.基于Django和Vue的低代码平台构建[J].数字通信世界,2024,(01):45-48.
[6]尹光景,李晨玉,曾子彬,等.基于Vue.js+Django的大坝安全监测信息管理系统开发[J].软件,2024,45(01):47-49+82.
[7]赵树海.基于WiFi技术的应急救援无线通信系统设计[J].信息记录材料,2023,24(10):185-187.
[8]陈虹安,陈冬昌,马洽颖,等.智能化应急救援系统的设计与实现[J].信息记录材料,2023,24(07):194-197.
[9]郭俊杰.基于移动社交网络的智慧城市应急救援问题的研究[D].北京建筑大学,2023
[10]李建校,吕明,严程,等.基于Android的警务宣传系统设计与实现[J].信息与电脑(理论版),2022,34(21):127-129.
[11]王龙.浅谈智能移动警务在公安工作中的应用[J].网络安全技术与应用,2022,(11):106-108.
[12]耿家飞.智慧警务系统建设路径与策略[J].江西警察学院学报,2022,(05):66-70.
[13]徐乐,姜西斌,刘光耀.基于物联网技术的移动警务终端资源调度系统[J].警察技术,2022,(04):20-23.
[14]洪伟权,陈久雨,张海涛.5G移动警务创新应用及落地实践[J].通信企业管理,2022,(04):66-68.
[15]程秋木.智慧社区警务系统的设计与实现[D].武汉邮电科学研究院,2022.
[16]刘霞,耿艳锋.基于开放式平台的移动警务系统设计与开发[J].邢台职业技术学院学报,2021,38(05):95-100.
[17]Chao H L ,Fa S S .Construction of College Students’ Physical Health Data Sharing System Based on Django Framework[J].Journal of Sensors,2021,2021
[18]FUIOR F .Introduction in Python frameworks for web development[J].Romanian Journal of Information Technology and Automatic Control,2021,31(3):
[19] Wu J ,Chen N ,Xia H , et al.Design and development of the intelligent voice recognition‐based cognitive assessment WeChat mini‐program[J].Alzheimer's Dementia,2023,19(S11):
[20]杨华,徐扬.MySQL数据库对中文编码支持的探讨[J].网络安全和信息化,2023,(10):157-160.
首先,我要向我的论文指导老师献上最深的敬意和感谢。在整个论文创作的过程中,老师的指导是我前行道路上的明灯。他耐心地指导我,用他深厚的学识和敏锐的洞察力,提出了许多具有深远意义的建议。他的严谨治学态度、敬业务实的精神和高超的教学艺术,都为我树立了追求卓越的榜样,对我未来的人生道路和学业成就产生了深远的影响。
同时,我要向我班的同学们表达我的诚挚感谢。你们既是我的亲密战友,也是我生活中的良师。正是你们的鼓励和支持,使我在大学期间的学习和生活变得丰富多彩。我要对那些在我求学路上给予我帮助的所有老师和同学们表示衷心的感谢,是你们给了我继续前进的力量。
我还要向我无私的父母表达我的深深感激。是你们用无尽的爱和关怀,将我抚养成人。你们的养育之恩,我将永世铭记在心,我将会用我的行动和成绩来回报你们的期望。在未来的日子里,我将会继续努力,用实际行动来回报你们对我付出的所有。
免费领取源码,请点赞关注私信博主