Compare commits
7 Commits
25383f7c0c
...
c71e58f254
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c71e58f254 | ||
|
|
0636716a82 | ||
|
|
c15e1ed3ac | ||
|
|
3d402d01bc | ||
|
|
ddd6d2e9e9 | ||
|
|
6da12cbf2d | ||
|
|
919f58d6c5 |
@ -21,10 +21,11 @@
|
||||
<PackageReference Update="Microsoft.AspNetCore.Http.Abstractions" Version="2.3.0"/>
|
||||
<PackageReference Update="Microsoft.AspNetCore.Http.Features" Version="2.3.0"/>
|
||||
<PackageReference Update="Microsoft.CSharp" Version="5.0.0"/>
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.CSharp" Version="5.0.0" />
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.Common " Version="5.0.0" />
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.Workspaces.Common" Version="5.0.0" />
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.Analyzers" Version="5.3.0" />
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" />
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.Common " Version="5.3.0" />
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="5.3.0" />
|
||||
<PackageReference Update="Microsoft.CodeAnalysis.Workspaces.Common" Version="5.3.0" />
|
||||
<PackageReference Update="Microsoft.NET.Test.Sdk" Version="17.8.0"/>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@ -4,10 +4,10 @@
|
||||
<!--JiShe.ServicePro版本-->
|
||||
<ServiceProVersion>1.0.5.40</ServiceProVersion>
|
||||
<!--Volo Abp 版本-->
|
||||
<VoloAbpVersion>10.0.2</VoloAbpVersion>
|
||||
<VoloAbpVersion>10.1.1</VoloAbpVersion>
|
||||
|
||||
<!--Dotnet 组件 版本-->
|
||||
<DotnetInfoVersion>10.0.2</DotnetInfoVersion>
|
||||
<DotnetInfoVersion>10.0.5</DotnetInfoVersion>
|
||||
|
||||
<!--Dotnet 框架 版本-->
|
||||
<DotnetTargetFrameworkVersion>net10.0</DotnetTargetFrameworkVersion>
|
||||
|
||||
@ -63,9 +63,9 @@
|
||||
<PackageReference Update="Savorboard.CAP.InMemoryMessageQueue" Version="8.2.1"/>
|
||||
|
||||
<!-- Swagger-->
|
||||
<PackageReference Update="Swashbuckle.AspNetCore.SwaggerUI" Version="9.0.4"/>
|
||||
<PackageReference Update="Swashbuckle.AspNetCore" Version="9.0.4"/>
|
||||
<PackageReference Update="Swashbuckle.AspNetCore.Annotations" Version="9.0.4"/>
|
||||
<!--<PackageReference Update="Swashbuckle.AspNetCore.SwaggerUI" Version="9.0.4"/>-->
|
||||
<PackageReference Update="Swashbuckle.AspNetCore" Version="10.1.5"/>
|
||||
<PackageReference Update="Swashbuckle.AspNetCore.Annotations" Version="10.1.5"/>
|
||||
|
||||
<!-- Serilog 日志-->
|
||||
<PackageReference Update="Serilog" Version="4.3.0"/>
|
||||
@ -111,7 +111,7 @@
|
||||
<!-- Humanizer 中文格式包-->
|
||||
<PackageReference Update="Humanizer.Core.zh-Hans" Version="2.14.1"/>
|
||||
|
||||
<PackageReference Update="Scriban" Version="5.4.4" />
|
||||
<PackageReference Update="Scriban" Version="6.6.0" />
|
||||
|
||||
<PackageReference Update="Otp.NET" Version="1.4.0" />
|
||||
<PackageReference Update="QRCoder" Version="1.6.0" />
|
||||
|
||||
@ -264,6 +264,46 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.Domain.Sha
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.Domain", "JiShe.ServicePro\shared\JiShe.ServicePro.Domain\JiShe.ServicePro.Domain.csproj", "{0A541E29-090F-87B9-8C98-83FAA7AF0E78}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.TemplateManagement.Domain.Shared", "JiShe.ServicePro\modules\TemplateManagement\src\JiShe.ServicePro.TemplateManagement.Domain.Shared\JiShe.ServicePro.TemplateManagement.Domain.Shared.csproj", "{C6FD9406-C128-F970-DB4C-4DF3D2CEAA96}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.TemplateManagement.Domain", "JiShe.ServicePro\modules\TemplateManagement\src\JiShe.ServicePro.TemplateManagement.Domain\JiShe.ServicePro.TemplateManagement.Domain.csproj", "{5F1A2AD5-2C7B-3675-C18C-43CA06FAE05C}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.OneNETManagement.Domain.Shared", "JiShe.ServicePro\modules\OneNETManagement\src\JiShe.ServicePro.OneNETManagement.Domain.Shared\JiShe.ServicePro.OneNETManagement.Domain.Shared.csproj", "{83F40CA2-B00D-A056-A920-525AFFD76FA7}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.OneNETManagement.Domain", "JiShe.ServicePro\modules\OneNETManagement\src\JiShe.ServicePro.OneNETManagement.Domain\JiShe.ServicePro.OneNETManagement.Domain.csproj", "{A5585C65-378D-F06C-E463-910FA9D86BF5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.NotificationManagement.Domain.Shared", "JiShe.ServicePro\modules\NotificationManagement\src\JiShe.ServicePro.NotificationManagement.Domain.Shared\JiShe.ServicePro.NotificationManagement.Domain.Shared.csproj", "{1857A580-1862-4299-F196-CDF253CD9B40}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.NotificationManagement.Domain", "JiShe.ServicePro\modules\NotificationManagement\src\JiShe.ServicePro.NotificationManagement.Domain\JiShe.ServicePro.NotificationManagement.Domain.csproj", "{06998B3B-DFE4-080F-B679-CFEE5FE45F72}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.LanguageManagement.Domain.Shared", "JiShe.ServicePro\modules\LanguageManagement\src\JiShe.ServicePro.LanguageManagement.Domain.Shared\JiShe.ServicePro.LanguageManagement.Domain.Shared.csproj", "{BF91E40E-5703-2BB7-D67C-12640F22D35D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.LanguageManagement.Domain", "JiShe.ServicePro\modules\LanguageManagement\src\JiShe.ServicePro.LanguageManagement.Domain\JiShe.ServicePro.LanguageManagement.Domain.csproj", "{8EC3F1B8-0919-7052-3878-8F5E07BE4969}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.FileManagement.Domain", "JiShe.ServicePro\modules\FileManagement\src\JiShe.ServicePro.FileManagement.Domain\JiShe.ServicePro.FileManagement.Domain.csproj", "{C9C8F9C5-285B-11D2-709E-69B6AE6272DB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.FileManagement.Domain.Shared", "JiShe.ServicePro\modules\FileManagement\src\JiShe.ServicePro.FileManagement.Domain.Shared\JiShe.ServicePro.FileManagement.Domain.Shared.csproj", "{0799B9F8-0821-7FD0-4C25-71C4105AAC28}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.DynamicMenuManagement.Domain", "JiShe.ServicePro\modules\DynamicMenuManagement\src\JiShe.ServicePro.DynamicMenuManagement.Domain\JiShe.ServicePro.DynamicMenuManagement.Domain.csproj", "{D5453859-E05B-2A0B-A4EC-3FA789DBF719}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.DynamicMenuManagement.Domain.Shared", "JiShe.ServicePro\modules\DynamicMenuManagement\src\JiShe.ServicePro.DynamicMenuManagement.Domain.Shared\JiShe.ServicePro.DynamicMenuManagement.Domain.Shared.csproj", "{38145D89-6885-EDEE-3949-327C575F9A16}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.DeviceManagement.Domain.Shared", "JiShe.ServicePro\modules\DeviceManagement\src\JiShe.ServicePro.DeviceManagement.Domain.Shared\JiShe.ServicePro.DeviceManagement.Domain.Shared.csproj", "{52846756-6E82-0565-E219-6023F1FA4E29}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.DeviceManagement.Domain", "JiShe.ServicePro\modules\DeviceManagement\src\JiShe.ServicePro.DeviceManagement.Domain\JiShe.ServicePro.DeviceManagement.Domain.csproj", "{4A53D94C-66FF-C2A7-56C8-7EF2136B5538}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.DataDictionaryManagement.Domain.Shared", "JiShe.ServicePro\modules\DataDictionaryManagement\src\JiShe.ServicePro.DataDictionaryManagement.Domain.Shared\JiShe.ServicePro.DataDictionaryManagement.Domain.Shared.csproj", "{038FD838-9E6B-40A5-C2B7-036CFD25A715}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.DataDictionaryManagement.Domain", "JiShe.ServicePro\modules\DataDictionaryManagement\src\JiShe.ServicePro.DataDictionaryManagement.Domain\JiShe.ServicePro.DataDictionaryManagement.Domain.csproj", "{50CB80B4-B3FF-51F6-0FFA-60391FF2AF57}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.CTWingManagement.Domain.Shared", "JiShe.ServicePro\modules\CTWingManagement\src\JiShe.ServicePro.CTWingManagement.Domain.Shared\JiShe.ServicePro.CTWingManagement.Domain.Shared.csproj", "{275D7FF0-0D71-88B5-D050-E9B97D62C3B2}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.CTWingManagement.Domain", "JiShe.ServicePro\modules\CTWingManagement\src\JiShe.ServicePro.CTWingManagement.Domain\JiShe.ServicePro.CTWingManagement.Domain.csproj", "{F730AD4A-AB34-4824-37B4-EC9FFD0D4154}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.BasicManagement.Domain.Shared", "JiShe.ServicePro\modules\BasicManagement\src\JiShe.ServicePro.BasicManagement.Domain.Shared\JiShe.ServicePro.BasicManagement.Domain.Shared.csproj", "{8223B0B3-2EAB-6523-1082-78022FA92ABB}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.BasicManagement.Domain", "JiShe.ServicePro\modules\BasicManagement\src\JiShe.ServicePro.BasicManagement.Domain\JiShe.ServicePro.BasicManagement.Domain.csproj", "{1C24FFD0-A96C-8326-A3B8-E63FC93E7896}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -670,6 +710,86 @@ Global
|
||||
{0A541E29-090F-87B9-8C98-83FAA7AF0E78}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0A541E29-090F-87B9-8C98-83FAA7AF0E78}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0A541E29-090F-87B9-8C98-83FAA7AF0E78}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C6FD9406-C128-F970-DB4C-4DF3D2CEAA96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C6FD9406-C128-F970-DB4C-4DF3D2CEAA96}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C6FD9406-C128-F970-DB4C-4DF3D2CEAA96}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C6FD9406-C128-F970-DB4C-4DF3D2CEAA96}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5F1A2AD5-2C7B-3675-C18C-43CA06FAE05C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5F1A2AD5-2C7B-3675-C18C-43CA06FAE05C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5F1A2AD5-2C7B-3675-C18C-43CA06FAE05C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5F1A2AD5-2C7B-3675-C18C-43CA06FAE05C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{83F40CA2-B00D-A056-A920-525AFFD76FA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{83F40CA2-B00D-A056-A920-525AFFD76FA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{83F40CA2-B00D-A056-A920-525AFFD76FA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{83F40CA2-B00D-A056-A920-525AFFD76FA7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A5585C65-378D-F06C-E463-910FA9D86BF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A5585C65-378D-F06C-E463-910FA9D86BF5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A5585C65-378D-F06C-E463-910FA9D86BF5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A5585C65-378D-F06C-E463-910FA9D86BF5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1857A580-1862-4299-F196-CDF253CD9B40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1857A580-1862-4299-F196-CDF253CD9B40}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1857A580-1862-4299-F196-CDF253CD9B40}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1857A580-1862-4299-F196-CDF253CD9B40}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{06998B3B-DFE4-080F-B679-CFEE5FE45F72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{06998B3B-DFE4-080F-B679-CFEE5FE45F72}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{06998B3B-DFE4-080F-B679-CFEE5FE45F72}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{06998B3B-DFE4-080F-B679-CFEE5FE45F72}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BF91E40E-5703-2BB7-D67C-12640F22D35D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BF91E40E-5703-2BB7-D67C-12640F22D35D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BF91E40E-5703-2BB7-D67C-12640F22D35D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BF91E40E-5703-2BB7-D67C-12640F22D35D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8EC3F1B8-0919-7052-3878-8F5E07BE4969}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8EC3F1B8-0919-7052-3878-8F5E07BE4969}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8EC3F1B8-0919-7052-3878-8F5E07BE4969}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8EC3F1B8-0919-7052-3878-8F5E07BE4969}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{C9C8F9C5-285B-11D2-709E-69B6AE6272DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{C9C8F9C5-285B-11D2-709E-69B6AE6272DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C9C8F9C5-285B-11D2-709E-69B6AE6272DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C9C8F9C5-285B-11D2-709E-69B6AE6272DB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0799B9F8-0821-7FD0-4C25-71C4105AAC28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0799B9F8-0821-7FD0-4C25-71C4105AAC28}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0799B9F8-0821-7FD0-4C25-71C4105AAC28}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0799B9F8-0821-7FD0-4C25-71C4105AAC28}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{D5453859-E05B-2A0B-A4EC-3FA789DBF719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D5453859-E05B-2A0B-A4EC-3FA789DBF719}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D5453859-E05B-2A0B-A4EC-3FA789DBF719}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D5453859-E05B-2A0B-A4EC-3FA789DBF719}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{38145D89-6885-EDEE-3949-327C575F9A16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{38145D89-6885-EDEE-3949-327C575F9A16}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{38145D89-6885-EDEE-3949-327C575F9A16}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{38145D89-6885-EDEE-3949-327C575F9A16}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{52846756-6E82-0565-E219-6023F1FA4E29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{52846756-6E82-0565-E219-6023F1FA4E29}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{52846756-6E82-0565-E219-6023F1FA4E29}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{52846756-6E82-0565-E219-6023F1FA4E29}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4A53D94C-66FF-C2A7-56C8-7EF2136B5538}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4A53D94C-66FF-C2A7-56C8-7EF2136B5538}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4A53D94C-66FF-C2A7-56C8-7EF2136B5538}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4A53D94C-66FF-C2A7-56C8-7EF2136B5538}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{038FD838-9E6B-40A5-C2B7-036CFD25A715}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{038FD838-9E6B-40A5-C2B7-036CFD25A715}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{038FD838-9E6B-40A5-C2B7-036CFD25A715}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{038FD838-9E6B-40A5-C2B7-036CFD25A715}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{50CB80B4-B3FF-51F6-0FFA-60391FF2AF57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{50CB80B4-B3FF-51F6-0FFA-60391FF2AF57}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{50CB80B4-B3FF-51F6-0FFA-60391FF2AF57}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{50CB80B4-B3FF-51F6-0FFA-60391FF2AF57}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{275D7FF0-0D71-88B5-D050-E9B97D62C3B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{275D7FF0-0D71-88B5-D050-E9B97D62C3B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{275D7FF0-0D71-88B5-D050-E9B97D62C3B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{275D7FF0-0D71-88B5-D050-E9B97D62C3B2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F730AD4A-AB34-4824-37B4-EC9FFD0D4154}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F730AD4A-AB34-4824-37B4-EC9FFD0D4154}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F730AD4A-AB34-4824-37B4-EC9FFD0D4154}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F730AD4A-AB34-4824-37B4-EC9FFD0D4154}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8223B0B3-2EAB-6523-1082-78022FA92ABB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8223B0B3-2EAB-6523-1082-78022FA92ABB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8223B0B3-2EAB-6523-1082-78022FA92ABB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8223B0B3-2EAB-6523-1082-78022FA92ABB}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{1C24FFD0-A96C-8326-A3B8-E63FC93E7896}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{1C24FFD0-A96C-8326-A3B8-E63FC93E7896}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{1C24FFD0-A96C-8326-A3B8-E63FC93E7896}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{1C24FFD0-A96C-8326-A3B8-E63FC93E7896}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -785,6 +905,26 @@ Global
|
||||
{6DB1C8C3-E57A-005D-D1D0-2194F6AC6537} = {72493AF2-CDAA-40A7-98AB-B8AA2B05965E}
|
||||
{E5AC94F3-2C4F-2CC3-743E-382CD92638E0} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{0A541E29-090F-87B9-8C98-83FAA7AF0E78} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{C6FD9406-C128-F970-DB4C-4DF3D2CEAA96} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{5F1A2AD5-2C7B-3675-C18C-43CA06FAE05C} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{83F40CA2-B00D-A056-A920-525AFFD76FA7} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{A5585C65-378D-F06C-E463-910FA9D86BF5} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{1857A580-1862-4299-F196-CDF253CD9B40} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{06998B3B-DFE4-080F-B679-CFEE5FE45F72} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{BF91E40E-5703-2BB7-D67C-12640F22D35D} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{8EC3F1B8-0919-7052-3878-8F5E07BE4969} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{C9C8F9C5-285B-11D2-709E-69B6AE6272DB} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{0799B9F8-0821-7FD0-4C25-71C4105AAC28} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{D5453859-E05B-2A0B-A4EC-3FA789DBF719} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{38145D89-6885-EDEE-3949-327C575F9A16} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{52846756-6E82-0565-E219-6023F1FA4E29} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{4A53D94C-66FF-C2A7-56C8-7EF2136B5538} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{038FD838-9E6B-40A5-C2B7-036CFD25A715} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{50CB80B4-B3FF-51F6-0FFA-60391FF2AF57} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{275D7FF0-0D71-88B5-D050-E9B97D62C3B2} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{F730AD4A-AB34-4824-37B4-EC9FFD0D4154} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
{8223B0B3-2EAB-6523-1082-78022FA92ABB} = {D9FCBD0B-51A1-4527-83DC-ACA7B06F91F7}
|
||||
{1C24FFD0-A96C-8326-A3B8-E63FC93E7896} = {73E6E64F-DA5A-437A-A147-B9CA9CCB038D}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F}
|
||||
|
||||
@ -36,7 +36,6 @@ global using Microsoft.Extensions.Logging;
|
||||
global using Microsoft.Extensions.Logging.Abstractions;
|
||||
global using Microsoft.Extensions.Options;
|
||||
global using Microsoft.IdentityModel.Tokens;
|
||||
global using Microsoft.OpenApi.Models;
|
||||
global using JiShe.IoT;
|
||||
global using Serilog;
|
||||
global using StackExchange.Redis;
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
using Google.Protobuf.Compiler;
|
||||
using Hangfire.Redis.StackExchange;
|
||||
using JiShe.ServicePro.FreeRedisProvider;
|
||||
using JiShe.ServicePro.SwaggerConfigs;
|
||||
using Medallion.Threading;
|
||||
using Medallion.Threading.Redis;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Microsoft.OpenApi;
|
||||
using Volo.Abp.BlobStoring;
|
||||
using Volo.Abp.BlobStoring.FileSystem;
|
||||
|
||||
@ -145,102 +147,7 @@ public partial class IoTHttpApiHostModule
|
||||
|
||||
private void ConfigureSwaggerServices(ServiceConfigurationContext context)
|
||||
{
|
||||
context.Services.AddSwaggerGen(
|
||||
options =>
|
||||
{
|
||||
// 文件下载类型
|
||||
options.MapType<FileContentResult>(() => new OpenApiSchema() { Type = "file" });
|
||||
|
||||
options.SwaggerDoc("AbpPro", new OpenApiInfo { Title = "AbpPro API", Version = "v1" });
|
||||
|
||||
var configuration = context.Services.GetConfiguration();
|
||||
var groupNames = EnumExtensions.GetEnumTypeValueNameList<SwaggerGroupEnum>();
|
||||
var excludeSwaggerGroups = configuration.GetSection("ExcludeSwaggerGroup").Get<List<string>>() ?? new List<string>();
|
||||
|
||||
groupNames.ForEach(group =>
|
||||
{
|
||||
if (!excludeSwaggerGroups.Where(e => e == group.Key).Any())
|
||||
{
|
||||
options.SwaggerDoc(group.Key,
|
||||
new OpenApiInfo { Title = group.Value, Version = "v1" });
|
||||
}
|
||||
});
|
||||
|
||||
options.DocInclusionPredicate((docName, description) =>
|
||||
{
|
||||
if (docName == "AbpPro")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return description.GroupName == docName;
|
||||
});
|
||||
|
||||
//options.EnableAnnotations(enableAnnotationsForInheritance: true, enableAnnotationsForPolymorphism: true); // 启用注解
|
||||
options.DocumentFilter<HiddenAbpDefaultApiFilter>();
|
||||
options.SchemaFilter<EnumSchemaFilter>();
|
||||
// 加载所有xml注释,这里会导致swagger加载有点缓慢
|
||||
var xmlPaths = Directory.GetFiles(AppContext.BaseDirectory, "*.xml");
|
||||
foreach (var xml in xmlPaths)
|
||||
{
|
||||
options.IncludeXmlComments(xml, true);
|
||||
}
|
||||
|
||||
// 加载 模块引入的xml注释
|
||||
// 加载所有xml注释,这里会导致swagger加载有点缓慢
|
||||
var modulePath = Path.Combine(AppContext.BaseDirectory, "moduleSwagger");
|
||||
if (Directory.Exists(modulePath))
|
||||
{
|
||||
var xmlModulePaths = Directory.GetFiles(modulePath, "*.xml");
|
||||
foreach (var xml in xmlModulePaths)
|
||||
{
|
||||
options.IncludeXmlComments(xml, true);
|
||||
}
|
||||
}
|
||||
|
||||
options.AddSecurityDefinition(JwtBearerDefaults.AuthenticationScheme,
|
||||
new OpenApiSecurityScheme()
|
||||
{
|
||||
Description = "直接在下框输入JWT生成的Token",
|
||||
Name = "Authorization",
|
||||
In = ParameterLocation.Header,
|
||||
Type = SecuritySchemeType.Http,
|
||||
Scheme = JwtBearerDefaults.AuthenticationScheme,
|
||||
BearerFormat = "JWT"
|
||||
});
|
||||
options.AddSecurityRequirement(new OpenApiSecurityRequirement
|
||||
{
|
||||
{
|
||||
new OpenApiSecurityScheme
|
||||
{
|
||||
Reference = new OpenApiReference
|
||||
{
|
||||
Type = ReferenceType.SecurityScheme, Id = "Bearer"
|
||||
}
|
||||
},
|
||||
new List<string>()
|
||||
}
|
||||
});
|
||||
|
||||
options.AddSecurityDefinition("ApiKey", new OpenApiSecurityScheme()
|
||||
{
|
||||
Type = SecuritySchemeType.ApiKey,
|
||||
In = ParameterLocation.Header,
|
||||
Name = "Accept-Language",
|
||||
Description = "多语言设置,系统预设语言有zh-Hans、en,默认为zh-Hans",
|
||||
});
|
||||
|
||||
options.AddSecurityRequirement(new OpenApiSecurityRequirement
|
||||
{
|
||||
{
|
||||
new OpenApiSecurityScheme
|
||||
{
|
||||
Reference = new OpenApiReference
|
||||
{ Type = ReferenceType.SecurityScheme, Id = "ApiKey" }
|
||||
},
|
||||
Array.Empty<string>()
|
||||
}
|
||||
});
|
||||
});
|
||||
context.Services.AddJiSheServiceProAggregateSwagger(context.Services.GetConfiguration());
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -88,39 +88,13 @@ namespace JiShe.IoT
|
||||
}
|
||||
|
||||
app.UseAuthorization();
|
||||
app.UseSwagger();
|
||||
app.UseAbpSwaggerUI(options =>
|
||||
{
|
||||
var groupNames = System.EnumExtensions.GetEnumTypeValueNameList<SwaggerGroupEnum>();
|
||||
var excludeSwaggerGroups = configuration.GetSection("ExcludeSwaggerGroup").Get<List<string>>() ?? new List<string>();
|
||||
groupNames.ForEach(attr =>
|
||||
{
|
||||
|
||||
if (!excludeSwaggerGroups.Where(e => e == attr.Key).Any())
|
||||
{
|
||||
options.SwaggerEndpoint($"/swagger/{attr.Key}/swagger.json", attr.Value);
|
||||
}
|
||||
});
|
||||
|
||||
options.SwaggerEndpoint("/swagger/AbpPro/swagger.json", "AbpPro API");
|
||||
|
||||
options.DocExpansion(DocExpansion.None);
|
||||
options.DefaultModelsExpandDepth(-1);
|
||||
});
|
||||
|
||||
app.UseJiSheServiceProSwaggerUI(configuration,"/swagger/AbpPro/swagger.json", "AbpPro",true);
|
||||
app.UseAuditing();
|
||||
app.UseAbpSerilogEnrichers();
|
||||
app.UseUnitOfWork();
|
||||
app.UseConfiguredEndpoints(endpoints =>
|
||||
{
|
||||
endpoints.MapHealthChecks("/health");
|
||||
|
||||
// endpoints.MapHangfireDashboard("/hangfire", new DashboardOptions()
|
||||
// {
|
||||
// Authorization = new[] { new CustomHangfireAuthorizeFilter() },
|
||||
// IgnoreAntiforgeryToken = true
|
||||
// });
|
||||
|
||||
});
|
||||
|
||||
if (configuration.GetValue("Consul:Enabled", false))
|
||||
|
||||
@ -47,15 +47,15 @@ public class Program
|
||||
//options.Limits.MaxConcurrentConnections = 1000;//限制并发连接数,默认无限制
|
||||
|
||||
});
|
||||
builder.WebHost.UseUrls($"http://+:10500");
|
||||
builder.WebHost.UseUrls($"http://+:20500");
|
||||
var app = builder.Build();
|
||||
await app.InitializeApplicationAsync();
|
||||
await app.RunAsync();
|
||||
return 0;
|
||||
}
|
||||
catch (Exception)
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw;
|
||||
throw ex;
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@ -0,0 +1,15 @@
|
||||
using JiShe.ServicePro.Dto;
|
||||
|
||||
namespace JiShe.IoT.BusinessSystemAggregation
|
||||
{
|
||||
/// <summary>
|
||||
/// 业务系统调用设备服务请求参数
|
||||
/// </summary>
|
||||
public class CallDeviceServiceRequestInfoDto: ReceiveCommandInfoDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 服务名称
|
||||
/// </summary>
|
||||
public string ServiceName { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
using JiShe.ServicePro;
|
||||
using JiShe.ServicePro.ApacheIoTDB.Provider.Model;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -47,5 +48,11 @@ namespace JiShe.IoT.BusinessSystemAggregation
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<HttpDataResult> BatchCreateDeviceInfoAsync(OpenApiRequest input);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 接收业务系统调用设备服务信息,Msg 字段为 CallDeviceServiceRequestInfoDto 实体
|
||||
/// </summary>
|
||||
Task<HttpDataResult<Dictionary<string, object>>> CallDeviceServiceToOneNETForApiAsync(OpenApiRequest input);
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
using JiShe.ServicePro.Core;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace JiShe.IoT.DeviceAggregation
|
||||
{
|
||||
/// <summary>
|
||||
/// 调用设备服务入参
|
||||
/// </summary>
|
||||
public class CallDeviceServiceForApiInput : IdInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 服务名称
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string ServiceName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 服务参数
|
||||
/// </summary>
|
||||
[Required]
|
||||
public Dictionary<string, object> ServiceParams { get; set; }
|
||||
}
|
||||
}
|
||||
@ -106,5 +106,12 @@ namespace JiShe.IoT.DeviceAggregation
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> BindingDeviceThingModel(BindingDeviceThingModelInput input);
|
||||
|
||||
/// <summary>
|
||||
/// 调用OneNET平台设备服务
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task<Dictionary<string, object>> CallDeviceServiceToOneNETForApiAsync(CallDeviceServiceForApiInput input);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using JiShe.IoT.IoTPlatformAggregation.Dto;
|
||||
using JiShe.ServicePro.Commons;
|
||||
using JiShe.ServicePro.IoTDBManagement.TableModels;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@ -45,5 +46,13 @@ namespace JiShe.IoT.IoTPlatformAggregation
|
||||
/// <returns></returns>
|
||||
Task<object> UpdateIoTPlatformProductThingModelInfoAsync(UpdateIoTPlatformProductThingModelInfoInput input
|
||||
);
|
||||
|
||||
/// <summary>
|
||||
/// OneNET 数据日志处理重新处理
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
Task IoTPlatformDataLogReHandlerAsync(QueryOneNETReceiveMessageInput input
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ namespace JiShe.IoT.BusinessSystemAggregation
|
||||
}
|
||||
|
||||
List<DeviceTelemetryCommandTypeEnum> actionTypes = new List<DeviceTelemetryCommandTypeEnum>() {
|
||||
DeviceTelemetryCommandTypeEnum.OperateBreaker,
|
||||
DeviceTelemetryCommandTypeEnum.OperateService,
|
||||
DeviceTelemetryCommandTypeEnum.RoutineOperationSet,
|
||||
};
|
||||
|
||||
@ -136,7 +136,7 @@ namespace JiShe.IoT.BusinessSystemAggregation
|
||||
var tempPlatformThingModelInfo = platformThingModelInfo.Where(d => d.IoTPlatformRawFieldName == item.Key).FirstOrDefault();
|
||||
if (tempPlatformThingModelInfo == null)
|
||||
{
|
||||
_logger.LogError($"业务系统推送指令时设备设备{deviceInfo.DeviceAddress}平台端物模型信息不存在属性标识符{item.Key}。");
|
||||
_logger.LogError($"业务系统推送指令时设备{deviceInfo.DeviceAddress}平台端物模型信息不存在属性标识符{item.Key}。");
|
||||
messageBody.Commands.RemoveAll(d => d.Key == item.Key);
|
||||
continue;
|
||||
}
|
||||
@ -616,5 +616,141 @@ namespace JiShe.IoT.BusinessSystemAggregation
|
||||
!deviceAddress.Contains("*") &&
|
||||
!deviceAddress.Contains("~");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 接收业务系统调用设备服务信息,Msg 字段为 CallDeviceServiceRequestInfoDto 实体
|
||||
/// </summary>
|
||||
[AllowAnonymous]
|
||||
public async Task<HttpDataResult<Dictionary<string, object>>> CallDeviceServiceToOneNETForApiAsync(OpenApiRequest input)
|
||||
{
|
||||
try
|
||||
{
|
||||
var handleResult = HandleOpenApiRequest<CallDeviceServiceRequestInfoDto>(input, serverApplicationOptions);
|
||||
if (handleResult.Success == false)
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("获取数据失败,签名校验异常", -101);
|
||||
}
|
||||
var messageBody = handleResult.Data;
|
||||
if (messageBody == null || messageBody.Commands == null || messageBody.Commands.Count <= 0 || string.IsNullOrWhiteSpace(messageBody.DeviceAddress) || string.IsNullOrWhiteSpace(messageBody.ServiceName))
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("服务调用失败,服务调用参数不能为空", -102, ResponeResultEnum.Fail);
|
||||
}
|
||||
|
||||
var restrictionKey = string.Format(RedisConst.CacheDeviceOpenApiRestrictionKey, nameof(ReceiveGetCommandInfoAsync), messageBody.DeviceAddress);
|
||||
var openApiDeviceRequest = FreeRedisProvider.Instance.Get(restrictionKey);
|
||||
if (openApiDeviceRequest != null)
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("服务调用失败,设备请求被限制", -103, ResponeResultEnum.Fail);
|
||||
}
|
||||
|
||||
FreeRedisProvider.Instance.Set(restrictionKey, "1", TimeSpan.FromSeconds(5));
|
||||
|
||||
//限定来源类型必须为业务系统
|
||||
if (messageBody.SourceType != DeviceTelemetrySourceTypeEnum.BusinessSystem)
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("服务调用失败,来源类型错误,业务系统传固定值2", -104, ResponeResultEnum.Fail);
|
||||
}
|
||||
|
||||
//限定操作类型必须为设备服务调用类型
|
||||
if (messageBody.TelemetryCommandType != DeviceTelemetryCommandTypeEnum.OperateService)
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("服务调用失败,指令操作类型错误", -105, ResponeResultEnum.Fail);
|
||||
}
|
||||
|
||||
var deviceInfo = await deviceAppService.FindByDeviceAddressAsync(messageBody.DeviceAddress);
|
||||
|
||||
if (deviceInfo == null)
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("设备不存在", -106, ResponeResultEnum.Fail);
|
||||
}
|
||||
|
||||
//将指令存储IoTDB数据库和Redis发布通道
|
||||
if (deviceInfo.IoTPlatform == IoTPlatformTypeEnum.OneNET)
|
||||
{
|
||||
//获取设备对应的平台端物模型信息,校验前端传入的属性标识集合是否存在不合法的属性标识符
|
||||
|
||||
var platformThingModelInfo = await platformThingModelInfoAppService.FindByPlatformProductIdAsync(new IdInput<string>() { Id = deviceInfo.IoTPlatformProductId });
|
||||
|
||||
if (platformThingModelInfo == null)
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>($"业务系统设备服务调时,{deviceInfo.DeviceAddress}的平台端物模型信息不存在。", -107, ResponeResultEnum.Fail);
|
||||
}
|
||||
|
||||
Dictionary<string, string> commands = new Dictionary<string, string>();
|
||||
foreach (var item in messageBody.Commands)
|
||||
{
|
||||
var tempPlatformThingModelInfo = platformThingModelInfo.Where(d => d.StandardFieldName == item.Key).FirstOrDefault();
|
||||
if (tempPlatformThingModelInfo == null)
|
||||
{
|
||||
_logger.LogError($"业务系统设备服务调时{deviceInfo.DeviceAddress}平台端物模型信息不存在属性标识符{item.Key}。");
|
||||
messageBody.Commands.RemoveAll(d => d.Key == item.Key);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
//排除指令
|
||||
if (exitCommands.Contains(tempPlatformThingModelInfo.StandardFieldName.ToLowerInvariant()))
|
||||
{
|
||||
_logger.LogError($"业务系统设备服务调时{deviceInfo.DeviceAddress}平台端物模型属性标识符{item.Key}是升级指令操作,被禁止。");
|
||||
messageBody.Commands.RemoveAll(d => d.Key == item.Key);
|
||||
continue;
|
||||
}
|
||||
commands.Add(tempPlatformThingModelInfo.IoTPlatformRawFieldName, item.Key);
|
||||
}
|
||||
|
||||
if (commands == null || commands.Count <= 0)
|
||||
{
|
||||
_logger.LogError($"业务系统设备服务调时{deviceInfo.DeviceAddress}未匹配到具体数据模型,被禁止。");
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("业务系统设备服务调失败,未匹配到具体数据模型", -108);
|
||||
}
|
||||
|
||||
|
||||
var packetTaskInfo = GetDeviceTelemetryPacketTaskInfo(ioTDBOptions, input, deviceInfo.Adapt<DeviceCacheInfos>(), commands.Serialize());
|
||||
|
||||
//数据写入遥测任务数据存储通道
|
||||
await ioTDBDataChannelManageService.DeviceTelemetryTaskWriterAsync(DataChannelManage.DeviceTelemetryTaskDataChannel.Writer, (DistributedMessageCenterConst.OneNETCommandIssuedEventName, packetTaskInfo));
|
||||
|
||||
var queryResult = await CallDeviceServiceToOneNET(deviceInfo, new CallDeviceServiceForApiInput()
|
||||
{
|
||||
ServiceParams = messageBody.Commands,
|
||||
ServiceName = messageBody.ServiceName,
|
||||
});
|
||||
|
||||
if (queryResult == null || queryResult.Count <= 0)
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("业务系统设备服务调失败,OneNET平台未返回数据", -109);
|
||||
}
|
||||
|
||||
Dictionary<string, object> result = new Dictionary<string, object>();
|
||||
foreach (var item in commands)
|
||||
{
|
||||
result.Add(item.Value, queryResult[item.Key]);
|
||||
}
|
||||
|
||||
return HttpDataResultExtensions.Success<Dictionary<string, object>>(result);
|
||||
|
||||
}
|
||||
else if (deviceInfo.IoTPlatform == IoTPlatformTypeEnum.CTWing)
|
||||
{
|
||||
//await redisPubSubService.PublishReliableAsync(DistributedMessageCenterConst.CTWingAepCommandIssuedEventName, input);
|
||||
}
|
||||
else
|
||||
{
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("指令处理失败,当前设备平台类型异常", -110);
|
||||
}
|
||||
|
||||
return HttpDataResultExtensions.Success<Dictionary<string, object>>("指令下发成功");
|
||||
}
|
||||
catch (UserFriendlyException ex)
|
||||
{
|
||||
_logger.LogError(ex, "接收业务系统指令信息时发生异常");
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("设备属性数据获取失败,发送异常", -111);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "接收业务系统指令信息时发生异常");
|
||||
return HttpDataResultExtensions.Failed<Dictionary<string, object>>("设备属性数据获取失败,发送异常", -112);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -638,6 +638,60 @@ namespace JiShe.IoT.DeviceAggregation
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 调用OneNET平台设备服务
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Dictionary<string, object>> CallDeviceServiceToOneNETForApiAsync(CallDeviceServiceForApiInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(input.ServiceName) || input.ServiceParams == null || input.ServiceParams.Count <= 0)
|
||||
{
|
||||
throw new UserFriendlyException($"服务名称参数异常");
|
||||
}
|
||||
|
||||
var deviceInfo = await deviceAppService.FindByIdAsync(input);
|
||||
if (deviceInfo == null)
|
||||
{
|
||||
throw new UserFriendlyException($"设备不存在");
|
||||
}
|
||||
|
||||
|
||||
//数据写入遥测任务数据存储通道
|
||||
var commandRequest = new OpenApiRequest()
|
||||
{
|
||||
Message = input.Serialize(),
|
||||
};
|
||||
var packetTaskInfo = GetDeviceTelemetryPacketTaskInfo(ioTDBOptions, commandRequest, deviceInfo.Adapt<DeviceCacheInfos>(), input.Serialize());
|
||||
packetTaskInfo.TelemetryType = (int)DeviceTelemetryCommandTypeEnum.GetAttributeData;
|
||||
|
||||
|
||||
if (deviceInfo.IoTPlatform == IoTPlatformTypeEnum.OneNET)
|
||||
{
|
||||
await ioTDBDataChannelManageService.DeviceTelemetryTaskWriterAsync(DataChannelManage.DeviceTelemetryTaskDataChannel.Writer, (DistributedMessageCenterConst.OneNETUpgradeCommandIssuedEventName, packetTaskInfo));
|
||||
|
||||
return await CallDeviceServiceToOneNET(deviceInfo, input);
|
||||
}
|
||||
else if (deviceInfo.IoTPlatform == IoTPlatformTypeEnum.CTWing)
|
||||
{
|
||||
//await redisPubSubService.PublishReliableAsync(DistributedMessageCenterConst.CTWingAepCommandIssuedEventName,commandRequest);
|
||||
//return true;
|
||||
throw new UserFriendlyException($"发送设备指令信息失败,CTWing暂未实现。");
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new UserFriendlyException($"发送设备指令信息失败,未找到对应的产品配置信息。");
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#region CTWing 设备操作
|
||||
/// <summary>
|
||||
/// CTWing 设备创建
|
||||
|
||||
@ -10,6 +10,7 @@ using JiShe.ServicePro.FreeSqlProvider;
|
||||
using JiShe.ServicePro.IoTDBManagement;
|
||||
using JiShe.ServicePro.OneNETManagement;
|
||||
using JiShe.ServicePro.OneNETManagement.Subscribers;
|
||||
using JiShe.ServicePro.PulsarProvider;
|
||||
using JiShe.ServicePro.TemplateManagement;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Volo.Abp;
|
||||
@ -30,6 +31,7 @@ namespace JiShe.IoT
|
||||
typeof(ServiceProFreeRedisProviderModule),
|
||||
typeof(CTWingManagementApplicationModule),
|
||||
typeof(OneNETManagementApplicationModule),
|
||||
typeof(ServiceProPulsarProviderModule),
|
||||
typeof(JiSheServiceProEMQXProviderModule),
|
||||
typeof(DeviceManagementApplicationModule)
|
||||
)]
|
||||
|
||||
@ -34,12 +34,12 @@ namespace JiShe.IoT
|
||||
{
|
||||
protected readonly ILogger<IoTDeviceBasicAppService> logger;
|
||||
protected readonly IDeviceAppService deviceAppService;
|
||||
protected readonly IOneNETProductService oneNETProductService;
|
||||
protected readonly IOneNETDeviceService oneNETDeviceService;
|
||||
protected readonly IReliableRedisPubSubService redisPubSubService;
|
||||
protected readonly IIoTDBDataChannelManageService ioTDBDataChannelManageService;
|
||||
protected readonly IoTDBOptions ioTDBOptions;
|
||||
protected readonly ServerApplicationOptions serverApplicationOptions;
|
||||
protected readonly IOneNETProductService oneNETProductService;
|
||||
protected readonly IDeviceThingModelManagementAppService deviceThingModelService;
|
||||
protected readonly IIoTPlatformThingModelInfoAppService platformThingModelInfoAppService;
|
||||
protected readonly IDeviceUpgradeRecordService deviceUpgradeRecordService;
|
||||
@ -802,6 +802,70 @@ namespace JiShe.IoT
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 调用OneNET平台设备服务
|
||||
/// </summary>
|
||||
/// <param name="deviceInfo"></param>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="UserFriendlyException"></exception>
|
||||
protected async Task<Dictionary<string, object>> CallDeviceServiceToOneNET(DeviceManagementInfoDto deviceInfo, CallDeviceServiceForApiInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
//检查下设备是否在线
|
||||
var deviceOnlineStatus = await oneNETDeviceService.DeviceInfoDetailAsync(new DeviceInfoDetailInput()
|
||||
{
|
||||
DeviceName = deviceInfo.IoTPlatformDeviceOpenInfo,
|
||||
OneNETAccountId = deviceInfo.IoTPlatformAccountId,
|
||||
ProductId = deviceInfo.IoTPlatformProductId,
|
||||
});
|
||||
|
||||
if (deviceOnlineStatus == null || deviceOnlineStatus.Code != ResponeResultEnum.Success)
|
||||
{
|
||||
throw new UserFriendlyException("获取平台设备信息失败");
|
||||
}
|
||||
|
||||
if (deviceOnlineStatus.Data.Status != 1)
|
||||
{
|
||||
throw new UserFriendlyException("设备不在线");
|
||||
}
|
||||
|
||||
var deviceDataResult = await oneNETDeviceService.CallDeviceService(new CallDeviceServiceRequestInput()
|
||||
{
|
||||
DeviceName = deviceInfo.IoTPlatformDeviceOpenInfo,
|
||||
OneNETAccountId = deviceInfo.IoTPlatformAccountId,
|
||||
ProductId = deviceInfo.IoTPlatformProductId,
|
||||
ThingModelIdentifier = input.ServiceName,
|
||||
ServiceParams = input.ServiceParams
|
||||
});
|
||||
if (deviceDataResult == null || deviceDataResult.Success == false || deviceDataResult.Data == null)
|
||||
{
|
||||
throw new UserFriendlyException($"设备{deviceInfo.DeviceName}获取数据失败");
|
||||
}
|
||||
|
||||
//调用平台设备服务
|
||||
var platformThingModelInfo = await platformThingModelInfoAppService.FindByPlatformProductIdAsync(new IdInput<string>() { Id = deviceInfo.IoTPlatformProductId });
|
||||
if (platformThingModelInfo == null || platformThingModelInfo.Count <= 0)
|
||||
{
|
||||
return deviceDataResult.Data;
|
||||
}
|
||||
|
||||
List<string> updateKeys = new List<string>()
|
||||
{
|
||||
ThingModelFixedTypeConst.FIRMWARE_VERSION.ToLowerInvariant(),
|
||||
ThingModelFixedTypeConst.ReadingMode.ToLowerInvariant()
|
||||
};
|
||||
|
||||
|
||||
return deviceDataResult.Data;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region CTWing 设备操作
|
||||
|
||||
@ -7,8 +7,12 @@ using JiShe.ServicePro.CTWingManagement.CTWingProducts;
|
||||
using JiShe.ServicePro.DeviceManagement.ThingModels;
|
||||
using JiShe.ServicePro.Enums;
|
||||
using JiShe.ServicePro.FreeRedisProvider;
|
||||
using JiShe.ServicePro.IoTDBManagement.TableModels;
|
||||
using JiShe.ServicePro.IoTDBManagement.TreeModels;
|
||||
using JiShe.ServicePro.OneNET.Provider.ReceiveModels;
|
||||
using JiShe.ServicePro.OneNETManagement.OneNETAccounts;
|
||||
using JiShe.ServicePro.OneNETManagement.OneNETProducts;
|
||||
using JiShe.ServicePro.OneNETManagement.Subscribers;
|
||||
using Microsoft.AspNetCore.DataProtection.KeyManagement;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using System;
|
||||
@ -31,6 +35,9 @@ namespace JiShe.IoT.IoTPlatformAggregation
|
||||
private readonly ICTWingAccountService _ctwingAccountService;
|
||||
private readonly IOneNETAccountService _oneNETAccountService;
|
||||
private readonly IIoTPlatformThingModelInfoAppService _ioTPlatformThingModelInfoAppService;
|
||||
private readonly IOneNETPulsarServiceSubscriptionService _oneNETPulsarServiceSubscriptionService;
|
||||
private readonly ITableModelService _tableModelService;
|
||||
|
||||
|
||||
|
||||
public IoTPlatformAggregationService(ILogger<IoTPlatformAggregationService> logger,
|
||||
@ -38,6 +45,8 @@ namespace JiShe.IoT.IoTPlatformAggregation
|
||||
IOneNETProductService oneNetProductService,
|
||||
ICTWingAccountService ctwingAccountService,
|
||||
IOneNETAccountService oneNETAccountService,
|
||||
IOneNETPulsarServiceSubscriptionService oneNETPulsarServiceSubscriptionService,
|
||||
ITableModelService tableModelService,
|
||||
IIoTPlatformThingModelInfoAppService ioTPlatformThingModelInfoAppService)
|
||||
{
|
||||
_logger = logger;
|
||||
@ -46,6 +55,8 @@ namespace JiShe.IoT.IoTPlatformAggregation
|
||||
_ctwingAccountService = ctwingAccountService;
|
||||
_oneNETAccountService = oneNETAccountService;
|
||||
_ioTPlatformThingModelInfoAppService = ioTPlatformThingModelInfoAppService;
|
||||
_oneNETPulsarServiceSubscriptionService = oneNETPulsarServiceSubscriptionService;
|
||||
_tableModelService = tableModelService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -349,5 +360,37 @@ namespace JiShe.IoT.IoTPlatformAggregation
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// OneNET 数据日志处理重新处理
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
public async Task IoTPlatformDataLogReHandlerAsync(QueryOneNETReceiveMessageInput input)
|
||||
{
|
||||
try
|
||||
{
|
||||
var oneNETDataLoglist = await _tableModelService.OneNETLogInfoPageAsync(input);
|
||||
if (oneNETDataLoglist == null || oneNETDataLoglist.Items == null || oneNETDataLoglist.Items.Count <= 0)
|
||||
{
|
||||
_logger.LogError($"{nameof(IoTPlatformDataLogReHandlerAsync)}OneNET数据日志处理重新处理失败,未获取到数据");
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var item in oneNETDataLoglist.Items)
|
||||
{
|
||||
string topicName = string.Equals(item.MessageType, IoTDBDataTypeConst.Data, StringComparison.OrdinalIgnoreCase) ? DistributedMessageCenterConst.OneNETThingModelPropertyChangeReceivedEventName : DistributedMessageCenterConst.OneNETThingModelEventChangeReceivedEventName;
|
||||
var tempOneNETReceiveBasicModel = item.RawMessage.Deserialize<OneNETReceiveBasicModel>();
|
||||
await _oneNETPulsarServiceSubscriptionService.OneNETReceiveThingModelHandlerAsync(topicName, item.IoTDataType, tempOneNETReceiveBasicModel, true);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
using JiShe.ServicePro.PulsarProvider;
|
||||
using Volo.Abp.Localization;
|
||||
|
||||
namespace JiShe.IoT.DbMigrator
|
||||
|
||||
@ -1,42 +1,37 @@
|
||||
{
|
||||
"App": {
|
||||
"SelfUrl": "http://localhost:44315",
|
||||
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://10.10.10.104:4200"
|
||||
},
|
||||
"ConnectionStrings": {
|
||||
//"Default": "Data Source=192.168.111.174;Port=13306;Database=JiSheIoTProDB386;uid=root;pwd=JiShe!aqG#5kGgh&0;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true;TreatTinyAsBoolean=false;SslMode=None;Pooling=true;"
|
||||
"Default": "Host=192.168.111.174;Port=5432;Database=jisheiotprodb;Username=postgres;Password=JiShe!aqG#5kGgh&0;Encoding=UTF8;Pooling=true;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=100;"
|
||||
"Default": "Host=47.110.53.196;Port=35432;Database=jisheiotprodb68;Username=postgres;Password=JiShe!aqG#5kGgh&0;Encoding=UTF8;Pooling=true;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=100;"
|
||||
},
|
||||
"IoTDBOptions": {
|
||||
"UserName": "root",
|
||||
"Password": "Lixiao@1980",
|
||||
//"TreeModelClusterList": [ "192.168.111.174:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
|
||||
//"TableModelClusterList": [ "192.168.111.174:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
|
||||
"TreeModelClusterList": [ "192.168.111.174:30710" ],
|
||||
"TableModelClusterList": [ "192.168.111.174:30710" ],
|
||||
"PoolSize": 32,
|
||||
"DataBaseName": "jisheiotdata",
|
||||
"OpenDebugMode": false,
|
||||
"UseTableSessionPoolByDefault": false
|
||||
"Hangfire": {
|
||||
"Redis": {
|
||||
"Host": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#",
|
||||
"DB": "2"
|
||||
}
|
||||
},
|
||||
"FreeRedisOptions": {
|
||||
"ConnectionString": "192.168.111.42:30712,password=1q3J@BGf!yhTaD46nS#,abortConnect=false,connectTimeout=30000,allowAdmin=true,maxPoolSize=500,defaultdatabase=14",
|
||||
"UseDistributedCache": true
|
||||
"Redis": {
|
||||
"Configuration": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#,defaultdatabase=5"
|
||||
},
|
||||
"ServerApplicationOptions": {
|
||||
"ServerTagName": "JiSheCollectBus10",
|
||||
"FirstCollectionTime": "2025-04-28 15:07:00",
|
||||
"AutomaticVerificationTime": "16:07:00",
|
||||
"AutomaticTerminalVersionTime": "17:07:00",
|
||||
"AutomaticTelematicsModuleTime": "17:30:00",
|
||||
"AutomaticDayFreezeTime": "02:30:00",
|
||||
"AutomaticMonthFreezeTime": "03:30:00",
|
||||
"DefaultProtocolPlugin": "T37612012ProtocolPlugin",
|
||||
"VerifySignatureToken": "SIcPQnpMgaFDmNlIjNmzq5smshz7cKrh",
|
||||
"DistributedMessage": 2
|
||||
"Kafka": {
|
||||
"BootstrapServers": "47.110.62.104:9094,47.110.53.196:9094,47.110.60.222:9094",
|
||||
"EnableFilter": true,
|
||||
"EnableAuthorization": false,
|
||||
"SaslUserName": "lixiao",
|
||||
"SaslPassword": "lixiao@1980",
|
||||
"KafkaReplicationFactor": 3,
|
||||
"NumPartitions": 30,
|
||||
"TaskThreadCount": -1
|
||||
},
|
||||
"Pulsar": {
|
||||
"ServiceUrl": "pulsar://47.110.60.222:9093",
|
||||
"WebUrl": "http://47.110.60.222:9094",
|
||||
"ServiceUrl": "pulsar://47.110.53.196:9093", //pulsar+ssl://iot-north-mq.heclouds.com:6651 ,pulsar://47.110.53.196:26974
|
||||
"WebUrl": "http://47.110.53.196:9094",
|
||||
"UserName": "admin",
|
||||
"TenantName": "1YMVZZkAkRArjxSD8457",
|
||||
"Namespace": "OneNET",
|
||||
"MessageTTL": 3600,
|
||||
"PulsarSecretKey": "0fd7afb8b0d04e6abc4fdfdac2190a79",
|
||||
"PulsarSubscriptionCustomName": "sub",
|
||||
"EnableTls": false,
|
||||
@ -49,10 +44,78 @@
|
||||
"DefaultPartitions": 16,
|
||||
"DefaultBundles": 16,
|
||||
"EnableAutoCreation": true, //开启自动创建Topic
|
||||
"TopicMode": "Static", //Dynamic 主题模式
|
||||
"TopicMode": "Static", //Dynamic、Static 主题模式
|
||||
"EnableTopicTypeFilter": true, //允许Topic类型过滤
|
||||
"AllowedTopicTypes": [ "Static" ], //允许的Topic类型
|
||||
"AllowedClusters": [ "pulsar-cluster-1" ], //允许的集群
|
||||
"AdminRoles": [ "admin" ]
|
||||
"AdminRoles": [ "admin" ],
|
||||
"EnableConsumerIdleCleanup": true,
|
||||
"ConsumerIdleCleanupMinutes": 120,
|
||||
"EnableProducerIdleCleanup": true,
|
||||
"ProducerIdleCleanupMinutes": 60
|
||||
},
|
||||
"IoTDBOptions": {
|
||||
"UserName": "root",
|
||||
"Password": "Li#xiao@198!0",
|
||||
//"TreeModelClusterList": [ "47.110.53.196:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
|
||||
//"TableModelClusterList": [ "47.110.53.196:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
|
||||
"TreeModelClusterList": [ "47.110.53.196:30710" ],
|
||||
"TableModelClusterList": [ "47.110.53.196:30710" ],
|
||||
"PoolSize": 32,
|
||||
"DataBaseName": "jisheiotdata",
|
||||
"OpenDebugMode": true,
|
||||
"UseTableSessionPoolByDefault": false,
|
||||
"BatchInsertSize": 1000
|
||||
},
|
||||
"ServerApplicationOptions": {
|
||||
"ServerTagName": "JiSheCollectBus12",
|
||||
"FirstCollectionTime": "2025-04-28 15:07:00",
|
||||
"AutomaticVerificationTime": "16:07:00",
|
||||
"AutomaticTerminalVersionTime": "17:07:00",
|
||||
"AutomaticTelematicsModuleTime": "17:30:00",
|
||||
"AutomaticDayFreezeTime": "02:30:00",
|
||||
"AutomaticMonthFreezeTime": "03:30:00",
|
||||
"DefaultProtocolPlugin": "T37612012ProtocolPlugin",
|
||||
"SignatureToken": "SIcPQnpMgaFDmNlIjNmzq5smshz7cKrh",
|
||||
"AesSecurityKey": "RPTEIGCA1KvDEXS1",
|
||||
"IsAesEncrypted": false,
|
||||
"DistributedMessage": 2,
|
||||
"SnowflakeWorkerId": 1,
|
||||
"DownloadDeviceFirmwareBasicUrl": "http://121.42.175.177:32580/Aggregation/Device/DownloadFirmware?Id=",
|
||||
"MQTTServerType": 1
|
||||
},
|
||||
"Jwt": {
|
||||
"Audience": "JiShe.IoT",
|
||||
"SecurityKey": "dzehzRz9a8asdfaf43ghVD@d#fasdfaf567sdadfasdf=",
|
||||
"Issuer": "JiShe.IoT",
|
||||
"ExpirationTime": 2
|
||||
},
|
||||
"Cap": {
|
||||
"RabbitMq": {
|
||||
"HostName": "localhost",
|
||||
"UserName": "admin",
|
||||
"Password": "1q2w3E*",
|
||||
"Port": 5672
|
||||
}
|
||||
},
|
||||
"FreeRedisOptions": {
|
||||
"ConnectionString": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#,abortConnect=false,connectTimeout=30000,allowAdmin=true,maxPoolSize=500,defaultdatabase=14",
|
||||
"UseDistributedCache": true
|
||||
},
|
||||
"FreeSqlProviderOptions": {
|
||||
"UsePrepayDB": false,
|
||||
"UseEnergyDB": false,
|
||||
"PrintLog": false,
|
||||
"DataType": 1
|
||||
},
|
||||
"OneNETSecureReceiveOptions": {
|
||||
"OneNETVerifySignatureToken": "SIcPQnpMgaFDmNlIjNmzq5smshz7cKrh",
|
||||
"OneNETAesKey": "RPTEIGCA1KvDEXS1"
|
||||
},
|
||||
"DataChannelOptions": {
|
||||
"DefaultBatchSize": 10000,
|
||||
"TelemetryBatchSize": 10000,
|
||||
"EmptyWaitmilliseconds": 500,
|
||||
"TimeoutMilliseconds": 500
|
||||
}
|
||||
}
|
||||
@ -10,9 +10,18 @@ using JiShe.ServicePro.TemplateManagement;
|
||||
namespace JiShe.IoT
|
||||
{
|
||||
[DependsOn(
|
||||
typeof(ServiceProDomainSharedModule),
|
||||
typeof(BasicManagementDomainSharedModule),
|
||||
typeof(NotificationManagementDomainSharedModule),
|
||||
typeof(DataDictionaryManagementDomainSharedModule),
|
||||
typeof(LanguageManagementDomainSharedModule),
|
||||
typeof(TemplateManagementDomainSharedModule),
|
||||
typeof(DynamicMenuManagementDomainSharedModule),
|
||||
typeof(FileManagementDomainSharedModule),
|
||||
typeof(IoTDBManagementDomainSharedModule),
|
||||
typeof(ServiceProCoreModule)
|
||||
typeof(CTWingManagementDomainSharedModule),
|
||||
typeof(OneNETManagementDomainSharedModule),
|
||||
typeof(ServiceProCoreModule),
|
||||
typeof(DeviceManagementDomainSharedModule)
|
||||
)]
|
||||
public class IoTDomainSharedModule : AbpModule
|
||||
{
|
||||
|
||||
@ -11,22 +11,40 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'Debug'" Label="Debug">
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\BasicManagement\src\JiShe.ServicePro.BasicManagement.Domain.Shared\JiShe.ServicePro.BasicManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\CTWingManagement\src\JiShe.ServicePro.CTWingManagement.Domain.Shared\JiShe.ServicePro.CTWingManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\DataDictionaryManagement\src\JiShe.ServicePro.DataDictionaryManagement.Domain.Shared\JiShe.ServicePro.DataDictionaryManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\DeviceManagement\src\JiShe.ServicePro.DeviceManagement.Domain.Shared\JiShe.ServicePro.DeviceManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\DynamicMenuManagement\src\JiShe.ServicePro.DynamicMenuManagement.Domain.Shared\JiShe.ServicePro.DynamicMenuManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\FileManagement\src\JiShe.ServicePro.FileManagement.Domain.Shared\JiShe.ServicePro.FileManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\IoTDBManagement\src\JiShe.ServicePro.IoTDBManagement.Domain.Shared\JiShe.ServicePro.IoTDBManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\LanguageManagement\src\JiShe.ServicePro.LanguageManagement.Domain.Shared\JiShe.ServicePro.LanguageManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\NotificationManagement\src\JiShe.ServicePro.NotificationManagement.Domain.Shared\JiShe.ServicePro.NotificationManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\TemplateManagement\src\JiShe.ServicePro.TemplateManagement.Domain.Shared\JiShe.ServicePro.TemplateManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\OneNETManagement\src\JiShe.ServicePro.OneNETManagement.Domain.Shared\JiShe.ServicePro.OneNETManagement.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\frameworks\src\JiShe.ServicePro.Core\JiShe.ServicePro.Core.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\shared\JiShe.ServicePro.Shared.DynamicAnalyzerEngine\JiShe.ServicePro.Shared.DynamicAnalyzerEngine.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\shared\JiShe.ServicePro.Domain.Shared\JiShe.ServicePro.Domain.Shared.csproj" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'Release'" Label="Release">
|
||||
<PackageReference Include="JiShe.ServicePro.BasicManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.NotificationManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.DataDictionaryManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.LanguageManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.TemplateManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.DynamicMenuManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.FileManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.IoTDBManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.DeviceManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.Core" />
|
||||
<PackageReference Include="JiShe.ServicePro.CTWingManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.OneNETManagement.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.Shared.DynamicAnalyzerEngine" />
|
||||
<PackageReference Include="JiShe.ServicePro.Domain.Shared" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Volo.Abp.Core" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -1,4 +1,3 @@
|
||||
using JiShe.ServicePro;
|
||||
using JiShe.ServicePro.CTWingManagement;
|
||||
using JiShe.ServicePro.DeviceManagement;
|
||||
using JiShe.ServicePro.DynamicMenuManagement;
|
||||
@ -12,8 +11,18 @@ namespace JiShe.IoT
|
||||
{
|
||||
[DependsOn(
|
||||
typeof(IoTDomainSharedModule),
|
||||
typeof(BasicManagementDomainModule),
|
||||
typeof(NotificationManagementDomainModule),
|
||||
typeof(DataDictionaryManagementDomainModule),
|
||||
typeof(LanguageManagementDomainModule),
|
||||
typeof(TemplateManagementDomainModule),
|
||||
typeof(FileManagementDomainModule),
|
||||
typeof(IoTDBManagementDomainModule),
|
||||
typeof(ServiceProDomainModule)
|
||||
typeof(DynamicMenuManagementDomainModule),
|
||||
typeof(CTWingManagementDomainModule),
|
||||
typeof(OneNETManagementDomainModule),
|
||||
typeof(ServiceProFreeSqlProviderModule),
|
||||
typeof(DeviceManagementDomainModule)
|
||||
)]
|
||||
public class IoTDomainModule : AbpModule
|
||||
{
|
||||
|
||||
@ -7,20 +7,39 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'Debug'" Label="Debug">
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\BasicManagement\src\JiShe.ServicePro.BasicManagement.Domain\JiShe.ServicePro.BasicManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\CTWingManagement\src\JiShe.ServicePro.CTWingManagement.Domain\JiShe.ServicePro.CTWingManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\DataDictionaryManagement\src\JiShe.ServicePro.DataDictionaryManagement.Domain\JiShe.ServicePro.DataDictionaryManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\DeviceManagement\src\JiShe.ServicePro.DeviceManagement.Domain\JiShe.ServicePro.DeviceManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\DynamicMenuManagement\src\JiShe.ServicePro.DynamicMenuManagement.Domain\JiShe.ServicePro.DynamicMenuManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\FileManagement\src\JiShe.ServicePro.FileManagement.Domain\JiShe.ServicePro.FileManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\IoTDBManagement\src\JiShe.ServicePro.IoTDBManagement.Domain\JiShe.ServicePro.IoTDBManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\shared\JiShe.ServicePro.Domain\JiShe.ServicePro.Domain.csproj" />
|
||||
<ProjectReference Include="..\JiShe.IoT.Domain.Shared\JiShe.IoT.Domain.Shared.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\LanguageManagement\src\JiShe.ServicePro.LanguageManagement.Domain\JiShe.ServicePro.LanguageManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\NotificationManagement\src\JiShe.ServicePro.NotificationManagement.Domain\JiShe.ServicePro.NotificationManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\TemplateManagement\src\JiShe.ServicePro.TemplateManagement.Domain\JiShe.ServicePro.TemplateManagement.Domain.csproj" />
|
||||
<ProjectReference Include="..\..\JiShe.ServicePro\modules\OneNETManagement\src\JiShe.ServicePro.OneNETManagement.Domain\JiShe.ServicePro.OneNETManagement.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'Release'" Label="Release">
|
||||
<PackageReference Include="JiShe.IoT.Domain.Shared" />
|
||||
<PackageReference Include="JiShe.ServicePro.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.BasicManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.NotificationManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.DataDictionaryManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.LanguageManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.TemplateManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.DynamicMenuManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.FileManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.IoTDBManagement.Domain" />
|
||||
|
||||
<PackageReference Include="JiShe.ServicePro.DeviceManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.CTWingManagement.Domain" />
|
||||
<PackageReference Include="JiShe.ServicePro.OneNETManagement.Domain" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\JiShe.IoT.Domain.Shared\JiShe.IoT.Domain.Shared.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -89,6 +89,7 @@ namespace JiShe.IoT.EntityFrameworkCore
|
||||
public DbSet<OneNETAccountInfos> OneNETAccountInfo { get; set; }
|
||||
public DbSet<OneNETProductInfos> OneNETProductInfo { get; set; }
|
||||
|
||||
public DbSet<ResourcePermissionGrant> ResourcePermissionGrants { get; set; }
|
||||
|
||||
public IoTDbContext(DbContextOptions<IoTDbContext> options)
|
||||
: base(options)
|
||||
|
||||
@ -7,9 +7,9 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\JiShe.IoT.Domain\JiShe.IoT.Domain.csproj" />
|
||||
<PackageReference Include="Volo.Abp.EntityFrameworkCore.PostgreSql" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="5.3.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.Common" Version="5.3.0" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="5.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'Debug'" Label="Debug">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,30 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace JiShe.IoT.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class updatedevicethingmodel : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "IsEnable",
|
||||
table: "ServiceProDeviceThingModelCommandInfo",
|
||||
type: "boolean",
|
||||
nullable: false,
|
||||
defaultValue: false,
|
||||
comment: "是否启用");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "IsEnable",
|
||||
table: "ServiceProDeviceThingModelCommandInfo");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,30 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace JiShe.IoT.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class updatedeviceinfo20260128 : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<int>(
|
||||
name: "ReadingMode",
|
||||
table: "ServiceProDeviceInfo",
|
||||
type: "integer",
|
||||
nullable: false,
|
||||
defaultValue: 1,
|
||||
comment: "抄读模式");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "ReadingMode",
|
||||
table: "ServiceProDeviceInfo");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,28 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace JiShe.IoT.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class updatedeviceinfo202601281007 : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.RenameColumn(
|
||||
name: "IsNeedConfigDevicMdoel",
|
||||
table: "ServiceProDeviceInfo",
|
||||
newName: "IsNeedConfigDeviceModel");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.RenameColumn(
|
||||
name: "IsNeedConfigDeviceModel",
|
||||
table: "ServiceProDeviceInfo",
|
||||
newName: "IsNeedConfigDevicMdoel");
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,52 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace JiShe.IoT.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class alertOneNETProduct20260310 : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "DataPushInfo",
|
||||
table: "ServiceProOneNETProductInfo",
|
||||
type: "text",
|
||||
nullable: true,
|
||||
comment: "数据推送信息,HTTP推送就是推送地址,Reist推送主题或者key");
|
||||
|
||||
migrationBuilder.AddColumn<int>(
|
||||
name: "DataPushType",
|
||||
table: "ServiceProOneNETProductInfo",
|
||||
type: "integer",
|
||||
nullable: true,
|
||||
comment: "数据推送类型, 1-HttpPost;2-ReisSubscription");
|
||||
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "IsNeedPushData",
|
||||
table: "ServiceProOneNETProductInfo",
|
||||
type: "boolean",
|
||||
nullable: false,
|
||||
defaultValue: false,
|
||||
comment: "是否需要推送数据");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "DataPushInfo",
|
||||
table: "ServiceProOneNETProductInfo");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "DataPushType",
|
||||
table: "ServiceProOneNETProductInfo");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "IsNeedPushData",
|
||||
table: "ServiceProOneNETProductInfo");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,51 +0,0 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace JiShe.IoT.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class alterOneNETProductInfos20260311 : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "DataPushInfo",
|
||||
table: "ServiceProOneNETProductInfo",
|
||||
type: "text",
|
||||
nullable: true,
|
||||
comment: "数据推送信息,HTTP推送就是推送路径,Redis推送主题或者key",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "text",
|
||||
oldNullable: true,
|
||||
oldComment: "数据推送信息,HTTP推送就是推送地址,Reist推送主题或者key");
|
||||
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "DataPushServer",
|
||||
table: "ServiceProOneNETProductInfo",
|
||||
type: "text",
|
||||
nullable: true,
|
||||
comment: "数据推送服务地址信息,例如HTTP地址:http://192.168.1.1:8080,Redis订阅地址:192.168.1.1:6379");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "DataPushServer",
|
||||
table: "ServiceProOneNETProductInfo");
|
||||
|
||||
migrationBuilder.AlterColumn<string>(
|
||||
name: "DataPushInfo",
|
||||
table: "ServiceProOneNETProductInfo",
|
||||
type: "text",
|
||||
nullable: true,
|
||||
comment: "数据推送信息,HTTP推送就是推送地址,Reist推送主题或者key",
|
||||
oldClrType: typeof(string),
|
||||
oldType: "text",
|
||||
oldNullable: true,
|
||||
oldComment: "数据推送信息,HTTP推送就是推送路径,Redis推送主题或者key");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,7 @@ using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using Volo.Abp.EntityFrameworkCore;
|
||||
|
||||
@ -13,8 +14,8 @@ using Volo.Abp.EntityFrameworkCore;
|
||||
namespace JiShe.IoT.Migrations
|
||||
{
|
||||
[DbContext(typeof(IoTDbContext))]
|
||||
[Migration("20260311060722_alterOneNETProductInfos20260311")]
|
||||
partial class alterOneNETProductInfos20260311
|
||||
[Migration("20260320152205_InitialCreate")]
|
||||
partial class InitialCreate
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
@ -22,7 +23,7 @@ namespace JiShe.IoT.Migrations
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.PostgreSql)
|
||||
.HasAnnotation("ProductVersion", "10.0.2")
|
||||
.HasAnnotation("ProductVersion", "10.0.5")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
@ -535,6 +536,10 @@ namespace JiShe.IoT.Migrations
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("ExtendedAttributeValue")
|
||||
.HasMaxLength(2048)
|
||||
.HasColumnType("character varying(2048)");
|
||||
|
||||
b.Property<bool>("IsEnabled")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
@ -1561,6 +1566,9 @@ namespace JiShe.IoT.Migrations
|
||||
.HasDefaultValue("r")
|
||||
.HasComment("物模型标识符访问模式");
|
||||
|
||||
b.Property<string>("CallServiceOperateCommand")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ConcurrencyStamp")
|
||||
.IsConcurrencyToken()
|
||||
.IsRequired()
|
||||
@ -1614,8 +1622,8 @@ namespace JiShe.IoT.Migrations
|
||||
.HasColumnType("character varying(64)")
|
||||
.HasComment("物联网平台中对应的产品物模型属性或者事件数据类型");
|
||||
|
||||
b.Property<string>("IoTPlatformRawFieldExtension")
|
||||
.HasColumnType("text")
|
||||
b.Property<JToken>("IoTPlatformRawFieldExtension")
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("物联网平台中对应产品物模型标识符扩展,结构体或者数组的时候,是参数的名称与长度的键值对,其他类型就是长度或者值范围");
|
||||
|
||||
b.Property<string>("IoTPlatformRawFieldName")
|
||||
@ -1672,6 +1680,10 @@ namespace JiShe.IoT.Migrations
|
||||
.HasColumnType("character varying(64)")
|
||||
.HasComment("管理后台产品标准的物模型属性或者事件名称");
|
||||
|
||||
b.Property<JToken>("StandardFieldFieldExtension")
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("标准物模型字段标识符扩展,数组或者结构体时候的参数或者元素名称集合");
|
||||
|
||||
b.Property<string>("StandardFieldName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(64)
|
||||
@ -3522,6 +3534,9 @@ namespace JiShe.IoT.Migrations
|
||||
b.Property<DateTimeOffset?>("LastPasswordChangeTime")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<DateTimeOffset?>("LastSignInTime")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<bool>("LockoutEnabled")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("boolean")
|
||||
@ -3717,6 +3732,47 @@ namespace JiShe.IoT.Migrations
|
||||
b.ToTable("AbpUserOrganizationUnits", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
|
||||
{
|
||||
b.Property<byte[]>("CredentialId")
|
||||
.HasMaxLength(1024)
|
||||
.HasColumnType("bytea");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uuid")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.Property<Guid>("UserId")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.HasKey("CredentialId");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("AbpUserPasskeys", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
|
||||
{
|
||||
b.Property<Guid>("UserId")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<DateTimeOffset>("CreatedAt")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uuid")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.HasKey("UserId", "Password");
|
||||
|
||||
b.ToTable("AbpUserPasswordHistories", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
|
||||
{
|
||||
b.Property<Guid>("UserId")
|
||||
@ -3881,13 +3937,16 @@ namespace JiShe.IoT.Migrations
|
||||
.HasColumnName("ExtraProperties");
|
||||
|
||||
b.Property<string>("GroupName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("character varying(128)");
|
||||
|
||||
b.Property<bool>("IsEnabled")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("ManagementPermissionName")
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("character varying(128)");
|
||||
|
||||
b.Property<byte>("MultiTenancySide")
|
||||
.HasColumnType("smallint");
|
||||
|
||||
@ -3904,6 +3963,10 @@ namespace JiShe.IoT.Migrations
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("character varying(128)");
|
||||
|
||||
b.Property<string>("ResourceName")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("StateCheckers")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
@ -3912,7 +3975,7 @@ namespace JiShe.IoT.Migrations
|
||||
|
||||
b.HasIndex("GroupName");
|
||||
|
||||
b.HasIndex("Name")
|
||||
b.HasIndex("ResourceName", "Name")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("AbpPermissions", (string)null);
|
||||
@ -3977,6 +4040,48 @@ namespace JiShe.IoT.Migrations
|
||||
b.ToTable("AbpPermissionGroups", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("character varying(128)");
|
||||
|
||||
b.Property<string>("ProviderKey")
|
||||
.IsRequired()
|
||||
.HasMaxLength(64)
|
||||
.HasColumnType("character varying(64)");
|
||||
|
||||
b.Property<string>("ProviderName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(64)
|
||||
.HasColumnType("character varying(64)");
|
||||
|
||||
b.Property<string>("ResourceKey")
|
||||
.IsRequired()
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("ResourceName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uuid")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("AbpResourcePermissionGrants", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
@ -4222,6 +4327,62 @@ namespace JiShe.IoT.Migrations
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
|
||||
{
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser", null)
|
||||
.WithMany("Passkeys")
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 =>
|
||||
{
|
||||
b1.Property<byte[]>("IdentityUserPasskeyCredentialId");
|
||||
|
||||
b1.Property<byte[]>("AttestationObject");
|
||||
|
||||
b1.Property<byte[]>("ClientDataJson");
|
||||
|
||||
b1.Property<DateTimeOffset>("CreatedAt");
|
||||
|
||||
b1.Property<bool>("IsBackedUp");
|
||||
|
||||
b1.Property<bool>("IsBackupEligible");
|
||||
|
||||
b1.Property<bool>("IsUserVerified");
|
||||
|
||||
b1.Property<string>("Name");
|
||||
|
||||
b1.Property<byte[]>("PublicKey");
|
||||
|
||||
b1.Property<long>("SignCount");
|
||||
|
||||
b1.PrimitiveCollection<string>("Transports");
|
||||
|
||||
b1.HasKey("IdentityUserPasskeyCredentialId");
|
||||
|
||||
b1.ToTable("AbpUserPasskeys");
|
||||
|
||||
b1
|
||||
.ToJson("Data")
|
||||
.HasColumnType("jsonb");
|
||||
|
||||
b1.WithOwner()
|
||||
.HasForeignKey("IdentityUserPasskeyCredentialId");
|
||||
});
|
||||
|
||||
b.Navigation("Data");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
|
||||
{
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser", null)
|
||||
.WithMany("PasswordHistories")
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
|
||||
{
|
||||
b.HasOne("Volo.Abp.Identity.IdentityRole", null)
|
||||
@ -4307,6 +4468,10 @@ namespace JiShe.IoT.Migrations
|
||||
|
||||
b.Navigation("OrganizationUnits");
|
||||
|
||||
b.Navigation("Passkeys");
|
||||
|
||||
b.Navigation("PasswordHistories");
|
||||
|
||||
b.Navigation("Roles");
|
||||
|
||||
b.Navigation("Tokens");
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
#nullable disable
|
||||
|
||||
@ -397,8 +398,10 @@ namespace JiShe.IoT.Migrations
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||
GroupName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
||||
GroupName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true),
|
||||
Name = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
||||
ResourceName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||
ManagementPermissionName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true),
|
||||
ParentName = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true),
|
||||
DisplayName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
||||
IsEnabled = table.Column<bool>(type: "boolean", nullable: false),
|
||||
@ -412,6 +415,23 @@ namespace JiShe.IoT.Migrations
|
||||
table.PrimaryKey("PK_AbpPermissions", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "AbpResourcePermissionGrants",
|
||||
columns: table => new
|
||||
{
|
||||
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
||||
TenantId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
Name = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
|
||||
ProviderName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
||||
ProviderKey = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false),
|
||||
ResourceName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
||||
ResourceKey = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_AbpResourcePermissionGrants", x => x.Id);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "AbpRoles",
|
||||
columns: table => new
|
||||
@ -579,6 +599,7 @@ namespace JiShe.IoT.Migrations
|
||||
ShouldChangePasswordOnNextLogin = table.Column<bool>(type: "boolean", nullable: false),
|
||||
EntityVersion = table.Column<int>(type: "integer", nullable: false),
|
||||
LastPasswordChangeTime = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
||||
LastSignInTime = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: true),
|
||||
ExtraProperties = table.Column<string>(type: "text", nullable: false),
|
||||
ConcurrencyStamp = table.Column<string>(type: "character varying(40)", maxLength: 40, nullable: false),
|
||||
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||
@ -735,11 +756,12 @@ namespace JiShe.IoT.Migrations
|
||||
LastOnlineTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, comment: "最后在线时间"),
|
||||
LastOfflineTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, comment: "最后离线时间"),
|
||||
DeviceSource = table.Column<int>(type: "integer", nullable: false, comment: "设备来源类型"),
|
||||
IsNeedConfigDevicMdoel = table.Column<bool>(type: "boolean", nullable: false, comment: "是否需要配置设备模型"),
|
||||
IsNeedConfigDeviceModel = table.Column<bool>(type: "boolean", nullable: false, comment: "是否需要配置设备模型"),
|
||||
DeviceThingModelDataId = table.Column<Guid>(type: "uuid", nullable: true, comment: "设备物模型数据Id"),
|
||||
FirmwareVersion = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true, comment: "固件版本"),
|
||||
UpgradeDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, comment: "升级日期"),
|
||||
SubDeviceCapacity = table.Column<int>(type: "integer", nullable: false, defaultValue: 64, comment: "子设备容量"),
|
||||
ReadingMode = table.Column<int>(type: "integer", nullable: false, defaultValue: 1, comment: "抄读模式"),
|
||||
ConcurrencyStamp = table.Column<string>(type: "character varying(40)", maxLength: 40, nullable: false),
|
||||
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
@ -772,6 +794,7 @@ namespace JiShe.IoT.Migrations
|
||||
CommandName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false, comment: "指令名称"),
|
||||
IssueCommand = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: false, comment: "完整的单个下发指令"),
|
||||
PropertyArray = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false, comment: "指令设备端物模型的属性名称集合,JSON格式字符串数组"),
|
||||
IsEnable = table.Column<bool>(type: "boolean", nullable: false, comment: "是否启用"),
|
||||
ConcurrencyStamp = table.Column<string>(type: "character varying(40)", maxLength: 40, nullable: false),
|
||||
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
@ -916,15 +939,17 @@ namespace JiShe.IoT.Migrations
|
||||
FiledType = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false, comment: "物联网平台中对应产品物模型属性或者事件类型"),
|
||||
IoTPlatformRawFieldName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false, comment: "物联网平台中对应的产品物模型属性或者事件名称"),
|
||||
IoTPlatformRawFieldDataType = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: true, comment: "物联网平台中对应的产品物模型属性或者事件数据类型"),
|
||||
IoTPlatformRawFieldExtension = table.Column<JToken>(type: "jsonb", nullable: true, comment: "物联网平台中对应产品物模型标识符扩展,结构体或者数组的时候,是参数的名称与长度的键值对,其他类型就是长度或者值范围"),
|
||||
StandardFieldName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false, comment: "管理后台产品标准的物模型属性或者事件名称"),
|
||||
StandardFieldValueType = table.Column<string>(type: "character varying(20)", maxLength: 20, nullable: false, comment: "标准物模型字段值类型"),
|
||||
StandardFieldDisplayName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false, comment: "管理后台产品标准的物模型属性或者事件名称"),
|
||||
StandardFieldFieldExtension = table.Column<JToken>(type: "jsonb", nullable: true, comment: "标准物模型字段标识符扩展,数组或者结构体时候的参数或者元素名称集合"),
|
||||
IsValueNeedConvert = table.Column<bool>(type: "boolean", nullable: false, comment: "是否需要值类型转换"),
|
||||
IsSpecialIdentifier = table.Column<bool>(type: "boolean", nullable: false, comment: "是否是特殊物模型标识符"),
|
||||
IoTPlatformRawFieldExtension = table.Column<string>(type: "text", nullable: true, comment: "物联网平台中对应产品物模型标识符扩展,结构体或者数组的时候,是参数的名称与长度的键值对,其他类型就是长度或者值范围"),
|
||||
IsOperableIdentifier = table.Column<bool>(type: "boolean", nullable: false, comment: "是否可操作物模型标识符"),
|
||||
AccessMode = table.Column<string>(type: "character varying(10)", maxLength: 10, nullable: false, defaultValue: "r", comment: "物模型标识符访问模式"),
|
||||
IdentifierType = table.Column<int>(type: "integer", nullable: false, comment: "物模型标识符类型"),
|
||||
CallServiceOperateCommand = table.Column<string>(type: "text", nullable: true),
|
||||
ConcurrencyStamp = table.Column<string>(type: "character varying(40)", maxLength: 40, nullable: false),
|
||||
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
@ -1044,6 +1069,10 @@ namespace JiShe.IoT.Migrations
|
||||
CommunicationAddress = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true, comment: "通讯服务地址"),
|
||||
CommunicationAddressTLS = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true, comment: "TLS通讯服务地址"),
|
||||
ThingModelInfos = table.Column<string>(type: "text", nullable: true, comment: "平台物模型信息"),
|
||||
IsNeedPushData = table.Column<bool>(type: "boolean", nullable: false, defaultValue: false, comment: "是否需要推送数据"),
|
||||
DataPushType = table.Column<int>(type: "integer", nullable: true, comment: "数据推送类型, 1-HttpPost;2-ReisSubscription"),
|
||||
DataPushServer = table.Column<string>(type: "text", nullable: true, comment: "数据推送服务地址信息,例如HTTP地址:http://192.168.1.1:8080,Redis订阅地址:192.168.1.1:6379"),
|
||||
DataPushInfo = table.Column<string>(type: "text", nullable: true, comment: "数据推送信息,HTTP推送就是推送路径,Redis推送主题或者key"),
|
||||
ConcurrencyStamp = table.Column<string>(type: "character varying(40)", maxLength: 40, nullable: false),
|
||||
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
@ -1213,6 +1242,7 @@ namespace JiShe.IoT.Migrations
|
||||
Description = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: true),
|
||||
IsEnabled = table.Column<bool>(type: "boolean", nullable: false),
|
||||
ExtendedAttribute = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
||||
ExtendedAttributeValue = table.Column<string>(type: "character varying(2048)", maxLength: 2048, nullable: true),
|
||||
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
||||
CreatorId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
LastModificationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),
|
||||
@ -1366,6 +1396,46 @@ namespace JiShe.IoT.Migrations
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "AbpUserPasskeys",
|
||||
columns: table => new
|
||||
{
|
||||
CredentialId = table.Column<byte[]>(type: "bytea", maxLength: 1024, nullable: false),
|
||||
TenantId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||
Data = table.Column<string>(type: "jsonb", nullable: true)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_AbpUserPasskeys", x => x.CredentialId);
|
||||
table.ForeignKey(
|
||||
name: "FK_AbpUserPasskeys_AbpUsers_UserId",
|
||||
column: x => x.UserId,
|
||||
principalTable: "AbpUsers",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "AbpUserPasswordHistories",
|
||||
columns: table => new
|
||||
{
|
||||
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
||||
Password = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
|
||||
TenantId = table.Column<Guid>(type: "uuid", nullable: true),
|
||||
CreatedAt = table.Column<DateTimeOffset>(type: "timestamp with time zone", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
||||
table.PrimaryKey("PK_AbpUserPasswordHistories", x => new { x.UserId, x.Password });
|
||||
table.ForeignKey(
|
||||
name: "FK_AbpUserPasswordHistories_AbpUsers_UserId",
|
||||
column: x => x.UserId,
|
||||
principalTable: "AbpUsers",
|
||||
principalColumn: "Id",
|
||||
onDelete: ReferentialAction.Cascade);
|
||||
});
|
||||
|
||||
migrationBuilder.CreateTable(
|
||||
name: "AbpUserRoles",
|
||||
columns: table => new
|
||||
@ -1567,9 +1637,15 @@ namespace JiShe.IoT.Migrations
|
||||
column: "GroupName");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_AbpPermissions_Name",
|
||||
name: "IX_AbpPermissions_ResourceName_Name",
|
||||
table: "AbpPermissions",
|
||||
column: "Name",
|
||||
columns: new[] { "ResourceName", "Name" },
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_AbpResourcePermissionGrants_TenantId_Name_ResourceName_Reso~",
|
||||
table: "AbpResourcePermissionGrants",
|
||||
columns: new[] { "TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey" },
|
||||
unique: true);
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
@ -1654,6 +1730,11 @@ namespace JiShe.IoT.Migrations
|
||||
table: "AbpUserOrganizationUnits",
|
||||
columns: new[] { "UserId", "OrganizationUnitId" });
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_AbpUserPasskeys_UserId",
|
||||
table: "AbpUserPasskeys",
|
||||
column: "UserId");
|
||||
|
||||
migrationBuilder.CreateIndex(
|
||||
name: "IX_AbpUserRoles_RoleId_UserId",
|
||||
table: "AbpUserRoles",
|
||||
@ -1960,6 +2041,9 @@ namespace JiShe.IoT.Migrations
|
||||
migrationBuilder.DropTable(
|
||||
name: "AbpPermissions");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "AbpResourcePermissionGrants");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "AbpRoleClaims");
|
||||
|
||||
@ -1990,6 +2074,12 @@ namespace JiShe.IoT.Migrations
|
||||
migrationBuilder.DropTable(
|
||||
name: "AbpUserOrganizationUnits");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "AbpUserPasskeys");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "AbpUserPasswordHistories");
|
||||
|
||||
migrationBuilder.DropTable(
|
||||
name: "AbpUserRoles");
|
||||
|
||||
@ -4,6 +4,7 @@ using JiShe.IoT.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
using Volo.Abp.EntityFrameworkCore;
|
||||
|
||||
@ -19,7 +20,7 @@ namespace JiShe.IoT.Migrations
|
||||
#pragma warning disable 612, 618
|
||||
modelBuilder
|
||||
.HasAnnotation("_Abp_DatabaseProvider", EfCoreDatabaseProvider.PostgreSql)
|
||||
.HasAnnotation("ProductVersion", "10.0.2")
|
||||
.HasAnnotation("ProductVersion", "10.0.5")
|
||||
.HasAnnotation("Relational:MaxIdentifierLength", 63);
|
||||
|
||||
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
|
||||
@ -532,6 +533,10 @@ namespace JiShe.IoT.Migrations
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("ExtendedAttributeValue")
|
||||
.HasMaxLength(2048)
|
||||
.HasColumnType("character varying(2048)");
|
||||
|
||||
b.Property<bool>("IsEnabled")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
@ -1558,6 +1563,9 @@ namespace JiShe.IoT.Migrations
|
||||
.HasDefaultValue("r")
|
||||
.HasComment("物模型标识符访问模式");
|
||||
|
||||
b.Property<string>("CallServiceOperateCommand")
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<string>("ConcurrencyStamp")
|
||||
.IsConcurrencyToken()
|
||||
.IsRequired()
|
||||
@ -1611,8 +1619,8 @@ namespace JiShe.IoT.Migrations
|
||||
.HasColumnType("character varying(64)")
|
||||
.HasComment("物联网平台中对应的产品物模型属性或者事件数据类型");
|
||||
|
||||
b.Property<string>("IoTPlatformRawFieldExtension")
|
||||
.HasColumnType("text")
|
||||
b.Property<JToken>("IoTPlatformRawFieldExtension")
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("物联网平台中对应产品物模型标识符扩展,结构体或者数组的时候,是参数的名称与长度的键值对,其他类型就是长度或者值范围");
|
||||
|
||||
b.Property<string>("IoTPlatformRawFieldName")
|
||||
@ -1669,6 +1677,10 @@ namespace JiShe.IoT.Migrations
|
||||
.HasColumnType("character varying(64)")
|
||||
.HasComment("管理后台产品标准的物模型属性或者事件名称");
|
||||
|
||||
b.Property<JToken>("StandardFieldFieldExtension")
|
||||
.HasColumnType("jsonb")
|
||||
.HasComment("标准物模型字段标识符扩展,数组或者结构体时候的参数或者元素名称集合");
|
||||
|
||||
b.Property<string>("StandardFieldName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(64)
|
||||
@ -3519,6 +3531,9 @@ namespace JiShe.IoT.Migrations
|
||||
b.Property<DateTimeOffset?>("LastPasswordChangeTime")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<DateTimeOffset?>("LastSignInTime")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<bool>("LockoutEnabled")
|
||||
.ValueGeneratedOnAdd()
|
||||
.HasColumnType("boolean")
|
||||
@ -3714,6 +3729,47 @@ namespace JiShe.IoT.Migrations
|
||||
b.ToTable("AbpUserOrganizationUnits", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
|
||||
{
|
||||
b.Property<byte[]>("CredentialId")
|
||||
.HasMaxLength(1024)
|
||||
.HasColumnType("bytea");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uuid")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.Property<Guid>("UserId")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.HasKey("CredentialId");
|
||||
|
||||
b.HasIndex("UserId");
|
||||
|
||||
b.ToTable("AbpUserPasskeys", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
|
||||
{
|
||||
b.Property<Guid>("UserId")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<string>("Password")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<DateTimeOffset>("CreatedAt")
|
||||
.HasColumnType("timestamp with time zone");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uuid")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.HasKey("UserId", "Password");
|
||||
|
||||
b.ToTable("AbpUserPasswordHistories", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
|
||||
{
|
||||
b.Property<Guid>("UserId")
|
||||
@ -3878,13 +3934,16 @@ namespace JiShe.IoT.Migrations
|
||||
.HasColumnName("ExtraProperties");
|
||||
|
||||
b.Property<string>("GroupName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("character varying(128)");
|
||||
|
||||
b.Property<bool>("IsEnabled")
|
||||
.HasColumnType("boolean");
|
||||
|
||||
b.Property<string>("ManagementPermissionName")
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("character varying(128)");
|
||||
|
||||
b.Property<byte>("MultiTenancySide")
|
||||
.HasColumnType("smallint");
|
||||
|
||||
@ -3901,6 +3960,10 @@ namespace JiShe.IoT.Migrations
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("character varying(128)");
|
||||
|
||||
b.Property<string>("ResourceName")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("StateCheckers")
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
@ -3909,7 +3972,7 @@ namespace JiShe.IoT.Migrations
|
||||
|
||||
b.HasIndex("GroupName");
|
||||
|
||||
b.HasIndex("Name")
|
||||
b.HasIndex("ResourceName", "Name")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("AbpPermissions", (string)null);
|
||||
@ -3974,6 +4037,48 @@ namespace JiShe.IoT.Migrations
|
||||
b.ToTable("AbpPermissionGroups", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.PermissionManagement.ResourcePermissionGrant", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
.HasColumnType("uuid");
|
||||
|
||||
b.Property<string>("Name")
|
||||
.IsRequired()
|
||||
.HasMaxLength(128)
|
||||
.HasColumnType("character varying(128)");
|
||||
|
||||
b.Property<string>("ProviderKey")
|
||||
.IsRequired()
|
||||
.HasMaxLength(64)
|
||||
.HasColumnType("character varying(64)");
|
||||
|
||||
b.Property<string>("ProviderName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(64)
|
||||
.HasColumnType("character varying(64)");
|
||||
|
||||
b.Property<string>("ResourceKey")
|
||||
.IsRequired()
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<string>("ResourceName")
|
||||
.IsRequired()
|
||||
.HasMaxLength(256)
|
||||
.HasColumnType("character varying(256)");
|
||||
|
||||
b.Property<Guid?>("TenantId")
|
||||
.HasColumnType("uuid")
|
||||
.HasColumnName("TenantId");
|
||||
|
||||
b.HasKey("Id");
|
||||
|
||||
b.HasIndex("TenantId", "Name", "ResourceName", "ResourceKey", "ProviderName", "ProviderKey")
|
||||
.IsUnique();
|
||||
|
||||
b.ToTable("AbpResourcePermissionGrants", (string)null);
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.SettingManagement.Setting", b =>
|
||||
{
|
||||
b.Property<Guid>("Id")
|
||||
@ -4219,6 +4324,62 @@ namespace JiShe.IoT.Migrations
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasskey", b =>
|
||||
{
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser", null)
|
||||
.WithMany("Passkeys")
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
|
||||
b.OwnsOne("Volo.Abp.Identity.IdentityPasskeyData", "Data", b1 =>
|
||||
{
|
||||
b1.Property<byte[]>("IdentityUserPasskeyCredentialId");
|
||||
|
||||
b1.Property<byte[]>("AttestationObject");
|
||||
|
||||
b1.Property<byte[]>("ClientDataJson");
|
||||
|
||||
b1.Property<DateTimeOffset>("CreatedAt");
|
||||
|
||||
b1.Property<bool>("IsBackedUp");
|
||||
|
||||
b1.Property<bool>("IsBackupEligible");
|
||||
|
||||
b1.Property<bool>("IsUserVerified");
|
||||
|
||||
b1.Property<string>("Name");
|
||||
|
||||
b1.Property<byte[]>("PublicKey");
|
||||
|
||||
b1.Property<long>("SignCount");
|
||||
|
||||
b1.PrimitiveCollection<string>("Transports");
|
||||
|
||||
b1.HasKey("IdentityUserPasskeyCredentialId");
|
||||
|
||||
b1.ToTable("AbpUserPasskeys");
|
||||
|
||||
b1
|
||||
.ToJson("Data")
|
||||
.HasColumnType("jsonb");
|
||||
|
||||
b1.WithOwner()
|
||||
.HasForeignKey("IdentityUserPasskeyCredentialId");
|
||||
});
|
||||
|
||||
b.Navigation("Data");
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserPasswordHistory", b =>
|
||||
{
|
||||
b.HasOne("Volo.Abp.Identity.IdentityUser", null)
|
||||
.WithMany("PasswordHistories")
|
||||
.HasForeignKey("UserId")
|
||||
.OnDelete(DeleteBehavior.Cascade)
|
||||
.IsRequired();
|
||||
});
|
||||
|
||||
modelBuilder.Entity("Volo.Abp.Identity.IdentityUserRole", b =>
|
||||
{
|
||||
b.HasOne("Volo.Abp.Identity.IdentityRole", null)
|
||||
@ -4304,6 +4465,10 @@ namespace JiShe.IoT.Migrations
|
||||
|
||||
b.Navigation("OrganizationUnits");
|
||||
|
||||
b.Navigation("Passkeys");
|
||||
|
||||
b.Navigation("PasswordHistories");
|
||||
|
||||
b.Navigation("Roles");
|
||||
|
||||
b.Navigation("Tokens");
|
||||
|
||||
@ -6,6 +6,7 @@ using JiShe.ServicePro;
|
||||
using JiShe.ServicePro.Commons;
|
||||
using JiShe.ServicePro.Core;
|
||||
using JiShe.ServicePro.DeviceManagement.DeviceInfos;
|
||||
using JiShe.ServicePro.IoTDBManagement.TableModels;
|
||||
|
||||
namespace JiShe.IoT.Controllers
|
||||
{
|
||||
@ -69,5 +70,18 @@ namespace JiShe.IoT.Controllers
|
||||
return await _iotPlatformAggregationService.UpdateIoTPlatformProductThingModelInfoAsync(input);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// OneNET数据日志处理重新处理
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost(nameof(IoTPlatformDataLogReHandlerAsync))]
|
||||
[SwaggerOperation(summary: "OneNET数据日志处理重新处理", Tags = new[] { "AggregationIoTPlatform" })]
|
||||
public async Task IoTPlatformDataLogReHandlerAsync(QueryOneNETReceiveMessageInput input)
|
||||
{
|
||||
await _iotPlatformAggregationService.IoTPlatformDataLogReHandlerAsync(input);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user