| | |
| | | â ââ sql_city_bus.sql åå¸å®¢è¿-å
¬äº¤æåº¦è¡¨ï¼å¿
é¡»æ§è¡ï¼ |
| | | â ââ sql_city_taxi.sql åå¸å®¢è¿-åºç§æåº¦è¡¨/ææè¡¨ï¼å¿
é¡»æ§è¡ï¼ |
| | | â ââ sql_wyc.sql ç½çº¦è½¦å
¨çæ»é/订ååå¸å·è¡¨ï¼å¿
é¡»æ§è¡ï¼ |
| | | â ââ sql_holiday.sql ä¸é¡¹ç»è®¡-éè¦èåæ¥è¡¨ï¼å¿
é¡»æ§è¡ï¼ |
| | | â ââ sql_holiday_comparison_base_migration.sql è忥æ§åºåçº§ï¼æ®éå½çéç¯æ¯åºæå段 |
| | | â ââ sql_holiday.sql ä¸é¡¹ç»è®¡-éè¦èåæ¥è¡¨ï¼æ§åºè¡¥å»ºæ¶æ§è¡ï¼ |
| | | â ââ sql_holiday_decimal_migration.sql è忥æ°å¼å精度è¿ç§»ï¼æ§åºåçº§ï¼ |
| | | â ââ sql_holiday_comparison_base_migration.sql èåæ¥ç¯æ¯åºæå段è¿ç§»ï¼æ§åºåçº§ï¼ |
| | | ââ README-é¨ç½²è¯´æ.txt |
| | | ``` |
| | | |
| | |
| | | |
| | | ### 5.1 å夿°æ®åºï¼ä¸¤æ¡è·¯çº¿äºéä¸ï¼**ä¸è¦æ··çå**ï¼ |
| | | |
| | | #### 路线 Aï¼å
¨æ°ç©ºåºï¼è¦è· 5 ä¸ªèæ¬ï¼ |
| | | #### 路线 Aï¼å
¨æ°ç©ºåºï¼è¦è· 4 ä¸ªèæ¬ï¼ |
| | | |
| | | `init.sql` èªå¸¦ `CREATE DATABASE` ä¸ `USE traffic_audit`ï¼å¯ç¬ç«æ§è¡ï¼å¦å¤ 4 ä¸ªèæ¬æ²¡æ `USE` è¯å¥ï¼å¿
é¡»ç¨ `-D traffic_audit`ï¼æ `mysql ... traffic_audit < æä»¶`ï¼æå®åºï¼ |
| | | `init.sql` èªå¸¦ `CREATE DATABASE` ä¸ `USE traffic_audit`ï¼å¯ç¬ç«æ§è¡ï¼å¦å¤ 3 ä¸ªèæ¬æ²¡æ `USE` è¯å¥ï¼å¿
é¡»ç¨ `-D traffic_audit`ï¼æ `mysql ... traffic_audit < æä»¶`ï¼æå®åºï¼ |
| | | |
| | | ```bash |
| | | cd db |
| | |
| | | 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 |
| | | mysql --default-character-set=utf8mb4 -u root -p -D traffic_audit < sql_holiday.sql |
| | | ``` |
| | | |
| | | > â ï¸ **`init.sql` æ¯ç ´åæ§ç**ï¼éé¢çåºç¡è¡¨é½å¸¦ `DROP TABLE IF EXISTS`ã**å·²ææ°æ®çåºä¸åä¸ä¸è¦åè· init.sql**ï¼å¦åè¡¨æ°æ®ä¼è¢«æ¸
空é建ã |
| | | > å·²é¨ç½²è¿æ©æèåæ¥æ¨¡åçç°æåºï¼å级åå
æ§è¡ `sql_holiday_comparison_base_migration.sql` æ·»å `comparison_base` åæ®µï¼å
¨æ°åºç´æ¥ä½¿ç¨å·²æ´æ°åç `sql_holiday.sql`ã |
| | | > 5 ä¸ªèæ¬å
±è¦ç 33 å¼ è¡¨ï¼init.sql 28 å¼ + åå¸å®¢è¿ 3 å¼ + ç½çº¦è½¦ 2 å¼ ï¼ã |
| | | > æ©æçæ¬åºè¥æ²¡æè忥 4 å¼ è¡¨ï¼æ§è¡ `sql_holiday.sql`ï¼è¥å·²æèåæ¥è¡¨ä½ç¼ºç²¾åº¦æç¯æ¯åºæåæ®µï¼æéæ§è¡ä¸¤ä¸ªè¿ç§»èæ¬ã |
| | | > 4 ä¸ªèæ¬å
±è¦ç 33 å¼ è¡¨ï¼init.sql 28 å¼ ï¼å
¶ä¸å«è忥 4 å¼ + åå¸å®¢è¿ 3 å¼ + ç½çº¦è½¦ 2 å¼ ï¼ã |
| | | |
| | | #### 路线 Bï¼æç°ç½/å¼åæºçæ°æ®æ´å¥æ¬è¿å»ï¼æ¨èï¼ä¸ç¨è·èæ¬ï¼ |
| | | |
| | |
| | | mysql --default-character-set=utf8mb4 -u root -p < traffic_audit_full_YYYYMMDD.sql |
| | | ``` |
| | | |
| | | - `--databases` 伿 `CREATE DATABASE` + `USE` ä¸èµ·åè¿å¤ä»½ï¼æä»¥ç®æ æºå¨**ä¸ç¨å
建åºãä¹ä¸ç¨è·é£ 5 ä¸ªèæ¬**ã |
| | | - `--databases` 伿 `CREATE DATABASE` + `USE` ä¸èµ·åè¿å¤ä»½ï¼æä»¥ç®æ æºå¨**ä¸ç¨å
建åºãä¹ä¸ç¨è·é£ 4 ä¸ªèæ¬**ã |
| | | - å¤ä»½éå
å« `sys_user`ï¼è´¦å·å¯ç 䏿ºæºå¨å®å
¨ä¸è´ï¼æ¬æºæ¯ `admin / 123456`ï¼ï¼ä¸ä¼è¢«éç½®æ `admin/admin123`ã |
| | | - â ï¸ å¤ä»½éæ¯å¼ 表é½å¸¦ `DROP TABLE IF EXISTS`ï¼å
± 29 å¼ ï¼ï¼**ç®æ åºè¦æ¯å·²ææ°æ®ï¼ä¼è¢«ç´æ¥è¦ç**ã请è¿åå°ç©ºåºï¼æå
èªå·±å¤ä»½ç®æ åºã |
| | | - â ï¸ å¤ä»½éæ¯å¼ 表é½å¸¦ `DROP TABLE IF EXISTS`ï¼ä»¥å®é
å¤ä»½ä¸ºåï¼ææ°ä¸º 33 å¼ ï¼ï¼**ç®æ åºè¦æ¯å·²ææ°æ®ï¼ä¼è¢«ç´æ¥è¦ç**ã请è¿åå°ç©ºåºï¼æå
èªå·±å¤ä»½ç®æ åºã |
| | | - æ¬æ¬¡å·²çæå¹¶**éªè¯è¿**å¤ä»½ï¼`traffic_audit_full_20260913.sql`ï¼45.5 MBï¼8.0.29 客æ·ç«¯å¯¼åºï¼ã |
| | | éªè¯æ¹å¼ï¼æå¤ä»½åºåæ¹æä¸´æ¶åºå¯¼å
¥ï¼é表æ¯å¯¹ `SHOW CREATE TABLE`ï¼è¡¨ç»æï¼ä¸ `COUNT(*)`ï¼è¡æ°ï¼ââ**29 å¼ è¡¨ç»æä¸è¡æ°å 0 å·®å¼ï¼æ°å¢èåæ¥æ¨¡åå为 33 å¼ ï¼**ï¼æ½æ¥ `wyc_order_monthly` 2026-08 æ°æ®ä¸è´ï¼éªè¯åå·²å é¤ä¸´æ¶åºã |
| | | |
| | |
| | | |
| | | - **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 å¡«å°é¨ç½²æºçå¤é¨é
置并éå¯éªè¯ã |