一、项目简介
本项目是一个基于 SpringBoot3 + Vue3 + MySQL 的天气服务平台,采用前后端分离架构。系统核心能力包括实时天气查询、未来天气预报、历史天气统计、天气预警推送、城市收藏管理等,并内置了和风天气 API 对接能力,支持 API 数据自动回退与手动拉取入库。平台分为普通用户端与管理员端两个角色:普通用户可注册登录、查询天气、管理收藏城市、查看预警与统计图表;管理员则负责用户、城市、天气数据、预警信息、轮播图的管理,以及和风天气 API 的同步配置与数据导入。项目附带完整源码、数据库初始化脚本与万字开发文档,适合作为毕业设计、课程设计或 Java 全栈学习的参考项目。
二、技术栈
| 技术 | 说明 |
|---|---|
| 后端框架 | SpringBoot 3.x |
| ORM | MyBatis-Plus(分页插件、逻辑删除、字段自动填充) |
| 权限认证 | Spring Security + JWT(jjwt) |
| 前端框架 | Vue 3(Composition API) |
| 路由与守卫 | Vue Router(前端路由守卫) |
| UI 组件 | Element Plus |
| 构建工具 | Vite |
| 数据库 | MySQL 8.x |
| HTTP 客户端 | RestTemplate(和风天气 API 调用) |
| 文件存储 | 本地磁盘上传(UUID 重命名) |
三、功能模块
管理员端
- 仪表盘统计:展示用户总数、城市总数、天气数据总条数、启用预警数量,为运营提供全局概览。
- 用户管理:分页查询用户列表,支持按用户名或昵称模糊搜索,可启用/禁用用户账号、删除用户。
- 城市管理:分页查询城市列表,支持关键字搜索;可新增/编辑城市信息(城市编码、名称、省份、经纬度),删除城市。
- 天气数据管理:分页查询天气数据,支持按城市编码和城市名筛选;可手工新增/编辑天气记录,删除历史数据。
- 预警管理:分页查询预警列表,支持按城市名和预警等级筛选;可新增/编辑预警(类型、等级、标题、描述、起止时间、状态),删除预警。
- 轮播图管理:查看轮播图列表,支持新增/编辑轮播图(标题、图片 URL、链接地址、排序值、状态),上传轮播图片,删除轮播图。
- API 同步配置:查看 API 配置状态(是否配置 Key、连通性测试、错误信息提示),便于排查对接问题。
- API 城市搜索:通过内置中国城市库按关键字搜索城市(支持城市名/省份/拼音),标记是否已导入数据库。
- API 城市导入:将选中的城市批量导入数据库,自动跳过已存在的城市编码,避免重复数据。
- API 天气拉取:指定城市编码和天数拉取和风天气数据并入库,按城市+日期去重,存在则更新、不存在则新增。
- API 批量拉取:一次提交多个城市编码,批量拉取天气数据并入库,返回每个城市的拉取结果。
普通用户端
- 用户注册与登录:通过用户名和密码完成注册,登录成功后签发 JWT Token,支持角色识别(USER/ADMIN)。
- 实时天气查询:输入城市编码获取当前天气,优先调用和风天气 API,API 异常时自动回退数据库最新数据。
- 天气预报查询:支持按城市编码查询未来 3 天或 7 天预报,包含最高/最低温、湿度、风向风力、降水等字段。
- 历史天气查询:按城市编码及起止日期筛选历史天气记录,按日期升序返回完整温度、湿度、降水数据。
- 天气统计图表:获取近 30 天温度、湿度、降水序列数据,支持前端渲染折线图/柱状图。
- 城市搜索:支持按城市名或省份模糊搜索城市列表,展示城市编码、名称、经纬度。
- 城市收藏管理:查看收藏列表(按排序字段升序)、添加收藏(传 cityCode 和 cityName)、取消收藏、检查是否已收藏。
- 天气预警查看:获取全部启用的预警列表(按创建时间倒序),可按城市编码筛选启用中的预警。
- 个人资料修改:更新昵称、邮箱、手机号、头像字段,修改后实时生效。
- 密码修改:校验原密码后更新为新密码,使用 BCrypt 加密存储。
- 头像上传:上传图片文件返回访问 URL,自动更新用户头像字段。
- 首页轮播图:获取启用状态的轮播图列表,按排序值升序展示。
四、项目总结
本项目技术栈覆盖了当前 Java 全栈开发的主流选型:SpringBoot3 作为后端基础,MyBatis-Plus 简化数据访问,Spring Security + JWT 保证接口安全;前端采用 Vue3 + Element Plus + Vite,具备良好的开发体验与组件化能力。项目在业务上完整实现了天气数据从外部 API 拉取、入库、查询、统计到展示的全链路,且具备 API 异常回退机制,体现了真实项目中的容错设计。功能模块划分清晰,角色权限明确,适合作为学习前后端分离开发、JWT 认证、第三方 API 对接、数据可视化等技术的实战参考项目,也可直接用于毕业设计或小型天气服务平台的二次开发基础。
界面展示
交付内容
本项目为完整交付,包含:
- 完整后端源码
- 完整前端源码
- 数据库初始化脚本(SQL)
- 万字项目文档(设计文档 / 论文,可作课程设计、毕业设计参考)
获取完整源码
完整前后端源码 + 数据库脚本 + 万字项目文档见 Gitee 仓库:https://gitee.com/kangxihuang/src-K336