Bladeren bron

Rename top-level Admin.NET directory to server for Ai-DOP layout.

Keep project names and namespaces unchanged; update .gitignore, Docker, VS Code tasks, Web pre-push hook paths, batch cleanup script, README, and ai-dop-platform docs/scripts to reference server/.
sky-guo 1 week geleden
bovenliggende
commit
2de7ad13dd
100 gewijzigde bestanden met toevoegingen van 52 en 51 verwijderingen
  1. 18 18
      .gitignore
  2. 2 2
      .vscode/launch.json
  3. 3 3
      .vscode/tasks.json
  4. 1 1
      README.md
  5. 4 3
      Web/scripts/install-git-hooks.cjs
  6. 2 2
      ai-dop-platform/.cursor/rules/project.mdc
  7. 2 2
      ai-dop-platform/.cursor/skills/aidop-auto-verify-fix-loop/SKILL.md
  8. 2 2
      ai-dop-platform/README.md
  9. 1 1
      ai-dop-platform/docs/AIDOP_MENU_SEED.md
  10. 3 3
      ai-dop-platform/docs/CURRENT_TASKS.md
  11. 1 1
      ai-dop-platform/docs/CURSOR_AUTOVERIFY_AND_HOOKS.md
  12. 3 3
      ai-dop-platform/docs/GETTING_STARTED.md
  13. 2 2
      ai-dop-platform/docs/NEW_MEMBER_ONBOARDING_ZERO_TO_ONE.md
  14. 3 3
      ai-dop-platform/docs/PROJECT_HANDOFF.md
  15. 2 2
      ai-dop-platform/tools/aidop_init.ps1
  16. 1 1
      ai-dop-platform/tools/gen_aidop_menu.py
  17. 1 1
      docker/docker-compose-builder.yml
  18. 1 1
      docker/docker-compose.yml
  19. 0 0
      server/.dockerignore
  20. 0 0
      server/.editorconfig
  21. 0 0
      server/Admin.NET.Application/Admin.NET.Application.csproj
  22. 0 0
      server/Admin.NET.Application/Configuration/APIJSON.json
  23. 0 0
      server/Admin.NET.Application/Configuration/Alipay.json
  24. 0 0
      server/Admin.NET.Application/Configuration/App.json
  25. 0 0
      server/Admin.NET.Application/Configuration/CDConfig.json
  26. 0 0
      server/Admin.NET.Application/Configuration/Cache.json
  27. 0 0
      server/Admin.NET.Application/Configuration/Captcha.json
  28. 0 0
      server/Admin.NET.Application/Configuration/CodeGen.json
  29. 0 0
      server/Admin.NET.Application/Configuration/Database.json
  30. 0 0
      server/Admin.NET.Application/Configuration/DeepSeek.example
  31. 0 0
      server/Admin.NET.Application/Configuration/ElasticSearch.json
  32. 0 0
      server/Admin.NET.Application/Configuration/Email.json
  33. 0 0
      server/Admin.NET.Application/Configuration/Enum.json
  34. 0 0
      server/Admin.NET.Application/Configuration/EventBus.json
  35. 0 0
      server/Admin.NET.Application/Configuration/JWT.json
  36. 0 0
      server/Admin.NET.Application/Configuration/Limit.json
  37. 0 0
      server/Admin.NET.Application/Configuration/Logging.json
  38. 0 0
      server/Admin.NET.Application/Configuration/OAuth.json
  39. 0 0
      server/Admin.NET.Application/Configuration/SMS.json
  40. 0 0
      server/Admin.NET.Application/Configuration/Swagger.json
  41. 0 0
      server/Admin.NET.Application/Configuration/Upload.json
  42. 0 0
      server/Admin.NET.Application/Configuration/Wechat.json
  43. 0 0
      server/Admin.NET.Application/Const/ApplicationConst.cs
  44. 0 0
      server/Admin.NET.Application/Entity/TestViewSysUser.cs
  45. 0 0
      server/Admin.NET.Application/EventBus/SysUserEventSubscriber.cs
  46. 0 0
      server/Admin.NET.Application/GlobalUsings.cs
  47. 0 0
      server/Admin.NET.Application/OpenApi/DemoOpenApi.cs
  48. 0 0
      server/Admin.NET.Application/Startup.cs
  49. 0 0
      server/Admin.NET.Core/Admin.NET.Core.csproj
  50. 0 0
      server/Admin.NET.Core/Attribute/CommonValidationAttribute.cs
  51. 0 0
      server/Admin.NET.Core/Attribute/ConstAttribute.cs
  52. 0 0
      server/Admin.NET.Core/Attribute/CustomJsonPropertyAttribute.cs
  53. 0 0
      server/Admin.NET.Core/Attribute/CustomUnifyResultAttribute.cs
  54. 0 0
      server/Admin.NET.Core/Attribute/DataMaskAttribute.cs
  55. 0 0
      server/Admin.NET.Core/Attribute/DictAttribute.cs
  56. 0 0
      server/Admin.NET.Core/Attribute/EnumAttribute.cs
  57. 0 0
      server/Admin.NET.Core/Attribute/IdempotentAttribute.cs
  58. 0 0
      server/Admin.NET.Core/Attribute/IgnoreEnumToDictAttribute.cs
  59. 0 0
      server/Admin.NET.Core/Attribute/IgnoreTableAttribute.cs
  60. 0 0
      server/Admin.NET.Core/Attribute/IgnoreUpdateSeedAttribute.cs
  61. 0 0
      server/Admin.NET.Core/Attribute/IgnoreUpdateSeedColumnAttribute.cs
  62. 0 0
      server/Admin.NET.Core/Attribute/ImportDictAttribute.cs
  63. 0 0
      server/Admin.NET.Core/Attribute/IncreSeedAttribute.cs
  64. 0 0
      server/Admin.NET.Core/Attribute/IncreTableAttribute.cs
  65. 0 0
      server/Admin.NET.Core/Attribute/LogTableAttribute.cs
  66. 0 0
      server/Admin.NET.Core/Attribute/MaskNewtonsoftJsonConverter.cs
  67. 0 0
      server/Admin.NET.Core/Attribute/MaskSystemTextJsonConverter.cs
  68. 0 0
      server/Admin.NET.Core/Attribute/MaxValueAttribute.cs
  69. 0 0
      server/Admin.NET.Core/Attribute/MinValueAttribute.cs
  70. 0 0
      server/Admin.NET.Core/Attribute/NotEmptyAttribute.cs
  71. 0 0
      server/Admin.NET.Core/Attribute/OwnerOrgAttribute.cs
  72. 0 0
      server/Admin.NET.Core/Attribute/OwnerUserAttribute.cs
  73. 0 0
      server/Admin.NET.Core/Attribute/SeedDataAttribute.cs
  74. 0 0
      server/Admin.NET.Core/Attribute/SysTableAttribute.cs
  75. 0 0
      server/Admin.NET.Core/Attribute/ThemeAttribute.cs
  76. 0 0
      server/Admin.NET.Core/Cache/CacheSetup.cs
  77. 0 0
      server/Admin.NET.Core/Cache/SqlSugarCache.cs
  78. 0 0
      server/Admin.NET.Core/Const/AlipayConst.cs
  79. 0 0
      server/Admin.NET.Core/Const/CacheConst.cs
  80. 0 0
      server/Admin.NET.Core/Const/ClaimConst.cs
  81. 0 0
      server/Admin.NET.Core/Const/CommonConst.cs
  82. 0 0
      server/Admin.NET.Core/Const/ConfigConst.cs
  83. 0 0
      server/Admin.NET.Core/Const/SqlSugarConst.cs
  84. 0 0
      server/Admin.NET.Core/ElasticSearch/ElasticSearchClientContainer.cs
  85. 0 0
      server/Admin.NET.Core/ElasticSearch/ElasticSearchClientFactory.cs
  86. 0 0
      server/Admin.NET.Core/ElasticSearch/ElasticSearchSetup.cs
  87. 0 0
      server/Admin.NET.Core/Entity/EntityBase.cs
  88. 0 0
      server/Admin.NET.Core/Entity/IEntityFilter.cs
  89. 0 0
      server/Admin.NET.Core/Entity/SysAlipayAuthInfo.cs
  90. 0 0
      server/Admin.NET.Core/Entity/SysAlipayTransaction.cs
  91. 0 0
      server/Admin.NET.Core/Entity/SysCodeGen.cs
  92. 0 0
      server/Admin.NET.Core/Entity/SysCodeGenConfig.cs
  93. 0 0
      server/Admin.NET.Core/Entity/SysConfig.cs
  94. 0 0
      server/Admin.NET.Core/Entity/SysDictData.cs
  95. 0 0
      server/Admin.NET.Core/Entity/SysDictDataTenant.cs
  96. 0 0
      server/Admin.NET.Core/Entity/SysDictType.cs
  97. 0 0
      server/Admin.NET.Core/Entity/SysFile.cs
  98. 0 0
      server/Admin.NET.Core/Entity/SysFileProvider.cs
  99. 0 0
      server/Admin.NET.Core/Entity/SysJobCluster.cs
  100. 0 0
      server/Admin.NET.Core/Entity/SysJobDetail.cs

+ 18 - 18
.gitignore

@@ -16,20 +16,20 @@ bin-release/
 # Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
 # should NOT be excluded as they contain compiler settings and other important
 # information for Eclipse / Flash Builder.
-/Admin.NET/.vs
-/Admin.NET/packages
-/Admin.NET/Admin.NET.Web.Entry/wwwroot/[Uu]pload
-/Admin.NET/Admin.NET.Web.Entry/wwwroot/[Aa]vatar
-/Admin.NET/Admin.NET.Web.Entry/wwwroot/[Ss]ignature
-/Admin.NET/Admin.NET.Web.Entry/wwwroot/[Cc]odeGen
-/Admin.NET/Admin.NET.Web.Entry/wwwroot/is-cache
-/Admin.NET/Admin.NET.Web.Core/Admin.NET.Web.Core.csproj.user
-/Admin.NET/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj.user
-/Admin.NET/Admin.NET.Web.Entry/Properties/PublishProfiles
-/Admin.NET/Admin.NET.Web.Entry/publish
-/Admin.NET/Admin.NET.Web.Entry/logs
-/Admin.NET/Admin.NET.Web.Entry/Admin.NET.db
-/Admin.NET/Admin.NET.Web.Entry/.config
+/server/.vs
+/server/packages
+/server/Admin.NET.Web.Entry/wwwroot/[Uu]pload
+/server/Admin.NET.Web.Entry/wwwroot/[Aa]vatar
+/server/Admin.NET.Web.Entry/wwwroot/[Ss]ignature
+/server/Admin.NET.Web.Entry/wwwroot/[Cc]odeGen
+/server/Admin.NET.Web.Entry/wwwroot/is-cache
+/server/Admin.NET.Web.Core/Admin.NET.Web.Core.csproj.user
+/server/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj.user
+/server/Admin.NET.Web.Entry/Properties/PublishProfiles
+/server/Admin.NET.Web.Entry/publish
+/server/Admin.NET.Web.Entry/logs
+/server/Admin.NET.Web.Entry/Admin.NET.db
+/server/Admin.NET.Web.Entry/.config
 
 # folders
 dist/
@@ -41,11 +41,11 @@ node_modules/
 .vs
 .idea
 .DS_Store
-/Admin.NET/Admin.NET.Web.Entry/Admin.NET.db-journal
-/Admin.NET/Admin.NET.sln.DotSettings.user
-Admin.NET/Admin.NET.Application/Configuration/DeepSeek.json
+/server/Admin.NET.Web.Entry/Admin.NET.db-journal
+/server/Admin.NET.sln.DotSettings.user
+server/Admin.NET.Application/Configuration/DeepSeek.json
 *.user
-/Admin.NET/.github
+/server/.github
 
 # Ai-DOP platform (docs/tools/legacy-demo)
 /ai-dop-platform/**/node_modules/

+ 2 - 2
.vscode/launch.json

@@ -16,9 +16,9 @@
       "type": "coreclr",
       "request": "launch",
       "preLaunchTask": "build",
-      "program": "${workspaceFolder}/Admin.NET/Admin.NET.Web.Entry/bin/Debug/net6.0/Admin.NET.Web.Entry.dll",
+      "program": "${workspaceFolder}/server/Admin.NET.Web.Entry/bin/Debug/net8.0/Admin.NET.Web.Entry.dll",
       "args": [],
-      "cwd": "${workspaceFolder}/Admin.NET/Admin.NET.Web.Entry",
+      "cwd": "${workspaceFolder}/server/Admin.NET.Web.Entry",
       "stopAtEntry": false,
       "serverReadyAction": {
         "action": "openExternally",

+ 3 - 3
.vscode/tasks.json

@@ -5,21 +5,21 @@
       "label": "build",
       "command": "dotnet",
       "type": "process",
-      "args": ["build", "${workspaceFolder}/Admin.NET/Admin.NET.sln", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary;ForceNoAlign"],
+      "args": ["build", "${workspaceFolder}/server/Admin.NET.sln", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary;ForceNoAlign"],
       "problemMatcher": "$msCompile"
     },
     {
       "label": "publish",
       "command": "dotnet",
       "type": "process",
-      "args": ["publish", "${workspaceFolder}/Admin.NET/Admin.NET.sln", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary;ForceNoAlign"],
+      "args": ["publish", "${workspaceFolder}/server/Admin.NET.sln", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary;ForceNoAlign"],
       "problemMatcher": "$msCompile"
     },
     {
       "label": "watch",
       "command": "dotnet",
       "type": "process",
-      "args": ["watch", "run", "--project", "${workspaceFolder}/Admin.NET/Admin.NET.sln"],
+      "args": ["watch", "run", "--project", "${workspaceFolder}/server/Admin.NET.sln"],
       "problemMatcher": "$msCompile"
     }
   ]

+ 1 - 1
README.md

@@ -99,7 +99,7 @@ Admin.NET 是基于 .NET8/10 (Furion/SqlSugar) 实现的通用权限开发框架
 
 ## Ai-DOP 配套目录
 
-本仓库在 Admin.NET 基础上扩展 **Ai-DOP** 时,团队文档、数据库脚本说明、辅助工具与旧版对照 Demo 位于根目录 **`ai-dop-platform/`**(与 `Admin.NET/`、`Web/` 同级)。协作开发时请一并拉取/提交该目录,保证文档与代码同步。
+本仓库在 Admin.NET 基础上扩展 **Ai-DOP** 时,团队文档、数据库脚本说明、辅助工具与旧版对照 Demo 位于根目录 **`ai-dop-platform/`**(与 `server/`、`Web/` 同级)。协作开发时请一并拉取/提交该目录,保证文档与代码同步。
 
 ## 🎀捐赠支持
 ```

+ 4 - 3
Web/scripts/install-git-hooks.cjs

@@ -32,7 +32,7 @@ if (!gitRoot) {
 }
 
 const webRel = toPosix(path.relative(gitRoot, webDir));
-const coreCsprojRel = toPosix(path.relative(gitRoot, path.join(webDir, '..', 'Admin.NET', 'Admin.NET.Core', 'Admin.NET.Core.csproj')));
+const coreCsprojRel = toPosix(path.relative(gitRoot, path.join(webDir, '..', 'server', 'Admin.NET.Core', 'Admin.NET.Core.csproj')));
 const hookDir = path.join(gitRoot, '.git', 'hooks');
 const hookFile = path.join(hookDir, 'pre-push');
 
@@ -66,17 +66,18 @@ fi
 if [ "$need_frontend" -eq 0 ] && printf "%s\\n" "$changed_files" | grep -qE '^${webRel}/'; then
   need_frontend=1
 fi
-if [ "$need_backend" -eq 0 ] && printf "%s\\n" "$changed_files" | grep -qE '^Admin\\.NET/'; then
+if [ "$need_backend" -eq 0 ] && printf "%s\\n" "$changed_files" | grep -qE '^server/'; then
   need_backend=1
 fi
 
 if [ "$need_frontend" -eq 0 ] && [ "$need_backend" -eq 0 ]; then
-  echo "[aidop hook] no Web/Admin.NET code changes detected, skip build checks"
+  echo "[aidop hook] no Web or server/ code changes detected, skip build checks"
   exit 0
 fi
 
 if [ "$need_frontend" -eq 1 ]; then
   echo "[aidop hook] verify frontend build"
+  export NODE_OPTIONS="\${NODE_OPTIONS:+\$NODE_OPTIONS }--max-old-space-size=16384"
   if command -v pnpm >/dev/null 2>&1; then
     pnpm -C "${webRel}" build
   else

+ 2 - 2
ai-dop-platform/.cursor/rules/project.mdc

@@ -5,7 +5,7 @@ alwaysApply: true
 
 # Ai-DOP 仓库结构(与本仓库根目录相对)
 
-- **主工程(Admin.NET + AiDOP 插件)**:本仓库根下 `Admin.NET/` 中的解决方案;业务扩展写在 `Admin.NET/Plugins/Admin.NET.Plugin.AiDOP/`,勿在 `Admin.NET.Core` 里堆业务代码。
+- **主工程(Admin.NET + AiDOP 插件)**:本仓库根下 `server/` 中的解决方案;业务扩展写在 `server/Plugins/Admin.NET.Plugin.AiDOP/`,勿在 `Admin.NET.Core` 里堆业务代码。
 - **平台配套(本目录 `ai-dop-platform/`)**:`docs/`(架构与上手)、`tools/`(脚本)、`legacy-demo/`(旧版对照)、`.cursor/`(协作规则)。与主工程同库版本管理,团队拉一条分支即可同步。
 - **旧 Demo 对照**:`ai-dop-platform/legacy-demo/` 为 Vue + 独立后端,用于对照 UI 与旧 `api/Order|Plan|WorkOrder` 契约;新功能以插件 + Admin.NET 为准。
 
@@ -17,5 +17,5 @@ alwaysApply: true
 
 # Cursor 使用
 
-- 优先将 Cursor 工作区设为**本仓库根目录**(含 `Admin.NET/` 与 `Web/`),或单独打开 `ai-dop-platform/` 子目录做文档与脚本编辑。
+- 优先将 Cursor 工作区设为**本仓库根目录**(含 `server/` 与 `Web/`),或单独打开 `ai-dop-platform/` 子目录做文档与脚本编辑。
 - 若 Admin.NET 以子模块或独立克隆维护,修改前确认与上游(如 Gitee `v2`)的同步策略,避免把上游大改混进业务 PR。

+ 2 - 2
ai-dop-platform/.cursor/skills/aidop-auto-verify-fix-loop/SKILL.md

@@ -23,8 +23,8 @@ After any implementation, run verification immediately, fix failures, and re-run
 ### Backend C# changes
 
 - Build target project first:
-  - `references/Admin.NET/Admin.NET/Admin.NET.Core`: `dotnet build --framework net8.0`
-  - `references/Admin.NET/Admin.NET/Admin.NET.Web.Entry`: `dotnet build --framework net8.0`
+  - `references/Admin.NET/server/Admin.NET.Core`: `dotnet build --framework net8.0`
+  - `references/Admin.NET/server/Admin.NET.Web.Entry`: `dotnet build --framework net8.0`
 - If API behavior changed, start/restart backend and run endpoint smoke tests.
 
 ### Frontend Web changes

+ 2 - 2
ai-dop-platform/README.md

@@ -9,7 +9,7 @@
 | 路径 | 说明 |
 |------|------|
 | `../references/Admin.NET/`(相对本仓库根目录) | Admin.NET 上游源码(建议跟踪官方稳定分支,如 `v2`)。 |
-| `../references/Admin.NET/Admin.NET/Plugins/Admin.NET.Plugin.AiDOP/` | **AiDOP 业务插件**:订单 / 计划 / 工单 API(SqlSugar + 与旧 Demo 一致的 `api/Order`、`api/Plan`、`api/WorkOrder`)。 |
+| `../references/Admin.NET/server/Plugins/Admin.NET.Plugin.AiDOP/` | **AiDOP 业务插件**:订单 / 计划 / 工单 API(SqlSugar + 与旧 Demo 一致的 `api/Order`、`api/Plan`、`api/WorkOrder`)。 |
 | `legacy-demo/` | 迁入的 Vue + 原独立后端;页面与交互参考,新后端以插件为准。 |
 | `docs/` | 架构与上手文档。 |
 | `.cursor/rules/` | Cursor 团队规则(边界、栈、风格)。 |
@@ -22,7 +22,7 @@
 
 ## 快速开始
 
-1. 用 Visual Studio / Rider / `dotnet run` 启动 **`Admin.NET.Web.Entry`**(项目在 `../references/Admin.NET/Admin.NET/Admin.NET.Web.Entry/`;默认 HTTP 端口见该项目的 `Properties/launchSettings.json`,一般为 `http://localhost:5005`)。
+1. 用 Visual Studio / Rider / `dotnet run` 启动 **`Admin.NET.Web.Entry`**(项目在 `../references/Admin.NET/server/Admin.NET.Web.Entry/`;默认 HTTP 端口见该项目的 `Properties/launchSettings.json`,一般为 `http://localhost:5005`)。
 2. 开发环境下插件会对表 `ado_orders`、`ado_plans`、`ado_work_orders` 执行 **CodeFirst 建表**(仅 `Development`)。
 3. 在 `legacy-demo/frontend` 执行 `npm install` 与 `npm run dev`;Vite 已将 `/api` 代理到 `5005`。
 

+ 1 - 1
ai-dop-platform/docs/AIDOP_MENU_SEED.md

@@ -25,7 +25,7 @@
 from pathlib import Path
 
 ROOT = Path(__file__).resolve().parents[1]
-OUT = ROOT.parent / "references/Admin.NET/Admin.NET/Plugins/Admin.NET.Plugin.AiDOP/SeedData/SysMenuSeedData.cs"
+OUT = ROOT.parent / "references/Admin.NET/server/Plugins/Admin.NET.Plugin.AiDOP/SeedData/SysMenuSeedData.cs"
 
 mods = [
     ("S0", "S0 运营建模", [("数据建模", "支持数据库表结构设计与建模", "高", "5", "核心基础功能"), ("业务建模", "支持业务流程建模与配置", "高", "5", "核心基础功能")]),

+ 3 - 3
ai-dop-platform/docs/CURRENT_TASKS.md

@@ -12,7 +12,7 @@
 - **.NET 8 SDK 8.0.419** 可能安装在用户目录:`%LOCALAPPDATA%\Microsoft\dotnet`。
 - 若终端里 `dotnet --version` 仍是 6.x,在用户 **PATH** 中应把上述目录 **排在 `C:\Program Files\dotnet` 之前**,或新开终端 / 重启 Cursor 后再试。
 - **源码根目录**:`D:\Projects\Ai-DOP\SourceCode`。
-- 解决方案路径(相对 `SourceCode/ai-dop-platform`):`../references/Admin.NET/Admin.NET/Admin.NET.sln`。
+- 解决方案路径(相对 `SourceCode/ai-dop-platform`):`../references/Admin.NET/server/Admin.NET.sln`。
 
 ## 编译注意(Admin.NET 多目标)
 
@@ -35,7 +35,7 @@ $installDir = "$env:LOCALAPPDATA\Microsoft\dotnet"
 ## 建议立刻验收的清单
 
 - [ ] `dotnet --list-sdks` 含 **8.0.x** 与 **10.0.x**(与 Admin.NET 多目标一致)。
-- [ ] `dotnet build ../references/Admin.NET/Admin.NET/Admin.NET.sln -c Debug` **无错误**(在已配置 MySQL 的前提下;若仅测编译可先不关库)。
+- [ ] `dotnet build ../references/Admin.NET/server/Admin.NET.sln -c Debug` **无错误**(在已配置 MySQL 的前提下;若仅测编译可先不关库)。
 - [ ] 启动 **Admin.NET.Web.Entry**,确认默认端口(一般为 **5005**)可访问。
 - [ ] 配置 Admin.NET 的 **MySQL** 连接后,Development 下插件应对 `ado_*` 表 **CodeFirst**(见 [GETTING_STARTED.md](GETTING_STARTED.md))。
 - [ ] `legacy-demo/frontend`:`npm install` → `npm run dev`,Vite 代理 `/api` → `5005`,抽查 `GET /api/Order` 等。
@@ -50,7 +50,7 @@ $installDir = "$env:LOCALAPPDATA\Microsoft\dotnet"
 
 | 内容 | 路径(相对 `D:\Projects\Ai-DOP\SourceCode`) |
 |------|-----------------------------------------------|
-| AiDOP 插件 | `references/Admin.NET/Admin.NET/Plugins/Admin.NET.Plugin.AiDOP/` |
+| AiDOP 插件 | `references/Admin.NET/server/Plugins/Admin.NET.Plugin.AiDOP/` |
 | MVC 兼容 API | 插件内 `Controllers/` |
 | 旧 Demo 前端 | `ai-dop-platform/legacy-demo/frontend/` |
 | 团队 Cursor 规则 | `ai-dop-platform/.cursor/rules/` |

+ 1 - 1
ai-dop-platform/docs/CURSOR_AUTOVERIFY_AND_HOOKS.md

@@ -39,7 +39,7 @@
 当前会按 **本次 push 的改动文件** 智能执行:
 
 1. 若改了 `Web/` 下代码:执行前端构建(`Web build`)
-2. 若改了 `Admin.NET/` 下代码:执行后端核心构建(`Admin.NET.Core`, `net8.0`)
+2. 若改了 `server/` 下代码:执行后端核心构建(`Admin.NET.Core`, `net8.0`)
 3. 若都未命中:跳过构建检查
 
 可通过环境变量强制全量校验:

+ 3 - 3
ai-dop-platform/docs/GETTING_STARTED.md

@@ -4,7 +4,7 @@
 
 路径(**`D:\Projects\Ai-DOP\SourceCode\ai-dop-platform`** 下向上一级再进 `references`):
 
-`../references/Admin.NET/Admin.NET/Admin.NET.sln`
+`../references/Admin.NET/server/Admin.NET.sln`
 
 其中 **启动项目** 为 `Admin.NET.Web.Entry`。
 
@@ -75,8 +75,8 @@ Vite 会拉起开发服务器;端口在 `Web/.env` 的 `VITE_PORT`(默认 **
 在已安装 **.NET 8+** SDK 的机器上:
 
 ```bash
-dotnet restore ../references/Admin.NET/Admin.NET/Admin.NET.sln
-dotnet build ../references/Admin.NET/Admin.NET/Admin.NET.sln -c Release
+dotnet restore ../references/Admin.NET/server/Admin.NET.sln
+dotnet build ../references/Admin.NET/server/Admin.NET.sln -c Release
 ```
 
 若首次编译出现 `NETSDK1004`(找不到 `project.assets.json`),请先执行上一行的 `dotnet restore` 再构建。

+ 2 - 2
ai-dop-platform/docs/NEW_MEMBER_ONBOARDING_ZERO_TO_ONE.md

@@ -99,7 +99,7 @@ npm run prepare
 ## 4.2 构建后端核心
 
 ```powershell
-Set-Location "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/Admin.NET/Admin.NET.Core"
+Set-Location "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/server/Admin.NET.Core"
 dotnet build --framework net8.0
 ```
 
@@ -110,7 +110,7 @@ dotnet build --framework net8.0
 ## 5.1 启动后端
 
 ```powershell
-Set-Location "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/Admin.NET/Admin.NET.Web.Entry"
+Set-Location "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/server/Admin.NET.Web.Entry"
 dotnet run --framework net8.0
 ```
 

+ 3 - 3
ai-dop-platform/docs/PROJECT_HANDOFF.md

@@ -66,14 +66,14 @@ D:\Projects\Ai-DOP\SourceCode\   # ★ 项目源码根目录(本机约定)
 │   └── legacy-demo/             # 旧 Gitee Demo(前端 + 原 EF 后端,作对照)
 └── references/
     └── Admin.NET/
-        └── Admin.NET/
+        └── server/
             ├── Admin.NET.sln
             ├── Plugins/
             │   └── Admin.NET.Plugin.AiDOP/   # ★ AiDOP 业务插件(实体、DTO、兼容 MVC API)
             └── Admin.NET.Web.Entry/           # ★ 启动项目(默认端口常為 5005)
 ```
 
-**相对路径**:从 `SourceCode/ai-dop-platform` 根到解决方案为 **`../references/Admin.NET/Admin.NET/Admin.NET.sln`**。
+**相对路径**:从 `SourceCode/ai-dop-platform` 根到解决方案为 **`../references/Admin.NET/server/Admin.NET.sln`**。
 
 ---
 
@@ -95,7 +95,7 @@ D:\Projects\Ai-DOP\SourceCode\   # ★ 项目源码根目录(本机约定)
 建议顺序(与 [CURRENT_TASKS.md](CURRENT_TASKS.md) 勾选一致):
 
 1. **本机 SDK**:`dotnet --list-sdks` 同时有 **8.0.x 与 10.0.x**;缺 10 时按 CURRENT_TASKS 在无占用 `dotnet.exe` 情况下安装。
-2. **编译**:`dotnet build ../references/Admin.NET/Admin.NET/Admin.NET.sln -c Debug` 通过。
+2. **编译**:`dotnet build ../references/Admin.NET/server/Admin.NET.sln -c Debug` 通过。
 3. **配置 MySQL**(Admin.NET 官方配置方式),启动 **Web.Entry**,确认 **Development** 下 **ado_*** 表可用。
 4. **前端联调**:`legacy-demo/frontend` 起 dev,抽查 **GET /api/Order** 等。
 5. **安全硬化**:评估移除 **`[AllowAnonymous]`**,挂菜单/权限;生产关闭依赖 **CodeFirst** 的建表方式。

+ 2 - 2
ai-dop-platform/tools/aidop_init.ps1

@@ -36,7 +36,7 @@ $nodeVersion = (node --version)
 Write-Step "node version: $nodeVersion"
 
 $webDir = "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/Web"
-$entryDir = "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/Admin.NET/Admin.NET.Web.Entry"
+$entryDir = "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/server/Admin.NET.Web.Entry"
 
 if (-not (Test-Path $webDir)) { throw "Web directory not found: $webDir" }
 if (-not (Test-Path $entryDir)) { throw "Web.Entry directory not found: $entryDir" }
@@ -56,7 +56,7 @@ try {
 }
 
 Write-Step "Build backend core (net8.0)"
-Invoke-Checked "dotnet" @("build", "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj", "--framework", "net8.0")
+Invoke-Checked "dotnet" @("build", "d:/Projects/Ai-DOP/SourceCode/references/Admin.NET/server/Admin.NET.Core/Admin.NET.Core.csproj", "--framework", "net8.0")
 
 if ($StartServices) {
     Write-Step "Starting backend and frontend services"

+ 1 - 1
ai-dop-platform/tools/gen_aidop_menu.py

@@ -6,7 +6,7 @@ from pathlib import Path
 from typing import Dict, Tuple
 
 ROOT = Path(__file__).resolve().parents[1]
-OUT = ROOT.parent / "references/Admin.NET/Admin.NET/Plugins/Admin.NET.Plugin.AiDOP/SeedData/SysMenuSeedData.cs"
+OUT = ROOT.parent / "references/Admin.NET/server/Plugins/Admin.NET.Plugin.AiDOP/SeedData/SysMenuSeedData.cs"
 
 # 叶子菜单 Vue 组件路径(相对 Web views,与动态 import 一致);键为 (模块代码, 叶序号 1-based)
 COMPONENT_OVERRIDES: Dict[Tuple[str, int], str] = {

+ 1 - 1
docker/docker-compose-builder.yml

@@ -13,7 +13,7 @@ services:
   net-builder:
     image: mcr.microsoft.com/dotnet/sdk:9.0
     volumes:
-      - ../Admin.NET/:/app
+      - ../server/:/app
     working_dir: /app
     command: dotnet build Admin.NET.sln -c Release
 

+ 1 - 1
docker/docker-compose.yml

@@ -98,7 +98,7 @@ services:
     environment:
       - TZ=Asia/Shanghai
     volumes:
-      - ../Admin.NET/Admin.NET.Web.Entry/bin/Release/net9.0/:/app
+      - ../server/Admin.NET.Web.Entry/bin/Release/net9.0/:/app
       - ./app/Configuration/:/app/Configuration/
       - ./app/wait-for-it.sh:/app/wait-for-it.sh
     working_dir: /app

+ 0 - 0
Admin.NET/.dockerignore → server/.dockerignore


+ 0 - 0
Admin.NET/.editorconfig → server/.editorconfig


+ 0 - 0
Admin.NET/Admin.NET.Application/Admin.NET.Application.csproj → server/Admin.NET.Application/Admin.NET.Application.csproj


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/APIJSON.json → server/Admin.NET.Application/Configuration/APIJSON.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Alipay.json → server/Admin.NET.Application/Configuration/Alipay.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/App.json → server/Admin.NET.Application/Configuration/App.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/CDConfig.json → server/Admin.NET.Application/Configuration/CDConfig.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Cache.json → server/Admin.NET.Application/Configuration/Cache.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Captcha.json → server/Admin.NET.Application/Configuration/Captcha.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/CodeGen.json → server/Admin.NET.Application/Configuration/CodeGen.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Database.json → server/Admin.NET.Application/Configuration/Database.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/DeepSeek.example → server/Admin.NET.Application/Configuration/DeepSeek.example


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/ElasticSearch.json → server/Admin.NET.Application/Configuration/ElasticSearch.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Email.json → server/Admin.NET.Application/Configuration/Email.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Enum.json → server/Admin.NET.Application/Configuration/Enum.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/EventBus.json → server/Admin.NET.Application/Configuration/EventBus.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/JWT.json → server/Admin.NET.Application/Configuration/JWT.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Limit.json → server/Admin.NET.Application/Configuration/Limit.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Logging.json → server/Admin.NET.Application/Configuration/Logging.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/OAuth.json → server/Admin.NET.Application/Configuration/OAuth.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/SMS.json → server/Admin.NET.Application/Configuration/SMS.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Swagger.json → server/Admin.NET.Application/Configuration/Swagger.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Upload.json → server/Admin.NET.Application/Configuration/Upload.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Configuration/Wechat.json → server/Admin.NET.Application/Configuration/Wechat.json


+ 0 - 0
Admin.NET/Admin.NET.Application/Const/ApplicationConst.cs → server/Admin.NET.Application/Const/ApplicationConst.cs


+ 0 - 0
Admin.NET/Admin.NET.Application/Entity/TestViewSysUser.cs → server/Admin.NET.Application/Entity/TestViewSysUser.cs


+ 0 - 0
Admin.NET/Admin.NET.Application/EventBus/SysUserEventSubscriber.cs → server/Admin.NET.Application/EventBus/SysUserEventSubscriber.cs


+ 0 - 0
Admin.NET/Admin.NET.Application/GlobalUsings.cs → server/Admin.NET.Application/GlobalUsings.cs


+ 0 - 0
Admin.NET/Admin.NET.Application/OpenApi/DemoOpenApi.cs → server/Admin.NET.Application/OpenApi/DemoOpenApi.cs


+ 0 - 0
Admin.NET/Admin.NET.Application/Startup.cs → server/Admin.NET.Application/Startup.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj → server/Admin.NET.Core/Admin.NET.Core.csproj


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/CommonValidationAttribute.cs → server/Admin.NET.Core/Attribute/CommonValidationAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/ConstAttribute.cs → server/Admin.NET.Core/Attribute/ConstAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/CustomJsonPropertyAttribute.cs → server/Admin.NET.Core/Attribute/CustomJsonPropertyAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/CustomUnifyResultAttribute.cs → server/Admin.NET.Core/Attribute/CustomUnifyResultAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/DataMaskAttribute.cs → server/Admin.NET.Core/Attribute/DataMaskAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/DictAttribute.cs → server/Admin.NET.Core/Attribute/DictAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/EnumAttribute.cs → server/Admin.NET.Core/Attribute/EnumAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/IdempotentAttribute.cs → server/Admin.NET.Core/Attribute/IdempotentAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/IgnoreEnumToDictAttribute.cs → server/Admin.NET.Core/Attribute/IgnoreEnumToDictAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/IgnoreTableAttribute.cs → server/Admin.NET.Core/Attribute/IgnoreTableAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/IgnoreUpdateSeedAttribute.cs → server/Admin.NET.Core/Attribute/IgnoreUpdateSeedAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/IgnoreUpdateSeedColumnAttribute.cs → server/Admin.NET.Core/Attribute/IgnoreUpdateSeedColumnAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/ImportDictAttribute.cs → server/Admin.NET.Core/Attribute/ImportDictAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/IncreSeedAttribute.cs → server/Admin.NET.Core/Attribute/IncreSeedAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/IncreTableAttribute.cs → server/Admin.NET.Core/Attribute/IncreTableAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/LogTableAttribute.cs → server/Admin.NET.Core/Attribute/LogTableAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/MaskNewtonsoftJsonConverter.cs → server/Admin.NET.Core/Attribute/MaskNewtonsoftJsonConverter.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/MaskSystemTextJsonConverter.cs → server/Admin.NET.Core/Attribute/MaskSystemTextJsonConverter.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/MaxValueAttribute.cs → server/Admin.NET.Core/Attribute/MaxValueAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/MinValueAttribute.cs → server/Admin.NET.Core/Attribute/MinValueAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/NotEmptyAttribute.cs → server/Admin.NET.Core/Attribute/NotEmptyAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/OwnerOrgAttribute.cs → server/Admin.NET.Core/Attribute/OwnerOrgAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/OwnerUserAttribute.cs → server/Admin.NET.Core/Attribute/OwnerUserAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/SeedDataAttribute.cs → server/Admin.NET.Core/Attribute/SeedDataAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/SysTableAttribute.cs → server/Admin.NET.Core/Attribute/SysTableAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Attribute/ThemeAttribute.cs → server/Admin.NET.Core/Attribute/ThemeAttribute.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Cache/CacheSetup.cs → server/Admin.NET.Core/Cache/CacheSetup.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Cache/SqlSugarCache.cs → server/Admin.NET.Core/Cache/SqlSugarCache.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Const/AlipayConst.cs → server/Admin.NET.Core/Const/AlipayConst.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Const/CacheConst.cs → server/Admin.NET.Core/Const/CacheConst.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Const/ClaimConst.cs → server/Admin.NET.Core/Const/ClaimConst.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Const/CommonConst.cs → server/Admin.NET.Core/Const/CommonConst.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Const/ConfigConst.cs → server/Admin.NET.Core/Const/ConfigConst.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Const/SqlSugarConst.cs → server/Admin.NET.Core/Const/SqlSugarConst.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/ElasticSearch/ElasticSearchClientContainer.cs → server/Admin.NET.Core/ElasticSearch/ElasticSearchClientContainer.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/ElasticSearch/ElasticSearchClientFactory.cs → server/Admin.NET.Core/ElasticSearch/ElasticSearchClientFactory.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/ElasticSearch/ElasticSearchSetup.cs → server/Admin.NET.Core/ElasticSearch/ElasticSearchSetup.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/EntityBase.cs → server/Admin.NET.Core/Entity/EntityBase.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/IEntityFilter.cs → server/Admin.NET.Core/Entity/IEntityFilter.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysAlipayAuthInfo.cs → server/Admin.NET.Core/Entity/SysAlipayAuthInfo.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysAlipayTransaction.cs → server/Admin.NET.Core/Entity/SysAlipayTransaction.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysCodeGen.cs → server/Admin.NET.Core/Entity/SysCodeGen.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysCodeGenConfig.cs → server/Admin.NET.Core/Entity/SysCodeGenConfig.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysConfig.cs → server/Admin.NET.Core/Entity/SysConfig.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysDictData.cs → server/Admin.NET.Core/Entity/SysDictData.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysDictDataTenant.cs → server/Admin.NET.Core/Entity/SysDictDataTenant.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysDictType.cs → server/Admin.NET.Core/Entity/SysDictType.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysFile.cs → server/Admin.NET.Core/Entity/SysFile.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysFileProvider.cs → server/Admin.NET.Core/Entity/SysFileProvider.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysJobCluster.cs → server/Admin.NET.Core/Entity/SysJobCluster.cs


+ 0 - 0
Admin.NET/Admin.NET.Core/Entity/SysJobDetail.cs → server/Admin.NET.Core/Entity/SysJobDetail.cs


Some files were not shown because too many files changed in this diff