# 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
- [ ] 天气生活建议细化(雨天带伞、高温防晒等)
- [ ] 用户位置自动更新机制优化
- [ ] 多地图服务商容灾切换