| | |
| | | | ç»ä»¶ | çæ¬ | 说æ | |
| | | |------|------|------| |
| | | | JDK | 1.8 | é¨ç½²æºå¿
é¡»ï¼å端ç¼è¯/è¿è¡ | |
| | | | MySQL | 5.7 / 8.0 | é¨ç½²æºå¿
é¡»ï¼åºå `traffic_audit` | |
| | | | MySQL | **8.0** | é¨ç½²æºå¿
é¡»ï¼åºå `traffic_audit`ï¼ç°ç½/å¼åæºä¸º 8.0.29ï¼è¡¨æåºè§åæ¯ `utf8mb4_0900_ai_ci`ï¼**ç®æ æºè£
5.7 ä¼å¯¼å
¥å¤±è´¥** | |
| | | | Maven 3.x / Node.js 14+ | â | **åªæãå¨é¨ç½²æºä¸æå
ãæéè¦**ï¼ç¨ä¸é®èæ¬äº§åºçå
é¨ç½²åä¸éè¦ | |
| | | | Redis | **ä¸éè¦** | ä»£ç æªä½¿ç¨ Redisï¼æ§è¯´æä¸ç Redis é
ç½®æ¯éç项ï¼å¯å¿½ç¥ï¼ | |
| | | | nginx / IIS | **ä¸éè¦** | å端已å
åµè¿ jarï¼è®¿é® 8090 å³å¯ï¼è¦åå端åç¦»æ¶ææ¯å¤é | |
| | |
| | | |
| | | ## äºãç®æ æºå¨é¨ç½²æ¥éª¤ |
| | | |
| | | ### 5.1 åå§åæ°æ®åºï¼4 ä¸ªèæ¬é½è¦æ§è¡ï¼ |
| | | ### 5.1 å夿°æ®åºï¼ä¸¤æ¡è·¯çº¿äºéä¸ï¼**ä¸è¦æ··çå**ï¼ |
| | | |
| | | #### 路线 Aï¼å
¨æ°ç©ºåºï¼è¦è· 4 ä¸ªèæ¬ï¼ |
| | | |
| | | `init.sql` èªå¸¦ `CREATE DATABASE` ä¸ `USE traffic_audit`ï¼å¯ç¬ç«æ§è¡ï¼å¦å¤ 3 ä¸ªèæ¬æ²¡æ `USE` è¯å¥ï¼å¿
é¡»ç¨ `-D traffic_audit`ï¼æ `mysql ... traffic_audit < æä»¶`ï¼æå®åºï¼ |
| | | |
| | | ```bash |
| | | mysql --default-character-set=utf8mb4 -u root -p < db/init.sql |
| | | mysql --default-character-set=utf8mb4 -u root -p traffic_audit < db/sql_city_bus.sql |
| | | mysql --default-character-set=utf8mb4 -u root -p traffic_audit < db/sql_city_taxi.sql |
| | | mysql --default-character-set=utf8mb4 -u root -p traffic_audit < db/sql_wyc.sql |
| | | cd db |
| | | mysql --default-character-set=utf8mb4 -u root -p < init.sql # å»ºåº + 24 å¼ åºç¡è¡¨ + é¢ç½®è´¦å· |
| | | mysql --default-character-set=utf8mb4 -u root -p -D traffic_audit < sql_city_bus.sql |
| | | mysql --default-character-set=utf8mb4 -u root -p -D traffic_audit < sql_city_taxi.sql |
| | | mysql --default-character-set=utf8mb4 -u root -p -D traffic_audit < sql_wyc.sql |
| | | ``` |
| | | |
| | | - é¢ç½®è´¦å·ï¼`admin / admin123`ï¼ç»å½å请ç«å³æ¹å¯ç ï¼ã |
| | | - æ³è¿æ°æ®ä¸èµ·æ¬ï¼å¨æºæºå¨ `mysqldump -u root -p --databases traffic_audit > traffic_audit_full.sql`ï¼å¨ç®æ æºå¨ `mysql -u root -p < traffic_audit_full.sql`ï¼ä¼è¦çé¢ç½®è´¦å·ï¼ã |
| | | > â ï¸ **`init.sql` æ¯ç ´åæ§ç**ï¼éé¢çåºç¡è¡¨é½å¸¦ `DROP TABLE IF EXISTS`ã**å·²ææ°æ®çåºä¸åä¸ä¸è¦åè· init.sql**ï¼å¦åè¡¨æ°æ®ä¼è¢«æ¸
空é建ã |
| | | > 4 ä¸ªèæ¬å
±è¦ç 29 å¼ è¡¨ï¼init.sql 24 å¼ + åå¸å®¢è¿ 3 å¼ + ç½çº¦è½¦ 2 å¼ ï¼ã |
| | | |
| | | #### 路线 Bï¼æç°ç½/å¼åæºçæ°æ®æ´å¥æ¬è¿å»ï¼æ¨èï¼ä¸ç¨è·èæ¬ï¼ |
| | | |
| | | å
确认两端 MySQL 齿¯ **8.0**ï¼æ¬åºè¡¨æåºè§å为 `utf8mb4_0900_ai_ci`ï¼5.7 ä¸è¯å«ä¼å¯¼è´å¯¼å
¥å¤±è´¥ï¼ï¼å¹¶ä¸**ç¨ä¸æå¡ç«¯åçæ¬ç mysqldump**ï¼ä¸è¦ç¨ 5.7 ç客æ·ç«¯å»å¯¼ 8.0 æå¡ç«¯ï¼ã |
| | | |
| | | 卿ºæºå¨ï¼æ¬æº MySQL 端å£ç¤ºä¾ 3308ï¼æå®é
æ¹ï¼ï¼ |
| | | |
| | | ```bash |
| | | "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe" ^ |
| | | --host=127.0.0.1 --port=3308 --user=root --password=ä½ çå¯ç ^ |
| | | --default-character-set=utf8mb4 --single-transaction --routines --triggers --events ^ |
| | | --databases traffic_audit > traffic_audit_full_YYYYMMDD.sql |
| | | ``` |
| | | |
| | | å¨ç®æ æºå¨ï¼ |
| | | |
| | | ```bash |
| | | mysql --default-character-set=utf8mb4 -u root -p < traffic_audit_full_YYYYMMDD.sql |
| | | ``` |
| | | |
| | | - `--databases` 伿 `CREATE DATABASE` + `USE` ä¸èµ·åè¿å¤ä»½ï¼æä»¥ç®æ æºå¨**ä¸ç¨å
建åºãä¹ä¸ç¨è·é£ 4 ä¸ªèæ¬**ã |
| | | - å¤ä»½éå
å« `sys_user`ï¼è´¦å·å¯ç 䏿ºæºå¨å®å
¨ä¸è´ï¼æ¬æºæ¯ `admin / 123456`ï¼ï¼ä¸ä¼è¢«éç½®æ `admin/admin123`ã |
| | | - â ï¸ å¤ä»½éæ¯å¼ 表é½å¸¦ `DROP TABLE IF EXISTS`ï¼å
± 29 å¼ ï¼ï¼**ç®æ åºè¦æ¯å·²ææ°æ®ï¼ä¼è¢«ç´æ¥è¦ç**ã请è¿åå°ç©ºåºï¼æå
èªå·±å¤ä»½ç®æ åºã |
| | | - æ¬æ¬¡å·²çæå¹¶**éªè¯è¿**å¤ä»½ï¼`traffic_audit_full_20260913.sql`ï¼45.5 MBï¼8.0.29 客æ·ç«¯å¯¼åºï¼ã |
| | | éªè¯æ¹å¼ï¼æå¤ä»½åºåæ¹æä¸´æ¶åºå¯¼å
¥ï¼é表æ¯å¯¹ `SHOW CREATE TABLE`ï¼è¡¨ç»æï¼ä¸ `COUNT(*)`ï¼è¡æ°ï¼ââ**29 å¼ è¡¨ç»æä¸è¡æ°å 0 å·®å¼**ï¼æ½æ¥ `wyc_order_monthly` 2026-08 æ°æ®ä¸è´ï¼éªè¯åå·²å é¤ä¸´æ¶åºã |
| | | |
| | | #### 路线 B2ï¼ç¨ Navicat çãå¤ä»½ / è¿åå¤ä»½ãï¼.nb3ï¼æè´´è¿æ¥å¸¸ä¹ æ¯ï¼ |
| | | |
| | | `.nb3` æ¯ Navicat ç§æå¤ä»½æ ¼å¼ï¼tar 容å¨ï¼æ¯å¼ 表ä¸ä»½ meta.json + gz åç¼©çæ°æ®åç + SHA1 æ ¡éª + æ» meta.jsonï¼ï¼ |
| | | åªè½ç± Navicat èªå·±çæãä¹åªè½å¨ Navicat éç¨ãè¿åå¤ä»½ãè¿åââ**ç¨ `.sql` ç¹ãè¿åå¤ä»½ãä¸å®å¤±è´¥**ï¼é£ä¸ªå
¥å£åªè®¤ .nb3ï¼ã |
| | | |
| | | 卿ºæºå¨ï¼30 ç§ï¼ï¼ |
| | | |
| | | 1. Navicat â è¿æ¥ `mysql80` â éä¸ `traffic_audit` â å³é® âãå¤ä»½â¦ãâ 起个åå â ç¡®å®ï¼çå®è·å®ï¼ |
| | | 2. çæçå¤ä»½æä»¶å¨ Navicat ç profile ç®å½ï¼`D:\ææ¡£\Navicat\MySQL\Servers\mysql80\traffic_audit\<æ¶é´æ³>.nb3` |
| | | ï¼æ¬æº 8/27 é£ä»½å°±å¨è¿éï¼ä½å®**å·²è¿æ**ï¼åªæ 27 å¼ è¡¨ã缺ç½çº¦è½¦ä¸¤å¼ è¡¨ãæ°æ®æ¯ 8/27 çï¼ä¸è¦ç¨ï¼ã |
| | | |
| | | å¨ç®æ æºå¨ï¼ |
| | | |
| | | 3. å
å¨ Navicat é建ä¸ä¸ªè¿å°æ¬æº MySQL 8.0 çè¿æ¥ï¼**è¿æ¥åå»ºè®®ä¸æºæºå¨ä¸è´ï¼æ¯å¦ `mysql80`**ï¼ï¼å¹¶æ°å»ºç©ºåº `traffic_audit`ï¼å符é utf8mb4ï¼ï¼ |
| | | 4. æ `.nb3` æ¾å°ç®æ æºå¨ç对åºç®å½ `<Navicat profile>\MySQL\Servers\<è¿æ¥å>\traffic_audit\`ï¼æ²¡æå°±ç
§ç建ç®å½ï¼ï¼ |
| | | 5. å³é®è¯¥åº âãè¿åå¤ä»½ãâ å¨éæ©å表éå¾éè¿ä»½å¤ä»½ â å¼å§ï¼å表éçä¸å°å°±éå¯ä¸æ¬¡ Navicatï¼ã |
| | | |
| | | > ä¸ç§æ¹å¼ï¼è·¯çº¿ A ç©ºåº 4 èæ¬ / 路线 B å½ä»¤è¡è¿å .sql / 路线 B2 Navicat .nb3ï¼**ä»»éå
¶ä¸**å³å¯ï¼ |
| | | > ä½**ä¸è¦å å **ï¼è¿åå®å¤ä»½ååè· `init.sql` ä¼ææ°æ®æ¸
空é建ã |
| | | |
| | | > 注æï¼`docs/` ç®å½ï¼æ¥è¡¨æ¨¡æ¿ãæ±æ»å¤§è¡¨æ¯çï¼**䏿°æ®åºæ å
³ï¼æ è®ºåªæ¡è·¯çº¿é½å¿
é¡»ä¸å¹¶æ·è´**ã |
| | | |
| | | ### 5.2 æ¹é
ç½® `backend/application.yml` |
| | | |
| | |
| | | |
| | | - **2026-09-13**ï¼æ°å¢ä¸é®æå
èæ¬ `package-deploy.py`ï¼jar æ¹ä¸ºå
åµå端ï¼é¨ç½²æºä¸åéè¦ nginxï¼ï¼å é¤ Redis ç¸å
³è¯´æï¼ä»£ç æªä½¿ç¨ï¼ï¼è¡¥ `sql_wyc.sql` ä¸ `summary.template-dir`ï¼è¡¥ `jwt.secret` åå¼è§åï¼è¡¥é¨ç½²åéªè¯æ¸
åã |
| | | - 2026-08-27ï¼é¦çï¼zip é¨ç½²å
+ nginx æ¹æ¡ï¼ã |
| | | |
| | | --- |
| | | |
| | | ## å¯é¥ä¸é
ç½®ï¼2026-09-26 èµ·ï¼æå
å¿
è¯»ï¼ |
| | | |
| | | ### åå±çº¦å® |
| | | |
| | | | ä½ç½® | ç¨é | æ¯å¦è¿ git | æ¯å¦è¿ jar | |
| | | | --- | --- | --- | --- | |
| | | | `traffic-audit-server/src/main/resources/application.yml` | è¿ jar çé»è®¤é
ç½®ï¼**åªæå ä½ç¬¦**ï¼`${TRAFFIC_DB_PASSWORD:}`ã`${DEEPSEEK_API_KEY:}` çï¼ | å¦ï¼å·² gitignoreï¼ç¨ `application.yml.example` 忍¡æ¿ï¼ | **æ¯**ï¼æ çå®å¼ï¼ | |
| | | | `traffic-audit-server/config/application.yml` | æ¬æºå¼åçå®å¼ï¼åºå£ä»¤ / JWT / DeepSeek keyï¼ | å¦ï¼å·² gitignoreï¼ | å¦ | |
| | | | jar å级ç `backend/application.yml` | é¨ç½²æºçå®å¼ï¼ä¼å
级é«äº jar å
ç½®ï¼ | å¦ | å¦ï¼å¨å
å¤ï¼ç°åºå¡«ï¼ | |
| | | | ç¯å¢åé `TRAFFIC_DB_PASSWORD` / `TRAFFIC_DB_USER` / `TRAFFIC_DB_URL` / `TRAFFIC_JWT_SECRET` / `DEEPSEEK_API_KEY` | è¦ç以ä¸ä»»æä¸é¡¹ | å¦ | å¦ | |
| | | |
| | | ### æ¬æºå¼åï¼å¼æ¾ç¯å¢åéï¼ä¸è½æä»¶ï¼ |
| | | |
| | | ```powershell |
| | | setx TRAFFIC_DB_PASSWORD "æ¬æº MySQL å£ä»¤" # è®¾ä¸æ¬¡å³å¯ï¼ä¹åæ°å¼çç»ç«¯èªå¨å¸¦ä¸ |
| | | setx DEEPSEEK_API_KEY "DeepSeek key" |
| | | # éè¦æ¶åè¦çï¼setx TRAFFIC_DB_URL / TRAFFIC_DB_USER / TRAFFIC_JWT_SECRET |
| | | |
| | | powershell -NoProfile -ExecutionPolicy Bypass -File start-dev.ps1 # ä¼èªå¨ä»æ³¨å表补é½å¹¶æ³¨å
¥å端è¿ç¨ |
| | | ``` |
| | | |
| | | - `traffic-audit-server/config/application.yml` åªç注é说æï¼æ ææï¼ï¼å æå®ä¹ä¸å½±åï¼å¼å
¨å¨ç¯å¢åééï¼ã |
| | | - è¥ç¨ IDE ç´æ¥è·ä¸»ç±»ï¼è¯·å¨**æ°å¼ç**ç»ç«¯/IDE éå¯å¨ï¼è®©æ°ç»ç«¯ç»§æ¿ç¨æ·ç¯å¢åéï¼ï¼ææå¨ `setx` åéå¯ IDEã |
| | | |
| | | ### æå
åèªæ¥ï¼30 ç§ï¼ |
| | | |
| | | ```powershell |
| | | # 1) ç¡®è®¤è¿ jar çé
置没æçå®å¯é¥ï¼åºåªçå° ${...}ï¼ |
| | | Select-String -Path traffic-audit-server\src\main\resources\application.yml -Pattern "password:|api-key:|secret:" |
| | | # 2) æå®å
ååéªè¯ä¸æ¬¡ jar å
é¨ |
| | | python -c "import zipfile;print(zipfile.ZipFile('traffic-audit-server/target/traffic-audit-server-1.0.0-SNAPSHOT.jar').read('BOOT-INF/classes/application.yml').decode('utf-8'))" | Select-String "password:|api-key:" |
| | | ``` |
| | | |
| | | |
| | | ### ä¸é®æå
ï¼æ¨èï¼2026-09-27 èµ·ï¼ |
| | | |
| | | ```powershell |
| | | powershell -NoProfile -ExecutionPolicy Bypass -File pack-deploy.ps1 |
| | | # å¯éåæ°ï¼ -OutRoot "E:\è¯éª" -SkipFrontend |
| | | ``` |
| | | |
| | | èæ¬ååä»¶äºï¼ |
| | | 1. `mvn clean package -DskipTests` æå»ºå端 jarï¼ |
| | | 2. **è§£å jar èªæ£**ï¼æ£æ¥ `BOOT-INF/classes/application.yml` æ¯å¦å
¨ä¸ºå ä½ç¬¦ââ䏿¦åç° `sk-` æææå£ä»¤**ç´æ¥ä¸æ¢æå
**ï¼ |
| | | 3. `npm run build` é建å端 `dist`ï¼ |
| | | 4. æ `deploy-templates/` ç»è£
宿´é¨ç½²å
ï¼backend / frontend / db / README-é¨ç½²è¯´æ.txtï¼ï¼è¾åºå° `<OutRoot>\traffic-audit-deploy-<yyyyMMdd>`ã |
| | | |
| | | 模æ¿ä»¶ç»ä¸æ¾å¨ **`deploy-templates/`**ï¼å·²å
¥åºï¼ï¼å¤é¨ `application.yml`ã`start-backend.cmd/.sh`ã`nginx.conf.example`ã`db\{init.sql,sql_city_bus,sql_city_taxi,sql_wyc}.sql`ã`README-é¨ç½²è¯´æ.txt`ãæ¹æ¨¡æ¿å³æ¹æå
产ç©ã |
| | | |
| | | ### è½®æ¢å¯é¥ååæ¥æ¬æº |
| | | |
| | | ```powershell |
| | | powershell -NoProfile -ExecutionPolicy Bypass -File set-secrets.ps1 |
| | | ``` |
| | | |
| | | 交äºå¼è¾å
¥ï¼åè½¦è·³è¿æä¸é¡¹ï¼ï¼èªå¨ `setx` å°ç¨æ·ç¯å¢åéå¹¶æç¤ºéå¯å端ï¼å¼ä¸ä¼åå
¥ä»»ä½æä»¶ã |
| | | |
| | | ### é¨ç½²æºä¸å /æ¢ DeepSeek key |
| | | |
| | | 1. æå
ä¸ä¼ åï¼ç¼è¾ **jar å级**ç `backend/application.yml`ï¼`deepseek.api-key: "ä½ çæ°key"`ï¼ç空åé¡µé¢ AI åæä¸å¯ç¨ï¼å
¶ä½åè½æ£å¸¸ï¼ï¼ |
| | | 2. éå¯å端ï¼`start-backend.cmd`ï¼æ `java -jar traffic-audit-server-1.0.0-SNAPSHOT.jar`ï¼ï¼ |
| | | 3. 页é¢éç¹ä¸æ¬¡ AI åæç¡®è®¤å¯ç¨ï¼ |
| | | 4. **ä¸è¦**廿¹ jar å
é¨çé
ç½®ï¼æ¹äºä¸æ¬¡åå
就丢ï¼ï¼ä¹ä¸è¦æ key æäº¤è¿ä»»ä½ä»åºæä»¶ã |
| | | |
| | | ### è½®æ¢ï¼ä½åºï¼å·²æ³é²ç key |
| | | |
| | | 1. ç»å½ DeepSeek æ§å¶å° â API Keys â æ°å»ºä¸ä¸ª keyï¼ |
| | | 2. å é¤/ç¦ç¨æ§ keyï¼æ§ key ç«å»å¤±æï¼æ¤åæå
带åºå»ç jar éé£ä»½å³ä½åºï¼ï¼ |
| | | 3. æä¸é¢ç¬¬ 1~3 æ¥ææ° key å¡«å°é¨ç½²æºçå¤é¨é
置并éå¯éªè¯ã |