员工岗位可重新启用;调价认空运航线;会话存档跳号补拉;陆运报价按车型列回填

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
linmianxun
2026-10-28 19:48:47 +08:00
co-authored by Cursor
parent 2b528758b4
commit 56ba8e93b5
62 changed files with 2960 additions and 793 deletions
+51 -94
View File
@@ -1,123 +1,80 @@
# 现网 vs 新系统 inquiry_robot(切换只改配置,不改代码)
# 正服 vs 测服 inquiry_robot(切换只改配置,不改代码)
同一套制品。用 `YTD_ENV=prod` 或 `YTD_ENV=test` 区分阶段(变量名仍叫 YTD_*,与 `03` 对齐)。
**域名与企微与现网相同**(`ai.ytd-scm.com`、应用 `1000010`)。
**产品决策(域名即开关)**:`ai.ytd-scm.com`=正服;`ai-test.ytd-scm.com`=测服。不做后台页面切库。
**新系统资源名一律 `inquiry_robot*`**,禁止再用 `ytd_test` / `ytd:test:` / `ytd-test`。
禁止在代码里写死域名/库名。
切流目标(方案 B):`E:\wwwroot` 取代 `C:\yutongda`。清单见 `deploy/CUTOVER-TO-PROD.md`。
对照表是切换清单。现网发布仍走甲方原流程与 `C:\yutongda` 指针;新系统只写 `E:\wwwroot`。
禁止在代码里写死域名/库名。运维见 `deploy/TEST-ENV.md`、`deploy/CUTOVER-TO-PROD.md`。
## 对照
| 项 | 现网(仍在跑) | 新系统 `inquiry_robot` |
| 项 | 正服 | 测服(独立机) |
|---|---|---|
| `YTD_ENV` | `prod`(现网进程) | 切流前可用 `test`;切流日改 `prod` |
| 公网域名 | `ai.ytd-scm.com` | **同一域名** |
| DNS / 证书 / Nginx | 已有 `ai.conf` | **不要另开域名/证书**;反代按切流改 |
| 站点 / H5 / 企微回调 | 同左 | 配置字符串相同;企微回调 URL **不用改** |
| 后台 API 前缀 | `/jeecgboot` → 旧 Jeecg 8080 | `/jeecgboot` → **新主账 8080**(旧进程已停) |
| 运行根 | `C:\yutongda` | **`E:\wwwroot`**(`admin\current` / `agent\current`) |
| 主账端口 | 8080(旧 Jeecg,已停) | **8080**(新 Java 主账) |
| 智能体 HTTP | 8810(另 8809/8811) | **8910**(合并) |
| AIBOT | 8813 | **8913**(切流前勿双连) |
| MySQL | `jeecg-boot` / `ytd_jeecg` | **`inquiry_robot` / `inquiry_robot`** |
| PostgreSQL | `ytd_runtime` | **`inquiry_robot_runtime`** |
| Redis | db0 `ytd:prod:node01-07` | db1 **`inquiry_robot:`** |
| MinIO 桶 | `ytd-inquiry` | **`inquiry-robot`**(S3 桶名不能用下划线) |
| 询价企微应用 | `1000010` | **同一套** |
| 运维企微 | `1000014` | **同一套**;切流前告警可加 `[test]` |
| AIBOT Bot | 现网 Bot | **同一套**;切流先停 8813 再开 8913 |
| TMS | `03` 现网 Client | 同一套;切流前默认关 lock/release |
| 发布脚本 | 现网累计发布器 | 只写 `E:\wwwroot` |
| 告警前缀 | 无 | 切流前 `[test]`;切流后去掉 |
| `YTD_ENV` | `prod` | `test` |
| 公网 IP | `129.211.181.80` | `183.11.229.69` |
| 公网域名 | `ai.ytd-scm.com` | **`ai-test.ytd-scm.com`** |
| DNS / 证书 / Nginx | `ai.conf` + 正服证书 | **`ai-test.conf` + 测服证书(win-acme)** |
| 站点 / H5 | 正服域名 | 测服域名 |
| 企微回调 URL(企微后台) | `https://ai.ytd-scm.com/wecom/callback` | **暂不改后台**;测服 `.env` 可自洽写 ai-test |
| 后台 API 前缀 | `/jeecgboot` → 主账 8080 | 同左(本机 8080) |
| 运行根 | **`E:\wwwroot`** | **`C:\inquiry-robot`** |
| 主账端口 | 8080 | 8080 |
| 智能体 HTTP | 8910 | 8910 |
| AIBOT | 8913(正服可启) | 8913;**默认关** |
| MySQL | 正服 `inquiry_robot` | **本机** `inquiry_robot` |
| PostgreSQL | 正服 `inquiry_robot_runtime` | **本机** `inquiry_robot_runtime` |
| Redis | 正服 db1 `inquiry_robot:` | **本机** db1 `inquiry_robot:` |
| MinIO 桶 | `inquiry-robot` | **本机** `inquiry-robot` |
| 询价企微应用 | `1000010` | 同一套密钥,不抢长连接 |
| 运维企微 | `1000014` | 同一套;告警加 `[test]` |
| TMS | `03` | 同一套;默认关 lock/release |
| 发布 | 只写 `E:\wwwroot` | 只写 `C:\inquiry-robot` |
| 告警前缀 | 无 | `[test]` |
数据机 IP、3306/5432/6379、MinIO `127.0.0.1:9000` **两边相同**。只换库名、用户、Redis db/前缀、桶。
**切换环境 = 换域名 / 换对应机器上的 `.env` 取值,不改代码。**
测服与正服库主机不同(测服本机),禁止测服进程连正服库。
## 数据库与存储(同一套变量名)
代码、YAML 只读变量名,**禁止**写死库名。现网明文见 `03`;新系统口令新开,写入 `E:\wwwroot\.env`。
代码、YAML 只读变量名,**禁止**写死库名。正服明文见 `03`;测服口令写在测服本机 `C:\inquiry-robot\.env`(勿进 Git)。
| 变量 | 现网 | 新系统 |
| 变量 | 正服 | 测服 |
|---|---|---|
| `MYSQL_HOST` | `10.206.0.14` | 同左 |
| `MYSQL_PORT` | `3306` | 同左 |
| `MYSQL_DB` | `jeecg-boot` | **`inquiry_robot`** |
| `MYSQL_USER` | `ytd_jeecg` | **`inquiry_robot`** |
| `MYSQL_PASSWORD` | 见 `03` | **新开,勿抄现网口令** |
| `YTD_MYSQL_URL` / JDBC | `.../jeecg-boot?...` | `.../inquiry_robot?...` |
| `PG_HOST` | `10.206.0.14` | 同左 |
| `PG_PORT` | `5432` | 同左 |
| `PG_DATABASE` | `ytd_runtime` | **`inquiry_robot_runtime`** |
| `PG_USER` | `ytd_runtime` | **`inquiry_robot_runtime`** |
| `PG_PASSWORD` | 见 `03` | **新开** |
| `PG_SSLMODE` | `prefer` | `prefer` |
| `CHECKPOINT_BACKEND` | `postgres` | `postgres` |
| `YTD_REDIS_HOST` | `10.206.0.14` | 同左 |
| `YTD_REDIS_PORT` | `6379` | 同左 |
| `YTD_REDIS_USERNAME` | `ytd_app` | 可同账号或新账号 |
| `REDIS_URL` | `...6379/0` | **`...6379/1`** |
| `REDIS_KEY_PREFIX` | `ytd:prod:node01-07` | **`inquiry_robot:`** |
| `OBJECT_STORAGE_BUCKET` | `ytd-inquiry` | **`inquiry-robot`** |
| `MYSQL_HOST` | 正服数据机 | **`127.0.0.1`** |
| `MYSQL_PORT` | `3306` | `3306` |
| `MYSQL_DB` / `MYSQL_USER` | `inquiry_robot` | `inquiry_robot` |
| `PG_HOST` | 正服数据机 | **`127.0.0.1`** |
| `PG_DATABASE` / `PG_USER` | `inquiry_robot_runtime` | 同左 |
| `YTD_REDIS_HOST` | 正服数据机 | **`127.0.0.1`** |
| `REDIS_URL` | `.../1` | **本机 `.../1`** |
| `REDIS_KEY_PREFIX` | `inquiry_robot:` | `inquiry_robot:` |
| `OBJECT_STORAGE_ENDPOINT_URL` | 正服 MinIO | **`http://127.0.0.1:9000`** |
| `OBJECT_STORAGE_BUCKET` | `inquiry-robot` | `inquiry-robot` |
新系统 `.env` 片段(口令留空):
测服 `.env` 片段(口令留空):
```text
YTD_ENV=test
YTD_DEPLOY_ROOT=E:\wwwroot
YTD_DEPLOY_ROOT=C:\inquiry-robot
PUBLIC_BASE_URL=https://ai-test.ytd-scm.com
WECOM_CALLBACK_URL=https://ai-test.ytd-scm.com/wecom/callback
INQUIRY_FORM_PUBLIC_BASE_URL=https://ai-test.ytd-scm.com/inquiry-form
BIZ_API_BASE_URL=http://127.0.0.1:8080/jeecgboot
MYSQL_HOST=127.0.0.1
MYSQL_DB=inquiry_robot
MYSQL_USER=inquiry_robot
YTD_MYSQL_URL=jdbc:mysql://10.206.0.14:3306/inquiry_robot?characterEncoding=UTF-8&useUnicode=true&useSSL=true&requireSSL=true&verifyServerCertificate=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
PG_HOST=127.0.0.1
PG_DATABASE=inquiry_robot_runtime
PG_USER=inquiry_robot_runtime
REDIS_URL=redis://ytd_app:<密码>@10.206.0.14:6379/1
REDIS_URL=redis://:<密码>@127.0.0.1:6379/1
REDIS_KEY_PREFIX=inquiry_robot:
OBJECT_STORAGE_BUCKET=inquiry-robot
```
**切换环境 = 换 `.env` 取值,不改代码、不在迁移里写死库名。**
切流前新进程不得连 `jeecg-boot` / `ytd_runtime` / Redis `/0` 且前缀 `ytd:prod:` / 桶 `ytd-inquiry`。
## 代码约定
所有环境差异只进 `.env` / 前端构建参数 / Nginx,例如:
```text
YTD_ENV=test
PUBLIC_BASE_URL=https://ai.ytd-scm.com
WECOM_CALLBACK_URL=https://ai.ytd-scm.com/wecom/callback
INQUIRY_FORM_PUBLIC_BASE_URL=https://ai.ytd-scm.com/inquiry-form
BIZ_API_BASE_URL=http://127.0.0.1:8080
AGENT_CALLBACK_BASE_URL=http://127.0.0.1:8910
WECOM_AIBOT_BRIDGE_URL=http://127.0.0.1:8913
WECOM_AIBOT_INGRESS_URL=http://127.0.0.1:8910/internal/aibot/inbound
WECOM_AIBOT_ENABLED=false
WECOM_AIBOT_BOT_ID=
WECOM_AIBOT_SECRET=
WECOM_AIBOT_WS_URL=wss://openws.work.weixin.qq.com
REDIS_KEY_PREFIX=inquiry_robot:
PG_DATABASE=inquiry_robot_runtime
MYSQL_DB=inquiry_robot
OBJECT_STORAGE_BUCKET=inquiry_robot
```
两套 `.env` 分开放:现网仍在 `C:\yutongda\...`,新系统在 `E:\wwwroot\.env`。不要互相覆盖。
## 以后切到正式(新系统接管)
见 `deploy/CUTOVER-TO-PROD.md`。顺序摘要:
1. 新进程在隔离库 `inquiry_robot*` 验收通过。
2. `.env`:`YTD_ENV=prod`;库继续 `inquiry_robot*`(或甲方最终名)。
3. Nginx 反代切到新主账/智能体;企微回调 URL 不用改。
4. 停现网 8813,再起 8913。
5. 去掉告警 `[test]`。
**切换环境 = 换域名 / 换对应机器 `.env`,不改代码。**
## 禁止
- 新进程连 `jeecg-boot` / `ytd:prod:` / 桶 `ytd-inquiry`
- 测服连正服库 / 正服 Redis / 正服桶
- 新系统再使用 `ytd_test` / `ytd:test:` / `ytd-test` 命名
- 并存期与现网 **同时** 连接同一 AIBOT 长连接
- 与正服 **同时** 连接同一 AIBOT 长连接
- 一份 `.env` 混用两套库
- 测服发版改正服 Nginx / 企微回调 URL