# whl.admin.plugins **Repository Path**: whllong/whl.admin.plugins ## Basic Information - **Project Name**: whl.admin.plugins - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-16 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WHL Plugins > WHL.Admin 业务插件集合 — 7 个 self-contained 插件 + 1 个 framework 级调度器 > TFM: **net10.0** (LTS,C# 14) | 仓库地址: gitee.com/suichuanchengrui/whl.plugins --- ## 这是什么 WHL.Admin 是一个 homegrown 框架,核心架构 **Framework + Plugins**: - **Framework**(`F:\Git\WHL.AI\backend\Framework\WHL.\`): 跨插件共享的底层能力 — SqlSugar 实体、Jwt 鉴权、Swagger 文档、Cache 抽象、DistributedLock、Scheduler 任务调度。 - **Plugins**(`F:\Git\WHL.AI\whl.plugins\\`): 业务模块 — 平台管理、文件管理、应用部署、日志、代码生成、插件管理等。 本仓库 `whl.plugins/` 只放业务插件,framework 组件在另一个仓库 `whl.backend` (即 `F:\Git\WHL.AI\backend\Framework\`)。 ## 7 个插件 + 1 framework 调度器 | 插件 | Code | 状态 | 职责 | |------|------|------|------| | **Platform** | `Platform` | ✅ v0.8 已上线 | 平台管理 — 中国行政区域(省/市/区/县/乡镇 4 级)+ DB 类型字典 + 租户管理 + 缓存监控 | | **App** | `App` | ✅ v0.9 已上线 | 应用中心 — 应用/服务器/数据库/部署管理 + 租户-应用授权 + 绑库审计 | | **File** | `File` | ✅ 已上线 | 文件管理 — 业务文件上传/下载/分类/物理文件浏览/容量统计 | | **Log** | `Log` | ✅ 已上线 | 日志中心 — Sql 审计日志 + Http 访问日志查询 | | **Codegen** | `Codegen` | ✅ 已上线 | 代码生成器 — 模板管理 + 数据库 schema 读取 + 代码生成历史 | | **PluginManager** | `PluginManager` | ✅ 已上线 | 插件管理 — 插件列表 + 版本 + 升级 + 加载日志 + 健康检查 | | **Sys** | `Sys` | 🚧 规划中 | 系统核心 — 字典/菜单/页面/角色/权限/租户(顶层 framework 之一,放插件目录只是因为功能模块化) | > **framework 级**: `WHL.Scheduler`(`backend\Framework\WHL.Scheduler\`)— 通用分布式任务调度(5 种调度模式 + 8 张表 + Job 状态机 + 4 层重试 + 5 channel 通知),**不放** `whl.plugins/`,由 `WHL.Web/Program.cs` 显式 `AddWHLScheduler()` 引入。Workflow / Org / App 后续都依赖它。 ## 目录结构 ``` whl.plugins/ ├── README.md 本文件 ├── LICENSE 木兰宽松许可证,第2版 ├── docs/ 设计与操作文档 │ ├── design/ 设计稿(每个插件/framework 一份 .md) │ │ ├── README.md 设计文档索引 + 实施顺序 │ │ ├── plugin-rules.md ★ 插件开发规则(全插件强制对齐) │ │ ├── app-plugin.md App 插件设计 │ │ ├── org-plugin.md Org 插件设计(待开发) │ │ ├── workflow-plugin.md Workflow 插件设计(待开发) │ │ └── framework-scheduler.md WHL.Scheduler 设计 │ ├── mockups/ mockup HTML + PNG(designer / org-chart / workflow runtime) │ └── operations.md ★ 发布操作说明 │ ├── App/ 应用中心插件 │ ├── server/ 后端 .NET 源码 │ │ ├── WHL.App.slnx │ │ ├── WHL.App.Domain/ SugarTable 实体 + Enum │ │ ├── WHL.App.IService/ IService 接口 + DTO │ │ ├── WHL.App.Service/ Service 实现 │ │ ├── WHL.App.Web/ Controller + IPlugin 入口 │ │ ├── WHL.Web/ 本地 host(调试用) │ │ └── docs/ DDL + seed SQL │ └── dist/ 自包含发布产物(commit 不跟踪) │ ├── Platform/ File/ Log/ Codegen/ PluginManager/ Sys/ 同上结构 │ ├── packages/ 发布 zip 目录(commit 不跟踪) │ ├── buildPluginLocal.cmd 本地编译 + 跑 WHL.Web(快速调试) ├── buildPluginLocal.ps1 ├── buildPluginPackage.ps1 打包 plugin → packages/.zip ├── plugin-dist.targets 通用 MSBuild target(build 完自动复制 plugin DLLs 到 dist/) ├── publish.ps1 ★ 全部 7 plugin 发布到 packages// ├── publish.bat cmd 等价入口 └── publish-all.ps1 批量发布 ``` ## 快速开始 ### 1. 本地编译 + 跑 App 插件的 host ```powershell cd F:\Git\WHL.AI\whl.plugins .\buildPluginLocal.ps1 -Plugin App # 或 .\buildPluginLocal.cmd App ``` 会编译 WHL.App.Web + 复制 plugin DLLs 到 `App/dist/Debug/bin/`,然后启动 `App/server/WHL.Web/` host。 ### 2. 发布 1 个 plugin 到 packages/ ```powershell cd F:\Git\WHL.AI\whl.plugins .\publish.ps1 -Plugin App # 结果:packages/App/ 含 WHL.App.*.dll + manifest.json,部署到 backend\WHL.Web\Plugins\App\ ``` ### 3. 全部 7 plugin Release 发布 ```powershell .\publish.ps1 ``` ### 4. 增量发布(只覆盖 App,留其他 6 个) ```powershell .\publish.ps1 -Plugin App -KeepExisting ``` 详细参数和 cmd 等价命令见 [`docs/operations.md`](docs/operations.md)。 ## 架构核心规则(必读) [`docs/design/plugin-rules.md`](docs/design/plugin-rules.md) — 全平台 7 插件强制对齐的开发规则: 1. **每个 plugin 是 self-contained 单元** — 后端 `WHL..{Domain,IService,Service,Web}` + `manifest.json` + 自己的 `dist//bin/` 2. **不写** `Program.cs` — framework 规矩 3. **不直接** `ProjectReference` 兄弟 plugin — 跨插件走 `WHL.Share.Proxy`(HTTP proxy 隔离) 4. **DDL 严格对齐** `BaseTable + BaseDeletedTable` 基线: - 字段 `CreateByUserId` / `LastModifyUserId`(不是 CreatedBy/LastModifyBy) - `IsDeleted` 永远最末尾 - 列名 PascalCase 无下划线 - 索引 `idx__` snake_case 5. **JwtPermission PageCode 全解决方案唯一** — 见 `MEMORY.md` 规则说明 6. **SQL 列名 PascalCase**、**字符串字段默认 `varchar(50)`**、**TenantNo `varchar(50) NOT NULL`**、**不写索引只给建议清单** 7. **字典 1 级展开 + 自动 seed** — `IHostedService` 反射读 Enum 命名空间,upsert 父+子 ## 各插件当前状态 | 插件 | 核心功能 | 数据表 | 字典 | 状态 | |------|---------|--------|------|------| | Platform | 中国行政区域(4 级) + 字典管理 + 缓存监控 | `platform_region` + DB 类型 | system-level 21 enum | ✅ | | App | 应用/服务器/数据库/部署/插件升级/租户授权/绑库审计 | 8 张(7 平台级 + 1 租户级) | 8 套(0002/0005/0006/0007/0008/0009/0010/0012) | ✅ v0.9 | | File | 文件分类/上传/下载/物理浏览/容量 | `file_info` / `file_category` / `file_storage_config` | — | ✅ | | Log | Sql + Http 日志查询 | `log_sql` / `log_http` | — | ✅ | | Codegen | 模板 + 外部 DB + 代码生成历史 | `codegen_template` / `codegen_external_db` | — | ✅ | | PluginManager | 插件版本 + 升级 + 加载日志 | `plugin_info` / `plugin_version` / `plugin_load_log` | — | ✅ | | Sys | 系统核心(字典/菜单/页面/角色/权限) | `sys_*` 多张 | — | 🚧 | ## 配套前端 每个插件有自己的前端(目录名 3 种历史命名: `front/` / `frontend/` / `views/`): - `App/frontend` — ❌ **空**(App 前端统一走 `F:\Git\WHL.AI\new.front\src\views\plugins\app\`) - `Platform/frontend` — 同上,前端在 `new.front/src/views/plugins/platform/` - `File/front` — 物理文件浏览 - `Log/frontend` — 日志查询 - `Codegen/front` — 模板编辑 + 生成 - `PluginManager/` — 后台管理,前端在 `new.front/src/views/plugins/pluginmanager/` > **主前端**:`F:\Git\WHL.AI\new.front\`(`package.json` 包名 `whl-admin` v2.0.0)— 所有插件的视图统一放这里,通过 `import.meta.glob` 自动发现。**新插件只动 `new.front/`**,不动老目录。 ## 设计文档导航 | 想看 | 文档 | |------|------| | 插件怎么写 | [`docs/design/plugin-rules.md`](docs/design/plugin-rules.md) | | 怎么发布 | [`docs/operations.md`](docs/operations.md) | | 设计文档索引 | [`docs/design/README.md`](docs/design/README.md) | | App 插件设计 | [`docs/design/app-plugin.md`](docs/design/app-plugin.md) | | Org 插件设计(待开发) | [`docs/design/org-plugin.md`](docs/design/org-plugin.md) | | Workflow 插件设计(待开发) | [`docs/design/workflow-plugin.md`](docs/design/workflow-plugin.md) | | WHL.Scheduler 设计 | [`docs/design/framework-scheduler.md`](docs/design/framework-scheduler.md) | | 流程设计器 mockup | [`docs/mockups/designer.html`](docs/mockups/designer.html) | | 组织架构图 mockup | [`docs/mockups/org-chart.html`](docs/mockups/org-chart.html) | ## 仓库地址 | 仓库 | 路径 | 远端 | |------|------|------| | 本仓库 | `F:\Git\WHL.AI\whl.plugins\` | gitee.com/suichuanchengrui/whl.plugins | | Framework | `F:\Git\WHL.AI\backend\` | gitee.com/suichuanchengrui/whl.backend | | 前端 | `F:\Git\WHL.AI\new.front\` | gitee.com/suichuanchengrui/whl.new.front | ## 提交规范 所有 commit 走 `type(scope): 描述` 格式,中文描述。例: ``` feat(app): v0.9 — 删 app_database 误审计 + 恢复 Save CRUD + 新增租户绑库日志 refactor(app): 整理 docs/ 为 2 个 baseline 脚本(删 7 个 v0.x 升级脚本) fix(db): seed/migrate 全部 NOW(3) 改 NOW() — 跟 backend 同步 ``` ## 许可 木兰宽松许可证,第 2 版 — 详见 [LICENSE](LICENSE)。