From 8ca969de7a33550b365bb3a9bf753ea57df63a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=9B=8A?= Date: Sun, 2 Nov 2025 00:41:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=83=A8=E5=88=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=BF=94=E5=9B=9E=E4=B9=B1=E7=A0=81=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- JiShe.IoT.Admin.sln | 3 +- NuGet.Config | 2 +- host/JiShe.IoT.HttpApi.Host/Dockerfile | 122 ++++++++++++++++++ .../JiShe.IoT.HttpApi.Host.csproj | 3 + .../JiShe.IoT.HttpApi.Host.csproj.user | 6 + .../Properties/launchSettings.json | 14 +- sources.list | 10 ++ .../IBusinessSystemAggregationService.cs | 6 +- .../IDeviceAggregationService.cs | 6 +- .../BusinessSystemAggregationService.cs | 38 +----- .../DeviceAggregationService.cs | 36 +----- src/JiShe.IoT.Application/IoTAppService.cs | 36 +++--- .../BusinessSystemAggregationController.cs | 23 +--- .../DeviceAggregationController.cs | 27 +--- 15 files changed, 181 insertions(+), 153 deletions(-) create mode 100644 host/JiShe.IoT.HttpApi.Host/Dockerfile create mode 100644 host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj.user create mode 100644 sources.list diff --git a/Dockerfile b/Dockerfile index f34140f..41dab49 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ #FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base FROM registry.cn-qingdao.aliyuncs.com/jisheyun/aspnetcore:9.0.6_ub24_simsun_pdp_v341 AS base WORKDIR /app -EXPOSE 8080 +EXPOSE 10500 EXPOSE 443 ENV TZ=Asia/Shanghai ENV ASPNETCORE_ENVIRONMENT=Production diff --git a/JiShe.IoT.Admin.sln b/JiShe.IoT.Admin.sln index e54084e..5b8a1f1 100644 --- a/JiShe.IoT.Admin.sln +++ b/JiShe.IoT.Admin.sln @@ -42,6 +42,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0.Solution Items", "0.Solut Directory.Build.Volo.targets = Directory.Build.Volo.targets Dockerfile = Dockerfile NuGet.Config = NuGet.Config + sources.list = sources.list EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2.host", "2.host", "{8C1B8C6C-C518-4290-B070-622CCA6004DA}" @@ -275,8 +276,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DockerComposeShells", "Dock DockerComposeShells\.env = DockerComposeShells\.env DockerComposeShells\adminapi\conf\appsettings.Development.json = DockerComposeShells\adminapi\conf\appsettings.Development.json DockerComposeShells\adminapi\conf\appsettings.json = DockerComposeShells\adminapi\conf\appsettings.json - DockerComposeShells\docker-compose-iotdb-standalone.yml = DockerComposeShells\docker-compose-iotdb-standalone.yml DockerComposeShells\docker-compose-init.yml = DockerComposeShells\docker-compose-init.yml + DockerComposeShells\docker-compose-iotdb-standalone.yml = DockerComposeShells\docker-compose-iotdb-standalone.yml DockerComposeShells\docker-compose.yml = DockerComposeShells\docker-compose.yml DockerComposeShells\mysql\init\init-db.sql = DockerComposeShells\mysql\init\init-db.sql DockerComposeShells\iotdb\init\init-iot-db.sql = DockerComposeShells\iotdb\init\init-iot-db.sql diff --git a/NuGet.Config b/NuGet.Config index ad1421d..69f6ac8 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -3,6 +3,6 @@ - + diff --git a/host/JiShe.IoT.HttpApi.Host/Dockerfile b/host/JiShe.IoT.HttpApi.Host/Dockerfile new file mode 100644 index 0000000..d078d76 --- /dev/null +++ b/host/JiShe.IoT.HttpApi.Host/Dockerfile @@ -0,0 +1,122 @@ +# 此阶段用于在快速模式(默认为调试配置)下从 VS 运行时 +FROM registry.cn-qingdao.aliyuncs.com/jisheyun/aspnetcore:9.0.6_ub24_simsun_pdp_v341 AS base +USER $APP_UID +WORKDIR /app +EXPOSE 10500 + + +# 此阶段用于生成服务项目 +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["Directory.Build.props", "."] +COPY ["JiShe.ServicePro/Directory.Build.props", "JiShe.ServicePro/"] +COPY ["Directory.Build.targets", "."] +COPY ["JiShe.ServicePro/Directory.Build.targets", "JiShe.ServicePro/"] +COPY ["NuGet.Config", "."] +COPY ["JiShe.ServicePro/NuGet.Config", "JiShe.ServicePro/"] +COPY ["host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj", "host/JiShe.IoT.HttpApi.Host/"] +COPY ["src/JiShe.IoT.Application/JiShe.IoT.Application.csproj", "src/JiShe.IoT.Application/"] +COPY ["JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.Application/JiShe.ServicePro.BasicManagement.Application.csproj", "JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.Application/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.Oidc/JiShe.ServicePro.Oidc.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.Oidc/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.Core/JiShe.ServicePro.Core.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.Core/"] +COPY ["JiShe.ServicePro/shared/JiShe.ServicePro.Shared.ApacheIoTDB/JiShe.ServicePro.Shared.ApacheIoTDB.csproj", "JiShe.ServicePro/shared/JiShe.ServicePro.Shared.ApacheIoTDB/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.Localization/JiShe.ServicePro.Localization.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.Localization/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.TwoFactor/JiShe.ServicePro.TwoFactor.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.TwoFactor/"] +COPY ["JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.Application.Contracts/JiShe.ServicePro.BasicManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.Domain.Shared/JiShe.ServicePro.BasicManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.Domain/JiShe.ServicePro.BasicManagement.Domain.csproj", "JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.Domain/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.FreeRedisProvider/JiShe.ServicePro.FreeRedisProvider.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.FreeRedisProvider/"] +COPY ["JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.Application/JiShe.ServicePro.CTWingManagement.Application.csproj", "JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.Application/"] +COPY ["JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.Application/JiShe.ServicePro.IoTDBManagement.Application.csproj", "JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.Application/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.Kafka/JiShe.ServicePro.Kafka.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.Kafka/"] +COPY ["JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.Application.Contracts/JiShe.ServicePro.IoTDBManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.Domain.Shared/JiShe.ServicePro.IoTDBManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.ApacheIoTDB.Provider/JiShe.ServicePro.ApacheIoTDB.Provider.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.ApacheIoTDB.Provider/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.ApacheIoTDB.Analyzers/JiShe.ServicePro.ApacheIoTDB.Analyzers.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.ApacheIoTDB.Analyzers/"] +COPY ["JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.Domain/JiShe.ServicePro.IoTDBManagement.Domain.csproj", "JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.Application.Contracts/JiShe.ServicePro.CTWingManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.CTWingAep.Provider/JiShe.ServicePro.CTWingAep.Provider.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.CTWingAep.Provider/"] +COPY ["JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.Domain.Shared/JiShe.ServicePro.CTWingManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.FreeSqlProvider/JiShe.ServicePro.FreeSqlProvider.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.FreeSqlProvider/"] +COPY ["JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.Domain/JiShe.ServicePro.CTWingManagement.Domain.csproj", "JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.Application/JiShe.ServicePro.DataDictionaryManagement.Application.csproj", "JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.Application/"] +COPY ["JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.Application.Contracts/JiShe.ServicePro.DataDictionaryManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.Domain.Shared/JiShe.ServicePro.DataDictionaryManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.Domain/JiShe.ServicePro.DataDictionaryManagement.Domain.csproj", "JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.Application/JiShe.ServicePro.DeviceManagement.Application.csproj", "JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.Application/"] +COPY ["JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.Application.Contracts/JiShe.ServicePro.DeviceManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.Domain.Shared/JiShe.ServicePro.DeviceManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.Domain/JiShe.ServicePro.DeviceManagement.Domain.csproj", "JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.Application/JiShe.ServicePro.DynamicMenuManagement.Application.csproj", "JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.Application/"] +COPY ["JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.Application.Contracts/JiShe.ServicePro.DynamicMenuManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.Domain.Shared/JiShe.ServicePro.DynamicMenuManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.Domain/JiShe.ServicePro.DynamicMenuManagement.Domain.csproj", "JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.Application/JiShe.ServicePro.FileManagement.Application.csproj", "JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.Application/"] +COPY ["JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.Application.Contracts/JiShe.ServicePro.FileManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.Domain.Shared/JiShe.ServicePro.FileManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.Domain/JiShe.ServicePro.FileManagement.Domain.csproj", "JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.Application/JiShe.ServicePro.LanguageManagement.Application.csproj", "JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.Application/"] +COPY ["JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.Application.Contracts/JiShe.ServicePro.LanguageManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.Domain.Shared/JiShe.ServicePro.LanguageManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.Domain/JiShe.ServicePro.LanguageManagement.Domain.csproj", "JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.Application/JiShe.ServicePro.NotificationManagement.Application.csproj", "JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.Application/"] +COPY ["JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.Application.Contracts/JiShe.ServicePro.NotificationManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.Domain.Shared/JiShe.ServicePro.NotificationManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.Domain/JiShe.ServicePro.NotificationManagement.Domain.csproj", "JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.Application/JiShe.ServicePro.TemplateManagement.Application.csproj", "JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.Application/"] +COPY ["JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.Application.Contracts/JiShe.ServicePro.TemplateManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.Domain.Shared/JiShe.ServicePro.TemplateManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.Domain/JiShe.ServicePro.TemplateManagement.Domain.csproj", "JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.Domain/"] +COPY ["JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.Application/JiShe.ServicePro.OneNETManagement.Application.csproj", "JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.Application/"] +COPY ["JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.Application.Contracts/JiShe.ServicePro.OneNETManagement.Application.Contracts.csproj", "JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.Application.Contracts/"] +COPY ["JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.Domain.Shared/JiShe.ServicePro.OneNETManagement.Domain.Shared.csproj", "JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.Domain.Shared/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.PulsarProvider/JiShe.ServicePro.PulsarProvider.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.PulsarProvider/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.OneNET.Provider/JiShe.ServicePro.OneNET.Provider.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.OneNET.Provider/"] +COPY ["JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.Domain/JiShe.ServicePro.OneNETManagement.Domain.csproj", "JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.Domain/"] +COPY ["src/JiShe.IoT.Application.Contracts/JiShe.IoT.Application.Contracts.csproj", "src/JiShe.IoT.Application.Contracts/"] +COPY ["src/JiShe.IoT.Domain.Shared/JiShe.IoT.Domain.Shared.csproj", "src/JiShe.IoT.Domain.Shared/"] +COPY ["src/JiShe.IoT.Domain/JiShe.IoT.Domain.csproj", "src/JiShe.IoT.Domain/"] +COPY ["src/JiShe.IoT.EntityFrameworkCore/JiShe.IoT.EntityFrameworkCore.csproj", "src/JiShe.IoT.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.EntityFrameworkCore/JiShe.ServicePro.BasicManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.EntityFrameworkCore/JiShe.ServicePro.CTWingManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.EntityFrameworkCore/JiShe.ServicePro.DataDictionaryManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.EntityFrameworkCore/JiShe.ServicePro.DeviceManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.EntityFrameworkCore/JiShe.ServicePro.DynamicMenuManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.EntityFrameworkCore/JiShe.ServicePro.FileManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.EntityFrameworkCore/JiShe.ServicePro.IoTDBManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.EntityFrameworkCore/JiShe.ServicePro.LanguageManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.EntityFrameworkCore/JiShe.ServicePro.NotificationManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.EntityFrameworkCore/JiShe.ServicePro.TemplateManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.EntityFrameworkCore/JiShe.ServicePro.OneNETManagement.EntityFrameworkCore.csproj", "JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.EntityFrameworkCore/"] +COPY ["src/JiShe.IoT.HttpApi/JiShe.IoT.HttpApi.csproj", "src/JiShe.IoT.HttpApi/"] +COPY ["JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.HttpApi/JiShe.ServicePro.BasicManagement.HttpApi.csproj", "JiShe.ServicePro/modules/BasicManagement/src/JiShe.ServicePro.BasicManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.HttpApi/JiShe.ServicePro.CTWingManagement.HttpApi.csproj", "JiShe.ServicePro/modules/CTWingManagement/src/JiShe.ServicePro.CTWingManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.HttpApi/JiShe.ServicePro.DataDictionaryManagement.HttpApi.csproj", "JiShe.ServicePro/modules/DataDictionaryManagement/src/JiShe.ServicePro.DataDictionaryManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.HttpApi/JiShe.ServicePro.DeviceManagement.HttpApi.csproj", "JiShe.ServicePro/modules/DeviceManagement/src/JiShe.ServicePro.DeviceManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.HttpApi/JiShe.ServicePro.DynamicMenuManagement.HttpApi.csproj", "JiShe.ServicePro/modules/DynamicMenuManagement/src/JiShe.ServicePro.DynamicMenuManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.HttpApi/JiShe.ServicePro.FileManagement.HttpApi.csproj", "JiShe.ServicePro/modules/FileManagement/src/JiShe.ServicePro.FileManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.HttpApi/JiShe.ServicePro.IoTDBManagement.HttpApi.csproj", "JiShe.ServicePro/modules/IoTDBManagement/src/JiShe.ServicePro.IoTDBManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.HttpApi/JiShe.ServicePro.LanguageManagement.HttpApi.csproj", "JiShe.ServicePro/modules/LanguageManagement/src/JiShe.ServicePro.LanguageManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.HttpApi/JiShe.ServicePro.NotificationManagement.HttpApi.csproj", "JiShe.ServicePro/modules/NotificationManagement/src/JiShe.ServicePro.NotificationManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.HttpApi/JiShe.ServicePro.TemplateManagement.HttpApi.csproj", "JiShe.ServicePro/modules/TemplateManagement/src/JiShe.ServicePro.TemplateManagement.HttpApi/"] +COPY ["JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.HttpApi/JiShe.ServicePro.OneNETManagement.HttpApi.csproj", "JiShe.ServicePro/modules/OneNETManagement/src/JiShe.ServicePro.OneNETManagement.HttpApi/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.CAP.EntityFrameworkCore/JiShe.ServicePro.CAP.EntityFrameworkCore.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.CAP.EntityFrameworkCore/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.CAP/JiShe.ServicePro.CAP.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.CAP/"] +COPY ["JiShe.ServicePro/shared/JiShe.ServicePro.Shared.Hosting.Microservices/JiShe.ServicePro.Shared.Hosting.Microservices.csproj", "JiShe.ServicePro/shared/JiShe.ServicePro.Shared.Hosting.Microservices/"] +COPY ["JiShe.ServicePro/frameworks/src/JiShe.ServicePro.ModelBinder.Provider/JiShe.ServicePro.ModelBinder.Provider.csproj", "JiShe.ServicePro/frameworks/src/JiShe.ServicePro.ModelBinder.Provider/"] +RUN dotnet restore "./host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj" +COPY . . +WORKDIR "/src/host/JiShe.IoT.HttpApi.Host" +RUN dotnet build "./JiShe.IoT.HttpApi.Host.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# 此阶段用于发布要复制到最终阶段的服务项目 +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./JiShe.IoT.HttpApi.Host.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# 此阶段在生产中使用,或在常规模式下从 VS 运行时使用(在不使用调试配置时为默认值) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "JiShe.IoT.HttpApi.Host.dll"] \ No newline at end of file diff --git a/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj b/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj index beb2f0e..51a0094 100644 --- a/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj +++ b/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj @@ -7,11 +7,14 @@ true JiShe.IoT-4681b4fd-151f-4221-84a4-929d86723e4c true + Linux + ..\.. + diff --git a/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj.user b/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj.user new file mode 100644 index 0000000..dd2d54c --- /dev/null +++ b/host/JiShe.IoT.HttpApi.Host/JiShe.IoT.HttpApi.Host.csproj.user @@ -0,0 +1,6 @@ + + + + Container (Dockerfile) + + \ No newline at end of file diff --git a/host/JiShe.IoT.HttpApi.Host/Properties/launchSettings.json b/host/JiShe.IoT.HttpApi.Host/Properties/launchSettings.json index 6f59b12..3fc44a2 100644 --- a/host/JiShe.IoT.HttpApi.Host/Properties/launchSettings.json +++ b/host/JiShe.IoT.HttpApi.Host/Properties/launchSettings.json @@ -3,10 +3,20 @@ "JiShe.IoT.HttpApi.Host": { "commandName": "Project", "launchBrowser": true, - "applicationUrl": "http://localhost:10500", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "applicationUrl": "http://localhost:10500" + }, + "Container (Dockerfile)": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", + "environmentVariables": { + "ASPNETCORE_HTTP_PORTS": "10500" + }, + "publishAllPorts": true, + "useSSL": false } } } \ No newline at end of file diff --git a/sources.list b/sources.list new file mode 100644 index 0000000..d2814c4 --- /dev/null +++ b/sources.list @@ -0,0 +1,10 @@ +deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse +deb-src http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse +deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse +deb-src http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse +deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse +deb-src http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse +deb http://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse +deb-src http://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse +deb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse +deb-src http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse \ No newline at end of file diff --git a/src/JiShe.IoT.Application.Contracts/BusinessSystemAggregation/IBusinessSystemAggregationService.cs b/src/JiShe.IoT.Application.Contracts/BusinessSystemAggregation/IBusinessSystemAggregationService.cs index a255e5d..b846e12 100644 --- a/src/JiShe.IoT.Application.Contracts/BusinessSystemAggregation/IBusinessSystemAggregationService.cs +++ b/src/JiShe.IoT.Application.Contracts/BusinessSystemAggregation/IBusinessSystemAggregationService.cs @@ -32,10 +32,6 @@ namespace JiShe.IoT.BusinessSystemAggregation /// /// /// - Task BatchCreateDeviceInfoAsync(OpenApiRequest input); - - Task BatchCreateDeviceInfoAsync2(OpenApiRequest input); - - Task BatchCreateDeviceInfoAsync3(OpenApiRequest input); + Task BatchCreateDeviceInfoAsync(OpenApiRequest input); } } diff --git a/src/JiShe.IoT.Application.Contracts/DeviceAggregation/IDeviceAggregationService.cs b/src/JiShe.IoT.Application.Contracts/DeviceAggregation/IDeviceAggregationService.cs index ca4992f..14680c7 100644 --- a/src/JiShe.IoT.Application.Contracts/DeviceAggregation/IDeviceAggregationService.cs +++ b/src/JiShe.IoT.Application.Contracts/DeviceAggregation/IDeviceAggregationService.cs @@ -75,10 +75,6 @@ namespace JiShe.IoT.DeviceAggregation /// /// /// - Task BatchCreateDeviceBusinessSystemAsync(BatchCreateDeviceAggregationInput input); - - - Task BatchCreateDeviceInfoAsync(); - Task BatchCreateDeviceInfoAsync2(); + Task BatchCreateDeviceBusinessSystemAsync(BatchCreateDeviceAggregationInput input); } } diff --git a/src/JiShe.IoT.Application/BusinessSystemAggregation/BusinessSystemAggregationService.cs b/src/JiShe.IoT.Application/BusinessSystemAggregation/BusinessSystemAggregationService.cs index b60b008..9d8556b 100644 --- a/src/JiShe.IoT.Application/BusinessSystemAggregation/BusinessSystemAggregationService.cs +++ b/src/JiShe.IoT.Application/BusinessSystemAggregation/BusinessSystemAggregationService.cs @@ -220,42 +220,6 @@ namespace JiShe.IoT.BusinessSystemAggregation { return HttpDataResultExtensions.Failed($"查询设备数据失败,发送异常:{ex.Message}", -106); } - } - - - /// - /// 业务系统批量新增设备数据,Msg 字段为 BatchCreateDeviceInfoInput 实体 - /// - /// - /// - public async Task BatchCreateDeviceInfoAsync2(OpenApiRequest input) - { - try - { - return "新增设备成功"; - } - catch (Exception ex) - { - return ex.Message; - } - } - - - /// - /// 业务系统批量新增设备数据,Msg 字段为 BatchCreateDeviceInfoInput 实体 - /// - /// - /// - public async Task BatchCreateDeviceInfoAsync3(OpenApiRequest input) - { - try - { - return HandleOpenApiRequest(input, new ServerApplicationOptions()); - } - catch (Exception ex) - { - return HttpDataResultExtensions.Failed($"业务系统批量新增设备数据,发送异常:{ex.Message}", -106); - } - } + } } } diff --git a/src/JiShe.IoT.Application/DeviceAggregation/DeviceAggregationService.cs b/src/JiShe.IoT.Application/DeviceAggregation/DeviceAggregationService.cs index 2bcda85..14fd2f5 100644 --- a/src/JiShe.IoT.Application/DeviceAggregation/DeviceAggregationService.cs +++ b/src/JiShe.IoT.Application/DeviceAggregation/DeviceAggregationService.cs @@ -437,41 +437,7 @@ namespace JiShe.IoT.DeviceAggregation throw; } - } - - /// - /// 业务系统批量新增设备数据,Msg 字段为 BatchCreateDeviceInfoInput 实体 - /// - /// - /// - public async Task BatchCreateDeviceInfoAsync() - { - try - { - return HandleOpenApiRequest(null, null); - } - catch (Exception ex) - { - return HttpDataResultExtensions.Failed($"查询设备数据失败,发送异常:{ex.Message}", -106); - } - } - - /// - /// 业务系统批量新增设备数据,Msg 字段为 BatchCreateDeviceInfoInput 实体 - /// - /// - /// - public async Task BatchCreateDeviceInfoAsync2() - { - try - { - return "新增设备成功"; - } - catch (Exception ex) - { - return ex.Message; - } - } + } /// /// OneNET设备批量创建 diff --git a/src/JiShe.IoT.Application/IoTAppService.cs b/src/JiShe.IoT.Application/IoTAppService.cs index 01a3285..0527a85 100644 --- a/src/JiShe.IoT.Application/IoTAppService.cs +++ b/src/JiShe.IoT.Application/IoTAppService.cs @@ -1,4 +1,4 @@ -using JiShe.ServicePro; +using JiShe.ServicePro; using JiShe.ServicePro.ApacheIoTDB.Provider.Options; using JiShe.ServicePro.Consts; using JiShe.ServicePro.Core; @@ -26,12 +26,12 @@ namespace JiShe.IoT } /// - /// ȡ豸ңָϢ + /// 获取设备遥测指令信息 /// /// IoTDBOptions - /// ԭʼ - /// 豸Ϣ - /// Ϣ + /// 请求原始对象 + /// 设备信息 + /// 明文消息体 /// /// protected DeviceTelemetryPacketTaskInfo GetDeviceTelemetryPacketTaskInfo(IoTDBOptions iotDBOptions, OpenApiRequest input, DeviceCacheInfos deviceInfo,string messageBody) @@ -40,9 +40,9 @@ namespace JiShe.IoT { if (iotDBOptions == null || string.IsNullOrWhiteSpace(iotDBOptions.DataBaseName) || input == null || deviceInfo == null || string.IsNullOrWhiteSpace(messageBody)) { - throw new UserFriendlyException($"豸ңָʧܣϢ쳣"); + throw new UserFriendlyException($"设备遥测指令创建失败,参数信息异常。"); } - //лϢݣõʵ + //反序列化消息数据,得到数据实体 ReceiveCommandInfoDto commandIssueInfo = input.Message.Deserialize(); var oneNETIssueMessageEntity = new DeviceTelemetryPacketTaskInfo() @@ -76,38 +76,38 @@ namespace JiShe.IoT } /// - /// Žӿ + /// 处理开放接口请求 /// /// - /// ӿ - /// + /// 接口请求体 + /// 服务配置 /// protected HttpDataResult HandleOpenApiRequest(OpenApiRequest input, ServerApplicationOptions serverOptions) where T : class { if (input == null || serverOptions == null || string.IsNullOrWhiteSpace(input.Message) || string.IsNullOrWhiteSpace(input.Nonce) || string.IsNullOrWhiteSpace(input.Signature)) { - return HttpDataResultExtensions.Failed(null, "Ϊ", -1101); + return HttpDataResultExtensions.Failed(null, "请求参数不能为空", -1101); } - if (input.Timestamp <= 946656000000)//ʱС2000꣬Ϊ + if (input.Timestamp <= 946656000000)//时间戳小于2000年,视为错误 { - return HttpDataResultExtensions.Failed(null, "ʱ쳣", -1102); + return HttpDataResultExtensions.Failed(null, "时间戳异常", -1102); } bool verifySignatureReult = EncryptUtil.OpenApiVerifySignature(input.Message, input.Nonce, input.Timestamp, input.Signature, serverOptions.SignatureToken); - if (verifySignatureReult == false)//ǩУʧ + if (verifySignatureReult == false)//签名校验失败 { - return HttpDataResultExtensions.Failed(null, "ǩУʧ", -1103); + return HttpDataResultExtensions.Failed(null, "签名校验失败", -1103); } - //жǷҪ + //判断是否需要解密 T messageBody = default; string tempMessageBody = null; if (string.IsNullOrWhiteSpace(input.Message)) { - return HttpDataResultExtensions.Success(messageBody, "ǩУɹû"); + return HttpDataResultExtensions.Success(messageBody, "签名校验成功,没有请求体"); } if (serverOptions.IsAesEncrypted && !string.IsNullOrWhiteSpace(serverOptions.AesSecurityKey)) @@ -123,7 +123,7 @@ namespace JiShe.IoT if (messageBody == null) { - return HttpDataResultExtensions.Failed(null, "ȡʧ", -1104); + return HttpDataResultExtensions.Failed(null, "获取数据体失败", -1104); } return HttpDataResultExtensions.Success(messageBody, tempMessageBody); diff --git a/src/JiShe.IoT.HttpApi/Controllers/BusinessSystemAggregationController.cs b/src/JiShe.IoT.HttpApi/Controllers/BusinessSystemAggregationController.cs index 6bf05fb..3d52158 100644 --- a/src/JiShe.IoT.HttpApi/Controllers/BusinessSystemAggregationController.cs +++ b/src/JiShe.IoT.HttpApi/Controllers/BusinessSystemAggregationController.cs @@ -44,27 +44,6 @@ namespace JiShe.IoT.Controllers public async Task BatchCreateDeviceInfoAsync(OpenApiRequest input) { return await _businessSystemAggregationService.BatchCreateDeviceInfoAsync(input); - } - - /// - /// 业务系统批量新增设备数据 - /// - [HttpPost(nameof(BatchCreateDeviceInfoAsync2))] - [SwaggerOperation(summary: "业务系统批量新增设备数据", Tags = new[] { "AggregationBusiness" })] - public async Task BatchCreateDeviceInfoAsync2(OpenApiRequest input) - { - return await _businessSystemAggregationService.BatchCreateDeviceInfoAsync2(input); - } - - - /// - /// 业务系统批量新增设备数据 - /// - [HttpPost(nameof(BatchCreateDeviceInfoAsync3))] - [SwaggerOperation(summary: "业务系统批量新增设备数据", Tags = new[] { "AggregationBusiness" })] - public async Task BatchCreateDeviceInfoAsync3(OpenApiRequest input) - { - return await _businessSystemAggregationService.BatchCreateDeviceInfoAsync3(input); - } + } } } diff --git a/src/JiShe.IoT.HttpApi/Controllers/DeviceAggregationController.cs b/src/JiShe.IoT.HttpApi/Controllers/DeviceAggregationController.cs index a5c9fb5..2b17916 100644 --- a/src/JiShe.IoT.HttpApi/Controllers/DeviceAggregationController.cs +++ b/src/JiShe.IoT.HttpApi/Controllers/DeviceAggregationController.cs @@ -85,32 +85,7 @@ namespace JiShe.IoT.Controllers public Task DeviceCommandForApiAsync(DeviceCommandForApiInput input) { return _deviceAggregationService.DeviceCommandForApiAsync(input); - } - - - /// - /// 发送设备指令信息 - /// - /// - /// - [HttpPost(nameof(BatchCreateDeviceInfoAsync))] - [SwaggerOperation(summary: "发送设备指令信息", Tags = new[] { "AggregationDevice" })] - public Task BatchCreateDeviceInfoAsync() - { - return _deviceAggregationService.BatchCreateDeviceInfoAsync(); - } - - /// - /// 发送设备指令信息 - /// - /// - /// - [HttpPost(nameof(BatchCreateDeviceInfoAsync2))] - [SwaggerOperation(summary: "发送设备指令信息", Tags = new[] { "AggregationDevice" })] - public Task BatchCreateDeviceInfoAsync2() - { - return _deviceAggregationService.BatchCreateDeviceInfoAsync2(); - } + } } }