Compare commits
43 Commits
Author | SHA1 | Date | |
---|---|---|---|
81ea13fa9d | |||
4eecc0b4ce | |||
01058ba728 | |||
a6f6a8f0a3 | |||
4f12b5064d | |||
2acf88cad1 | |||
180119019c | |||
f5203782aa | |||
4874a58eee | |||
b4ca6d5626 | |||
63d7a3ed4a | |||
ef2a0c3280 | |||
c69655e353 | |||
f0e1155ee8 | |||
03745ff767 | |||
ee94d47551 | |||
155deedd15 | |||
a0a04590c9 | |||
c88c8d293d | |||
7501138e31 | |||
cb75d19202 | |||
e8a2d27c00 | |||
440c7ffcb9 | |||
e8b568426b | |||
37b45c9f36 | |||
7ed30406c9 | |||
71bfdaafa8 | |||
cec96390a5 | |||
0e412db6ce | |||
4d857f1861 | |||
d74a7e13ef | |||
2f16efd291 | |||
81d9b0b3bb | |||
ef2f0de095 | |||
6d87d8e9cd | |||
69dc407002 | |||
6c71c74a27 | |||
4e9f605ea2 | |||
d28d7e9a18 | |||
a6018edb87 | |||
841a4195e7 | |||
5e9b67bca8 | |||
76e5fdcd94 |
1
.drone/workflows/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
drone workflows
|
1
.gitignore
vendored
@ -397,7 +397,6 @@ FodyWeavers.xsd
|
|||||||
# JetBrains Rider
|
# JetBrains Rider
|
||||||
*.sln.iml
|
*.sln.iml
|
||||||
.idea/
|
.idea/
|
||||||
!src/backend/CloudCode.DataGrip/.idea
|
|
||||||
|
|
||||||
# User Define
|
# User Define
|
||||||
dist/
|
dist/
|
||||||
|
6
.gitmodules
vendored
@ -4,6 +4,6 @@
|
|||||||
[submodule "refs/ns-ext"]
|
[submodule "refs/ns-ext"]
|
||||||
path = refs/ns-ext
|
path = refs/ns-ext
|
||||||
url = https://github.com/nsnail/ns-ext.git
|
url = https://github.com/nsnail/ns-ext.git
|
||||||
[submodule "refs/FreeSql"]
|
[submodule "refs/NetAdmin.FreeSql"]
|
||||||
path = refs/FreeSql
|
path = refs/NetAdmin.FreeSql
|
||||||
url = https://github.com/nsnail/FreeSql.git
|
url = https://github.com/nsnail/NetAdmin.FreeSql.git
|
40
CHANGELOG.md
@ -2,6 +2,46 @@
|
|||||||
|
|
||||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||||
|
|
||||||
|
### [2.2.1](https://github.com/nsnail/NetAdmin/compare/v2.1.0...v2.2.1) (2024-12-04)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* ✨ 菜单复制 ([#214](https://github.com/nsnail/NetAdmin/issues/214)) ([81d9b0b](https://github.com/nsnail/NetAdmin/commit/81d9b0b3bb280661ceffa61aa6e9d612fb7ec52c))
|
||||||
|
* ✨ 文档管理 ([#221](https://github.com/nsnail/NetAdmin/issues/221)) ([7ed3040](https://github.com/nsnail/NetAdmin/commit/7ed30406c9f721a12f0b756ec8884a1882242b93))
|
||||||
|
* ✨ select-filter badge icon ([#217](https://github.com/nsnail/NetAdmin/issues/217)) ([4d857f1](https://github.com/nsnail/NetAdmin/commit/4d857f1861b1256980e7cc59e2ab6a5f7d966da2))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 🐛 按钮文字提示 ([#227](https://github.com/nsnail/NetAdmin/issues/227)) ([c88c8d2](https://github.com/nsnail/NetAdmin/commit/c88c8d293d44f2707f3b5232e6a40a141af9981c))
|
||||||
|
* 🐛 导出界面报错 ([#213](https://github.com/nsnail/NetAdmin/issues/213)) ([ef2f0de](https://github.com/nsnail/NetAdmin/commit/ef2f0de095e314f34bec21c0a2ccdb51423a163b))
|
||||||
|
* 🐛 导出文件的responseType ([#205](https://github.com/nsnail/NetAdmin/issues/205)) ([841a419](https://github.com/nsnail/NetAdmin/commit/841a4195e77aa96e3c6c72626c1add3f71a310aa))
|
||||||
|
* 🐛 请求日志批量插入,漏写了登录日志 ([#210](https://github.com/nsnail/NetAdmin/issues/210)) ([6c71c74](https://github.com/nsnail/NetAdmin/commit/6c71c74a27617c7d0530a5f6eaff650ecfd4eaec))
|
||||||
|
* 🐛 用户选择器报错 ([#220](https://github.com/nsnail/NetAdmin/issues/220)) ([71bfdaa](https://github.com/nsnail/NetAdmin/commit/71bfdaafa8176cf686b03244ee758de058080a71))
|
||||||
|
* 🐛 editUser ([ef2a0c3](https://github.com/nsnail/NetAdmin/commit/ef2a0c3280532ac24889279e4780a1b1a2561a6b))
|
||||||
|
* 🐛 idd ([#208](https://github.com/nsnail/NetAdmin/issues/208)) ([4e9f605](https://github.com/nsnail/NetAdmin/commit/4e9f605ea2cc6fe394068cfea5638e51920b9096))
|
||||||
|
* 🐛 version 条件重复指定 ([01058ba](https://github.com/nsnail/NetAdmin/commit/01058ba7288bcc645f66de2f78e1d659d55333cf))
|
||||||
|
* 🐛 version lock ([4eecc0b](https://github.com/nsnail/NetAdmin/commit/4eecc0b4ce09f620f83109949e4c2b67b7f8ba90))
|
||||||
|
|
||||||
|
## [2.2.0](https://github.com/nsnail/NetAdmin/compare/v2.1.0...v2.2.0) (2024-11-27)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* ✨ 菜单复制 ([#214](https://github.com/nsnail/NetAdmin/issues/214)) ([81d9b0b](https://github.com/nsnail/NetAdmin/commit/81d9b0b3bb280661ceffa61aa6e9d612fb7ec52c))
|
||||||
|
* ✨ 文档管理 ([#221](https://github.com/nsnail/NetAdmin/issues/221)) ([7ed3040](https://github.com/nsnail/NetAdmin/commit/7ed30406c9f721a12f0b756ec8884a1882242b93))
|
||||||
|
* ✨ select-filter badge icon ([#217](https://github.com/nsnail/NetAdmin/issues/217)) ([4d857f1](https://github.com/nsnail/NetAdmin/commit/4d857f1861b1256980e7cc59e2ab6a5f7d966da2))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* 🐛 导出界面报错 ([#213](https://github.com/nsnail/NetAdmin/issues/213)) ([ef2f0de](https://github.com/nsnail/NetAdmin/commit/ef2f0de095e314f34bec21c0a2ccdb51423a163b))
|
||||||
|
* 🐛 导出文件的responseType ([#205](https://github.com/nsnail/NetAdmin/issues/205)) ([841a419](https://github.com/nsnail/NetAdmin/commit/841a4195e77aa96e3c6c72626c1add3f71a310aa))
|
||||||
|
* 🐛 请求日志批量插入,漏写了登录日志 ([#210](https://github.com/nsnail/NetAdmin/issues/210)) ([6c71c74](https://github.com/nsnail/NetAdmin/commit/6c71c74a27617c7d0530a5f6eaff650ecfd4eaec))
|
||||||
|
* 🐛 用户选择器报错 ([#220](https://github.com/nsnail/NetAdmin/issues/220)) ([71bfdaa](https://github.com/nsnail/NetAdmin/commit/71bfdaafa8176cf686b03244ee758de058080a71))
|
||||||
|
* 🐛 idd ([#208](https://github.com/nsnail/NetAdmin/issues/208)) ([4e9f605](https://github.com/nsnail/NetAdmin/commit/4e9f605ea2cc6fe394068cfea5638e51920b9096))
|
||||||
|
|
||||||
## [2.1.0](https://github.com/nsnail/NetAdmin/compare/v2.0.0...v2.1.0) (2024-11-15)
|
## [2.1.0](https://github.com/nsnail/NetAdmin/compare/v2.0.0...v2.1.0) (2024-11-15)
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
<Authors>nsnail</Authors>
|
<Authors>nsnail</Authors>
|
||||||
<BaseIntermediateOutputPath>$(SolutionDir)/dist/backend/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
|
<BaseIntermediateOutputPath>$(SolutionDir)/dist/backend/$(MSBuildProjectName)/obj</BaseIntermediateOutputPath>
|
||||||
<BaseOutputPath>$(SolutionDir)/dist/backend/$(MSBuildProjectName)/bin</BaseOutputPath>
|
<BaseOutputPath>$(SolutionDir)/dist/backend/$(MSBuildProjectName)/bin</BaseOutputPath>
|
||||||
<Copyright>© 2006-2023 nsnail</Copyright>
|
<Copyright>© 2006-2024 nsnail</Copyright>
|
||||||
<Description>通用后台权限管理系统、快速开发框架(基于C#12/.NET9、Vue3/Vite、Element Plus等现代技术构建,具有十分整洁、优雅的编码规范)</Description>
|
<Description>通用后台权限管理系统、快速开发框架(基于C#13/.NET9、Vue3/Vite、ElementPlus等现代技术构建,具有十分整洁、优雅的编码规范)</Description>
|
||||||
<EnableBaseIntermediateOutputPathMismatchWarning>false</EnableBaseIntermediateOutputPathMismatchWarning>
|
<EnableBaseIntermediateOutputPathMismatchWarning>false</EnableBaseIntermediateOutputPathMismatchWarning>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
84
NetAdmin.sln
@ -1,12 +1,42 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.0.31903.59
|
VisualStudioVersion = 17.0.31903.59
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C84EB5A0-37AD-4B17-A51E-E36888C4441E}"
|
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".drone", ".drone", "{3E408077-E73E-45CE-A53A-EF5F9DAE4B46}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "backend", "backend", "{4DAF9366-855F-46BB-AE4C-660C92FA0697}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{BB5BB244-E7D2-4368-8C18-C1C0ED1E12D1}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
README.md = .drone/workflows/README.md
|
||||||
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{1129FE25-466B-4F4F-85FC-3752664245E1}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{3C6F049E-3EE8-4D66-9AFF-E8A369032487}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
nightly-build.yml = .github/workflows/nightly-build.yml
|
||||||
|
README.md = .github/workflows/README.md
|
||||||
|
release.yml = .github/workflows/release.yml
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{8E4C93BA-9493-4892-80C4-5E174C504829}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
code.quality.props = build/code.quality.props
|
||||||
|
copy.pkg.xml.comment.files.targets = build/copy.pkg.xml.comment.files.targets
|
||||||
|
minver.targets = build/minver.targets
|
||||||
|
prebuild.targets = build/prebuild.targets
|
||||||
|
stylecop.analyzers.ruleset = build/stylecop.analyzers.ruleset
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{E80A1018-C354-4A26-9029-8847BB9DA864}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
README.md = docker/README.md
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{5198A03D-0CAC-4828-A807-34A693F73859}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{5198A03D-0CAC-4828-A807-34A693F73859}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
.commitlintrc.js = .commitlintrc.js
|
.commitlintrc.js = .commitlintrc.js
|
||||||
@ -26,12 +56,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "meta", "meta", "{5198A03D-0
|
|||||||
README.md = README.md
|
README.md = README.md
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{BB0B25C9-0901-4923-913F-00F9A6B352A5}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{BB0B25C9-0901-4923-913F-00F9A6B352A5}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
1.git.pull.request.ps1 = scripts/1.git.pull.request.ps1
|
1.git.pull.request.ps1 = scripts/1.git.pull.request.ps1
|
||||||
2.git.release.ps1 = scripts/2.git.release.ps1
|
2.git.release.ps1 = scripts/2.git.release.ps1
|
||||||
3.git.recreate.branch.ps1 = scripts/3.git.recreate.branch.ps1
|
3.git.recreate.branch.ps1 = scripts/3.git.recreate.branch.ps1
|
||||||
4.git.del.obsolete.tags.ps1 = scripts/4.git.del.obsolete.tags.ps1
|
4.git.del.obsolete.tags.ps1 = scripts/4.git.del.obsolete.tags.ps1
|
||||||
|
5.git.update.submodule.ps1 = scripts/5.git.update.submodule.ps1
|
||||||
clean.ln.csx = scripts/clean.ln.csx
|
clean.ln.csx = scripts/clean.ln.csx
|
||||||
code.clean.csx = scripts/code.clean.csx
|
code.clean.csx = scripts/code.clean.csx
|
||||||
code.clean.ps1 = scripts/code.clean.ps1
|
code.clean.ps1 = scripts/code.clean.ps1
|
||||||
@ -49,23 +81,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{BB0B
|
|||||||
wait.server.stop.sh = scripts/wait.server.stop.sh
|
wait.server.stop.sh = scripts/wait.server.stop.sh
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{1129FE25-466B-4F4F-85FC-3752664245E1}"
|
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C84EB5A0-37AD-4B17-A51E-E36888C4441E}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{3C6F049E-3EE8-4D66-9AFF-E8A369032487}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "backend", "backend", "{4DAF9366-855F-46BB-AE4C-660C92FA0697}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
|
||||||
nightly-build.yml = .github/workflows/nightly-build.yml
|
|
||||||
README.md = .github/workflows/README.md
|
|
||||||
release.yml = .github/workflows/release.yml
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{8E4C93BA-9493-4892-80C4-5E174C504829}"
|
|
||||||
ProjectSection(SolutionItems) = preProject
|
|
||||||
code.quality.props = build/code.quality.props
|
|
||||||
copy.pkg.xml.comment.files.targets = build/copy.pkg.xml.comment.files.targets
|
|
||||||
minver.targets = build/minver.targets
|
|
||||||
prebuild.targets = build/prebuild.targets
|
|
||||||
stylecop.analyzers.ruleset = build/stylecop.analyzers.ruleset
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.Infrastructure", "src\backend\NetAdmin\NetAdmin.Infrastructure\NetAdmin.Infrastructure.csproj", "{1E62C322-EE42-4699-A6F1-791C53EFA62D}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.Infrastructure", "src\backend\NetAdmin\NetAdmin.Infrastructure\NetAdmin.Infrastructure.csproj", "{1E62C322-EE42-4699-A6F1-791C53EFA62D}"
|
||||||
EndProject
|
EndProject
|
||||||
@ -103,27 +122,19 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "src\backend\Un
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.Tests", "src\backend\NetAdmin\NetAdmin.Tests\NetAdmin.Tests.csproj", "{00604162-C444-478B-B773-3AB23C856CA7}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.Tests", "src\backend\NetAdmin\NetAdmin.Tests\NetAdmin.Tests.csproj", "{00604162-C444-478B-B773-3AB23C856CA7}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{E80A1018-C354-4A26-9029-8847BB9DA864}"
|
|
||||||
ProjectSection(SolutionItems) = preProject
|
|
||||||
README.md = docker/README.md
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.SysComponent.Domain", "src\backend\NetAdmin\NetAdmin.SysComponent.Domain\NetAdmin.SysComponent.Domain.csproj", "{51D6E603-0749-4A11-A78C-9E5BB127E03A}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YourSolution.AdmServer.Domain", "src\backend\YourSolution.AdmServer.Domain\YourSolution.AdmServer.Domain.csproj", "{932520DF-D312-415A-A128-1117F8221D68}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YourSolution.AdmServer.Domain", "src\backend\YourSolution.AdmServer.Domain\YourSolution.AdmServer.Domain.csproj", "{932520DF-D312-415A-A128-1117F8221D68}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YourSolution.AdmServer.Infrastructure", "src\backend\YourSolution.AdmServer.Infrastructure\YourSolution.AdmServer.Infrastructure.csproj", "{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "YourSolution.AdmServer.Infrastructure", "src\backend\YourSolution.AdmServer.Infrastructure\YourSolution.AdmServer.Infrastructure.csproj", "{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetAdmin.SysComponent.Infrastructure", "src\backend\NetAdmin\NetAdmin.SysComponent.Infrastructure\NetAdmin.SysComponent.Infrastructure.csproj", "{48EE6FC4-B64A-40D3-B889-36837E067880}"
|
|
||||||
EndProject
|
|
||||||
##Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gurion", "refs\Gurion\src\Gurion\Gurion.csproj", "{CCD098FE-4F95-4FA4-8CC0-9A6DE921FBAE}"#refs
|
##Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gurion", "refs\Gurion\src\Gurion\Gurion.csproj", "{CCD098FE-4F95-4FA4-8CC0-9A6DE921FBAE}"#refs
|
||||||
##EndProject#refs
|
##EndProject#refs
|
||||||
##Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql", "refs\FreeSql\FreeSql\FreeSql.csproj", "{3C65DA42-877D-46FF-B754-C12214302A29}"#refs
|
##Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql", "refs\NetAdmin.FreeSql\src\FreeSql\FreeSql.csproj", "{3C65DA42-877D-46FF-B754-C12214302A29}"#refs
|
||||||
##EndProject#refs
|
##EndProject#refs
|
||||||
##Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.Provider.Sqlite", "refs\FreeSql\Providers\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj", "{CF5EFA63-4631-4A64-B4F3-98A7DD532F68}"#refs
|
##Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.Provider.Sqlite", "refs\NetAdmin.FreeSql\src\FreeSql.Provider.Sqlite\FreeSql.Provider.Sqlite.csproj", "{CF5EFA63-4631-4A64-B4F3-98A7DD532F68}"#refs
|
||||||
##EndProject#refs
|
##EndProject#refs
|
||||||
##Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.DbContext", "refs\FreeSql\FreeSql.DbContext\FreeSql.DbContext.csproj", "{FE03DF27-EC56-48DB-81B0-F99947259A7C}"#refs
|
##Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSql.DbContext", "refs\NetAdmin.FreeSql\src\FreeSql.DbContext\FreeSql.DbContext.csproj", "{FE03DF27-EC56-48DB-81B0-F99947259A7C}"#refs
|
||||||
##EndProject#refs
|
##EndProject#refs
|
||||||
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -185,10 +196,6 @@ Global
|
|||||||
{00604162-C444-478B-B773-3AB23C856CA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{00604162-C444-478B-B773-3AB23C856CA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.Build.0 = Release|Any CPU
|
{00604162-C444-478B-B773-3AB23C856CA7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{932520DF-D312-415A-A128-1117F8221D68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{932520DF-D312-415A-A128-1117F8221D68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{932520DF-D312-415A-A128-1117F8221D68}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{932520DF-D312-415A-A128-1117F8221D68}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{932520DF-D312-415A-A128-1117F8221D68}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{932520DF-D312-415A-A128-1117F8221D68}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
@ -197,10 +204,6 @@ Global
|
|||||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Release|Any CPU.Build.0 = Release|Any CPU
|
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{48EE6FC4-B64A-40D3-B889-36837E067880}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{48EE6FC4-B64A-40D3-B889-36837E067880}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{48EE6FC4-B64A-40D3-B889-36837E067880}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{48EE6FC4-B64A-40D3-B889-36837E067880}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
##{CCD098FE-4F95-4FA4-8CC0-9A6DE921FBAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
##{CCD098FE-4F95-4FA4-8CC0-9A6DE921FBAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
##{CCD098FE-4F95-4FA4-8CC0-9A6DE921FBAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
##{CCD098FE-4F95-4FA4-8CC0-9A6DE921FBAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
##{CCD098FE-4F95-4FA4-8CC0-9A6DE921FBAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
##{CCD098FE-4F95-4FA4-8CC0-9A6DE921FBAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
@ -238,10 +241,9 @@ Global
|
|||||||
{19872A4C-3C9A-4C62-A33B-74F5B8D6F77C} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
{19872A4C-3C9A-4C62-A33B-74F5B8D6F77C} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
||||||
{C2CC1596-3BEE-43EA-A9BE-4EDE5716296C} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
{C2CC1596-3BEE-43EA-A9BE-4EDE5716296C} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
||||||
{79409163-5006-405D-AC96-406FA0AD77B7} = {4DAF9366-855F-46BB-AE4C-660C92FA0697}
|
{79409163-5006-405D-AC96-406FA0AD77B7} = {4DAF9366-855F-46BB-AE4C-660C92FA0697}
|
||||||
{51D6E603-0749-4A11-A78C-9E5BB127E03A} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
|
||||||
{932520DF-D312-415A-A128-1117F8221D68} = {12AE5B4B-CB1A-498E-83B8-04E201E31D86}
|
{932520DF-D312-415A-A128-1117F8221D68} = {12AE5B4B-CB1A-498E-83B8-04E201E31D86}
|
||||||
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA} = {12AE5B4B-CB1A-498E-83B8-04E201E31D86}
|
{C3DE6F6A-D1FC-4B8E-9033-980FBEBBD2BA} = {12AE5B4B-CB1A-498E-83B8-04E201E31D86}
|
||||||
{48EE6FC4-B64A-40D3-B889-36837E067880} = {3F23258D-8299-4992-9F51-2EE9B52CF9D2}
|
|
||||||
{3C6F049E-3EE8-4D66-9AFF-E8A369032487} = {1129FE25-466B-4F4F-85FC-3752664245E1}
|
{3C6F049E-3EE8-4D66-9AFF-E8A369032487} = {1129FE25-466B-4F4F-85FC-3752664245E1}
|
||||||
|
{BB5BB244-E7D2-4368-8C18-C1C0ED1E12D1} = {3E408077-E73E-45CE-A53A-EF5F9DAE4B46}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
41
README.md
@ -1,6 +1,6 @@
|
|||||||
# NetAdmin
|
# NetAdmin
|
||||||
|
|
||||||
通用后台权限管理系统、快速开发框架(基于C#12/.NET9、Vue3/Vite、Element Plus等现代技术构建,具有十分整洁、优雅的编码规范)
|
通用后台权限管理系统、快速开发框架(基于C#13/.NET9、Vue3/Vite、ElementPlus等现代技术构建,具有十分整洁、优雅的编码规范)
|
||||||
|
|
||||||
[](https://github.com/nsnail/NetAdmin/actions/workflows/nightly-build.yml)
|
[](https://github.com/nsnail/NetAdmin/actions/workflows/nightly-build.yml)
|
||||||
[](https://github.com/nsnail/NetAdmin/blob/main/LICENSE)
|
[](https://github.com/nsnail/NetAdmin/blob/main/LICENSE)
|
||||||
@ -28,15 +28,14 @@ dotnet --list-sdks
|
|||||||
git clone https://github.com/nsnail/NetAdmin.git && cd ./NetAdmin
|
git clone https://github.com/nsnail/NetAdmin.git && cd ./NetAdmin
|
||||||
|
|
||||||
# 3. 确认本机 redis 处于运行状态
|
# 3. 确认本机 redis 处于运行状态
|
||||||
redis-server # 启动
|
redis-server # 启动服务器
|
||||||
redis-cli # 连接测试
|
redis-cli # 连接测试
|
||||||
# 下载 redis for windows:https://github.com/redis-windows/redis-windows/releases
|
# 下载 redis for windows:https://github.com/redis-windows/redis-windows/releases
|
||||||
# 下载 redis for linux/mac:https://redis.io/download
|
# 下载 redis for linux/mac:https://redis.io/download
|
||||||
|
|
||||||
# 4. 运行后端 WebApi
|
# 4. 运行后端 WebApi
|
||||||
dotnet run --project ./src/backend/YourSolution.AdmServer.Host/YourSolution.AdmServer.Host.csproj --urls http://[::]:5010 -is
|
dotnet run --project ./src/backend/YourSolution.AdmServer.Host/YourSolution.AdmServer.Host.csproj --urls http://[::]:5010 -is
|
||||||
# -i 插入种子数据
|
# -i 插入种子数据;-s 同步数据库结构
|
||||||
# -s 同步数据库结构
|
|
||||||
# 浏览器访问 http://localhost:5010 ,将看到Swagger(Knife4jUI)界面
|
# 浏览器访问 http://localhost:5010 ,将看到Swagger(Knife4jUI)界面
|
||||||
|
|
||||||
# 5. 检查 nodejs 版本 >=20
|
# 5. 检查 nodejs 版本 >=20
|
||||||
@ -70,29 +69,27 @@ npm run dev
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
flowchart TD
|
flowchart TD
|
||||||
sys-host["NetAdmin.SysComponent.Host\n(系统组件:主机层)"]
|
sys-host["NetAdmin.SysComponent.Host\n系统组件:主机层"]
|
||||||
sys-cache["NetAdmin.SysComponent.Cache\n(系统组件:缓存层)"]
|
sys-cache["NetAdmin.SysComponent.Cache\n系统组件:缓存层"]
|
||||||
sys-app["NetAdmin.SysComponent.Application\n(系统组件:应用层)"]
|
sys-app["NetAdmin.SysComponent.Application\n系统组件:应用层"]
|
||||||
sys-domain["NetAdmin.SysComponent.Domain\n(系统组件:数据实体层)"]
|
host["<b>NetAdmin.Host</b>\n框架:主机层\n(.Net自托管主机程序)\n(输入输出格式化)\n(数据校验、鉴权)\n(...所有HTTP管道过滤器中间件)"]
|
||||||
sys-infra["NetAdmin.SysComponent.Infrastructure\n(系统组件:基础设施层)"]
|
cache["<b>NetAdmin.Cache</b>\n框架:缓存层\n(基于Redis或MemoryCache的缓存策略实现)"]
|
||||||
host["NetAdmin.Host\n框架:主机层\n(.Net自托管主机程序)\n(输入输出格式化)\n(数据校验、鉴权)\n(...所有HTTP管道过滤器中间件)"]
|
app["<b>NetAdmin.Application</b>\n框架:业务应用层\n(内部服务增删改查)\n(外部服务增删改查)\n(...所有业务用例的计算与组合逻辑的模块化)"]
|
||||||
cache["NetAdmin.Cache\n框架:缓存层\n(基于Redis或MemoryCache的缓存策略实现)"]
|
domain["<b>NetAdmin.Domain</b>\n框架:数据实体层\n(数据库关系实体映射)\n(DTO数据传输对象)\n(...所有数据模型的抽象与封装)"]
|
||||||
app["NetAdmin.Application\n框架:业务应用层\n(内部服务增删改查)\n(外部服务增删改查)\n(...所有业务用例的计算与组合逻辑的模块化)"]
|
infra["<b>NetAdmin.Infrastructure</b>\n框架:基础设施层\n(第三方组件和Nuget包引用)\n(公共构建和程序运行配置)\n(公共常量枚举异常定义)\n(全球化化和多语言)\n(...所有公共Utility工具)"]
|
||||||
domain["NetAdmin.Domain\n框架:数据实体层\n(数据库关系实体映射)\n(DTO数据传输对象)\n(...所有数据模型的抽象与封装)"]
|
biz-host["YourSolution.XXX.Host\n业务实例:主机层"]
|
||||||
infra["NetAdmin.Infrastructure\n框架:基础设施层\n(第三方组件和Nuget包引用)\n(公共构建和程序运行配置)\n(公共常量枚举异常定义)\n(全球化化和多语言)\n(...所有公共Utility工具)"]
|
biz-cache["YourSolution.XXX.Cache\n业务实例:缓存层"]
|
||||||
biz-host["YourSolution.XXX.Host\n(业务实例:主机层)"]
|
biz-app["YourSolution.XXX.Application\n业务实例:应用层"]
|
||||||
biz-cache["YourSolution.XXX.Cache\n(业务实例:缓存层)"]
|
biz-domain["YourSolution.XXX.Domain\n业务实例:数据实体层"]
|
||||||
biz-app["YourSolution.XXX.Application\n(业务实例:应用层)"]
|
biz-infra["YourSolution.XXX.Infrastructure\n业务实例:基础设施层"]
|
||||||
biz-domain["YourSolution.XXX.Domain\n(业务实例:数据实体层)"]
|
|
||||||
biz-infra["YourSolution.XXX.Infrastructure\n(业务实例:基础设施层)"]
|
|
||||||
biz-host-->biz-cache-->biz-app-->biz-domain-->biz-infra
|
biz-host-->biz-cache-->biz-app-->biz-domain-->biz-infra
|
||||||
sys-host-->sys-cache-->sys-app-->sys-domain-->sys-infra
|
sys-host-->sys-cache-->sys-app-->domain-->infra
|
||||||
host-->cache-->app-->domain-->infra
|
host-->cache-->app-->domain-->infra
|
||||||
biz-host-->sys-host-->host
|
biz-host-->sys-host-->host
|
||||||
biz-cache-->sys-cache-->cache
|
biz-cache-->sys-cache-->cache
|
||||||
biz-app-->sys-app-->app
|
biz-app-->sys-app-->app
|
||||||
biz-domain-->sys-domain-->domain
|
biz-domain-->domain
|
||||||
biz-infra-->sys-infra-->infra
|
biz-infra-->infra
|
||||||
```
|
```
|
||||||
|
|
||||||
## 特别鸣谢
|
## 特别鸣谢
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
上次执行时间
|
||||||
|
上次执行状态
|
||||||
|
上次执行耗时
|
||||||
|
下次执行时间
|
||||||
不为其中之一
|
不为其中之一
|
||||||
不以什么开始
|
不以什么开始
|
||||||
不以什么结束
|
不以什么结束
|
||||||
@ -8,63 +12,138 @@
|
|||||||
中专
|
中专
|
||||||
中共党员
|
中共党员
|
||||||
为其中之一
|
为其中之一
|
||||||
|
人工审核
|
||||||
以什么开始
|
以什么开始
|
||||||
以什么结束
|
以什么结束
|
||||||
保密
|
作业名称
|
||||||
|
作业状态
|
||||||
保密
|
保密
|
||||||
信息
|
信息
|
||||||
倒序排序
|
倒序排序
|
||||||
|
全部数据
|
||||||
|
公告
|
||||||
共青团员
|
共青团员
|
||||||
出生证
|
出生证
|
||||||
|
创建时间
|
||||||
初中
|
初中
|
||||||
|
删除
|
||||||
包含
|
包含
|
||||||
博士
|
博士
|
||||||
博士后
|
博士后
|
||||||
|
发送失败
|
||||||
同步数据库结构
|
同步数据库结构
|
||||||
|
响应体
|
||||||
|
响应状态码
|
||||||
|
唯一编码
|
||||||
|
备注
|
||||||
外国人居留证
|
外国人居留证
|
||||||
外部错误
|
外部错误
|
||||||
大专
|
大专
|
||||||
大于
|
大于
|
||||||
大于等于
|
大于等于
|
||||||
女
|
女
|
||||||
女
|
字典内容导出
|
||||||
宕机
|
宕机
|
||||||
|
客户端IP
|
||||||
小于
|
小于
|
||||||
小于等于
|
小于等于
|
||||||
小学
|
小学
|
||||||
|
已发送
|
||||||
已婚
|
已婚
|
||||||
|
已校验
|
||||||
|
已读
|
||||||
并且
|
并且
|
||||||
成功
|
成功
|
||||||
或者
|
或者
|
||||||
|
所属角色
|
||||||
|
所属部门
|
||||||
|
手机
|
||||||
|
手机号
|
||||||
|
执行耗时
|
||||||
|
执行计划
|
||||||
护照
|
护照
|
||||||
|
指定部门数据
|
||||||
|
按钮
|
||||||
|
排序
|
||||||
|
接口名称
|
||||||
|
接口导出
|
||||||
|
接口描述
|
||||||
|
接口路径
|
||||||
插入种子数据
|
插入种子数据
|
||||||
|
操作系统
|
||||||
|
数据范围
|
||||||
|
文档内容
|
||||||
|
文档内容导出
|
||||||
|
文档标题
|
||||||
无效操作
|
无效操作
|
||||||
无效输入
|
无效输入
|
||||||
|
无限权限
|
||||||
日期范围
|
日期范围
|
||||||
|
是否启用
|
||||||
|
显示仪表板
|
||||||
|
最后登录时间
|
||||||
未处理异常
|
未处理异常
|
||||||
未婚
|
未婚
|
||||||
|
未读
|
||||||
|
本人数据
|
||||||
本科
|
本科
|
||||||
|
本部门和下级部门数据
|
||||||
|
本部门数据
|
||||||
|
框架
|
||||||
比较数据库结构
|
比较数据库结构
|
||||||
|
注册
|
||||||
|
消息主题
|
||||||
|
消息摘要
|
||||||
|
消息类型
|
||||||
港澳台通行证
|
港澳台通行证
|
||||||
|
用户代理
|
||||||
|
用户名
|
||||||
|
用户导出
|
||||||
|
电子邮箱
|
||||||
男
|
男
|
||||||
男
|
登录
|
||||||
|
登录名
|
||||||
|
登录日志导出
|
||||||
硕士
|
硕士
|
||||||
示例导出
|
示例导出
|
||||||
离异
|
离异
|
||||||
|
空闲
|
||||||
|
站内信导出
|
||||||
等于
|
等于
|
||||||
等于
|
等待发送
|
||||||
等于
|
|
||||||
管理模块
|
管理模块
|
||||||
系统模块
|
系统模块
|
||||||
|
绑定手机号码
|
||||||
结果非预期
|
结果非预期
|
||||||
群众
|
群众
|
||||||
自定义
|
自定义
|
||||||
范围
|
范围
|
||||||
|
菜单
|
||||||
|
角色名称
|
||||||
|
角色导出
|
||||||
|
解绑手机号码
|
||||||
警告
|
警告
|
||||||
|
计划作业导出
|
||||||
|
计划作业执行记录导出
|
||||||
|
请求方式
|
||||||
|
请求日志导出
|
||||||
调试
|
调试
|
||||||
跟踪
|
跟踪
|
||||||
|
跟踪标识
|
||||||
身份证
|
身份证
|
||||||
|
运行
|
||||||
|
通知
|
||||||
|
邮箱号
|
||||||
|
部门名称
|
||||||
|
部门导出
|
||||||
|
配置导出
|
||||||
|
重设密码
|
||||||
|
链接
|
||||||
错误
|
错误
|
||||||
随机排序
|
随机排序
|
||||||
|
项值
|
||||||
|
项名
|
||||||
顺序排序
|
顺序排序
|
||||||
高中
|
高中
|
||||||
|
默认角色
|
||||||
|
默认部门
|
@ -1,23 +1,121 @@
|
|||||||
|
1分钟内只能发送1次
|
||||||
6位数字
|
6位数字
|
||||||
8位以上数字字母组合
|
8位以上数字字母组合
|
||||||
XML注释文件不存在
|
XML注释文件不存在
|
||||||
中文姓名
|
中文姓名
|
||||||
事务已回滚
|
事务已回滚
|
||||||
事务已提交
|
事务已提交
|
||||||
|
人机校验请求不能为空
|
||||||
|
人机验证未通过
|
||||||
|
作业名称不能为空
|
||||||
|
允许的文件大小
|
||||||
|
允许的文件格式
|
||||||
区号电话号码分机号
|
区号电话号码分机号
|
||||||
参数格式不正确
|
参数格式不正确
|
||||||
|
唯一编码不能为空
|
||||||
|
图标代码不能为空
|
||||||
|
图标名称不能为空
|
||||||
|
婚姻状况不正确
|
||||||
|
字典名称不能为空
|
||||||
|
字典目录不存在
|
||||||
|
字典目录编号不能为空
|
||||||
|
字典编码不能为空
|
||||||
|
学历不正确
|
||||||
|
完全公开
|
||||||
|
密码不能为空
|
||||||
|
已处理完毕
|
||||||
|
并发冲突_请稍后重试
|
||||||
开始事务
|
开始事务
|
||||||
|
性别不正确
|
||||||
|
手机号码不正确
|
||||||
|
手机号码不能为空
|
||||||
|
接口编码不存在
|
||||||
支付宝账号
|
支付宝账号
|
||||||
|
政治面貌不正确
|
||||||
数据库同步开始
|
数据库同步开始
|
||||||
|
数据库服务器时钟偏移
|
||||||
数据库结构同步完成
|
数据库结构同步完成
|
||||||
|
文件不能为空
|
||||||
|
文档内容不能为空
|
||||||
|
文档分类不存在
|
||||||
|
文档分类名称不能为空
|
||||||
|
文档分类编号不能为空
|
||||||
|
文档分类编码不能为空
|
||||||
|
文档标题不能为空
|
||||||
|
新密码不能为空
|
||||||
|
新手机号码验证码不正确
|
||||||
无效端口号
|
无效端口号
|
||||||
无效证件号码
|
无效证件号码
|
||||||
|
旧密码不正确
|
||||||
|
旧密码不能为空
|
||||||
|
旧手机号码不正确
|
||||||
|
旧手机号码验证码不正确
|
||||||
时间表达式
|
时间表达式
|
||||||
|
时间计划不能为空
|
||||||
|
未指定部门
|
||||||
|
未获取到待执行任务
|
||||||
|
档案可见性不正确
|
||||||
|
模块名称不能为空
|
||||||
|
模块类型不能为空
|
||||||
|
模块说明不能为空
|
||||||
|
此节点已下线
|
||||||
|
民族不正确
|
||||||
|
消息主题不能为空
|
||||||
|
消息内容不能为空
|
||||||
|
父节点不存在
|
||||||
|
用户不存在
|
||||||
|
用户名不能为空
|
||||||
用户名不能是手机号码
|
用户名不能是手机号码
|
||||||
|
用户名或密码错误
|
||||||
用户名长度4位以上
|
用户名长度4位以上
|
||||||
|
用户头像不能为空
|
||||||
|
用户编号不存在
|
||||||
|
登录用户
|
||||||
|
目标设备不能为空
|
||||||
|
短信验证请求不能为空
|
||||||
种子数据插入完成
|
种子数据插入完成
|
||||||
|
站内信不存在
|
||||||
|
站内信状态不正确
|
||||||
|
站内信类型不正确
|
||||||
|
缓存键不能为空
|
||||||
|
网络地址不正确
|
||||||
|
自己可见
|
||||||
|
菜单名称不能为空
|
||||||
|
菜单标题不能为空
|
||||||
|
菜单类型不正确
|
||||||
|
菜单编号不能为空
|
||||||
|
角色不存在
|
||||||
|
角色名称不能为空
|
||||||
|
角色数据范围不正确
|
||||||
|
角色编号不能为空
|
||||||
|
角色编号列表不能为空
|
||||||
记录已存在
|
记录已存在
|
||||||
|
设备类型不能为空
|
||||||
|
证件类型不正确
|
||||||
|
该角色下存在用户
|
||||||
|
该部门下存在子部门
|
||||||
|
该部门下存在用户
|
||||||
|
请求地址不能为空
|
||||||
请求对象不能为空
|
请求对象不能为空
|
||||||
|
请求方法不正确
|
||||||
|
请稍后重试
|
||||||
|
请联系管理员激活账号
|
||||||
|
读取用户令牌出错
|
||||||
|
账号不能为空
|
||||||
邀请码不正确
|
邀请码不正确
|
||||||
|
邮箱验证码不正确
|
||||||
|
部门不存在
|
||||||
|
部门可见
|
||||||
|
部门名称不能为空
|
||||||
配置文件初始化完毕
|
配置文件初始化完毕
|
||||||
|
键值不能为空
|
||||||
|
键名称不能为空
|
||||||
|
随机延时结束时间不正确
|
||||||
|
随机延时起始时间不正确
|
||||||
非JSON字符串
|
非JSON字符串
|
||||||
|
验证数据不能为空
|
||||||
|
验证码不正确
|
||||||
|
验证码不能为空
|
||||||
|
验证码目标设备类型不正确
|
||||||
|
验证码类型不正确
|
||||||
|
验证码类型不能为空
|
@ -1,81 +0,0 @@
|
|||||||
上次执行时间
|
|
||||||
上次执行状态
|
|
||||||
上次执行耗时
|
|
||||||
下次执行时间
|
|
||||||
人工审核
|
|
||||||
作业名称
|
|
||||||
作业状态
|
|
||||||
全部数据
|
|
||||||
公告
|
|
||||||
创建时间
|
|
||||||
删除
|
|
||||||
发送失败
|
|
||||||
响应体
|
|
||||||
响应状态码
|
|
||||||
唯一编码
|
|
||||||
备注
|
|
||||||
字典内容导出
|
|
||||||
客户端IP
|
|
||||||
已发送
|
|
||||||
已校验
|
|
||||||
已读
|
|
||||||
所属角色
|
|
||||||
所属部门
|
|
||||||
手机
|
|
||||||
手机号
|
|
||||||
执行耗时
|
|
||||||
执行计划
|
|
||||||
指定部门数据
|
|
||||||
按钮
|
|
||||||
排序
|
|
||||||
接口名称
|
|
||||||
接口导出
|
|
||||||
接口描述
|
|
||||||
接口路径
|
|
||||||
操作系统
|
|
||||||
数据范围
|
|
||||||
无限权限
|
|
||||||
是否启用
|
|
||||||
显示仪表板
|
|
||||||
最后登录时间
|
|
||||||
未读
|
|
||||||
本人数据
|
|
||||||
本部门和下级部门数据
|
|
||||||
本部门数据
|
|
||||||
框架
|
|
||||||
注册
|
|
||||||
消息主题
|
|
||||||
消息摘要
|
|
||||||
消息类型
|
|
||||||
用户代理
|
|
||||||
用户名
|
|
||||||
用户导出
|
|
||||||
电子邮箱
|
|
||||||
登录
|
|
||||||
登录名
|
|
||||||
登录日志导出
|
|
||||||
空闲
|
|
||||||
站内信导出
|
|
||||||
等待发送
|
|
||||||
绑定手机号码
|
|
||||||
菜单
|
|
||||||
角色名称
|
|
||||||
角色导出
|
|
||||||
解绑手机号码
|
|
||||||
计划作业导出
|
|
||||||
计划作业执行记录导出
|
|
||||||
请求方式
|
|
||||||
请求日志导出
|
|
||||||
跟踪标识
|
|
||||||
运行
|
|
||||||
通知
|
|
||||||
邮箱号
|
|
||||||
部门名称
|
|
||||||
部门导出
|
|
||||||
配置导出
|
|
||||||
重设密码
|
|
||||||
链接
|
|
||||||
项值
|
|
||||||
项名
|
|
||||||
默认角色
|
|
||||||
默认部门
|
|
@ -1,102 +0,0 @@
|
|||||||
1分钟内只能发送1次
|
|
||||||
人机校验请求不能为空
|
|
||||||
人机验证未通过
|
|
||||||
作业名称不能为空
|
|
||||||
允许的文件大小
|
|
||||||
允许的文件格式
|
|
||||||
唯一编码不能为空
|
|
||||||
图标代码不能为空
|
|
||||||
图标名称不能为空
|
|
||||||
婚姻状况不正确
|
|
||||||
字典名称不能为空
|
|
||||||
字典目录不存在
|
|
||||||
字典目录编号不能为空
|
|
||||||
字典目录编号不能为空
|
|
||||||
字典编码不能为空
|
|
||||||
学历不正确
|
|
||||||
密码不能为空
|
|
||||||
密码不能为空
|
|
||||||
密码不能为空
|
|
||||||
密码不能为空
|
|
||||||
已处理完毕
|
|
||||||
已处理完毕
|
|
||||||
已处理完毕
|
|
||||||
并发冲突_请稍后重试
|
|
||||||
性别不正确
|
|
||||||
手机号码不正确
|
|
||||||
手机号码不能为空
|
|
||||||
接口编码不存在
|
|
||||||
政治面貌不正确
|
|
||||||
数据库服务器时钟偏移
|
|
||||||
文件不能为空
|
|
||||||
新密码不能为空
|
|
||||||
新手机号码验证码不正确
|
|
||||||
旧密码不正确
|
|
||||||
旧密码不能为空
|
|
||||||
旧手机号码不正确
|
|
||||||
旧手机号码验证码不正确
|
|
||||||
时间计划不能为空
|
|
||||||
未指定部门
|
|
||||||
未获取到待执行任务
|
|
||||||
模块名称不能为空
|
|
||||||
模块类型不能为空
|
|
||||||
模块说明不能为空
|
|
||||||
此节点已下线
|
|
||||||
此节点已下线
|
|
||||||
民族不正确
|
|
||||||
消息主题不能为空
|
|
||||||
消息内容不能为空
|
|
||||||
父节点不存在
|
|
||||||
用户不存在
|
|
||||||
用户名不能为空
|
|
||||||
用户名不能为空
|
|
||||||
用户名不能为空
|
|
||||||
用户名或密码错误
|
|
||||||
用户头像不能为空
|
|
||||||
用户编号不存在
|
|
||||||
目标设备不能为空
|
|
||||||
目标设备不能为空
|
|
||||||
短信验证请求不能为空
|
|
||||||
短信验证请求不能为空
|
|
||||||
短信验证请求不能为空
|
|
||||||
站内信不存在
|
|
||||||
站内信状态不正确
|
|
||||||
站内信类型不正确
|
|
||||||
缓存键不能为空
|
|
||||||
网络地址不正确
|
|
||||||
网络地址不正确
|
|
||||||
网络地址不正确
|
|
||||||
菜单名称不能为空
|
|
||||||
菜单标题不能为空
|
|
||||||
菜单类型不正确
|
|
||||||
菜单编号不能为空
|
|
||||||
角色不存在
|
|
||||||
角色名称不能为空
|
|
||||||
角色数据范围不正确
|
|
||||||
角色编号不能为空
|
|
||||||
角色编号列表不能为空
|
|
||||||
设备类型不能为空
|
|
||||||
证件类型不正确
|
|
||||||
该角色下存在用户
|
|
||||||
该部门下存在子部门
|
|
||||||
该部门下存在用户
|
|
||||||
请求地址不能为空
|
|
||||||
请求方法不正确
|
|
||||||
请稍后重试
|
|
||||||
请联系管理员激活账号
|
|
||||||
读取用户令牌出错
|
|
||||||
账号不能为空
|
|
||||||
邮箱验证码不正确
|
|
||||||
部门不存在
|
|
||||||
部门名称不能为空
|
|
||||||
键值不能为空
|
|
||||||
键名称不能为空
|
|
||||||
键名称不能为空
|
|
||||||
随机延时结束时间不正确
|
|
||||||
随机延时起始时间不正确
|
|
||||||
验证数据不能为空
|
|
||||||
验证码不正确
|
|
||||||
验证码不能为空
|
|
||||||
验证码目标设备类型不正确
|
|
||||||
验证码类型不正确
|
|
||||||
验证码类型不能为空
|
|
@ -140,13 +140,34 @@
|
|||||||
"Title": "缓存管理",
|
"Title": "缓存管理",
|
||||||
"Type": 1
|
"Type": 1
|
||||||
},
|
},
|
||||||
|
// ------------------------------ 档案管理 ------------------------------
|
||||||
|
{
|
||||||
|
"Icon": "sc-icon-Archive",
|
||||||
|
"Id": 616214756757512,
|
||||||
|
"Name": "archive",
|
||||||
|
"Path": "/archive",
|
||||||
|
"Sort": 98,
|
||||||
|
"Title": "档案管理",
|
||||||
|
"Type": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Component": "sys/doc",
|
||||||
|
"Icon": "el-icon-document",
|
||||||
|
"Id": 616214756757516,
|
||||||
|
"Name": "archive/doc",
|
||||||
|
"ParentId": 616214756757512,
|
||||||
|
"Path": "/archive/doc",
|
||||||
|
"Sort": 100,
|
||||||
|
"Title": "文档管理",
|
||||||
|
"Type": 1
|
||||||
|
},
|
||||||
// ------------------------------ 日志管理 ------------------------------
|
// ------------------------------ 日志管理 ------------------------------
|
||||||
{
|
{
|
||||||
"Icon": "el-icon-tickets",
|
"Icon": "el-icon-tickets",
|
||||||
"Id": 374792687640581,
|
"Id": 374792687640581,
|
||||||
"Name": "log",
|
"Name": "log",
|
||||||
"Path": "/log",
|
"Path": "/log",
|
||||||
"Sort": 98,
|
"Sort": 97,
|
||||||
"Title": "日志管理",
|
"Title": "日志管理",
|
||||||
"Type": 1
|
"Type": 1
|
||||||
},
|
},
|
||||||
@ -178,7 +199,7 @@
|
|||||||
"Id": 373838105399301,
|
"Id": 373838105399301,
|
||||||
"Name": "dev",
|
"Name": "dev",
|
||||||
"Path": "/dev",
|
"Path": "/dev",
|
||||||
"Sort": 97,
|
"Sort": 96,
|
||||||
"Title": "开发管理",
|
"Title": "开发管理",
|
||||||
"Type": 1
|
"Type": 1
|
||||||
},
|
},
|
||||||
@ -198,7 +219,7 @@
|
|||||||
"ParentId": 373838105399301,
|
"ParentId": 373838105399301,
|
||||||
"Icon": "el-icon-eleme-filled",
|
"Icon": "el-icon-eleme-filled",
|
||||||
"Name": "dev/element",
|
"Name": "dev/element",
|
||||||
"Path": "http://element-plus.org/zh-CN/component/overview.html",
|
"Path": "https://element-plus.org/zh-CN/component/overview.html",
|
||||||
"Sort": 99,
|
"Sort": 99,
|
||||||
"Title": "Element",
|
"Title": "Element",
|
||||||
"Type": 3,
|
"Type": 3,
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"Content": "<p>尊敬的用户:</p>\n<p style=\"padding-left: 40px;\">欢迎您使用 NetAdmin 后台管理系统!NetAdmin 是一款通用后台权限管理系统和快速开发框架,它基于 C#12/.NET9、Vue3/Vite、Element Plus 等现代技术构建,具有十分整洁、优雅的编码规范。</p>\n<p style=\"padding-left: 40px;\">NetAdmin 致力于为企业提供高效、安全、易用的解决方案,帮助您快速构建出符合业务需求的应用程序。系统提供了丰富的功能模块,包括用户管理、权限管理、日志管理、文件上传等,可以满足您日常管理的需求。</p>\n<p style=\"padding-left: 40px;\">在使用 NetAdmin 的过程中,我们真诚地希望您能够遵守以下规定:</p>\n<p style=\"padding-left: 80px;\">1. 不得利用 NetAdmin 进行非法活动或者侵犯他人权益;</p>\n<p style=\"padding-left: 80px;\">2. 不得对 NetAdmin 系统进行恶意攻击或者破坏;</p>\n<p style=\"padding-left: 80px;\">3. 不得将 NetAdmin 系统的任何部分用于商业目的或者未经授权的访问。</p>\n<p style=\"padding-left: 80px;\">4. 为了更好地为您提供服务,NetAdmin 将不断进行优化和升级,同时也欢迎您提出宝贵的意见和建议。如果您在使用过程中遇到任何问题,可以通过官方网站或者技术支持团队进行咨询和解决。</p>\n<p style=\"padding-left: 40px;\">再次感谢您对 NetAdmin 的信任和支持!我们相信,在您的使用过程中,NetAdmin 一定会成为您的得力助手,为您的事业发展提供强有力的支持!</p>\n<p style=\"text-align: right;\">NetAdmin 开发团队</p>",
|
"Content": "<p>尊敬的用户:</p>\n<p style=\"padding-left: 40px;\">欢迎您使用 NetAdmin 后台管理系统!NetAdmin 是一款通用后台权限管理系统和快速开发框架,它基于 C#13/.NET9、Vue3/Vite、ElementPlus 等现代技术构建,具有十分整洁、优雅的编码规范。</p>\n<p style=\"padding-left: 40px;\">NetAdmin 致力于为企业提供高效、安全、易用的解决方案,帮助您快速构建出符合业务需求的应用程序。系统提供了丰富的功能模块,包括用户管理、权限管理、日志管理、文件上传等,可以满足您日常管理的需求。</p>\n<p style=\"padding-left: 40px;\">在使用 NetAdmin 的过程中,我们真诚地希望您能够遵守以下规定:</p>\n<p style=\"padding-left: 80px;\">1. 不得利用 NetAdmin 进行非法活动或者侵犯他人权益;</p>\n<p style=\"padding-left: 80px;\">2. 不得对 NetAdmin 系统进行恶意攻击或者破坏;</p>\n<p style=\"padding-left: 80px;\">3. 不得将 NetAdmin 系统的任何部分用于商业目的或者未经授权的访问。</p>\n<p style=\"padding-left: 80px;\">4. 为了更好地为您提供服务,NetAdmin 将不断进行优化和升级,同时也欢迎您提出宝贵的意见和建议。如果您在使用过程中遇到任何问题,可以通过官方网站或者技术支持团队进行咨询和解决。</p>\n<p style=\"padding-left: 40px;\">再次感谢您对 NetAdmin 的信任和支持!我们相信,在您的使用过程中,NetAdmin 一定会成为您的得力助手,为您的事业发展提供强有力的支持!</p>\n<p style=\"text-align: right;\">NetAdmin 开发团队</p>",
|
||||||
"CreatedUserId": 370942943322181,
|
"CreatedUserId": 370942943322181,
|
||||||
"CreatedUserName": "root",
|
"CreatedUserName": "root",
|
||||||
"MsgType": 2,
|
"MsgType": 2,
|
||||||
"Summary": "尊敬的用户:\n欢迎您使用 NetAdmin 后台管理系统!NetAdmin 是一款通用后台权限管理系统和快速开发框架,它基于 C#12/.NET9、Vue3/Vite、Element Plus 等现代",
|
"Summary": "尊敬的用户:\n欢迎您使用 NetAdmin 后台管理系统!NetAdmin 是一款通用后台权限管理系统和快速开发框架,它基于 C#13/.NET9、Vue3/Vite、ElementPlus 等现代",
|
||||||
"Title": "欢迎使用 NetAdmin 后台管理系统",
|
"Title": "欢迎使用 NetAdmin 后台管理系统",
|
||||||
}
|
}
|
||||||
]
|
]
|
@ -23,7 +23,7 @@
|
|||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="SonarAnalyzer.CSharp" Version="9.32.0.97167">
|
<PackageReference Include="SonarAnalyzer.CSharp" Version="10.3.0.106239">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
|
Before Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 50 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 28 KiB |
@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"version": "2.1.0",
|
"version": "2.2.1",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"cz-git": "^1.11.0",
|
"cz-git": "^1.11.0",
|
||||||
"commitizen": "^4.3.1",
|
"commitizen": "^4.3.1",
|
||||||
"prettier": "^3.3.3",
|
"prettier": "^3.4.1",
|
||||||
"standard-version": "^9.5.0"
|
"standard-version": "^9.5.0"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
|
1
refs/NetAdmin.FreeSql
Submodule
3
scripts/5.git.update.submodule.ps1
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
git submodule update --progress --init --recursive --force --remote -- "../refs/Gurion"
|
||||||
|
git submodule update --progress --init --recursive --force --remote -- "../refs/NetAdmin.FreeSql"
|
||||||
|
git submodule update --progress --init --recursive --force --remote -- "../refs/ns-ext"
|
@ -1,12 +1,11 @@
|
|||||||
#r "nuget: NSExt, 2.2.0"
|
#r "nuget: NSExt, 2.3.2"
|
||||||
using NSExt.Extensions;
|
using NSExt.Extensions;
|
||||||
|
|
||||||
Console.WriteLine("请输入原始名称(NetAdmin):");
|
Console.WriteLine("请输入原始名称(NetAdmin):");
|
||||||
var oldName = Console.ReadLine().NullOrEmpty("NetAdmin");
|
var oldName = Console.ReadLine().NullOrEmpty("NetAdmin");
|
||||||
Console.WriteLine("请输入替换名称:");
|
Console.WriteLine("请输入替换名称:");
|
||||||
var newName = Console.ReadLine();
|
var newName = Console.ReadLine();
|
||||||
foreach (var path in Directory.EnumerateDirectories("../", $"*{oldName}*",
|
foreach (var path in Directory.EnumerateDirectories("../", $"*{oldName}*", SearchOption.AllDirectories).Where(x => !x.Contains(".git")))
|
||||||
SearchOption.AllDirectories))
|
|
||||||
{
|
{
|
||||||
Console.Write($"{path} --> ");
|
Console.Write($"{path} --> ");
|
||||||
var newPath = path.Replace(oldName, newName);
|
var newPath = path.Replace(oldName, newName);
|
||||||
@ -16,7 +15,7 @@ foreach (var path in Directory.EnumerateDirectories("../", $"*{oldName}*",
|
|||||||
|
|
||||||
|
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
foreach (var path in Directory.EnumerateFiles("../", $"*.*", SearchOption.AllDirectories))
|
foreach (var path in Directory.EnumerateFiles("../", $"*.*", SearchOption.AllDirectories).Where(x => !x.Contains(".git")))
|
||||||
{
|
{
|
||||||
File.WriteAllText(path, File.ReadAllText(path).Replace(oldName, newName));
|
File.WriteAllText(path, File.ReadAllText(path).Replace(oldName, newName));
|
||||||
var newPath = path.Replace(oldName, newName);
|
var newPath = path.Replace(oldName, newName);
|
||||||
|
@ -45,6 +45,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{
|
|||||||
"""
|
"""
|
||||||
);
|
);
|
||||||
|
|
||||||
|
content = Regex.Replace(
|
||||||
|
content,
|
||||||
|
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"workflows\", \"workflows\", \"{BB5BB244-E7D2-4368-8C18-C1C0ED1E12D1}\"(?:.|\n)*?EndProject",
|
||||||
|
$$"""
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{BB5BB244-E7D2-4368-8C18-C1C0ED1E12D1}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
{{string.Join('\n',
|
||||||
|
Directory.GetFiles(@"../.drone/workflows", "*")
|
||||||
|
.Select(x=>$" {Path.GetFileName(x)} = .drone/workflows/{Path.GetFileName(x)}")
|
||||||
|
)}}
|
||||||
|
EndProject
|
||||||
|
"""
|
||||||
|
);
|
||||||
|
|
||||||
content = Regex.Replace(
|
content = Regex.Replace(
|
||||||
content,
|
content,
|
||||||
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"scripts\", \"scripts\", \"{BB0B25C9-0901-4923-913F-00F9A6B352A5}\"(?:.|\n)*?EndProject",
|
"Project\\(\"{2150E333-8FDC-42A3-9474-1A3956D46DE8}\"\\) = \"scripts\", \"scripts\", \"{BB0B25C9-0901-4923-913F-00F9A6B352A5}\"(?:.|\n)*?EndProject",
|
||||||
|
@ -8,7 +8,7 @@ public static class UnitOfWorkManagerExtensions
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 事务操作
|
/// 事务操作
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static async Task AtomicOperateAsync(this UnitOfWorkManager me, Func<Task> handle)
|
public static async Task AtomicOperateAsync(this UnitOfWorkManager me, Func<Task> handle, Func<Task> onErrorHandle = null)
|
||||||
{
|
{
|
||||||
var logger = LogHelper.Get<UnitOfWorkManager>();
|
var logger = LogHelper.Get<UnitOfWorkManager>();
|
||||||
using var unitOfWork = me.Begin();
|
using var unitOfWork = me.Begin();
|
||||||
@ -25,6 +25,11 @@ public static class UnitOfWorkManagerExtensions
|
|||||||
logger?.Warn(ex);
|
logger?.Warn(ex);
|
||||||
unitOfWork.Rollback();
|
unitOfWork.Rollback();
|
||||||
logger?.Warn($"{Ln.事务已回滚}: {hashCode}");
|
logger?.Warn($"{Ln.事务已回滚}: {hashCode}");
|
||||||
|
|
||||||
|
if (onErrorHandle != null) {
|
||||||
|
await onErrorHandle().ConfigureAwait(false);
|
||||||
|
}
|
||||||
|
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,11 +50,7 @@ public abstract class RepositoryService<TEntity, TPrimary, TLogger>(BasicReposit
|
|||||||
Func<QueryReq<TQuery>, ISelect<TEntity>> selector, QueryReq<TQuery> query, string fileName, Expression<Func<TEntity, object>> listExp = null)
|
Func<QueryReq<TQuery>, ISelect<TEntity>> selector, QueryReq<TQuery> query, string fileName, Expression<Func<TEntity, object>> listExp = null)
|
||||||
where TQuery : DataAbstraction, new()
|
where TQuery : DataAbstraction, new()
|
||||||
{
|
{
|
||||||
var select = selector(query)
|
var select = selector(query).WithNoLockNoWait().Take(Numbers.MAX_LIMIT_EXPORT);
|
||||||
#if DBTYPE_SQLSERVER
|
|
||||||
.WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait)
|
|
||||||
#endif
|
|
||||||
.Take(Numbers.MAX_LIMIT_EXPORT);
|
|
||||||
|
|
||||||
object list = listExp == null ? await select.ToListAsync().ConfigureAwait(false) : await select.ToListAsync(listExp).ConfigureAwait(false);
|
object list = listExp == null ? await select.ToListAsync().ConfigureAwait(false) : await select.ToListAsync(listExp).ConfigureAwait(false);
|
||||||
|
|
||||||
@ -73,8 +69,8 @@ public abstract class RepositoryService<TEntity, TPrimary, TLogger>(BasicReposit
|
|||||||
/// <returns>更新行数</returns>
|
/// <returns>更新行数</returns>
|
||||||
protected Task<int> UpdateAsync( //
|
protected Task<int> UpdateAsync( //
|
||||||
TEntity newValue //
|
TEntity newValue //
|
||||||
, IEnumerable<string> includeFields //
|
, List<string> includeFields = null //
|
||||||
, string[] excludeFields = null //
|
, List<string> excludeFields = null //
|
||||||
, Expression<Func<TEntity, bool>> whereExp = null //
|
, Expression<Func<TEntity, bool>> whereExp = null //
|
||||||
, string whereSql = null //
|
, string whereSql = null //
|
||||||
, bool ignoreVersion = false)
|
, bool ignoreVersion = false)
|
||||||
@ -98,8 +94,8 @@ public abstract class RepositoryService<TEntity, TPrimary, TLogger>(BasicReposit
|
|||||||
/// <returns>更新后的实体列表</returns>
|
/// <returns>更新后的实体列表</returns>
|
||||||
protected Task<List<TEntity>> UpdateReturnListAsync( //
|
protected Task<List<TEntity>> UpdateReturnListAsync( //
|
||||||
TEntity newValue //
|
TEntity newValue //
|
||||||
, IEnumerable<string> includeFields //
|
, List<string> includeFields = null //
|
||||||
, string[] excludeFields = null //
|
, List<string> excludeFields = null //
|
||||||
, Expression<Func<TEntity, bool>> whereExp = null //
|
, Expression<Func<TEntity, bool>> whereExp = null //
|
||||||
, string whereSql = null //
|
, string whereSql = null //
|
||||||
, bool ignoreVersion = false)
|
, bool ignoreVersion = false)
|
||||||
@ -136,22 +132,22 @@ public abstract class RepositoryService<TEntity, TPrimary, TLogger>(BasicReposit
|
|||||||
return new FileStreamResult(stream, Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_OCTET_STREAM);
|
return new FileStreamResult(stream, Chars.FLG_HTTP_HEADER_VALUE_APPLICATION_OCTET_STREAM);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IUpdate<TEntity> BuildUpdate( //
|
private IUpdate<TEntity> BuildUpdate(TEntity entity, List<string> includeFields, List<string> excludeFields, bool ignoreVersion)
|
||||||
TEntity entity //
|
|
||||||
, IEnumerable<string> includeFields //
|
|
||||||
, string[] excludeFields = null //
|
|
||||||
, bool ignoreVersion = false)
|
|
||||||
{
|
{
|
||||||
var updateExp = includeFields == null
|
IUpdate<TEntity> updateExp;
|
||||||
? Rpo.UpdateDiy.SetSource(entity)
|
if (includeFields.NullOrEmpty()) {
|
||||||
: Rpo.UpdateDiy.SetDto(includeFields!.ToDictionary(
|
updateExp = Rpo.UpdateDiy.SetSource(entity);
|
||||||
x => x, x => typeof(TEntity).GetProperty(x, BindingFlags.Public | BindingFlags.Instance)!.GetValue(entity)));
|
if (!excludeFields.NullOrEmpty()) {
|
||||||
if (excludeFields != null) {
|
updateExp = updateExp.IgnoreColumns(excludeFields.ToArray());
|
||||||
updateExp = updateExp.IgnoreColumns(excludeFields);
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
updateExp = Rpo.UpdateDiy.SetDto(includeFields!.ToDictionary(
|
||||||
|
x => x
|
||||||
|
, x => typeof(TEntity).GetProperty(x, BindingFlags.Public | BindingFlags.Instance)!.GetValue(entity)));
|
||||||
if (!ignoreVersion && entity is IFieldVersion ver) {
|
if (!ignoreVersion && entity is IFieldVersion ver) {
|
||||||
updateExp = updateExp.Where($"{nameof(IFieldVersion.Version)} = @version", new { version = ver.Version });
|
updateExp = updateExp.Where($"{nameof(IFieldVersion.Version)} = {ver.Version}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return updateExp;
|
return updateExp;
|
||||||
|
@ -28,11 +28,7 @@ public sealed class ExampleService(BasicRepository<Tpl_Example, long> rpo) //
|
|||||||
public Task<long> CountAsync(QueryReq<QueryExampleReq> req)
|
public Task<long> CountAsync(QueryReq<QueryExampleReq> req)
|
||||||
{
|
{
|
||||||
req.ThrowIfInvalid();
|
req.ThrowIfInvalid();
|
||||||
return QueryInternal(req)
|
return QueryInternal(req).WithNoLockNoWait().CountAsync();
|
||||||
#if DBTYPE_SQLSERVER
|
|
||||||
.WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait)
|
|
||||||
#endif
|
|
||||||
.CountAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@ -54,11 +50,7 @@ public sealed class ExampleService(BasicRepository<Tpl_Example, long> rpo) //
|
|||||||
public Task<bool> ExistAsync(QueryReq<QueryExampleReq> req)
|
public Task<bool> ExistAsync(QueryReq<QueryExampleReq> req)
|
||||||
{
|
{
|
||||||
req.ThrowIfInvalid();
|
req.ThrowIfInvalid();
|
||||||
return QueryInternal(req)
|
return QueryInternal(req).WithNoLockNoWait().AnyAsync();
|
||||||
#if DBTYPE_SQLSERVER
|
|
||||||
.WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait)
|
|
||||||
#endif
|
|
||||||
.AnyAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@ -80,14 +72,7 @@ public sealed class ExampleService(BasicRepository<Tpl_Example, long> rpo) //
|
|||||||
public async Task<PagedQueryRsp<QueryExampleRsp>> PagedQueryAsync(PagedQueryReq<QueryExampleReq> req)
|
public async Task<PagedQueryRsp<QueryExampleRsp>> PagedQueryAsync(PagedQueryReq<QueryExampleReq> req)
|
||||||
{
|
{
|
||||||
req.ThrowIfInvalid();
|
req.ThrowIfInvalid();
|
||||||
var list = await QueryInternal(req)
|
var list = await QueryInternal(req).Page(req.Page, req.PageSize).WithNoLockNoWait().Count(out var total).ToListAsync().ConfigureAwait(false);
|
||||||
.Page(req.Page, req.PageSize)
|
|
||||||
#if DBTYPE_SQLSERVER
|
|
||||||
.WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait)
|
|
||||||
#endif
|
|
||||||
.Count(out var total)
|
|
||||||
.ToListAsync()
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
return new PagedQueryRsp<QueryExampleRsp>(req.Page, req.PageSize, total, list.Adapt<IEnumerable<QueryExampleRsp>>());
|
return new PagedQueryRsp<QueryExampleRsp>(req.Page, req.PageSize, total, list.Adapt<IEnumerable<QueryExampleRsp>>());
|
||||||
}
|
}
|
||||||
@ -96,13 +81,7 @@ public sealed class ExampleService(BasicRepository<Tpl_Example, long> rpo) //
|
|||||||
public async Task<IEnumerable<QueryExampleRsp>> QueryAsync(QueryReq<QueryExampleReq> req)
|
public async Task<IEnumerable<QueryExampleRsp>> QueryAsync(QueryReq<QueryExampleReq> req)
|
||||||
{
|
{
|
||||||
req.ThrowIfInvalid();
|
req.ThrowIfInvalid();
|
||||||
var ret = await QueryInternal(req)
|
var ret = await QueryInternal(req).WithNoLockNoWait().Take(req.Count).ToListAsync().ConfigureAwait(false);
|
||||||
#if DBTYPE_SQLSERVER
|
|
||||||
.WithLock(SqlServerLock.NoLock | SqlServerLock.NoWait)
|
|
||||||
#endif
|
|
||||||
.Take(req.Count)
|
|
||||||
.ToListAsync()
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
return ret.Adapt<IEnumerable<QueryExampleRsp>>();
|
return ret.Adapt<IEnumerable<QueryExampleRsp>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Api;
|
using NetAdmin.Domain.Dto.Sys.Api;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.Attributes.DataValidation;
|
namespace NetAdmin.Domain.Attributes.DataValidation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 接口编码验证器
|
/// 接口编码验证器
|
@ -1,6 +1,7 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Role;
|
using NetAdmin.Domain.Dto.Sys.Role;
|
||||||
|
using NetAdmin.Domain.Enums.Sys;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.Attributes.DataValidation;
|
namespace NetAdmin.Domain.Attributes.DataValidation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 数据范围为特定部门的验证器
|
/// 数据范围为特定部门的验证器
|
@ -1,6 +1,6 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.User;
|
using NetAdmin.Domain.Dto.Sys.User;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.Attributes.DataValidation;
|
namespace NetAdmin.Domain.Attributes.DataValidation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户编号验证器
|
/// 用户编号验证器
|
@ -1,6 +1,6 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.User;
|
using NetAdmin.Domain.Dto.Sys.User;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.Contexts;
|
namespace NetAdmin.Domain.Contexts;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 上下文用户信息
|
/// 上下文用户信息
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Api接口表
|
/// Api接口表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 配置表
|
/// 配置表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 部门表
|
/// 部门表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字典目录表
|
/// 字典目录表
|
||||||
@ -16,7 +16,7 @@ public record Sys_DicCatalog : VersionEntity
|
|||||||
public IEnumerable<Sys_DicCatalog> Children { get; init; }
|
public IEnumerable<Sys_DicCatalog> Children { get; init; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字典编码
|
/// 字典目录编码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)]
|
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)]
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
@ -32,7 +32,7 @@ public record Sys_DicCatalog : VersionEntity
|
|||||||
public ICollection<Sys_DicContent> Contents { get; init; }
|
public ICollection<Sys_DicContent> Contents { get; init; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字典名称
|
/// 字典目录名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)]
|
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)]
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字典内容表
|
/// 字典内容表
|
@ -0,0 +1,73 @@
|
|||||||
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文档分类表
|
||||||
|
/// </summary>
|
||||||
|
[SqlIndex(Chars.FLG_DB_INDEX_PREFIX + nameof(Code), nameof(Code), true)]
|
||||||
|
[Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_DocCatalog))]
|
||||||
|
public record Sys_DocCatalog : VersionEntity, IFieldOwner
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 子节点
|
||||||
|
/// </summary>
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
[Navigate(nameof(ParentId))]
|
||||||
|
public IEnumerable<Sys_DocCatalog> Children { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文档分类编码
|
||||||
|
/// </summary>
|
||||||
|
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual string Code { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文档内容集合
|
||||||
|
/// </summary>
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
[Navigate(nameof(Sys_DocContent.CatalogId))]
|
||||||
|
public ICollection<Sys_DocContent> Contents { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文档分类名称
|
||||||
|
/// </summary>
|
||||||
|
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_63)]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual string Name { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拥有者
|
||||||
|
/// </summary>
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
[Navigate(nameof(OwnerId))]
|
||||||
|
public Sys_User Owner { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拥有者部门编号
|
||||||
|
/// </summary>
|
||||||
|
[Column]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual long? OwnerDeptId { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拥有者用户编号
|
||||||
|
/// </summary>
|
||||||
|
[Column]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual long? OwnerId { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 父编号
|
||||||
|
/// </summary>
|
||||||
|
[Column]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual long ParentId { get; init; }
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
using NetAdmin.Domain.Enums.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文档内容表
|
||||||
|
/// </summary>
|
||||||
|
[Table(Name = Chars.FLG_DB_TABLE_NAME_PREFIX + nameof(Sys_DocContent))]
|
||||||
|
public record Sys_DocContent : VersionEntity, IFieldEnabled, IFieldOwner
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 文档正文
|
||||||
|
/// </summary>
|
||||||
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual string Body { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文档分类
|
||||||
|
/// </summary>
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
[Navigate(nameof(CatalogId))]
|
||||||
|
public Sys_DocCatalog Catalog { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文档分类编号
|
||||||
|
/// </summary>
|
||||||
|
[Column]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual long CatalogId { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否启用
|
||||||
|
/// </summary>
|
||||||
|
[Column]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual bool Enabled { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拥有者
|
||||||
|
/// </summary>
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
[Navigate(nameof(OwnerId))]
|
||||||
|
public Sys_User Owner { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拥有者部门编号
|
||||||
|
/// </summary>
|
||||||
|
[Column]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual long? OwnerDeptId { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 拥有者用户编号
|
||||||
|
/// </summary>
|
||||||
|
[Column]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual long? OwnerId { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 文档标题
|
||||||
|
/// </summary>
|
||||||
|
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual string Title { get; init; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 可见性
|
||||||
|
/// </summary>
|
||||||
|
[Column]
|
||||||
|
[CsvIgnore]
|
||||||
|
[JsonIgnore]
|
||||||
|
public virtual ArchiveVisibilities Visibility { get; init; }
|
||||||
|
}
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
using NetAdmin.Domain.Enums.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 计划作业表
|
/// 计划作业表
|
||||||
@ -57,10 +59,10 @@ public record Sys_Job : VersionEntity, IFieldEnabled, IFieldSummary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 上次执行状态
|
/// 上次执行状态
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column]
|
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_SMALL_INT)]
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public HttpStatusCode? LastStatusCode { get; init; }
|
public int? LastStatusCode { get; init; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 下次执行时间
|
/// 下次执行时间
|
||||||
@ -97,11 +99,7 @@ public record Sys_Job : VersionEntity, IFieldEnabled, IFieldSummary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求体
|
/// 请求体
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestBody { get; init; }
|
public virtual string RequestBody { get; init; }
|
||||||
@ -109,11 +107,7 @@ public record Sys_Job : VersionEntity, IFieldEnabled, IFieldSummary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求头
|
/// 请求头
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestHeader { get; init; }
|
public virtual string RequestHeader { get; init; }
|
||||||
@ -121,11 +115,7 @@ public record Sys_Job : VersionEntity, IFieldEnabled, IFieldSummary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求的网络地址
|
/// 请求的网络地址
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestUrl { get; init; }
|
public virtual string RequestUrl { get; init; }
|
||||||
@ -141,11 +131,7 @@ public record Sys_Job : VersionEntity, IFieldEnabled, IFieldSummary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 备注
|
/// 备注
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string Summary { get; init; }
|
public virtual string Summary { get; init; }
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 计划作业执行记录表
|
/// 计划作业执行记录表
|
||||||
@ -53,11 +53,7 @@ public record Sys_JobRecord : LiteImmutableEntity
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求体
|
/// 请求体
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestBody { get; init; }
|
public virtual string RequestBody { get; init; }
|
||||||
@ -65,11 +61,7 @@ public record Sys_JobRecord : LiteImmutableEntity
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求头
|
/// 请求头
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestHeader { get; init; }
|
public virtual string RequestHeader { get; init; }
|
||||||
@ -85,11 +77,7 @@ public record Sys_JobRecord : LiteImmutableEntity
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应体
|
/// 响应体
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string ResponseBody { get; init; }
|
public virtual string ResponseBody { get; init; }
|
||||||
@ -97,11 +85,7 @@ public record Sys_JobRecord : LiteImmutableEntity
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应头
|
/// 响应头
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string ResponseHeader { get; init; }
|
public virtual string ResponseHeader { get; init; }
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 登录日志表
|
/// 登录日志表
|
||||||
@ -28,11 +28,7 @@ public record Sys_LoginLog : SimpleEntity, IFieldCreatedTime, IFieldOwner, IFiel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建者客户端用户代理
|
/// 创建者客户端用户代理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
|
||||||
[Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_1022)]
|
[Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_1022)]
|
||||||
#else
|
|
||||||
[Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string CreatedUserAgent { get; init; }
|
public virtual string CreatedUserAgent { get; init; }
|
||||||
@ -96,11 +92,7 @@ public record Sys_LoginLog : SimpleEntity, IFieldCreatedTime, IFieldOwner, IFiel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求内容
|
/// 请求内容
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestBody { get; protected init; }
|
public virtual string RequestBody { get; protected init; }
|
||||||
@ -108,11 +100,7 @@ public record Sys_LoginLog : SimpleEntity, IFieldCreatedTime, IFieldOwner, IFiel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求头信息
|
/// 请求头信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestHeaders { get; protected init; }
|
public virtual string RequestHeaders { get; protected init; }
|
||||||
@ -128,11 +116,7 @@ public record Sys_LoginLog : SimpleEntity, IFieldCreatedTime, IFieldOwner, IFiel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应内容
|
/// 响应内容
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string ResponseBody { get; protected init; }
|
public virtual string ResponseBody { get; protected init; }
|
||||||
@ -140,11 +124,7 @@ public record Sys_LoginLog : SimpleEntity, IFieldCreatedTime, IFieldOwner, IFiel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应头
|
/// 响应头
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string ResponseHeaders { get; protected init; }
|
public virtual string ResponseHeaders { get; protected init; }
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
using NetAdmin.Domain.Enums.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 菜单表
|
/// 菜单表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求日志表
|
/// 请求日志表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求日志明细表
|
/// 请求日志明细表
|
||||||
@ -18,11 +18,7 @@ public record Sys_RequestLogDetail : SimpleEntity, IFieldCreatedTime, IFieldCrea
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建者客户端用户代理
|
/// 创建者客户端用户代理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
|
||||||
[Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_1022)]
|
[Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_1022)]
|
||||||
#else
|
|
||||||
[Column(Position = -1, DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string CreatedUserAgent { get; init; }
|
public virtual string CreatedUserAgent { get; init; }
|
||||||
@ -38,11 +34,7 @@ public record Sys_RequestLogDetail : SimpleEntity, IFieldCreatedTime, IFieldCrea
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 异常信息
|
/// 异常信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string Exception { get; init; }
|
public virtual string Exception { get; init; }
|
||||||
@ -50,11 +42,7 @@ public record Sys_RequestLogDetail : SimpleEntity, IFieldCreatedTime, IFieldCrea
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求内容
|
/// 请求内容
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestBody { get; init; }
|
public virtual string RequestBody { get; init; }
|
||||||
@ -70,11 +58,7 @@ public record Sys_RequestLogDetail : SimpleEntity, IFieldCreatedTime, IFieldCrea
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求头信息
|
/// 请求头信息
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string RequestHeaders { get; init; }
|
public virtual string RequestHeaders { get; init; }
|
||||||
@ -90,11 +74,7 @@ public record Sys_RequestLogDetail : SimpleEntity, IFieldCreatedTime, IFieldCrea
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应内容
|
/// 响应内容
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string ResponseBody { get; init; }
|
public virtual string ResponseBody { get; init; }
|
||||||
@ -110,11 +90,7 @@ public record Sys_RequestLogDetail : SimpleEntity, IFieldCreatedTime, IFieldCrea
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应头
|
/// 响应头
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string ResponseHeaders { get; init; }
|
public virtual string ResponseHeaders { get; init; }
|
@ -1,6 +1,7 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Role;
|
using NetAdmin.Domain.Dto.Sys.Role;
|
||||||
|
using NetAdmin.Domain.Enums.Sys;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 角色表
|
/// 角色表
|
||||||
@ -20,11 +21,7 @@ public record Sys_Role : VersionEntity, IFieldSort, IFieldEnabled, IFieldSummary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 仪表板布局
|
/// 仪表板布局
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string DashboardLayout { get; set; }
|
public virtual string DashboardLayout { get; set; }
|
||||||
@ -120,13 +117,18 @@ public record Sys_Role : VersionEntity, IFieldSort, IFieldEnabled, IFieldSummary
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public virtual void Register(TypeAdapterConfig config)
|
public virtual void Register(TypeAdapterConfig config)
|
||||||
{
|
{
|
||||||
|
// ReSharper disable InvokeAsExtensionMethod
|
||||||
|
#pragma warning disable RCS1196
|
||||||
|
|
||||||
_ = config.ForType<CreateRoleReq, Sys_Role>()
|
_ = config.ForType<CreateRoleReq, Sys_Role>()
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Depts, s => s.DeptIds.NullOrEmpty() ? Array.Empty<Sys_Dept>() : s.DeptIds.Select(x => new Sys_Dept { Id = x }))
|
d => d.Depts
|
||||||
|
, s => s.DeptIds.NullOrEmpty() ? Array.Empty<Sys_Dept>() : Enumerable.Select(s.DeptIds, x => new Sys_Dept { Id = x }))
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Menus, s => s.MenuIds.NullOrEmpty() ? Array.Empty<Sys_Menu>() : s.MenuIds.Select(x => new Sys_Menu { Id = x }))
|
d => d.Menus
|
||||||
|
, s => s.MenuIds.NullOrEmpty() ? Array.Empty<Sys_Menu>() : Enumerable.Select(s.MenuIds, x => new Sys_Menu { Id = x }))
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Apis, s => s.ApiIds.NullOrEmpty() ? Array.Empty<Sys_Api>() : s.ApiIds.Select(x => new Sys_Api { Id = x }))
|
d => d.Apis, s => s.ApiIds.NullOrEmpty() ? Array.Empty<Sys_Api>() : Enumerable.Select(s.ApiIds, x => new Sys_Api { Id = x }))
|
||||||
|
|
||||||
//
|
//
|
||||||
;
|
;
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 角色-接口映射表
|
/// 角色-接口映射表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 角色-部门映射表
|
/// 角色-部门映射表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 角色-菜单映射表
|
/// 角色-菜单映射表
|
@ -1,6 +1,7 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.SiteMsg;
|
using NetAdmin.Domain.Dto.Sys.SiteMsg;
|
||||||
|
using NetAdmin.Domain.Enums.Sys;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 站内信表
|
/// 站内信表
|
||||||
@ -11,11 +12,7 @@ public record Sys_SiteMsg : VersionEntity, IRegister, IFieldSummary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 消息内容
|
/// 消息内容
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string Content { get; init; }
|
public virtual string Content { get; init; }
|
||||||
@ -86,17 +83,26 @@ public record Sys_SiteMsg : VersionEntity, IRegister, IFieldSummary
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public void Register(TypeAdapterConfig config)
|
public void Register(TypeAdapterConfig config)
|
||||||
{
|
{
|
||||||
|
#pragma warning disable RCS1196
|
||||||
|
|
||||||
|
// ReSharper disable InvokeAsExtensionMethod
|
||||||
_ = config.ForType<CreateSiteMsgReq, Sys_SiteMsg>()
|
_ = config.ForType<CreateSiteMsgReq, Sys_SiteMsg>()
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Summary, s => s.Content.RemoveHtmlTag().HtmlDe().Sub(0, 100))
|
d => d.Summary, s => s.Content.RemoveHtmlTag().HtmlDe().Sub(0, 100))
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Roles, s => s.RoleIds.NullOrEmpty() ? Array.Empty<Sys_Role>() : s.RoleIds.Select(x => new Sys_Role { Id = x }))
|
d => d.Roles
|
||||||
|
, s => s.RoleIds.NullOrEmpty() ? Array.Empty<Sys_Role>() : Enumerable.Select(s.RoleIds, x => new Sys_Role { Id = x }))
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Users, s => s.UserIds.NullOrEmpty() ? Array.Empty<Sys_User>() : s.UserIds.Select(x => new Sys_User { Id = x }))
|
d => d.Users
|
||||||
|
, s => s.UserIds.NullOrEmpty() ? Array.Empty<Sys_User>() : Enumerable.Select(s.UserIds, x => new Sys_User { Id = x }))
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Depts, s => s.DeptIds.NullOrEmpty() ? Array.Empty<Sys_Dept>() : s.DeptIds.Select(x => new Sys_Dept { Id = x }))
|
d => d.Depts
|
||||||
|
, s => s.DeptIds.NullOrEmpty() ? Array.Empty<Sys_Dept>() : Enumerable.Select(s.DeptIds, x => new Sys_Dept { Id = x }))
|
||||||
|
|
||||||
//
|
//
|
||||||
;
|
;
|
||||||
|
|
||||||
|
// ReSharper restore InvokeAsExtensionMethod
|
||||||
|
#pragma warning restore RCS1196
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 站内信-部门映射表
|
/// 站内信-部门映射表
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
using NetAdmin.Domain.Enums.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 站内信标记表
|
/// 站内信标记表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 站内信-角色映射表
|
/// 站内信-角色映射表
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 站内信-用户映射表
|
/// 站内信-用户映射表
|
@ -1,6 +1,6 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.User;
|
using NetAdmin.Domain.Dto.Sys.User;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户基本信息表
|
/// 用户基本信息表
|
||||||
@ -126,16 +126,24 @@ public record Sys_User : VersionEntity, IFieldSummary, IFieldEnabled, IRegister
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
public virtual void Register(TypeAdapterConfig config)
|
public virtual void Register(TypeAdapterConfig config)
|
||||||
{
|
{
|
||||||
|
#pragma warning disable RCS1196
|
||||||
|
|
||||||
|
// ReSharper disable InvokeAsExtensionMethod
|
||||||
_ = config.ForType<CreateUserReq, Sys_User>()
|
_ = config.ForType<CreateUserReq, Sys_User>()
|
||||||
.Map(d => d.Password, s => s.PasswordText.Pwd().Guid())
|
.Map(d => d.Password, s => s.PasswordText.Pwd().Guid())
|
||||||
.Map(d => d.Token, _ => Guid.NewGuid())
|
.Map(d => d.Token, _ => Guid.NewGuid())
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Roles, s => s.RoleIds.NullOrEmpty() ? Array.Empty<Sys_Role>() : s.RoleIds.Select(x => new Sys_Role { Id = x }));
|
d => d.Roles
|
||||||
|
, s => s.RoleIds.NullOrEmpty() ? Array.Empty<Sys_Role>() : Enumerable.Select(s.RoleIds, x => new Sys_Role { Id = x }));
|
||||||
|
|
||||||
_ = config.ForType<EditUserReq, Sys_User>()
|
_ = config.ForType<EditUserReq, Sys_User>()
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Password, s => s.PasswordText.NullOrEmpty() ? Guid.Empty : s.PasswordText.Pwd().Guid())
|
d => d.Password, s => s.PasswordText.NullOrEmpty() ? Guid.Empty : s.PasswordText.Pwd().Guid())
|
||||||
.Map( //
|
.Map( //
|
||||||
d => d.Roles, s => s.RoleIds.NullOrEmpty() ? Array.Empty<Sys_Role>() : s.RoleIds.Select(x => new Sys_Role { Id = x }));
|
d => d.Roles
|
||||||
|
, s => s.RoleIds.NullOrEmpty() ? Array.Empty<Sys_Role>() : Enumerable.Select(s.RoleIds, x => new Sys_Role { Id = x }));
|
||||||
|
|
||||||
|
// ReSharper restore InvokeAsExtensionMethod
|
||||||
|
#pragma warning restore RCS1196
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,6 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.UserProfile;
|
using NetAdmin.Domain.Dto.Sys.UserProfile;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户档案表
|
/// 用户档案表
|
||||||
@ -11,11 +11,7 @@ public record Sys_UserProfile : VersionEntity, IRegister
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 应用配置
|
/// 应用配置
|
||||||
/// </summary>
|
/// </summary>
|
||||||
#if DBTYPE_SQLSERVER
|
[Column(DbType = Chars.FLGL_DB_FIELD_TYPE_VARCHAR_MAX)]
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_MAX)]
|
|
||||||
#else
|
|
||||||
[Column(DbType = Chars.FLG_DB_FIELD_TYPE_VARCHAR_255)]
|
|
||||||
#endif
|
|
||||||
[CsvIgnore]
|
[CsvIgnore]
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public virtual string AppConfig { get; set; }
|
public virtual string AppConfig { get; set; }
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用户-角色映射表
|
/// 用户-角色映射表
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.DbMaps.Sys;
|
using NetAdmin.Domain.Enums.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 验证码表
|
/// 验证码表
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Api;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.Dto.Sys.Api;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:创建接口
|
/// 请求:创建接口
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Api;
|
namespace NetAdmin.Domain.Dto.Sys.Api;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应:导出接口
|
/// 响应:导出接口
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Api;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.Dto.Sys.Api;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:查询接口
|
/// 请求:查询接口
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Api;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.Dto.Sys.Api;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应:查询接口
|
/// 响应:查询接口
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Cache;
|
namespace NetAdmin.Domain.Dto.Sys.Cache;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应:缓存统计
|
/// 响应:缓存统计
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Cache;
|
namespace NetAdmin.Domain.Dto.Sys.Cache;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:删除缓存项
|
/// 请求:删除缓存项
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Cache;
|
namespace NetAdmin.Domain.Dto.Sys.Cache;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:获取所有缓存项
|
/// 请求:获取所有缓存项
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Cache;
|
namespace NetAdmin.Domain.Dto.Sys.Cache;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:获取缓存项
|
/// 请求:获取缓存项
|
@ -1,6 +1,6 @@
|
|||||||
using StackExchange.Redis;
|
using StackExchange.Redis;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Cache;
|
namespace NetAdmin.Domain.Dto.Sys.Cache;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应:获取所有缓存项
|
/// 响应:获取所有缓存项
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Captcha;
|
namespace NetAdmin.Domain.Dto.Sys.Captcha;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应:获取人机校验图
|
/// 响应:获取人机校验图
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Captcha;
|
namespace NetAdmin.Domain.Dto.Sys.Captcha;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:完成人机验证
|
/// 请求:完成人机验证
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Config;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.Dto.Sys.Config;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:创建配置
|
/// 请求:创建配置
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Config;
|
namespace NetAdmin.Domain.Dto.Sys.Config;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:编辑配置
|
/// 请求:编辑配置
|
@ -1,7 +1,8 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Dept;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Role;
|
using NetAdmin.Domain.Dto.Sys.Dept;
|
||||||
|
using NetAdmin.Domain.Dto.Sys.Role;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Config;
|
namespace NetAdmin.Domain.Dto.Sys.Config;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应:导出配置
|
/// 响应:导出配置
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Config;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.Dto.Sys.Config;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:查询配置
|
/// 请求:查询配置
|
@ -1,7 +1,8 @@
|
|||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Dept;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
using NetAdmin.SysComponent.Domain.Dto.Sys.Role;
|
using NetAdmin.Domain.Dto.Sys.Dept;
|
||||||
|
using NetAdmin.Domain.Dto.Sys.Role;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Config;
|
namespace NetAdmin.Domain.Dto.Sys.Config;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 响应:查询配置
|
/// 响应:查询配置
|
@ -1,4 +1,6 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Config;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
|
namespace NetAdmin.Domain.Dto.Sys.Config;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:启用/禁用配置
|
/// 请求:启用/禁用配置
|
@ -1,6 +1,6 @@
|
|||||||
using NetAdmin.SysComponent.Infrastructure.Constant;
|
using NetAdmin.Domain.DbMaps.Sys;
|
||||||
|
|
||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Dept;
|
namespace NetAdmin.Domain.Dto.Sys.Dept;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:创建部门
|
/// 请求:创建部门
|
||||||
@ -22,7 +22,7 @@ public record CreateDeptReq : Sys_Dept
|
|||||||
|
|
||||||
/// <inheritdoc cref="IFieldSort.Sort" />
|
/// <inheritdoc cref="IFieldSort.Sort" />
|
||||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||||
public override long Sort { get; init; } = SysNumbers.DEF_SORT_VAL;
|
public override long Sort { get; init; } = Numbers.DEF_SORT_VAL;
|
||||||
|
|
||||||
/// <inheritdoc cref="IFieldSummary.Summary" />
|
/// <inheritdoc cref="IFieldSummary.Summary" />
|
||||||
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
|
@ -1,4 +1,4 @@
|
|||||||
namespace NetAdmin.SysComponent.Domain.Dto.Sys.Dept;
|
namespace NetAdmin.Domain.Dto.Sys.Dept;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 请求:编辑部门
|
/// 请求:编辑部门
|