break 2a7a8fb49d
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m28s
修复
2026-08-11 15:27:18 +08:00
2026-08-10 16:30:38 +08:00
2026-08-11 15:27:18 +08:00
2026-08-11 11:18:11 +08:00
2026-07-27 09:31:24 +08:00
2026-08-07 16:18:07 +08:00
2026-08-11 15:27:18 +08:00
2026-08-10 17:37:55 +08:00
2026-08-11 11:18:11 +08:00
2026-05-09 10:35:22 +08:00
2026-08-11 15:27:18 +08:00
2026-08-11 11:18:11 +08:00
2026-08-10 17:37:55 +08:00
2026-08-07 16:18:07 +08:00
2026-08-07 16:18:07 +08:00
2026-06-17 16:23:03 +09:00
2026-06-17 16:23:03 +09:00
2026-08-11 11:18:11 +08:00
2026-07-20 10:56:26 +09:00

君鸿卡管系统

Go/Fiber 后端,负责物联网卡与设备、套餐、订单、钱包、分佣、审批、轮询任务及第三方渠道协作。

前置条件

  • Go 版本以 go.mod 为准。
  • 可访问的隔离 PostgreSQL 与 Redis仓库当前不提供本地依赖容器。
  • golang-migrate 用于数据库迁移。
  • 外部支付、Gateway、企业微信、短信和对象存储按需配置不做对应操作时可保持未配置。

初始化配置

./scripts/setup-env.sh .env.local

脚本为交互式向导。启动前至少确认 PostgreSQL、Redis、JWT 和日志路径;本地日志建议写入仓库的忽略目录:

export JUNHONG_LOGGING_APP_LOG_FILENAME="$PWD/logs/app.log"
export JUNHONG_LOGGING_ACCESS_LOG_FILENAME="$PWD/logs/access.log"

不得复制 Makefile 中的历史数据库连接信息。

数据库迁移

空白隔离库先导入 scripts/manual_db_release/generated/00_schema_baseline.sql,再执行 scripts/manual_db_release/06_mark_schema_migrations.sql 标记版本 140最后运行后续迁移历史 1 至 114 已归档,不能直接对空库执行 migrate.sh upscripts/migrate.sh 使用 DB_* 参数,与应用的 JUNHONG_DATABASE_* 前缀不同;显式传入的 DB_* 优先于 .env,只连接明确指定的隔离数据库:

DB_HOST=127.0.0.1 DB_PORT=5432 DB_USER=<USER> DB_PASSWORD=<PASSWORD> \
DB_NAME=<ISOLATED_DB> DB_SSLMODE=disable ./scripts/migrate.sh up

查看版本:

DB_HOST=127.0.0.1 DB_USER=<USER> DB_PASSWORD=<PASSWORD> \
DB_NAME=<ISOLATED_DB> ./scripts/migrate.sh version

构建与启动

go build ./cmd/api ./cmd/worker
./scripts/run-local.sh api       # API
./scripts/run-local.sh worker    # Worker
./scripts/run-local.sh both      # 两者

run-local.sh 会加载 .env.local。Worker 角色由 JUNHONG_WORKER_ROLE=all|leader|consumer 决定。

Smoke

API 默认监听 :3000。启动后执行:

curl -fsS http://127.0.0.1:3000/health
curl -fsS http://127.0.0.1:3000/ready

预期统一响应的 data.status 分别为 healthyready。外部依赖或配置不完整导致进程启动失败时,先查看应用日志。

日志与定位

tail -f logs/app.log
tail -f logs/access.log
rg '<REQUEST_ID>|<CORRELATION_ID>' logs/app.log logs/access.log

实际路径由 JUNHONG_LOGGING_APP_LOG_FILENAMEJUNHONG_LOGGING_ACCESS_LOG_FILENAME 决定。API 与 Worker 共用应用日志配置;访问日志只记录 HTTP 请求。

重置隔离数据库

以下命令会删除并重建整个数据库,只允许显式指向可丢弃的隔离环境:

JUNHONG_DATABASE_HOST=127.0.0.1 \
JUNHONG_DATABASE_PORT=5432 \
JUNHONG_DATABASE_USER=<USER> \
JUNHONG_DATABASE_PASSWORD=<PASSWORD> \
JUNHONG_DATABASE_DBNAME=<DISPOSABLE_DB> \
./scripts/reset_db.sh

执行前人工核对主机、端口和库名;不得指向生产或共享环境。

Context 验证

go run cmd/gendocs/main.go
openspec doctor --json
openspec validate --all
./scripts/context-health.sh

自动化测试当前为 N/A用户决策当前验证依赖构建、OpenAPI、OpenSpec、结构检查、smoke、日志和独立审计。执行 Go 命令时的 GOCACHEGOMODCACHE 必须位于 /private/tmp,不得写入仓库或 .lh-harness/

文档入口

Description
No description provided
Readme 48 MiB
Languages
Go 92.7%
Python 4.9%
Shell 1.1%
PLpgSQL 0.7%
Rust 0.6%