# wechat-weather **Repository Path**: iswleii/wechat-weather ## Basic Information - **Project Name**: wechat-weather - **Description**: 微信公众号天气通知 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: v3 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-20 - **Last Updated**: 2025-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: 博客挂载 ## README # 微信公众号天气推送 ## 功能介绍 - 微信公众号用户事件处理(关注、位置更新等) - 基于经纬度的地址解析服务(腾讯地图 API) - 天气查询与个性化生活建议(和风天气 API) - 用户位置与天气数据缓存 - 定时天气推送功能 ## 第三方服务集成 - **天气数据**:和风天气 API () - **地址解析**:腾讯地图 API () - **缓存服务**:Redis - **数据库**:MySQL ## 项目架构 采用 DDD 分层架构与依赖注入设计,核心模块划分如下: ### 目录结构 ```text e:\Users\wanglei\code\wechat-weather ├── .devcontainer/ # 开发环境配置 ├── config.example.yaml # 配置文件模板 ├── go.mod # 依赖管理 ├── main.go # 应用入口 ├── migrations/ # 数据库迁移脚本 ├── internal/ # 业务逻辑模块 │ ├── address/ # 地址解析模块 │ │ ├── client/ # 地图API客户端 │ │ ├── controller.go # 控制器 │ │ ├── errors.go # 错误定义 │ │ ├── model.go # 数据模型 │ │ ├── repository.go # 数据访问层 │ │ ├── route.go # 路由注册 │ │ ├── service.go # 业务逻辑层 │ │ └── types.go # 类型定义 │ ├── common/ # 公共组件 │ ├── config/ # 配置管理 │ ├── user/ # 用户模块 │ ├── weather/ # 天气模块 │ └── wechat/ # 微信公众号模块 ├── pkg/ # 公共库 │ ├── database/ # 数据库工具 │ ├── httputil/ # HTTP客户端 │ ├── logger/ # 日志工具 │ └── validation/ # 数据验证 └── routes/ # 路由配置 ``` ### 核心模块说明 1. **address**:地址解析服务,集成腾讯地图 API 2. **weather**:天气查询服务,集成和风天气 API 3. **wechat**:微信公众号交互处理 4. **user**:用户数据管理 ## 使用指南 ### 环境要求 - Go 1.18+ - MySQL 5.7+ - Redis 5.0+ ### 配置步骤 1. 复制配置文件模板并修改: ```bash cp config.example.yaml config.yaml ``` 2. 配置文件中填写必要参数: - 微信公众号 AppID 与 AppSecret - 和风天气 API 密钥 - 腾讯地图 API 密钥 - 数据库连接信息 ### 启动服务 ```bash # 开发模式 make dev # 生产模式 make build ./wechat-weather ``` ## 功能 TODO - [ ] 天气生活建议细化(雨天带伞、高温防晒等) - [ ] 用户位置自动更新机制优化 - [ ] 多地图服务商容灾切换