This commit is contained in:
ChenYi 2025-05-27 14:27:50 +08:00
parent bd97056548
commit 86da3f9799
197 changed files with 486 additions and 37374 deletions

View File

@ -8,14 +8,14 @@ ENV ASPNETCORE_ENVIRONMENT=Production
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /src
COPY . .
WORKDIR "/host/JiShe.ServicePro.HttpApi.Host"
RUN dotnet build "JiShe.ServicePro.HttpApi.Host.csproj" -c Release -o /app/build
WORKDIR "/host/JiShe.IoT.HttpApi.Host"
RUN dotnet build "JiShe.IoT.HttpApi.Host.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "JiShe.ServicePro.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false
RUN dotnet publish "JiShe.IoT.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "JiShe.ServicePro.HttpApi.Host.dll"]
ENTRYPOINT ["dotnet", "JiShe.IoT.HttpApi.Host.dll"]

View File

@ -2,55 +2,55 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31410.414
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Domain", "src\JiShe.ServicePro.Domain\JiShe.ServicePro.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Domain", "src\JiShe.IoT.Domain\JiShe.IoT.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Application", "src\JiShe.ServicePro.Application\JiShe.ServicePro.Application.csproj", "{1A94A50E-06DC-43C1-80B5-B662820EC3EB}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Application", "src\JiShe.IoT.Application\JiShe.IoT.Application.csproj", "{1A94A50E-06DC-43C1-80B5-B662820EC3EB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.EntityFrameworkCore", "src\JiShe.ServicePro.EntityFrameworkCore\JiShe.ServicePro.EntityFrameworkCore.csproj", "{C956DD76-69C8-4A9C-83EA-D17DF83340FD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.EntityFrameworkCore", "src\JiShe.IoT.EntityFrameworkCore\JiShe.IoT.EntityFrameworkCore.csproj", "{C956DD76-69C8-4A9C-83EA-D17DF83340FD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CA9AC87F-097E-4F15-8393-4BC07735A5B0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{04DBDB01-70F4-4E06-B468-8F87850B22BE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Application.Tests", "test\JiShe.ServicePro.Application.Tests\JiShe.ServicePro.Application.Tests.csproj", "{50B2631D-129C-47B3-A587-029CCD6099BC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Application.Tests", "test\JiShe.IoT.Application.Tests\JiShe.IoT.Application.Tests.csproj", "{50B2631D-129C-47B3-A587-029CCD6099BC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Domain.Shared", "src\JiShe.ServicePro.Domain.Shared\JiShe.ServicePro.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Domain.Shared", "src\JiShe.IoT.Domain.Shared\JiShe.IoT.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Application.Contracts", "src\JiShe.ServicePro.Application.Contracts\JiShe.ServicePro.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Application.Contracts", "src\JiShe.IoT.Application.Contracts\JiShe.IoT.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.HttpApi", "src\JiShe.ServicePro.HttpApi\JiShe.ServicePro.HttpApi.csproj", "{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.HttpApi", "src\JiShe.IoT.HttpApi\JiShe.IoT.HttpApi.csproj", "{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.HttpApi.Client", "src\JiShe.ServicePro.HttpApi.Client\JiShe.ServicePro.HttpApi.Client.csproj", "{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.HttpApi.Client", "src\JiShe.IoT.HttpApi.Client\JiShe.IoT.HttpApi.Client.csproj", "{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.EntityFrameworkCore.Tests", "test\JiShe.ServicePro.EntityFrameworkCore.Tests\JiShe.ServicePro.EntityFrameworkCore.Tests.csproj", "{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.EntityFrameworkCore.Tests", "test\JiShe.IoT.EntityFrameworkCore.Tests\JiShe.IoT.EntityFrameworkCore.Tests.csproj", "{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.TestBase", "test\JiShe.ServicePro.TestBase\JiShe.ServicePro.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.TestBase", "test\JiShe.IoT.TestBase\JiShe.IoT.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.Domain.Tests", "test\JiShe.ServicePro.Domain.Tests\JiShe.ServicePro.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.Domain.Tests", "test\JiShe.IoT.Domain.Tests\JiShe.IoT.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.HttpApi.Client.ConsoleTestApp", "test\JiShe.ServicePro.HttpApi.Client.ConsoleTestApp\JiShe.ServicePro.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.HttpApi.Client.ConsoleTestApp", "test\JiShe.IoT.HttpApi.Client.ConsoleTestApp\JiShe.IoT.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.DbMigrator", "src\JiShe.ServicePro.DbMigrator\JiShe.ServicePro.DbMigrator.csproj", "{AA94D832-1CCC-4715-95A9-A483F23A1A5D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.DbMigrator", "src\JiShe.IoT.DbMigrator\JiShe.IoT.DbMigrator.csproj", "{AA94D832-1CCC-4715-95A9-A483F23A1A5D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0.Solution Items", "0.Solution Items", "{2C4A6DB8-8D9E-42E6-B7C3-1EDB7B3DE22E}"
ProjectSection(SolutionItems) = preProject
NuGet.Config = NuGet.Config
Directory.Build.Microsoft.targets = Directory.Build.Microsoft.targets
Directory.Build.JiShe.targets = Directory.Build.JiShe.targets
Directory.Build.targets = Directory.Build.targets
Directory.Build.Volo.targets = Directory.Build.Volo.targets
Directory.Build.Lion.targets = Directory.Build.Lion.targets
Dockerfile = Dockerfile
NuGet.Config = NuGet.Config
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{8C1B8C6C-C518-4290-B070-622CCA6004DA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.HttpApi.Host", "host\JiShe.ServicePro.HttpApi.Host\JiShe.ServicePro.HttpApi.Host.csproj", "{FB20372D-6C96-4733-9AAC-12522F15CAA6}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.HttpApi.Host", "host\JiShe.IoT.HttpApi.Host\JiShe.IoT.HttpApi.Host.csproj", "{FB20372D-6C96-4733-9AAC-12522F15CAA6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.ServicePro.FreeSqlRepository", "src\JiShe.ServicePro.FreeSqlRepository\JiShe.ServicePro.FreeSqlRepository.csproj", "{27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JiShe.IoT.FreeSqlRepository", "src\JiShe.IoT.FreeSqlRepository\JiShe.IoT.FreeSqlRepository.csproj", "{27C7A0E6-4C2E-4AFF-9DE7-1F526DDC0D18}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gateways", "gateways", "{81A8FF2E-DE2E-479D-A209-EDA81C2AF08A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.ServicePro.WebGateway", "gateways\JiShe.ServicePro.WebGateway\JiShe.ServicePro.WebGateway.csproj", "{F1D46EE1-13D5-4227-80DC-066DEB0E4FD1}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.IoT.WebGateway", "gateways\JiShe.IoT.WebGateway\JiShe.IoT.WebGateway.csproj", "{F1D46EE1-13D5-4227-80DC-066DEB0E4FD1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@ -17,6 +17,6 @@ ENV TZ=Asia/Shanghai
# 设置环境变量
ENV ASPNETCORE_ENVIRONMENT=Production
ENTRYPOINT ["dotnet", "JiShe.ServicePro.WebGateway.dll"]
ENTRYPOINT ["dotnet", "JiShe.IoT.WebGateway.dll"]

View File

@ -1,7 +1,7 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"JiShe.ServicePro.WebGateway": {
"JiShe.IoT.WebGateway": {
"commandName": "Project",
"launchBrowser": false,
"launchUrl": "swagger",

View File

@ -17,7 +17,7 @@
{
"DownstreamPathTemplate": "/{url}",
"DownstreamScheme": "http",
"ServiceName": "ServicePro-Service",
"ServiceName": "IoT-Service",
"LoadBalancerOptions": {
"Type": "LeastConnection"
},
@ -32,7 +32,7 @@
{
"DownstreamPathTemplate": "/{url}",
"DownstreamScheme": "ws",
"ServiceName": "ServicePro-Service",
"ServiceName": "IoT-Service",
"LoadBalancerOptions": {
"Type": "LeastConnection"
},

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.Controllers
namespace JiShe.IoT.Controllers
{
public class HomeController : AbpController
{

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.Extensions.Hangfire;
namespace JiShe.IoT.Extensions.Hangfire;
public class AutoDeleteAfterSuccessAttributer : JobFilterAttribute, IApplyStateFilter
{

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.Extensions.Hangfire
namespace JiShe.IoT.Extensions.Hangfire
{
/// <summary>
/// Cron类型

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.Extensions.Hangfire
namespace JiShe.IoT.Extensions.Hangfire
{
public class CustomHangfireAuthorizeFilter : IDashboardAuthorizationFilter
{

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.Extensions.Hangfire;
namespace JiShe.IoT.Extensions.Hangfire;
/// <summary>
/// 重试最后一次

View File

@ -1,6 +1,6 @@
using JiShe.ServicePro.Jobs;
using JiShe.IoT.Jobs;
namespace JiShe.ServicePro.Extensions.Hangfire
namespace JiShe.IoT.Extensions.Hangfire
{
public static class RecurringJobsExtensions
{

View File

@ -15,10 +15,10 @@ global using Hangfire.Storage;
global using JiShe.ServicePro;
global using JiShe.ServicePro.CAP;
global using JiShe.ServicePro.CAP.EntityFrameworkCore;
global using JiShe.ServicePro.EntityFrameworkCore;
global using JiShe.ServicePro.Extensions;
global using JiShe.ServicePro.Extensions.Hangfire;
global using JiShe.ServicePro.MultiTenancy;
global using JiShe.IoT.EntityFrameworkCore;
global using JiShe.IoT.Extensions;
global using JiShe.IoT.Extensions.Hangfire;
global using JiShe.IoT.MultiTenancy;
global using Microsoft.AspNetCore.Authentication.JwtBearer;
global using Microsoft.AspNetCore.Builder;
global using Microsoft.AspNetCore.DataProtection;
@ -37,7 +37,7 @@ global using Microsoft.Extensions.Logging.Abstractions;
global using Microsoft.Extensions.Options;
global using Microsoft.IdentityModel.Tokens;
global using Microsoft.OpenApi.Models;
global using JiShe.ServicePro;
global using JiShe.IoT;
global using Serilog;
global using StackExchange.Redis;
global using Swagger;

View File

@ -1,6 +1,6 @@
namespace JiShe.ServicePro
namespace JiShe.IoT
{
public static class ServiceProHttpApiHostConst
public static class IoTHttpApiHostConst
{
/// <summary>
/// 跨域策略名
@ -10,7 +10,7 @@ namespace JiShe.ServicePro
/// <summary>
/// Cookies名称
/// </summary>
public const string DefaultCookieName = "JiShe.ServicePro.Http.Api";
public const string DefaultCookieName = "JiShe.IoT.Http.Api";
/// <summary>
/// SwaggerUi 端点

View File

@ -2,9 +2,9 @@ using Hangfire.Redis.StackExchange;
using Medallion.Threading;
using Medallion.Threading.Redis;
namespace JiShe.ServicePro;
namespace JiShe.IoT;
public partial class ServiceProHttpApiHostModule
public partial class IoTHttpApiHostModule
{
private void ConfigureHangfire(ServiceConfigurationContext context)
{
@ -94,7 +94,7 @@ public partial class ServiceProHttpApiHostModule
if (accessToken.IsNullOrWhiteSpace())
{
accessToken = currentContext.Request.Cookies[ServiceProHttpApiHostConst.DefaultCookieName];
accessToken = currentContext.Request.Cookies[IoTHttpApiHostConst.DefaultCookieName];
}
currentContext.Token = accessToken;
@ -212,7 +212,7 @@ public partial class ServiceProHttpApiHostModule
context.AddAbpCap(capOptions =>
{
capOptions.SetCapDbConnectionString(configuration["ConnectionStrings:Default"]);
capOptions.UseEntityFramework<ServiceProDbContext>();
capOptions.UseEntityFramework<IoTDbContext>();
capOptions.UseRabbitMQ(option =>
{
option.HostName = configuration.GetValue<string>("Cap:RabbitMq:HostName");

View File

@ -1,14 +1,14 @@
namespace JiShe.ServicePro
namespace JiShe.IoT
{
[DependsOn(
typeof(ServiceProHttpApiModule),
typeof(IoTHttpApiModule),
typeof(ServiceProSharedHostingMicroserviceModule),
typeof(AbpAspNetCoreMvcUiMultiTenancyModule),
typeof(ServiceProEntityFrameworkCoreModule),
typeof(IoTEntityFrameworkCoreModule),
typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(AbpAccountWebModule),
typeof(ServiceProApplicationModule),
typeof(IoTApplicationModule),
// typeof(AbpProCapModule),
// typeof(AbpProCapEntityFrameworkCoreModule),
typeof(AbpAspNetCoreMvcUiBasicThemeModule),
@ -16,7 +16,7 @@ namespace JiShe.ServicePro
typeof(AbpDistributedLockingModule)
//typeof(AbpBackgroundJobsHangfireModule)
)]
public partial class ServiceProHttpApiHostModule : AbpModule
public partial class IoTHttpApiHostModule : AbpModule
{
public override void OnPostApplicationInitialization(ApplicationInitializationContext context)
{
@ -55,7 +55,7 @@ namespace JiShe.ServicePro
}
app.UseRouting();
app.UseCors(ServiceProHttpApiHostConst.DefaultCorsPolicyName);
app.UseCors(IoTHttpApiHostConst.DefaultCorsPolicyName);
app.UseAuthentication();
if (MultiTenancyConsts.IsEnabled)

View File

@ -3,9 +3,9 @@
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<RootNamespace>JiShe.ServicePro</RootNamespace>
<RootNamespace>JiShe.IoT</RootNamespace>
<PreserveCompilationReferences>true</PreserveCompilationReferences>
<UserSecretsId>JiShe.ServicePro-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
<UserSecretsId>JiShe.IoT-4681b4fd-151f-4221-84a4-929d86723e4c</UserSecretsId>
</PropertyGroup>
<ItemGroup>
@ -45,9 +45,9 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\JiShe.ServicePro.Application\JiShe.ServicePro.Application.csproj"/>
<ProjectReference Include="..\..\src\JiShe.ServicePro.EntityFrameworkCore\JiShe.ServicePro.EntityFrameworkCore.csproj"/>
<ProjectReference Include="..\..\src\JiShe.ServicePro.HttpApi\JiShe.ServicePro.HttpApi.csproj"/>
<ProjectReference Include="..\..\src\JiShe.IoT.Application\JiShe.IoT.Application.csproj"/>
<ProjectReference Include="..\..\src\JiShe.IoT.EntityFrameworkCore\JiShe.IoT.EntityFrameworkCore.csproj"/>
<ProjectReference Include="..\..\src\JiShe.IoT.HttpApi\JiShe.IoT.HttpApi.csproj"/>
</ItemGroup>
<ItemGroup>

View File

@ -1,5 +1,5 @@
@page
@model JiShe.ServicePro.Pages.Login
@model JiShe.IoT.Pages.Login
@{
Layout = null;

View File

@ -5,7 +5,7 @@ using JiShe.ServicePro.BasicManagement.Users.Dtos;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace JiShe.ServicePro.Pages
namespace JiShe.IoT.Pages
{
public class Login : PageModel
{
@ -48,12 +48,12 @@ namespace JiShe.ServicePro.Pages
// 设置cookies domain
//options.Domain = "ServicePro.cn";
//options.Domain = "IoT.cn";
var result = await _accountAppService.LoginAsync(new LoginInput()
{ Name = userName, Password = password });
Response.Cookies.Append(ServiceProHttpApiHostConst.DefaultCookieName,
Response.Cookies.Append(IoTHttpApiHostConst.DefaultCookieName,
result.Token, options);
}
catch (Exception e)

View File

@ -1,6 +1,6 @@
@page
@using JiShe.ServicePro
@model JiShe.ServicePro.Pages.Monitor
@using JiShe.IoT
@model JiShe.IoT.Pages.Monitor
@{
@ -27,12 +27,12 @@
<div class="row">
<div class="col-sm-6 col-md-4 col-lg-3">
<div class="thumbnail" style="height: 180px">
<a href="@ServiceProHttpApiHostConst.SwaggerUiEndPoint" target="_blank">
<a href="@IoTHttpApiHostConst.SwaggerUiEndPoint" target="_blank">
<img class="lazy" src="/images/swagger.png" width="300" height="150"/>
</a>
<div class="caption">
<h3>
<a href="@ServiceProHttpApiHostConst.SwaggerUiEndPoint" target="_blank">SwaggerUI</a>
<a href="@IoTHttpApiHostConst.SwaggerUiEndPoint" target="_blank">SwaggerUI</a>
</h3>
</div>
</div>
@ -40,36 +40,36 @@
@* <div class="col-sm-6 col-md-4 col-lg-3"> *@
@* <div class="thumbnail" style="height: 180px"> *@
@* <a href="@ServiceProHttpApiHostConst.HangfireDashboardEndPoint" target="_blank"> *@
@* <a href="@IoTHttpApiHostConst.HangfireDashboardEndPoint" target="_blank"> *@
@* <img class="lazy" src="/images/hangfire.png" width="300" height="150"/> *@
@* </a> *@
@* <div class="caption"> *@
@* <h3> *@
@* <a href="@ServiceProHttpApiHostConst.HangfireDashboardEndPoint" target="_blank">Hangfire面板</a> *@
@* <a href="@IoTHttpApiHostConst.HangfireDashboardEndPoint" target="_blank">Hangfire面板</a> *@
@* </h3> *@
@* </div> *@
@* </div> *@
@* </div> *@
<div class="col-sm-6 col-md-4 col-lg-3">
<div class="thumbnail" style="height: 180px">
<a href="@ServiceProHttpApiHostConst.MiniprofilerEndPoint" target="_blank">
<a href="@IoTHttpApiHostConst.MiniprofilerEndPoint" target="_blank">
<img class="lazy" src="/images/miniprofiler.png" width="300" height="150"/>
</a>
<div class="caption">
<h3>
<a href="@ServiceProHttpApiHostConst.MiniprofilerEndPoint" target="_blank">Miniprofiler</a>
<a href="@IoTHttpApiHostConst.MiniprofilerEndPoint" target="_blank">Miniprofiler</a>
</h3>
</div>
</div>
</div>
<div class="col-sm-6 col-md-4 col-lg-3">
<div class="thumbnail" style="height: 180px">
<a href="@ServiceProHttpApiHostConst.MoreEndPoint" target="_blank">
<a href="@IoTHttpApiHostConst.MoreEndPoint" target="_blank">
<img class="lazy" src="/images/more.png" width="300" height="150"/>
</a>
<div class="caption">
<h3>
<a href="@ServiceProHttpApiHostConst.MoreEndPoint" target="_blank">了解更多...</a>
<a href="@IoTHttpApiHostConst.MoreEndPoint" target="_blank">了解更多...</a>
</h3>
</div>
</div>

View File

@ -1,6 +1,6 @@
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace JiShe.ServicePro.Pages
namespace JiShe.IoT.Pages
{
public class Monitor : PageModel
{

View File

@ -1,6 +1,6 @@
using Serilog.Events;
namespace JiShe.ServicePro;
namespace JiShe.IoT;
public class Program
{
@ -24,7 +24,7 @@ public class Program
loggerConfiguration,
context.Configuration);
});
await builder.AddApplicationAsync<JiShe.ServicePro.ServiceProHttpApiHostModule>();
await builder.AddApplicationAsync<JiShe.IoT.IoTHttpApiHostModule>();
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

View File

@ -1,6 +1,6 @@
{
"profiles": {
"JiShe.ServicePro.HttpApi.Host": {
"JiShe.IoT.HttpApi.Host": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "http://localhost:44315",

View File

@ -0,0 +1,32 @@
{
"App": {
"SelfUrl": "http://localhost:44315",
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost"
},
"ConnectionStrings": {
"Default": "Data Source=localhost;Port=3306;Database=JiSheIoTDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
},
"Redis": {
"Configuration": "localhost,password=1q2w3E*,defaultdatabase=1"
},
"Jwt": {
"Audience": "JiShe.IoT",
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
"Issuer": "JiShe.IoT",
"ExpirationTime": 2
},
"Cap": {
"RabbitMq": {
"HostName": "localhost",
"UserName": "admin",
"Password": "1q2w3E*",
"Port": 5672
}
},
"Hangfire": {
"Redis": {
"Host": "localhost,password=1q2w3E*",
"DB": "2"
}
}
}

View File

@ -1,18 +1,18 @@
{
"App": {
"SelfUrl": "http://localhost:44315",
"CorsOrigins": "https://*.ServicePro.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost"
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost"
},
"ConnectionStrings": {
"Default": "Data Source=localhost;Port=3306;Database=JiSheServiceProDB;uid=root;pwd=IFKy!Cufe3V9sYcz;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
"Default": "Data Source=localhost;Port=3306;Database=JiSheIoTDB;uid=root;pwd=IFKy!Cufe3V9sYcz;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
},
"Redis": {
"Configuration": "localhost,password=1q2w3E*,defaultdatabase=1"
},
"Jwt": {
"Audience": "JiShe.ServicePro",
"Audience": "JiShe.IoT",
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
"Issuer": "JiShe.ServicePro",
"Issuer": "JiShe.IoT",
"ExpirationTime": 2
},
"Cap": {

View File

@ -31,6 +31,6 @@
},
"App": {
"SelfUrl": "http://localhost:44315",
"CorsOrigins": "https://*.ServicePro.com,http://localhost:4200,http://localhost:3100"
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100"
}
}

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -1,52 +0,0 @@
{
"App": {
"SelfUrl": "http://localhost:44315",
"CorsOrigins": "https://*.ServicePro.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost"
},
"ConnectionStrings": {
"Default": "Data Source=localhost;Port=3306;Database=JiSheServiceProDB;uid=root;pwd=admin123;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
},
"Hangfire": {
"Redis": {
"Host": "192.168.5.9:6380,password=1q2w3e!@#",
"DB": "2"
}
},
"Redis": {
"Configuration": "192.168.5.9:6380,password=1q2w3e!@#,defaultdatabase=5"
},
"Kafka": {
"BootstrapServers": "192.168.5.9:29092,192.168.5.9:39092,192.168.5.9:49092",
"EnableFilter": true,
"EnableAuthorization": false,
"SaslUserName": "lixiao",
"SaslPassword": "lixiao1980",
"KafkaReplicationFactor": 3,
"NumPartitions": 30,
"TaskThreadCount": -1,
"FirstCollectionTime": "2025-04-22 16:07:00"
},
"IoTDBOptions": {
"UserName": "root",
"Password": "root",
"ClusterList": [ "121.42.175.177:16667" ],
"PoolSize": 32,
"DataBaseName": "energy",
"OpenDebugMode": true,
"UseTableSessionPoolByDefault": false
},
"Jwt": {
"Audience": "JiShe.ServicePro",
"SecurityKey": "dzehzRz9a8asdfasfdadfasdfasdfafsdadfasbasdf=",
"Issuer": "JiShe.ServicePro",
"ExpirationTime": 2
},
"Cap": {
"RabbitMq": {
"HostName": "localhost",
"UserName": "admin",
"Password": "1q2w3E*",
"Port": 5672
}
}
}

View File

@ -2,10 +2,10 @@ using JiShe.ServicePro.CodeManagement;
using JiShe.ServicePro.DynamicMenuManagement;
using JiShe.ServicePro.TemplateManagement;
namespace JiShe.ServicePro
namespace JiShe.IoT
{
[DependsOn(
typeof(ServiceProDomainSharedModule),
typeof(IoTDomainSharedModule),
typeof(AbpObjectExtendingModule),
typeof(BasicManagementApplicationContractsModule),
typeof(NotificationManagementApplicationContractsModule),
@ -15,11 +15,11 @@ namespace JiShe.ServicePro
typeof(TemplateManagementApplicationContractsModule),
typeof(DynamicMenuManagementApplicationContractsModule)
)]
public class ServiceProApplicationContractsModule : AbpModule
public class IoTApplicationContractsModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
ServiceProDtoExtensions.Configure();
IoTDtoExtensions.Configure();
}
}
}

View File

@ -1,6 +1,6 @@
namespace JiShe.ServicePro
namespace JiShe.IoT
{
public static class ServiceProDtoExtensions
public static class IoTDtoExtensions
{
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();

View File

@ -1,12 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<RootNamespace>JiShe.ServicePro</RootNamespace>
<RootNamespace>JiShe.IoT</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\JiShe.ServicePro.Domain.Shared\JiShe.ServicePro.Domain.Shared.csproj"/>
<ProjectReference Include="..\JiShe.IoT.Domain.Shared\JiShe.IoT.Domain.Shared.csproj"/>
</ItemGroup>
<ItemGroup>

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.Jobs
namespace JiShe.IoT.Jobs
{
public interface IRecurringJob : ITransientDependency
{

View File

@ -1,6 +1,6 @@
namespace JiShe.ServicePro.Permissions
namespace JiShe.IoT.Permissions
{
public class ServiceProPermissionDefinitionProvider : PermissionDefinitionProvider
public class IoTPermissionDefinitionProvider : PermissionDefinitionProvider
{
public override void Define(IPermissionDefinitionContext context)
{
@ -11,7 +11,7 @@ namespace JiShe.ServicePro.Permissions
private static LocalizableString L(string name)
{
return LocalizableString.Create<ServiceProResource>(name);
return LocalizableString.Create<IoTResource>(name);
}
}
}

View File

@ -0,0 +1,7 @@
namespace JiShe.IoT.Permissions
{
public static class IoTPermissions
{
}
}

View File

@ -8,8 +8,8 @@ global using JiShe.ServicePro.BasicManagement;
global using JiShe.ServicePro.DataDictionaryManagement;
global using JiShe.ServicePro.LanguageManagement;
global using JiShe.ServicePro.NotificationManagement;
global using JiShe.ServicePro.FreeSqlRepository;
global using JiShe.ServicePro.Permissions;
global using JiShe.IoT.FreeSqlRepository;
global using JiShe.IoT.Permissions;
global using Microsoft.AspNetCore.Authorization;
global using Microsoft.Extensions.Configuration;
global using Volo.Abp.Application.Services;

View File

@ -0,0 +1,12 @@
namespace JiShe.IoT
{
/* Inherit your application services from this class.
*/
public abstract class IoTAppService : ApplicationService
{
protected IoTAppService()
{
LocalizationResource = typeof(IoTResource);
}
}
}

View File

@ -0,0 +1,10 @@
namespace JiShe.IoT
{
public class IoTApplicationAutoMapperProfile : Profile
{
public IoTApplicationAutoMapperProfile()
{
}
}
}

View File

@ -2,11 +2,11 @@ using JiShe.ServicePro.CodeManagement;
using JiShe.ServicePro.DynamicMenuManagement;
using JiShe.ServicePro.TemplateManagement;
namespace JiShe.ServicePro
namespace JiShe.IoT
{
[DependsOn(
typeof(ServiceProDomainModule),
typeof(ServiceProApplicationContractsModule),
typeof(IoTDomainModule),
typeof(IoTApplicationContractsModule),
typeof(BasicManagementApplicationModule),
typeof(NotificationManagementApplicationModule),
typeof(DataDictionaryManagementApplicationModule),
@ -14,15 +14,15 @@ namespace JiShe.ServicePro
typeof(CodeManagementApplicationModule),
typeof(TemplateManagementApplicationModule),
typeof(DynamicMenuManagementApplicationModule),
typeof(ServiceProFreeSqlModule)
typeof(IoTFreeSqlModule)
)]
public class ServiceProApplicationModule : AbpModule
public class IoTApplicationModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<ServiceProApplicationModule>();
options.AddMaps<IoTApplicationModule>();
});
}

View File

@ -3,13 +3,13 @@
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<RootNamespace>JiShe.ServicePro</RootNamespace>
<RootNamespace>JiShe.IoT</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\JiShe.ServicePro.Domain\JiShe.ServicePro.Domain.csproj"/>
<ProjectReference Include="..\JiShe.ServicePro.Application.Contracts\JiShe.ServicePro.Application.Contracts.csproj"/>
<ProjectReference Include="..\JiShe.ServicePro.FreeSqlRepository\JiShe.ServicePro.FreeSqlRepository.csproj"/>
<ProjectReference Include="..\JiShe.IoT.Domain\JiShe.IoT.Domain.csproj"/>
<ProjectReference Include="..\JiShe.IoT.Application.Contracts\JiShe.IoT.Application.Contracts.csproj"/>
<ProjectReference Include="..\JiShe.IoT.FreeSqlRepository\JiShe.IoT.FreeSqlRepository.csproj"/>
</ItemGroup>
<ItemGroup>

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.Jobs
namespace JiShe.IoT.Jobs
{
public class TestJob : IRecurringJob
{

View File

@ -0,0 +1,2 @@
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleToAttribute("JiShe.IoT.Application.Tests")]

View File

@ -1,6 +1,6 @@
using Volo.Abp.Data;
namespace JiShe.ServicePro.DbMigrator
namespace JiShe.IoT.DbMigrator
{
public class DbMigratorHostedService : IHostedService
{
@ -15,7 +15,7 @@ namespace JiShe.ServicePro.DbMigrator
public async Task StartAsync(CancellationToken cancellationToken)
{
using (var application = await AbpApplicationFactory.CreateAsync<ServiceProDbMigratorModule>(options =>
using (var application = await AbpApplicationFactory.CreateAsync<IoTDbMigratorModule>(options =>
{
options.Services.ReplaceConfiguration(_configuration);
options.UseAutofac();
@ -28,7 +28,7 @@ namespace JiShe.ServicePro.DbMigrator
await application
.ServiceProvider
.GetRequiredService<ServiceProDbMigrationService>()
.GetRequiredService<IoTDbMigrationService>()
.MigrateAsync();
await application.ShutdownAsync();

View File

@ -4,8 +4,8 @@ global using System;
global using System.IO;
global using System.Threading;
global using System.Threading.Tasks;
global using JiShe.ServicePro.Data;
global using JiShe.ServicePro.EntityFrameworkCore;
global using JiShe.IoT.Data;
global using JiShe.IoT.EntityFrameworkCore;
global using Microsoft.Extensions.Configuration;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Hosting;

View File

@ -1,13 +1,13 @@
using Volo.Abp.Localization;
namespace JiShe.ServicePro.DbMigrator
namespace JiShe.IoT.DbMigrator
{
[DependsOn(
typeof(AbpAutofacModule),
typeof(ServiceProEntityFrameworkCoreModule),
typeof(ServiceProApplicationContractsModule)
typeof(IoTEntityFrameworkCoreModule),
typeof(IoTApplicationContractsModule)
)]
public class ServiceProDbMigratorModule : AbpModule
public class IoTDbMigratorModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{

View File

@ -16,8 +16,8 @@
<ItemGroup>
<ProjectReference Include="..\JiShe.ServicePro.Application.Contracts\JiShe.ServicePro.Application.Contracts.csproj"/>
<ProjectReference Include="..\JiShe.ServicePro.EntityFrameworkCore\JiShe.ServicePro.EntityFrameworkCore.csproj"/>
<ProjectReference Include="..\JiShe.IoT.Application.Contracts\JiShe.IoT.Application.Contracts.csproj"/>
<ProjectReference Include="..\JiShe.IoT.EntityFrameworkCore\JiShe.IoT.EntityFrameworkCore.csproj"/>
</ItemGroup>
<ItemGroup>

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.DbMigrator
namespace JiShe.IoT.DbMigrator
{
class Program
{
@ -9,9 +9,9 @@ namespace JiShe.ServicePro.DbMigrator
.MinimumLevel.Override("Microsoft", LogEventLevel.Warning)
.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning)
#if DEBUG
.MinimumLevel.Override("JiShe.ServicePro", LogEventLevel.Debug)
.MinimumLevel.Override("JiShe.IoT", LogEventLevel.Debug)
#else
.MinimumLevel.Override("JiShe.ServicePro", LogEventLevel.Information)
.MinimumLevel.Override("JiShe.IoT", LogEventLevel.Information)
#endif
.Enrich.FromLogContext()
.WriteTo.Async(c => c.File("Logs/logs.txt"))

View File

@ -0,0 +1,5 @@
{
"ConnectionStrings": {
"Default": "Data Source=localhost;Port=3306;Database=JiSheIoTDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
}
}

View File

@ -0,0 +1,7 @@
namespace JiShe.IoT
{
public static class IoTDomainErrorCodes
{
}
}

View File

@ -1,9 +1,9 @@
namespace JiShe.ServicePro;
namespace JiShe.IoT;
public class ServiceProDomainSharedConsts
public class IoTDomainSharedConsts
{
/// <summary>名称空间</summary>
public const string NameSpace = "JiShe.ServicePro";
public const string NameSpace = "JiShe.IoT";
/// <summary>默认语言</summary>
public const string DefaultCultureName = "zh-Hans";
}

View File

@ -2,7 +2,7 @@ using JiShe.ServicePro.CodeManagement;
using JiShe.ServicePro.DynamicMenuManagement;
using JiShe.ServicePro.TemplateManagement;
namespace JiShe.ServicePro
namespace JiShe.IoT
{
[DependsOn(
typeof(BasicManagementDomainSharedModule),
@ -14,35 +14,35 @@ namespace JiShe.ServicePro
typeof(DynamicMenuManagementDomainSharedModule),
typeof(ServiceProCoreModule)
)]
public class ServiceProDomainSharedModule : AbpModule
public class IoTDomainSharedModule : AbpModule
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
ServiceProGlobalFeatureConfigurator.Configure();
ServiceProModuleExtensionConfigurator.Configure();
IoTGlobalFeatureConfigurator.Configure();
IoTModuleExtensionConfigurator.Configure();
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<ServiceProDomainSharedModule>(ServiceProDomainSharedConsts.NameSpace);
options.FileSets.AddEmbedded<IoTDomainSharedModule>(IoTDomainSharedConsts.NameSpace);
});
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Add<ServiceProResource>(ServiceProDomainSharedConsts.DefaultCultureName)
.AddVirtualJson("/Localization/ServicePro")
.Add<IoTResource>(IoTDomainSharedConsts.DefaultCultureName)
.AddVirtualJson("/Localization/IoT")
.AddBaseTypes(typeof(BasicManagementResource))
.AddBaseTypes(typeof(AbpTimingResource));
options.DefaultResourceType = typeof(ServiceProResource);
options.DefaultResourceType = typeof(IoTResource);
});
Configure<AbpExceptionLocalizationOptions>(options =>
{
options.MapCodeNamespace(ServiceProDomainSharedConsts.NameSpace, typeof(ServiceProResource));
options.MapCodeNamespace(IoTDomainSharedConsts.NameSpace, typeof(IoTResource));
});
}

View File

@ -1,6 +1,6 @@
namespace JiShe.ServicePro
namespace JiShe.IoT
{
public static class ServiceProGlobalFeatureConfigurator
public static class IoTGlobalFeatureConfigurator
{
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();

View File

@ -1,6 +1,6 @@
namespace JiShe.ServicePro
namespace JiShe.IoT
{
public static class ServiceProModuleExtensionConfigurator
public static class IoTModuleExtensionConfigurator
{
private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();

View File

@ -1,13 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<RootNamespace>JiShe.ServicePro</RootNamespace>
<RootNamespace>JiShe.IoT</RootNamespace>
<GenerateEmbeddedFilesManifest>true</GenerateEmbeddedFilesManifest>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="Localization\ServicePro\*.json"/>
<Content Remove="Localization\ServicePro\*.json"/>
<EmbeddedResource Include="Localization\IoT\*.json"/>
<Content Remove="Localization\IoT\*.json"/>
</ItemGroup>

View File

@ -0,0 +1,8 @@
namespace JiShe.IoT
{
[LocalizationResourceName("IoT")]
public class IoTResource
{
}
}

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.MultiTenancy
namespace JiShe.IoT.MultiTenancy
{
public static class MultiTenancyConsts
{

View File

@ -1,4 +1,4 @@
namespace JiShe.ServicePro.Users.Dto
namespace JiShe.IoT.Users.Dto
{
public class UserOutput
{

View File

@ -0,0 +1,7 @@
namespace JiShe.IoT.Data
{
public interface IIoTDbSchemaMigrator
{
Task MigrateAsync();
}
}

View File

@ -1,17 +1,17 @@
namespace JiShe.ServicePro.Data
namespace JiShe.IoT.Data
{
public class ServiceProDbMigrationService : ITransientDependency
public class IoTDbMigrationService : ITransientDependency
{
public ILogger<ServiceProDbMigrationService> Logger { get; set; }
public ILogger<IoTDbMigrationService> Logger { get; set; }
private readonly IDataSeeder _dataSeeder;
private readonly IEnumerable<IServiceProDbSchemaMigrator> _dbSchemaMigrators;
private readonly IEnumerable<IIoTDbSchemaMigrator> _dbSchemaMigrators;
private readonly ITenantRepository _tenantRepository;
private readonly ICurrentTenant _currentTenant;
public ServiceProDbMigrationService(
public IoTDbMigrationService(
IDataSeeder dataSeeder,
IEnumerable<IServiceProDbSchemaMigrator> dbSchemaMigrators,
IEnumerable<IIoTDbSchemaMigrator> dbSchemaMigrators,
ITenantRepository tenantRepository,
ICurrentTenant currentTenant)
{
@ -20,7 +20,7 @@ namespace JiShe.ServicePro.Data
_tenantRepository = tenantRepository;
_currentTenant = currentTenant;
Logger = NullLogger<ServiceProDbMigrationService>.Instance;
Logger = NullLogger<IoTDbMigrationService>.Instance;
}
public async Task MigrateAsync()

View File

@ -0,0 +1,13 @@
namespace JiShe.IoT.Data
{
/* This is used if database provider does't define
* IIoTDbSchemaMigrator implementation.
*/
public class NullIoTDbSchemaMigrator : IIoTDbSchemaMigrator, ITransientDependency
{
public Task MigrateAsync()
{
return Task.CompletedTask;
}
}
}

View File

@ -11,8 +11,8 @@ global using JiShe.ServicePro.BasicManagement;
global using JiShe.ServicePro.DataDictionaryManagement;
global using JiShe.ServicePro.LanguageManagement;
global using JiShe.ServicePro.NotificationManagement;
global using JiShe.ServicePro.MultiTenancy;
global using JiShe.ServicePro.Users.Dto;
global using JiShe.IoT.MultiTenancy;
global using JiShe.IoT.Users.Dto;
global using Microsoft.Extensions.DependencyInjection;
global using Microsoft.Extensions.Logging;
global using Microsoft.Extensions.Logging.Abstractions;

View File

@ -1,6 +1,6 @@
namespace JiShe.ServicePro
namespace JiShe.IoT
{
public static class ServiceProDbProperties
public static class IoTDbProperties
{
public const string DbTablePrefix = "App";

View File

@ -2,10 +2,10 @@ using JiShe.ServicePro.CodeManagement;
using JiShe.ServicePro.DynamicMenuManagement;
using JiShe.ServicePro.TemplateManagement;
namespace JiShe.ServicePro
namespace JiShe.IoT
{
[DependsOn(
typeof(ServiceProDomainSharedModule),
typeof(IoTDomainSharedModule),
typeof(BasicManagementDomainModule),
typeof(NotificationManagementDomainModule),
typeof(DataDictionaryManagementDomainModule),
@ -14,12 +14,12 @@ namespace JiShe.ServicePro
typeof(TemplateManagementDomainModule),
typeof(DynamicMenuManagementDomainModule)
)]
public class ServiceProDomainModule : AbpModule
public class IoTDomainModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpMultiTenancyOptions>(options => { options.IsEnabled = MultiTenancyConsts.IsEnabled; });
Configure<AbpAutoMapperOptions>(options => { options.AddMaps<ServiceProDomainModule>(); });
Configure<AbpAutoMapperOptions>(options => { options.AddMaps<IoTDomainModule>(); });
}
}
}

View File

@ -1,8 +1,8 @@
using Volo.Abp.EventBus.Local;
namespace JiShe.ServicePro
namespace JiShe.IoT
{
public abstract class ServiceProDomainService : DomainService
public abstract class IoTDomainService : DomainService
{
protected Type ObjectMapperContext { get; set; }

View File

@ -1,11 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<RootNamespace>JiShe.ServicePro</RootNamespace>
<RootNamespace>JiShe.IoT</RootNamespace>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\JiShe.ServicePro.Domain.Shared\JiShe.ServicePro.Domain.Shared.csproj"/>
<ProjectReference Include="..\JiShe.IoT.Domain.Shared\JiShe.IoT.Domain.Shared.csproj"/>
</ItemGroup>
<ItemGroup>

View File

@ -0,0 +1,3 @@
using System.Runtime.CompilerServices;
[assembly:InternalsVisibleToAttribute("JiShe.IoT.Domain.Tests")]
[assembly:InternalsVisibleToAttribute("JiShe.IoT.TestBase")]

View File

@ -1,11 +1,11 @@
namespace JiShe.ServicePro.Settings
namespace JiShe.IoT.Settings
{
public class ServiceProSettingDefinitionProvider : SettingDefinitionProvider
public class IoTSettingDefinitionProvider : SettingDefinitionProvider
{
public override void Define(ISettingDefinitionContext context)
{
//Define your own settings here. Example:
//context.Add(new SettingDefinition(ServiceProSettings.MySetting1));
//context.Add(new SettingDefinition(IoTSettings.MySetting1));
OverrideDefalutSettings(context);
}
@ -19,7 +19,7 @@ namespace JiShe.ServicePro.Settings
private static LocalizableString L(string name)
{
return LocalizableString.Create<ServiceProResource>(name);
return LocalizableString.Create<IoTResource>(name);
}
}
}

View File

@ -0,0 +1,7 @@
namespace JiShe.IoT.Settings
{
public static class IoTSettings
{
}
}

View File

@ -1,25 +1,25 @@
namespace JiShe.ServicePro.EntityFrameworkCore
namespace JiShe.IoT.EntityFrameworkCore
{
public class EntityFrameworkCoreServiceProDbSchemaMigrator
: IServiceProDbSchemaMigrator, ITransientDependency
public class EntityFrameworkCoreIoTDbSchemaMigrator
: IIoTDbSchemaMigrator, ITransientDependency
{
private readonly IServiceProvider _serviceProvider;
public EntityFrameworkCoreServiceProDbSchemaMigrator(IServiceProvider serviceProvider)
public EntityFrameworkCoreIoTDbSchemaMigrator(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public async Task MigrateAsync()
{
/* We intentionally resolving the ServiceProMigrationsDbContext
/* We intentionally resolving the IoTMigrationsDbContext
* from IServiceProvider (instead of directly injecting it)
* to properly get the connection string of the current tenant in the
* current scope.
*/
await _serviceProvider
.GetRequiredService<ServiceProDbContext>()
.GetRequiredService<IoTDbContext>()
.Database
.MigrateAsync();
}

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