Skip to content

Repository files navigation

EveAnalyzer

EVE Online 工业/成本分析工具,当前重构为 WPF 前端 + 本机后端 API + Core/Infrastructure 分层

当前架构(v2 重构中)

  • 前端:EveAnalyzerApp(WPF)
  • 后端:src/Eve.Backend(ASP.NET Core Web API,默认 http://127.0.0.1:5071
  • 契约:src/EveAnalyzer.Contracts(前后端 DTO)
  • 前端客户端:src/EveAnalyzer.Client(Typed HTTP Client)
  • 基础设施:src/EveAnalyzer.Infrastructure(SDE/ESI/Auth/存储实现)
  • 核心:EveAnalyzerCore(领域与应用接口,已改为类库)
  • CLI 工具:tools/EveAnalyzer.Tools

运行要求

  • Windows 10/11
  • .NET 9 SDK/Runtime
  • EVE SDE JSON 数据目录(包含 _sde.jsonl

SDE 下载:

https://developers.eveonline.com/static-data

启动方式

  1. 先启动后端:
dotnet run --project .\src\Eve.Backend\Eve.Backend.csproj
  1. 再启动 WPF:
dotnet run --project .\EveAnalyzerApp\EveAnalyzerApp\EveAnalyzerApp.csproj
  1. WPF 在市场查询主链路会自动调用后端 bootstrap,默认使用:
  • DataRoot = data-v2
  • BaseUrl = http://127.0.0.1:5071

关键 API(v1)

  • GET /api/v1/health
  • GET /api/v1/version
  • POST /api/v1/system/bootstrap
  • GET /api/v1/catalog/market-groups
  • POST /api/v1/industry/graph/build
  • POST /api/v1/industry/cost/compute
  • POST /api/v1/industry/schedule
  • POST /api/v1/market/orders/query
  • POST /api/v1/market/lowest-sell
  • POST /api/v1/market/scope/resolve
  • POST /api/v1/roles/lines/build
  • POST /api/v1/auth/accounts/import
  • GET /api/v1/auth/accounts
  • DELETE /api/v1/auth/accounts/{accountId}

开发环境默认启用 Swagger:

http://127.0.0.1:5071/swagger

Fitting v1 冒烟回归

在后端启动后,可执行以下脚本快速验证 import -> calculate -> export 全链路:

powershell -ExecutionPolicy Bypass -File .\tools\fitting-v1-smoke.ps1 `
  -BaseUrl http://127.0.0.1:5071 `
  -SdeRoot D:\IT\EVE\EveAnalyzer\res\eve-online-static-data-3183544-jsonl `
  -DataRoot data-v2-smoke `
  -AutoStartBackend

脚本会依次调用:

  • POST /api/v1/system/bootstrap
  • POST /api/v1/fitting/import
  • POST /api/v1/fitting/calculate
  • POST /api/v1/fitting/exportefteveshipfit_url

Fitting 黄金样本基线

样本索引与样本文件:

  • res/fitting-samples/index.json
  • res/fitting-samples/*.eft

生成当前基线(后端需先启动):

powershell -ExecutionPolicy Bypass -File .\tools\fitting-baseline.ps1 `
  -BaseUrl http://127.0.0.1:5071 `
  -SdeRoot D:\IT\EVE\EveAnalyzer\res\eve-online-static-data-3183544-jsonl `
  -DataRoot data-v2-baseline `
  -SamplesIndex D:\IT\EVE\EveAnalyzer\res\fitting-samples\index.json `
  -SamplesRoot D:\IT\EVE\EveAnalyzer\res\fitting-samples `
  -OutFile D:\IT\EVE\EveAnalyzer\res\fitting-samples\baseline.current.json `
  -RequestTimeoutSec 180 `
  -AutoStartBackend

首次确认结果后,可手动将 baseline.current.json 复制为 baseline.expected.json 作为“期望基线”。

比较当前结果与期望基线:

powershell -ExecutionPolicy Bypass -File .\tools\fitting-compare.ps1 `
  -BaselineFile D:\IT\EVE\EveAnalyzer\res\fitting-samples\baseline.expected.json `
  -CurrentFile D:\IT\EVE\EveAnalyzer\res\fitting-samples\baseline.current.json `
  -DpsTolerancePct 5 `
  -EhpTolerancePct 5 `
  -VelocityTolerancePct 5

数据目录策略

  • 新版本使用 data-v2
  • data 目录不自动迁移
  • 允许清空并重建缓存/索引

构建命令

dotnet build .\src\EveAnalyzer.Contracts\EveAnalyzer.Contracts.csproj -m:1
dotnet build .\src\EveAnalyzer.Client\EveAnalyzer.Client.csproj -m:1
dotnet build .\src\EveAnalyzer.Infrastructure\EveAnalyzer.Infrastructure.csproj -m:1
dotnet build .\src\Eve.Backend\Eve.Backend.csproj -m:1
dotnet build .\EveAnalyzerApp\EveAnalyzerApp\EveAnalyzerApp.csproj -m:1
dotnet build .\tools\EveAnalyzer.Tools\EveAnalyzer.Tools.csproj -m:1

说明:当前环境存在并行构建/文件权限问题,建议统一使用 -m:1

当前验收状态(阶段)

  • EveAnalyzerApp 已不再引用 EveAnalyzerCore 项目。
  • 工业图构建、成本计算、市场查询、角色线模板生成、调度均可通过后端 API 触发。
  • 前端主要通过 EveAnalyzer.Client 调用后端,不再直接访问 Core/ESI/本地数据业务实现。

About

EveAnalyzer

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages