springboot天气预报推送小程序-计算机毕业设计源码41533
目 录
摘 要
1 绪论
1.1 研究背景
1.2 研究意义
1.3论文结构与章节安排
2 相关技术介绍
2.1微信开发者工具
2.2小程序框架以及目录结构介绍
2.3 MySQL数据库
2.4 SpringBoot框架
3 天气预报推送系统系统分析
3.1 可行性分析
3.2 系统流程分析
3.2.1 数据增加流程
3.2.2 数据修改流程
3.2.3 数据删除流程
3.3 系统功能分析
3.3.1 功能性分析
3.3.2 非功能性分析
3.4 系统用例分析
4 天气预报推送系统总体设计
4.1 系统架构设计
4.2 系统功能模块设计
4.2.1整体功能模块设计
4.3 数据库设计
4.3.1 数据库概念结构设计
4.3.2 数据库逻辑结构设计
5 天气预报推送系统详细设计与实现
5.1用户端功能模块
5.1.1 样片信息界面
5.1.2 婚纱套系界面
5.1.3 首页界面
5.1.4 婚纱咨讯界面
5.2摄影师功能模块
5.2.1 我的界面
5.3管理员短功能模块
5.3.1 样片信息管理
5.3.2 婚纱套系管理
5.3.3 系统管理
5.3.4 资源管理界面
6系统测试
6.1 系统测试用例
6.2 系统测试结果
7 结 论
参考文献
致 谢
本文设计并实现了一套基于微信小程序的天气预报推送系统,使用Spring Boot作为后端框架,Vue作为前端框架,并通过小程序提供用户界面。
首先,系统需要获取天气数据。我们使用第三方的天气API来获取实时天气信息。在后端使用Spring Boot搭建一个RESTful API,通过调用该API来获取天气数据。API将返回JSON格式的天气数据,包括温度、湿度、风力等信息。
然后,我们使用Vue框架构建前端界面,通过调用后端API来展示天气信息。前端界面可以显示当前天气情况以及未来几天的天气预报。用户可以通过界面进行城市选择和订阅操作。
接下来,我们通过微信小程序提供用户界面。使用小程序的模板语言和组件库来构建天气预报页面,展示天气信息并提供城市选择和订阅功能。用户可以通过小程序进行城市选择、订阅天气信息,系统将根据用户的选择发送天气预报推送。
最后,系统还需要定时任务来获取天气数据并推送给用户。我们使用Spring Boot的定时任务功能,在每天设定的时间点触发任务,调用天气API获取最新的天气数据,并发送推送给已订阅的用户。
整个系统的设计和实现基于Spring Boot、Vue和微信小程序,通过这套系统,用户可以方便地获取天气信息并订阅天气预报推送。
关键词:天气预报推送系统;Java;MySQL;SpringBoot+Vue,微信小程序
Abstract
This paper designs and implements a weather forecast push system based on wechat mini program, which uses Spring Boot as the back-end framework, Vue as the front-end framework, and provides the user interface through the mini program.
First, the system needs to get weather data. We use third-party weather apis to obtain real-time weather information. Build a RESTful API with Spring Boot on the back end and get weather data by calling the API. The API will return weather data in JSON format, including temperature, humidity, wind, and more.
We then use the Vue framework to build the front-end interface and display the weather information by calling the back-end API. The front-end interface can display the current weather conditions and the weather forecast for the next few days. Users can select and subscribe to cities through the interface.
Next, we provide the user interface through the wechat mini program. Use the applet's template language and component library to build weather forecast pages, display weather information and provide city selection and subscription capabilities. Users can select cities and subscribe to weather information through the small program, and the system will send weather forecast push according to the user's choice.
Finally, the system also needs a scheduled task to obtain weather data and push it to the user. We use the scheduled task function of Spring Boot to trigger the task at the set time point every day, call the weather API to get the latest weather data, and send the push to the subscribed users.
The design and implementation of the whole system is based on Spring Boot, Vue and wechat mini program. Through this system, users can easily obtain weather information and subscribe to weather forecast push.
Keywords: Weather forecast push system; Java; MySQL; SpringBoot+Vue, wechat mini progra
1 绪论
随着移动互联网的快速发展,人们对天气信息的需求越来越高。天气预报作为一项重要的生活服务,为人们提供准确的天气信息和预测,对出行、衣食住行等方面有着重要的指导作用。而微信小程序作为一种轻量级应用,具有使用便捷、跨平台等特点,已经成为人们获取各类服务的主要途径之一。
然而,目前市场上的天气预报小程序多以手动查询为主,用户需要自行搜索并选择城市才能获取天气信息,缺乏主动推送的功能。这对于一些忙碌的用户来说,不太方便且容易遗漏重要的天气变化。
因此,设计一个基于微信小程序的天气预报推送系统是非常有必要的。该系统可以通过用户订阅功能,主动将最新的天气预报推送给用户,方便用户及时了解天气变化,并做出相应的安排。同时,采用Spring Boot作为后端框架,Vue作为前端框架,可以保证系统的稳定性和良好的用户体验,提高用户对天气预报推送系统的使用度和满意度。
基于微信小程序的天气预报推送系统的设计与实现具有重要的研究意义和实际应用价值。
首先,该系统可以为用户提供准确、实时的天气信息和预测,帮助用户更好地规划日常生活。用户无需手动查询天气情况,系统通过主动推送的方式将最新的天气预报发送给用户,使用户能够及时了解天气变化,做出相应的决策和安排,如合理选择出行方式、调整衣物搭配等,提高生活的便利性和舒适度。
其次,该系统可以提供个性化的天气推送服务。用户可以根据自身需求和关注的城市设置订阅条件,系统会根据用户的订阅选项推送相关的天气信息。这样的个性化推送可以满足不同用户的需求,提升用户体验和满意度。
此外,该系统的设计与实现还有助于促进天气预报技术的发展和应用。通过使用Spring Boot作为后端框架和Vue作为前端框架,系统具备良好的可扩展性和稳定性,可以方便地进行功能扩展和优化。同时,通过微信小程序作为用户界面,系统能够在移动端快速传播和推广,提高天气预报技术的普及度和应用范围。
综上所述,基于微信小程序的天气预报推送系统的设计与实现不仅具有实际应用价值,能够方便用户获取天气信息,还对促进天气预报技术的发展和应用具有积极的研究意义。
论文将分层次经行编排,除去论文摘要致谢文献参考部分,正文部分还会对网站需求做出分析,以及阐述大体的设计和实现的功能,最后罗列部分调测记录,论文主要架构如下:
第一章:引言。第一章主要介绍了课题研究的背景,系统开发的意义和本文的研究内容与主要工作。
第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
2 相关技术介绍
2.1微信开发者工具
微信开发者工具是一款专为小程序开发而设计的应用,它不断改进,提供了便捷的操作方式,并且在开发过程中可以通过微信扫描二维码来访问,从而实现快速、准确的小程序开发和调试[1]。
根据用户的需求,我们将采用不同的屏幕大小来制作小程序,并对其进行精确的切割。
在完成了视图布置之后,可以通过执行编辑功能,快速更改视图界面。
控制台:方便调试打印输出信息。
将代码上传至腾讯服务器,并在审核过程中填写版本号和备注信息,以确保代码的安全性和准确性。
通过查看资源文件,我们可以快速地调整相关项目的文件目录,从而实现断点调试。
使用远程调试技术,无论是在手机端还是PC端,都能够轻松地进行开发工作。
本地数据存储:显示的是本地存储的数据。
通过使用子父层级结构,我们可以更容易地进行视图调试。
微信的代码体积应该保持在2M 以内,而且在开发过程中,应该严格检查合法域名信息,并且为小程序的后台配置服务器域名。
微信开发者工具已经成为了开发过程中不可或缺的一部分,并且正在不断地改进和完善。
2.2小程序框架以及目录结构介绍
2.3 Vue.js
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
2.4 MySQL数据库
MySQL经过多次的更新,功能层面已经非常的丰富和完善了,从MySQL4版本到5版本进行了比较大的更新,在商业的实际使用中取得了很好的实际应用效果。最新版本的MySQL支持对信息的压缩,同时还能进行加密能更好的满足对信息安全性的需求。同时经过系统的多次更新,数据库自身的镜像功能也得到了很大的增强,运行的流畅度和易用性方面有了不小的进步,驱动的使用和创建也更加的高效快捷。最大的变动还是进行了空间信息的显示优化,能更加方便的在应用地图上进行坐标的标注和运算。强大的备份功能也保证了用户使用的过程会更加安心,同时支持的Office特性还支持用户的自行安装和使用。在信息的显示形式上也进行了不小的更新,增加了两个非常使用的显示区,一个是信息区,对表格和文字进行了分类处理,界面的显示更加清爽和具体。第二是仪表的信息控件,能在仪表信息区进行信息的显示,同时还能进行多个信息的比对,为用户的实际使用带来了很大的便捷[7][8]。
针对本文中设计的小说阅读网站平台小程序在实际的实现过程中,最终选择MySQL数据库的主要原因在于在企业的应用系统应用及开发的过程中会存在大量的数据库比较频繁的操作,而且数据的安全性要求也是非常的高。综合这些因素,最终选择安全性系数比较高的MySQL来对小说阅读网站平台小程序后台数据进行存储操作。
2.5 SpringBoot框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot所具备的特征有:
可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
内嵌Tomcat或Jetty等Servlet容器;
提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
尽可能自动配置Spring容器;
提供准备好的特性,如指标、健康检查和外部化配置;
绝对没有代码生成,不需要XML配置。
3 天气预报推送系统系统分析
系统分析是开发一个项目的先决条件,通过系统分析可以很好的了解系统的主体用户的基本需求情况,同时这也是项目的开发的原因。进而对系统开发进行可行性分析,通常包括技术可行性、经济可行性等,可行性分析同时也是从项目整体角度进行的分析。然后就是对项目的具体需求进行分析,分析的手段一般都是通过用户的用例图来实现。下面是详细的介绍。
技术可行性指的是对于搭建框架的可行性,以及有更优秀的技术出现时系统的技术更新换代的纳新性如何,开发时间成本费用比如何。
现有的JAVA语言能够迎合所有系统的搭建。开发这个天气预报推送系统的时候我采用了SpringBoot+Vue用以运行整体程序。
(2)经济可行性:
SpringBoot+Vue的自动配置功能可以根据应用程序的依赖和环境来进行自动配置,减少了大量的手动配置工作,可以降低开发成本,SpringBoot+Vue的开发效率和生产力非常高,它提供了一系列快速构建和开发的功能。这也有助于减少开发成本;SpringBoot+Vue的代码质量和可维护性较高,可以降低后期维护成本,因此开发SpringBoot+Vue天气预报推送系统在经济上是可行的。
(3)市场需求可行性:
基于微信小程序的天气预报推送系统设计与实现符合市场的需求,并具备较高的可行性。通过满足用户对准确、实时天气信息的需求,以及利用微信小程序的便捷性和广泛用户基础,该系统有望在市场上获得良好的反响和商业成功。
业务流程是用一些特定的符合和线条来进行演示用户在使用系统时的过程,在进行系统分析的时候,业务流程可以帮助开发人员更好的理解业务,发现错误,完善系统。
用户成功登入系统后就能够实现增加数据的操作,增加数据的编号是特定的,系统生成,用户不能随意填写,除了编号以外,其他增加信息用户自己填写,填写后的信息经过系统验证,验证合法通过就显示增加数据成功了,相反的话,就没有增加成功,图2-1显示的就是在增加数据时的流程。
图2-1 数据增加流程图
数据修改时的流程和上面介绍的数据增加时的流程差不多,如图2-2所示。
图2-2 数据修改流程图
如果系统里面存在一些没有用的数据的话,相关的管理人员还可以对这些数据进行删除,图2-3就是数据删除时的流程图。
图2-3 数据删除流程图
按照天气预报推送系统的角色,主要包括普通用户模块和管理员模块这两大部分。
用户端:
(1)注册登录:用户通过注册登录系统,可通过点击头像中我的基本信息,对个人信息进行增删改查。比如个人资料、头像和密码修改。
(2)首页:用户登录后可查看系统首页,包括轮播图、天气预报、关于我们、天气咨讯和我的。
(3)通知公告:用户点击可查看网站公告、关于我们、联系方式和网站介绍。
(4)天气预报:用户点击可查看热门城市的天气预报详情信息。
(5)天气咨讯:用户点击可查看天气咨讯文章,同时可对咨讯文章进行点赞、收藏和评论。
(6)我的:用户点击可查看我的基本信息和消息通知。
管理端:
(1)登录:管理员的账号是在数据列表中直接设置生成的,不需要进行注册,可直接输入账号密码登录,同时可对管理员资料进行增删改查。
(2)系统用户:当管理员点击“系统用户”时,可管理管理员和普通用户,同时可对系统用户进行增删改查。
(3)消息通知管理:管理员点击可查看消息通知列表和消息通知添加;点击“消息通知添加”选择用户,输入通知标题,选择通知时间和输入通知内容,点击“提交”按钮进行添加。
(4)系统管理:当管理员点击“系统管理”时,可查看轮播图; 如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。
(5)通知公告管理:当管理点击“通知公告管理”时,可查看系统通知公告;如需添加新的公告信息,点击右侧“添加”按钮,输入标题和正文,点击“确认”按钮进行添加。
(6)资源管理:当管理员点击“资源管理”时,可查看天气咨讯和咨讯分类。如需添加新的天气咨询,点击“添加”按钮,上传封面图,输入标题,选择分类,输入标签、描述和正文,点击“提交”按钮进行添加。同时可对咨讯进行增删改查。
天气预报推送系统的非功能性需求比如天气预报推送系统的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1天气预报推送系统非功能需求表
安全性 | 主要指天气预报推送系统数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指天气预报推送系统能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响天气预报推送系统占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着天气预报推送系统的页面展示内容进行操作,就可以了。 |
可维护性 | 天气预报推送系统开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
通过3.3功能的分析,得出了本天气预报推送系统的用例图:
图3-4 普通用户角色的用例展示。
图3-4 天气预报推送系统普通用户角色用例图
图3-5就是管理员角色的用例展示。
本章主要讨论的内容包括天气预报推送系统的功能模块设计、数据库系统设计。
本天气预报推送系统从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图4-1天气预报推送系统系统架构设计图
表现层(UI):又称UI层,主要完成本天气预报推送系统的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本天气预报推送系统时的舒适度。UI的界面设计也要适应不同版本的天气预报推送系统以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本天气预报推送系统的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本天气预报推送系统的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本天气预报推送系统的数据存储和管理功能。
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本天气预报推送系统中的用例。那么接下来就要开始对本天气预报推送系统的架构、主要功能和数据库开始进行设计。天气预报推送系统根据前面章节的需求分析得出,其总体设计模块图如图4-2所示。
图4-2 天气预报推送系统功能模块图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
下面是整个天气预报推送系统中主要的数据库表总E-R实体关系图。
图4-6 天气预报推送系统总E-R关系图
通过上一小节中天气预报推送系统中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | message_notification_id | int | 10 | 0 | N | Y | 消息通知ID | |
2 | regular_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
3 | notification_title | varchar | 64 | 0 | Y | N | 通知标题 | |
4 | notification_time | datetime | 19 | 0 | Y | N | 通知时间 | |
5 | notification_content | text | 65535 | 0 | Y | N | 通知内容 | |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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已取消 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | regular_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 | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 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 | | 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 | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 天气预报推送系统详细设计与实现
天气预报推送系统的详细设计与实现主要是根据前面的天气预报推送系统的需求分析和天气预报推送系统的总体设计来设计页面并实现业务逻辑。主要从天气预报推送系统界面实现、业务逻辑实现这两部分进行介绍。
天气预报:用户点击可查看热门城市的天气预报详情信息。界面展示如下图5-1所示。
图5-1 天气预报界面图
天气咨讯:用户点击可查看天气咨讯文章,同时可对咨讯文章进行点赞、收藏和评论。
界面展示如下图5-2所示。
图5-2 天气咨讯界面图
首页:用户登录后可查看系统首页,包括轮播图、天气预报、关于我们、天气咨讯和我的。界面如下图5-3所示。
图5-3首页界面图
消息通知管理:管理员点击可查看消息通知列表和消息通知添加;点击“消息通知添加”选择用户,输入通知标题,选择通知时间和输入通知内容,点击“提交”按钮进行添加。界面如下图所示。

图5-4 消息通知管理界面图
系统管理:当管理员点击“系统管理”时,可查看轮播图; 如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。界面如下图所示。

图5-5系统管理界面图
当管理点击“通知公告管理”时,可查看系统通知公告;如需添加新的公告信息,点击右侧“添加”按钮,输入标题和正文,点击“确认”按钮进行添加。界面如下图所示。

资源管理:当管理员点击“资源管理”时,可查看天气咨讯和咨讯分类。如需添加新的天气咨询,点击“添加”按钮,上传封面图,输入标题,选择分类,输入标签、描述和正文,点击“提交”按钮进行添加。同时可对咨讯进行增删改查。界面如下图所示。

图5-6 资源管理界面图
6系统测试
系统测试包括:用户登录功能测试、天气咨讯展示功能测试、消息通知添加、密码修改功能测试,如表6-1、6-2、6-3、6-4所示:
表6-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
天气咨讯查看功能测试:
表6-2 天气咨讯查看功能测试表
用例名称 | 天气咨讯查看 |
目的 | 测试天气咨讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击天气咨讯信息 |
预期结果 | 可以查看到所有天气咨讯信息 |
实际结果 | 实际结果与预期结果一致 |
添加消息通知界面测试:
表6-3 添加消息通知界面测试表
用例名称 | 消息通知添加测试用例 | ||
目的 | 测试消息通知添加功能 | ||
前提 | 管理员正常登录情况下 | ||
测试流程 | 1)管理员用户点击消息通知管理,然后点击添加后并填写信息。 2)点击进行提交。 | ||
预期结果 | 提交以后,页面首页会显示新的消息通知 | ||
实际结果 | 实际结果与预期结果一致 | ||
实际结果 | 实际结果与预期结果一致 |
密码修改搜索功能测试:
表6-4 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
通过编写天气预报推送系统的测试用例,已经检测完毕用户登录功能测试、天气咨讯展示功能测试、消息通知添加、密码修改功能测试,通过这4大模块为天气预报推送系统的后期推广运营提供了强力的技术支撑。
在天气预报推送系统开发之前,需要先对用户的具体需求进行分析。包括系统的可行性分析、功能需求分析以及其他需求等。在可行性分析过程中,对系统实现的技术性、经济性以及管理等方面进行了分析。总体上证明了系统实施的可行性。
本文总结了天气预报推送系统实现背景与现状,然后阐述了系统的具体业务需求,并根据系统需求对系统结构以及功能模块等进行了详细地设计,将整个系统划分为多个不同的功能模块。在分析系统功能需求时,对整个系统的总体架构以及功能模块等进行了分析,并选择合适的系统开发技术完成了对各个模块的开发工作。系统开发完成之后进行了部署,同时进行了系统的测试过程,通过测试证明了系统在功能以及性能等方面都达到了预期的要求,具有较高的稳定性与可靠性。
[1]白朋飞,陈东升.基于天气预报的供热负荷预测Web系统[J].工业控制计算机,2023,36(12):133-134.
[2]杨文娟,陈毅.基于App Inventor平台天气预报App的设计与实现[J].电脑编程技巧与维护,2023(10):68-71.DOI:10.16184/j.cnki.comprg.2023.10.022.
[3]王建忠,刘丹,董明华.基于鸿蒙系统的天气预报设计与实现[J].信息与电脑(理论版),2023,35(17):161-164+195.
[4]刘倩,赵清扬,郭若水. 集智聚力破解西南地区天气预报难题[N]. 中国气象报,2023-08-21(003).DOI:10.28122/n.cnki.ncqxb.2023.001457.
[5]. Government to review weather forecasting system[J]. M2 Presswire,2023.
[6]王倩,徐亮,李金海等.青海省大气含氧量格点化预报系统的建立与应用[J].电子元器件与信息技术,2023,7(07):52-55.DOI:10.19772/j.cnki.2096-4455.2023.7.013.
[7]闫旭. 基于图像特征组合的天气形势场相似预报研究[D].沈阳工业大学,2023.DOI:10.27322/d.cnki.gsgyu.2023.000800.
[8]刘然,陈永涛,李小汝等.新一代全国天气预报视频会商系统的设计和建设[J].气象科技,2023,51(01):40-48.DOI:10.19517/j.1671-6345.20210465.
[9]王宏飞,王国松.基于WebService的天气预报APP设计与实现[J].电脑编程技巧与维护,2021(11):56-57+69.DOI:10.16184/j.cnki.comprg.2021.11.020.
[10]任健.基于Swift语言及JSON的天气预报APP的设计与实现[J].信息与电脑(理论版),2021,33(05):170-173.
[11]高春庚,孙建国.基于Android的天气预报APP的设计与实现[J].济源职业技术学院学报,2020,19(04):43-46.
[12]刘载兴.基于App Inventor积木式编程API调用的设计与实现——以天气预报APP为例[J].现代信息科技,2020,4(22):26-29.DOI:10.19850/j.cnki.2096-4706.2020.22.007.
[13]高国弘,缑晓辉,高恺宁.基于MUI前端框架绘制天气预报APP[J].电脑编程技巧与维护,2019(10):56-60.DOI:10.16184/j.cnki.comprg.2019.10.021.
[14]张淼,刘东旭.基于iOS平台的天气APP的设计与实现[J].科技风,2019(17):18+21.DOI:10.19392/j.cnki.1671-7341.201917013.
[15]陈利婷.基于App Inventor的天气预报系统的设计与实现[J].电脑知识与技术,2019,15(11):81-82+88.DOI:10.14004/j.cnki.ckt.2019.1107.
[16]陈利婷.基于App Inventor的天气预报系统的设计与实现[J].电脑知识与技术,2019,15(11):81-82+88.DOI:10.14004/j.cnki.ckt.2019.1107.
[17]潘宁康,黄泽斌,潘银辉等.基于大数据平台的天气预报系统综述[J].现代信息科技,2019,3(06):29-31.
[18]史桂红.基于Android及JSON的天气预报APP设计与实现[J].苏州市职业大学学报,2019,30(01):27-32.DOI:10.16219/j.cnki.szxbzk.2019.01.006.
我首先要感谢我的论文指导老师。在论文的完成过程中,是在指导老师的精心指导下完成的。在论文的完成过程之中,导师对我的耐心地指导,提出了建设性意见给了我巨大的帮助,倾注了大量的心血。导师严谨的治学态度、一丝不苟的敬业精神、高水平的教学能力都给我树立了成功的典范,这对于我以后的生活和学习中都起到了巨大的积极的影响。
与此同时,我还要感谢我班的同学们对我的关怀和帮助,他们又是我的同学,又是我的朋友,同时也是我学习的榜样。正是由于大家给予我的大力支持才使我顺利地完成了大学学业,感谢在大学期间给予我帮助的所有老师和同学们。
最后,我还要感谢我的父母,你们的养育之恩我永远不会忘记,将来我也要用我的成绩回报你们。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~