Files
zhanghongyu_0626 c9cac1cdf9 feat(api): 更新代销平台 API v0.1,增强适当性检查功能
- 在 `risk_suitability_log` 表中新增 `check_source` 枚举值 `platform`,支持代销平台的适当性检查。
- 更新相关 SQL 脚本以适应新的数据结构,确保数据一致性。
- 修改文档以反映 API 的最新状态和测试基线,确保文档与实现保持一致。
- 测试基线更新至 530 passed, 0 skipped,确保系统稳定性。

此更新为代销平台提供了更全面的适当性检查能力,提升了系统的功能性与可维护性。
2026-09-08 21:44:16 +08:00

84 lines
2.6 KiB
PowerShell

#Requires -Version 5.1
param(
[string]$MysqlUser = "root",
[string]$MysqlHost = "127.0.0.1",
[string]$MysqlPassword = $env:MYSQL_PASSWORD
)
$ErrorActionPreference = "Stop"
$Root = Split-Path (Split-Path $PSScriptRoot -Parent) -Parent
Set-Location $Root
if (-not $MysqlPassword) {
if (Test-Path ".env") {
Get-Content ".env" | ForEach-Object {
if ($_ -match '^\s*MYSQL_PASSWORD=(.*)$') { $MysqlPassword = $Matches[1].Trim() }
}
}
}
if (-not $MysqlPassword) {
throw "MYSQL_PASSWORD missing in env or .env"
}
function Invoke-SqlFile($path) {
Write-Host "SQL file: $path"
python (Join-Path $Root "scripts/dev/run_sql_file.py") $path
}
Write-Host "[1/6] Docker Redis + Neo4j"
docker compose up -d
docker compose ps
Write-Host "[2/6] Recreate jinrong_core"
& mysql -h $MysqlHost -u $MysqlUser "-p$MysqlPassword" -e "DROP DATABASE IF EXISTS jinrong_core;"
$coreFiles = @(
"scripts/core/00-create-database.sql",
"scripts/core/01-ddl.sql",
"scripts/core/02-seed-base.sql",
"scripts/core/03-seed-customers.sql",
"scripts/core/04-seed-holdings.sql",
"scripts/core/05-seed-trades.sql",
"scripts/core/06-seed-nav.sql"
)
foreach ($f in $coreFiles) { Invoke-SqlFile (Join-Path $Root $f) }
Write-Host "[3/6] Agent base tables"
python -c @"
from pathlib import Path
import subprocess
pwd = '$MysqlPassword'
root = Path('.')
for name in ['01-mysql-共用底座.sql', '02-mysql-agent专用.sql']:
f = root / 'docs' / '项目框架设计' / '表设计' / name
print('SQL', f)
sql = f.read_text(encoding='utf-8')
p = subprocess.run(['mysql','-h','$MysqlHost','-u','$MysqlUser',f'-p{pwd}'], input=sql.encode('utf-8'))
if p.returncode != 0:
raise SystemExit(p.returncode)
"@
Write-Host "[4/6] Sync advisor rel"
python scripts/sync/sync_advisor_rel.py
Write-Host "[5/6] Wait Neo4j then sync graph"
$ready = $false
for ($i = 0; $i -lt 30; $i++) {
try {
$r = Invoke-WebRequest -Uri "http://127.0.0.1:7474" -UseBasicParsing -TimeoutSec 3
if ($r.StatusCode -eq 200) { $ready = $true; break }
} catch {
Start-Sleep -Seconds 2
}
}
if ($ready) {
python scripts/sync/sync_neo4j.py
} else {
Write-Host "WARN: Neo4j not ready; run: python scripts/sync/sync_neo4j.py"
}
Write-Host "[6/6] Verify counts"
& mysql -h $MysqlHost -u $MysqlUser "-p$MysqlPassword" -e "SELECT COUNT(*) AS core_customers FROM jinrong_core.core_customer; SELECT COUNT(*) AS advisor_rel FROM jinrong_agent.customer_advisor_rel; SHOW TABLES FROM jinrong_agent LIKE 'agent_session';"
Write-Host "Bootstrap finished."