## 中台框架後端項目 Admin.Core 的介紹與配置說明 > 中台admin是前後端分離許可權管理系統,Admin.Core為後端項目,基於.NET 7.0開發。 > 支持多租戶、數據許可權、動態 Api、任務調度、OSS 文件上傳、滑塊拼圖驗證、多資料庫,分散式緩存、分散式事務等 - 介面文檔一 ...
中台框架後端項目 Admin.Core 的介紹與配置說明
中台admin是前後端分離許可權管理系統,Admin.Core為後端項目,基於.NET 7.0開發。
支持多租戶、數據許可權、動態 Api、任務調度、OSS 文件上傳、滑塊拼圖驗證、多資料庫,分散式緩存、分散式事務等
-
介面文檔一覽
-
項目地址
-
技術棧
- dotnet7
- FreeSql
- Autofac
- CAP
- Mapster
-
特點
- 快速啟動,上手簡單
- 系統模塊化
- Swagger的模塊化封裝
- 讀寫分離
- 分庫分表
- 分散式事務 TCC/ SAGA
- 動態API
- 系統許可權封裝基本滿足大部分項目
- 多租戶實現
-
開發環境
- Vs2022
- dotnet7
-
項目結構
- hosts
ZhonTai.Host
:預設啟動項目,添加對 ZhonTai.Admin.Dev,模塊的引用,並將程式集配置到 assemblyNames
- platform
ZhonTai.Admin
核心服務ZhonTai.ApiUI
介面文檔封裝,分模塊載入zhonTai.Common
通用庫封裝ZhonTai.DynamicApi
動態WebApi庫ZhonTai.Admin.Dev
代碼生成器添加
- tests
ZhonTai.Tests
測試庫
- modules
- XX.XX 我準備放自己的模塊
- hosts
預設實現功能
- 用戶管理:配置用戶,查看部門用戶列表,支持禁用/啟用、重置密碼、設置主管、用戶可配置多角色、多部門和上級主管。
- 角色管理:配置角色,支持角色分組、設置角色菜單和數據許可權、批量添加和移除角色員工。
- 部門管理:配置部門,支持樹形列表展示。
- 許可權管理:配置分組、菜單、操作、許可權點、許可權標識,支持樹形列表展示。
- 租戶套餐:配置租戶套餐,支持新增/移除套餐企業。
- 租戶管理:配置租戶,新增租戶時初始化部門、角色和管理員數據,支持租戶配置套餐、禁用/啟用功能。
- 字典管理:配置字典,查看字典類型和字典數據列表,支持字典類型和字典數據維護。
- 任務調度:查看任務和任務日誌列表,支持任務啟動、執行、暫停等功能。
- 緩存管理:緩存列表查詢,支持根據緩存鍵清除緩存
- 介面管理:配置介面,支持介面同步功能,用於新增許可權點選擇介面,支持樹形列表展示。
- 視圖管理:配置視圖,支持視圖維護功能,用於新增菜單選擇視圖,支持樹形列表展示。
- 文件管理:支持文件列表查詢、文件上傳/下載、查看大圖、複製文件地址、刪除文件功能。
- 登錄日誌:登錄日誌列表查詢,記錄用戶登錄成功和失敗日誌。
- 操作日誌:操作日誌列表查詢,記錄用戶操作正常和異常日誌。
框架的使用
1. 從GitHub 克隆/下載項目
- 後端:
git clone https://github.com/zhontai/Admin.Core.git
- 前端:
git clone https://github.com/zhontai/admin.ui.plus.git
2. 後端項目的啟動
使用新下的VS2022打開後,預設啟動項目 ZhonTai.Host ,直接Ctrl+F5運行即可
系統將會根據實體生成資料庫及表,並根據 Configs/dbconfig.json 配置將 initData/*.json 的數據生成到本地Sqlite中
(ps:第一次搞dotnet7的項目,vs2019+自己下SDK折騰半天搞不了一點,需要vs2022 17.4+)
3. 配置文件說明
-
launchSettings.json
- 預設本地啟動配置
- 配置項
- 運行環境
- ASPNETCORE_ENVIRONMENT:Development
- 啟動埠
- 預設:8000
- 優先順序低於appconfig.urls的配置
- 運行環境
- 配置項
- 預設本地啟動配置
-
appsettings.{Env}.json
- 預設的應用配置文件
- 配置項
- 日誌等級
- 預設:Information
- 跨域
- 預設:*
- CAP配置
- 預設:未啟用
- 滑動驗證碼
- 預設:300s有效期
- 是否開啟在appconfig.json配置varifyCode.enable
- 日誌等級
-
Configs*.{Env}.json
- 自定義的應用配置文件
- dbconfig.json
- 資料庫配置
- 綁定模型
- 單例:
DbConfig
- 單例:
- 配置項
- 支持類型:type
- 預設:Sqlite
MySql = 0, SqlServer = 1, PostgreSQL = 2,Oracle = 3, Sqlite = 4, OdbcOracle = 5,OdbcSqlServer = 6, OdbcMySql = 7,OdbcPostgreSQL = 8, Odbc = 9, OdbcDameng =10, MsAccess = 11, Dameng = 12,OdbcKingbaseES = 13, ShenTong = 14,KingbaseES = 15, Firebird = 16
- 預設:Sqlite
- 連接字元串:connectionString
- 預設:admindb.db
- 同步結構
- syncStructure:true
- 預設啟用
- 分散式部署需要註意關閉
- 監聽同步結構腳本 syncStructureSql:false
將會輸出codeFirst執行的腳本
將 assemblyNames 配置的所有實體執行結構移db.CodeFirst.SyncStructure
1.創建臨時表
2.插入歷史數據,修改欄位名稱情況註意
3.刪除舊表,重命名臨時表為新表
生產上該自己執行腳本的還是自己執行 - syncStructure:true
- 同步數據
- syncData:true
- sysUpdateData:false
- 同步更新數據
- 確定要修改表數據是最新數據再開啟,除localdb測試就不要使用
- syncDataIncludeTables:[]
- 同步數據包含表,指定表同步,不填同步所有表
- syncDataExcludeTables:[]
- 同步數據排除表,指定表不同步
- syncDataUser
- 同步數據操作用戶
- syncDataPath
- 不配置預設為 項目目錄/InitData/Admin
- 預設會將文件夾下的所有 表名.json 添加到數庫中,預設新增所有數據
- 如果是租戶數據,格式為 表.tenant.json
- syncDataCurd:false
- 監聽同步數據Curd操作
設置是否將syncDataPath文件夾下的 表名.json 加/修改到資料庫中
- 生成數據
- generateData:true
預設開啟但無效,需要將禁用創建資料庫及禁用步:createDb:false && syncData:false - 加了視圖菜單就可以使用這個功能來創建生成預設數據
- generateData:true
- 支持類型:type
-
cacheconfig.json
- 緩存配置,未綁定模型,redis緩存,限流參數配置
- 配置項
- 支持類型
- 預設:Memory
- Memory = 0,Redis = 1
- 限流緩存類型
- 預設:Memory
- Memory = 0,Redis = 1
- Redis配置
- 127.0.0.1:6379
- 支持類型
-
appconfig.json
- 應用配置
- 綁定模型
- 單例:
AppConfig
- 單例:
- 配置項
- appType 應用程式類型
- 預設:Controllers
- Controllers ControllersWithViews MVC
- urls 啟動地址
- http://*:8000
- corUrls 跨域
- []
- assemblyNames 程式集名稱
- ZhonTai.Admin
- Mapster自動註冊程式集
- tenantc租戶
- true
- distributeKey 分散式事務唯一標識
- 為空則不生成分散式事務表
- validate 驗證開關
- 登錄,介面許可權,數據許可權驗證
- swagger Swagger文檔s
- apiUI 介面文檔地址
- MiniProfiler 性能分析器
- false
- identityServer 統一認證授權伺服器
- false
- aop 面向切麵編程s
- 開啟事務
- log 資料庫日誌
- 操作日誌
- rateLimit 限流開關
- false
- varifyCode 登錄驗證碼
- true
- defaultPassword 預設密碼
- 111111
- dynamicApi 動態api
- 結果格式化
- passwordHasher 標準標識密碼哈希
- 啟用後相同密碼加密後各不相同
- maxRequestBodySize 最大請求大小
- 104857600
- healthChecks 健康檢查
- enable:true 啟用
- path:/admin/health
- appType 應用程式類型
-
jwtconfig.json
- JWT配置
- 綁定模型
- 單例:
JwtConfig
- 單例:
- 配置項
- issuer 發行者
- audience 訂閱者
- securityKey 密鑰
- expires 有效期(分鐘) 120
- refreshExpires 刷新有效期(分鐘) 1440
-
ossconfig.json
- 本地上傳配置
- 綁定模型
IOptions<OSSConfig>
- OSS配置
- Minio
- 阿裡雲
- 騰訊雲
- 七牛
- 華為雲
-
uploadconfig.json
- 上傳配置
- 綁定模型
IOptions<UploadConfig>
-
ratelimitconfig.json
- 限流配置
- 綁定模型
IOptions
- 支持類型
- IP限流
- 預設未啟用
- 需要在appconfig.json中配置rateLimit:true生效
- 使用Redis實現限流
- 需要在cacheconfig.json中配置typeRateLimit
- IP限流
-
InitData\模塊*.{tenant}.json
- 預設初始化數據
4. 代碼生成
- 官方預設模板生成:
dotnet new install ZhonTai.Template
dotnet new MyApp -n MyCompanyName.MyProjectName
- 第三方代碼生成器:
前端及代碼生成見下篇
寫在最後
文章的起因是想找個不錯的框架用來搞個自己用的系統,找了幾個dotnet+vue的框架,zhontai的這個是看到上手最容易,前後臺的代碼也沒有封裝得太深,二開也很方便,看著用著都挺舒服的。
唯一的不足就是文檔了,一點資料都找不到,就只能一點點看代碼,然後邊看邊記錄,以備後用,又想著既然都寫了,那就再整理一下了,順便分享出來咯,希望能夠對後面使用框架的有所幫助。
作者:易墨
Github:yimogit
純靜態工具站點:metools
說明:歡迎拍磚,不足之處還望園友們指出;
迷茫大概是因為想的太多做的太少。