祈福小助手后端服务
基于 Go + Gin + Inertia.js 的后端服务。
功能模块
- 用户模块 — 微信登录、资料修改、授权管理
- 支付模块 — 微信支付集成、订单管理
- 许愿树 — 许愿发布、付费许愿、机器人自动许愿
- 百科/历史上的今天 — 百科条目后台维护;从中文维基百科同步 366 天「历史上的今天」数据,定时刷新
- 管理后台 — 基于 Inertia.js 的前后端分离管理界面
技术栈
- 后端: Go 1.22 + Gin + GORM
- 前端: Inertia.js + React/Vue(待选择)
- 数据库: MySQL
- 缓存: Redis
快速开始
开发环境
# 安装依赖
go mod download
# 启动开发服务器
./scripts/dev.sh
生产构建
# 构建
./scripts/build.sh
# 运行
./bin/lunar-server
项目结构
server/
├── cmd/ # 入口文件
│ └── main.go
├── internal/ # 内部包
│ ├── config/ # 配置
│ ├── handler/ # 处理器
│ ├── middleware/ # 中间件
│ ├── model/ # 数据模型
│ └── service/ # 业务逻辑
├── web/ # Inertia.js 前端
│ ├── src/
│ └── public/
├── migrations/ # 数据库迁移
├── scripts/ # 脚本
└── go.mod
API 接口
用户接口
POST /api/user/login— 用户登录POST /api/user/logout— 用户登出GET /api/user/profile— 获取用户资料PUT /api/user/profile— 更新用户资料POST /api/user/auth— 微信授权
支付接口
POST /api/pay/create— 创建订单POST /api/pay/notify— 支付回调GET /api/pay/status/:orderId— 查询支付状态
订单接口
GET /api/order/list— 订单列表GET /api/order/detail/:id— 订单详情POST /api/order/cancel/:id— 取消订单
许愿接口
GET /api/wish/tree— 获取许愿树POST /api/wish/create— 创建许愿GET /api/wish/list— 许愿列表DELETE /api/wish/:id— 删除许愿
百科接口
GET /api/wiki/entries— 百科条目列表(支持 category/keyword 过滤)GET /api/wiki/on-this-day?month=&day=— 历史上的今天(大事记/出生/逝世/节假日习俗)
管理后台接口(/admin,需管理员认证)
GET/POST /admin/api/wiki/entries— 百科条目列表/新增PUT/DELETE /admin/api/wiki/entries/:id— 更新/删除条目GET /admin/api/wiki/sync-status— 维基同步状态POST /admin/api/wiki/sync— 手动触发全量同步
环境变量
参考 .env.local 文件配置。维基同步相关:
WIKI_SYNC_INTERVAL_DAYS— 自动同步间隔(天),默认 7WIKI_SYNC_HOUR— 自动同步执行的小时点(0-23),默认 4
同步策略:服务启动时若数据缺失自动补齐;之后每天在指定小时点检查,距上次成功超过间隔天数才全量刷新(共 366 页,只抓中文版)。
数据库
执行 migrations/001_init.sql 初始化数据库。