Files
xk-hy-transit-go/README.md

62 lines
2.8 KiB
Markdown
Raw Normal View History

2026-05-22 08:06:07 +08:00
# xk-hy-transit-go
外网 Windows 中转:从云端 xk-api 拉取监管组包 → 本机 MySQL 落库 → AES 签名 → 经内网 `xk-hy-forward-go` **双通道**上报政务云28212 业务数据 + 28211 处方 PDF→ 批量回调云端状态。
## 前置
2026-05-27 08:18:07 +08:00
1. 云端配置 `HY_TRANSIT_API_TOKEN`(与 Go `XK_API_TOKEN` 一致),可选 `HY_TRANSIT_PAYLOAD_ENCRYPT=true`(默认开启 result 传输加密),部署 `routes/hy.php``xk_hy_transit_cloud.sql`
2026-05-22 08:06:07 +08:00
2. 本机执行 [`sql/hy_transit_schema.sql`](../sql/hy_transit_schema.sql)。
3. 内网部署 `xk-hy-forward-go`
## 环境配置
```bash
cp .env.example .env
# 编辑 .env 填写 XK_API_TOKEN、HY_*、FORWARD_BASE_URL、FILE_UPLOAD_VIA_FORWARD、MYSQL_DSN
2026-05-27 08:18:07 +08:00
# XK_API_TOKEN 同时用于鉴权 Header 与解密云端 resultSHA256 派生 AES-128 密钥)
2026-05-22 08:06:07 +08:00
```
程序启动时自动 `godotenv.Load()` 读取 `.env`
## 运行
2026-05-22 10:20:13 +08:00
**运营推荐**:直接双击或运行 `transit.exe`(无参数)。交互菜单 **10 秒内无操作** 将自动进入「定时执行(常驻)」;也可用菜单手动选「单次执行」或「定时执行」。超时秒数:`MENU_AUTO_SERVE_TIMEOUT_SEC`(默认 10
2026-05-22 08:06:07 +08:00
**完整命令说明**(单次 / 定时 / 计划任务 / 排错):见 **[docs/COMMANDS.md](docs/COMMANDS.md)**。
```bash
# 交互菜单(无参数)
go run ./cmd/transit
# 单次同步
go run ./cmd/transit sync --step=all --date=2026-05-18
# 定时常驻(默认每天 22:00
go run ./cmd/transit serve
```
步骤:`consult` | `referral` | `recipe` | `verification` | `all`
应用日志默认目录:`log/transit/``pull` / `push` / `app` 按日滚动;控制台仅开始/结束/错误),详见 [docs/COMMANDS.md](docs/COMMANDS.md)。
2026-05-22 09:17:39 +08:00
### Web 控制台
`transit serve` 启动后自动打开 **暗色 Web 控制台**(默认 `http://127.0.0.1:8765/`
- **文件日志**app / pull / push 按日全文
- **同步流水**本机三表关联JSON 详情(拉取 payload → **推送明文** → 请求头/密文 → 政务云响应 → 推断回调)
- **测试执行**:页面触发一次 `sync`(与 CLI 相同,需 `LOG_WEB_ALLOW_TEST=true`
无参数菜单选 **3) 查看日志** 可仅启动 Web不跑 Cron。环境变量`LOG_WEB_ADDR``LOG_WEB_ALLOW_TEST`(见 `.env.example`)。
已有 MySQL 库需执行 [`sql/hy_push_log_plain_migration.sql`](../sql/hy_push_log_plain_migration.sql) 后,新同步记录才会落库推送明文。
2026-05-22 08:06:07 +08:00
## 接口文档
云端 API 说明:[`xk-api/docs/hy-transit-api.md`](../xk-api/docs/hy-transit-api.md)WSL 路径以实际仓库为准)。
## Windows 部署
- 推荐:`transit.exe` 无参数 → 菜单选「定时执行」,或 `transit.exe serve` 注册为服务。
- 计划任务单次:见 `docs/COMMANDS.md``schtasks` 示例。