From 8dff46b7fc23a07b1ccd2acf557200cfc10cad7f Mon Sep 17 00:00:00 2001
From: wanggang <76527413@qq.com>
Date: Tue, 18 Aug 2020 12:28:57 +0800
Subject: [PATCH] 1.0.0.0818d1
Former-commit-id: ea030aff445d0934e0c9b83b55dd3ca3874fc4f7
Former-commit-id: bbb248475858766ca5742047ffe8e28ae04592fd
---
projects/Infrastructure/Infrastructure.csproj | 19 +++---
projects/IoT.Shared/IoT.Shared.csproj | 56 ++++++++--------
projects/IoTCenter/Api/DeviceController.cs | 8 ++-
.../Controllers/AccountController.cs | 7 ++
.../IoTCenter/ViewModels/ChartDataRequest.cs | 2 +
projects/IoTCenter/appsettings.Docker.json | 4 +-
projects/IoTDameon/.gitignore | 18 +++++
.../IoTDameon/Controllers/HomeController.cs | 37 ++++++++++
projects/IoTDameon/IoTDameon.csproj | 14 ++++
projects/IoTDameon/Program.cs | 35 ++++++++++
.../IoTDameon/Properties/launchSettings.json | 27 ++++++++
projects/IoTDameon/Startup.cs | 63 ++++++++++++++++++
.../IoTDameon/appsettings.Development.json | 9 +++
projects/IoTDameon/appsettings.json | 11 +++
projects/IoTDameon/wwwroot/favicon.ico | Bin 0 -> 32038 bytes
projects/IoTNode/IoTNode.csproj | 2 +-
projects/Version.cs | 2 +-
projects/WebMVC/WebMVC.csproj | 2 +-
projects/WebSPA/WebSPA.csproj | 2 +-
projects/projects.sln | 17 ++++-
publish/build.ps1 | 4 +-
.../src/linux-x64/publish/docker-compose.yml | 4 +-
.../publish/docker/conf/website/nginx.conf | 4 +-
23 files changed, 294 insertions(+), 53 deletions(-)
create mode 100644 projects/IoTDameon/.gitignore
create mode 100644 projects/IoTDameon/Controllers/HomeController.cs
create mode 100644 projects/IoTDameon/IoTDameon.csproj
create mode 100644 projects/IoTDameon/Program.cs
create mode 100644 projects/IoTDameon/Properties/launchSettings.json
create mode 100644 projects/IoTDameon/Startup.cs
create mode 100644 projects/IoTDameon/appsettings.Development.json
create mode 100644 projects/IoTDameon/appsettings.json
create mode 100644 projects/IoTDameon/wwwroot/favicon.ico
diff --git a/projects/Infrastructure/Infrastructure.csproj b/projects/Infrastructure/Infrastructure.csproj
index d9328188..b629af16 100644
--- a/projects/Infrastructure/Infrastructure.csproj
+++ b/projects/Infrastructure/Infrastructure.csproj
@@ -9,22 +9,21 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
+
diff --git a/projects/IoT.Shared/IoT.Shared.csproj b/projects/IoT.Shared/IoT.Shared.csproj
index 4ae6758c..2d297af1 100644
--- a/projects/IoT.Shared/IoT.Shared.csproj
+++ b/projects/IoT.Shared/IoT.Shared.csproj
@@ -1,32 +1,32 @@
-
- netcoreapp3.1
- true
- true
- $(DefaultItemExcludes);wwwroot\**\*
- true
- false
- false
-
+
+ netcoreapp3.1
+ true
+ true
+ $(DefaultItemExcludes);wwwroot\**\*
+ true
+ false
+ false
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/projects/IoTCenter/Api/DeviceController.cs b/projects/IoTCenter/Api/DeviceController.cs
index 157e15f6..db86cc33 100644
--- a/projects/IoTCenter/Api/DeviceController.cs
+++ b/projects/IoTCenter/Api/DeviceController.cs
@@ -70,8 +70,12 @@ namespace IoTCenter.Api.Controllers
var hours = Convert.ToInt32(DateTime.Now.ToString("%z"));
using var client = new InfluxClient(new Uri(url), usr, pwd);
var days = Convert.ToInt32(model.Time.TrimEnd('d'));
- var group = days == 1 ? "1m" : (days == 7 ? "10m" : "1h");
- var query = $"select last({model.Key}) from {measurementName} where time>now() - {days}d and DeviceNumber = '{model.Number}' group by time({group}) fill(none)";
+ var group = model.Group;
+ if (string.IsNullOrEmpty(group))
+ {
+ group = days == 1 ? "1m" : (days == 7 ? "10m" : "1h");
+ }
+ var query = $"select last({model.Key}) from {measurementName} where time>now() - {days}d and DeviceNumber = '{model.Number}' group by time({group}) fill(none) tz('Asia/Shanghai')";
var result = client.ReadAsync(dbName, query).Result;
var rows = result.Results.FirstOrDefault()?
.Series.FirstOrDefault()?
diff --git a/projects/IoTCenter/Controllers/AccountController.cs b/projects/IoTCenter/Controllers/AccountController.cs
index ce76e3aa..eb46ca2e 100644
--- a/projects/IoTCenter/Controllers/AccountController.cs
+++ b/projects/IoTCenter/Controllers/AccountController.cs
@@ -114,5 +114,12 @@ namespace IoTCenter.Controllers
var url = registerUrl.SetParam("returnUrl", fullReturnUrl);
return Redirect(url);
}
+
+ [AllowAnonymous]
+ public IActionResult CasLogin(string ticket)
+ {
+ //this._cfg[""]
+ return Redirect(this._cfg["http://221.194.113.154:8100/"]);
+ }
}
}
\ No newline at end of file
diff --git a/projects/IoTCenter/ViewModels/ChartDataRequest.cs b/projects/IoTCenter/ViewModels/ChartDataRequest.cs
index 46441a05..fc3268f7 100644
--- a/projects/IoTCenter/ViewModels/ChartDataRequest.cs
+++ b/projects/IoTCenter/ViewModels/ChartDataRequest.cs
@@ -12,5 +12,7 @@ namespace IoTCenter.ViewModels
[Required(ErrorMessage = nameof(RequiredAttribute))]
public string Time { get; set; }
+
+ public string Group { get; set; }
}
}
\ No newline at end of file
diff --git a/projects/IoTCenter/appsettings.Docker.json b/projects/IoTCenter/appsettings.Docker.json
index 5cd23c15..d3f1ad22 100644
--- a/projects/IoTCenter/appsettings.Docker.json
+++ b/projects/IoTCenter/appsettings.Docker.json
@@ -7,8 +7,8 @@
"mysql": "Server=172.172.0.30;Port=3306;Database=iotcenter;Uid=root;Pwd=root;",
"redis": "redis:6379,allowAdmin=true",
"srs": "http://172.172.0.60:1985",
- "JobServer": "http://172.172.0.10/JobServer",
- "JobCallBack": "http://172.172.0.10/IoTCenter/api/v1/Api/ExecTimer"
+ "JobServer": "http://172.172.0.12/JobServer",
+ "JobCallBack": "http://172.172.0.12/IoTCenter/api/v1/Api/ExecTimer"
},
"influxdb": {
"url": "http://172.172.0.50:8086",
diff --git a/projects/IoTDameon/.gitignore b/projects/IoTDameon/.gitignore
new file mode 100644
index 00000000..cd5894bd
--- /dev/null
+++ b/projects/IoTDameon/.gitignore
@@ -0,0 +1,18 @@
+*.bak
+*.suo
+*.db
+*.db-shm
+*.db-wal
+*.user
+.vs
+obj
+Obj
+bin
+Bin
+debug
+Debug
+release
+Release
+Logs
+logs
+node_modules
\ No newline at end of file
diff --git a/projects/IoTDameon/Controllers/HomeController.cs b/projects/IoTDameon/Controllers/HomeController.cs
new file mode 100644
index 00000000..291b801e
--- /dev/null
+++ b/projects/IoTDameon/Controllers/HomeController.cs
@@ -0,0 +1,37 @@
+using Microsoft.AspNetCore.Mvc;
+using Nwc.XmlRpc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net.Http;
+using System.Threading.Tasks;
+
+namespace IoTDameon.Controllers
+{
+ public class HomeController : Controller
+ {
+ private IHttpClientFactory _httpClientFactory;
+
+ public HomeController(IHttpClientFactory httpClientFactory)
+ {
+ _httpClientFactory = httpClientFactory;
+ }
+
+ public IActionResult Index()
+ {
+ var client = new XmlRpcRequest();
+ client.MethodName = "supervisor.getState";
+ try
+ {
+ Console.WriteLine("Request: " + client);
+ var response = client.Send("http://usr:pwd@iot.edusoa.com:9001/RPC2");
+ Console.WriteLine("Response: " + response);
+ }
+ catch (Exception ex)
+ {
+ return Content(ex.ToString());
+ }
+ return Content("");
+ }
+ }
+}
\ No newline at end of file
diff --git a/projects/IoTDameon/IoTDameon.csproj b/projects/IoTDameon/IoTDameon.csproj
new file mode 100644
index 00000000..7292475a
--- /dev/null
+++ b/projects/IoTDameon/IoTDameon.csproj
@@ -0,0 +1,14 @@
+
+
+
+ netcoreapp3.1
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/projects/IoTDameon/Program.cs b/projects/IoTDameon/Program.cs
new file mode 100644
index 00000000..26fb9b95
--- /dev/null
+++ b/projects/IoTDameon/Program.cs
@@ -0,0 +1,35 @@
+using Microsoft.AspNetCore;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
+using Serilog;
+using System;
+using System.IO;
+using System.Text;
+
+namespace IoTDameon
+{
+ public class Program
+ {
+ public static void Main(string[] args)
+ {
+ Console.OutputEncoding = Encoding.UTF8;
+ var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
+ .AddJsonFile("appsettings.json", optional: true)
+ .Build();
+ WebHost.CreateDefaultBuilder(args)
+ .UseConfiguration(config)
+ .ConfigureLogging((c, o) =>
+ {
+ Log.Logger = new LoggerConfiguration()
+ .ReadFrom.Configuration(config)
+ .WriteTo.Console()
+ .WriteTo.File("logs/log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 100 * 1024 * 1024, rollingInterval: RollingInterval.Infinite)
+ .CreateLogger();
+ o.AddSerilog();
+ })
+ .UseStartup()
+ .Build()
+ .Run();
+ }
+ }
+}
\ No newline at end of file
diff --git a/projects/IoTDameon/Properties/launchSettings.json b/projects/IoTDameon/Properties/launchSettings.json
new file mode 100644
index 00000000..40695eff
--- /dev/null
+++ b/projects/IoTDameon/Properties/launchSettings.json
@@ -0,0 +1,27 @@
+{
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://localhost:8003",
+ "sslPort": 0
+ }
+ },
+ "profiles": {
+ "IIS Express": {
+ "commandName": "IISExpress",
+ "launchBrowser": true,
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ },
+ "IoTDameon": {
+ "commandName": "Project",
+ "launchBrowser": true,
+ "applicationUrl": "http://localhost:8003",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/projects/IoTDameon/Startup.cs b/projects/IoTDameon/Startup.cs
new file mode 100644
index 00000000..f1dc3516
--- /dev/null
+++ b/projects/IoTDameon/Startup.cs
@@ -0,0 +1,63 @@
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Hosting;
+using System;
+
+namespace IoTDameon
+{
+ public class Startup
+ {
+ public Startup(IConfiguration configuration)
+ {
+ Configuration = configuration;
+ }
+
+ private readonly string _origins = "AllowAllHeaders";
+ public IConfiguration Configuration { get; }
+
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddCors(options => options.AddPolicy(_origins,
+ builder =>
+ {
+ builder.SetIsOriginAllowed(o => true).AllowAnyMethod().AllowAnyHeader().AllowCredentials();
+ })
+ );
+
+ services.AddHttpClient();
+
+ services.AddControllersWithViews();
+ }
+
+ public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
+ {
+ if (env.IsDevelopment())
+ {
+ app.UseDeveloperExceptionPage();
+ }
+ else
+ {
+ app.UseExceptionHandler("/Error");
+ }
+
+ string basePath = this.Configuration.GetValue("BasePath", "");
+
+ app.UsePathBase(basePath);
+
+ app.UseCors(_origins);
+
+ app.UseStaticFiles();
+
+ app.UseRouting();
+
+ app.UseEndpoints(endpoints =>
+ {
+ endpoints.MapControllerRoute(
+ name: "default",
+ pattern: "{controller=Home}/{action=Index}/{id?}");
+ });
+ }
+ }
+}
\ No newline at end of file
diff --git a/projects/IoTDameon/appsettings.Development.json b/projects/IoTDameon/appsettings.Development.json
new file mode 100644
index 00000000..8983e0fc
--- /dev/null
+++ b/projects/IoTDameon/appsettings.Development.json
@@ -0,0 +1,9 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft": "Warning",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ }
+}
diff --git a/projects/IoTDameon/appsettings.json b/projects/IoTDameon/appsettings.json
new file mode 100644
index 00000000..60f08eb9
--- /dev/null
+++ b/projects/IoTDameon/appsettings.json
@@ -0,0 +1,11 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft": "Warning",
+ "Microsoft.Hosting.Lifetime": "Information"
+ }
+ },
+ "AllowedHosts": "*",
+ "server.urls": "http://*:8003"
+}
\ No newline at end of file
diff --git a/projects/IoTDameon/wwwroot/favicon.ico b/projects/IoTDameon/wwwroot/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a3a799985c43bc7309d701b2cad129023377dc71
GIT binary patch
literal 32038
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
-
+
diff --git a/projects/Version.cs b/projects/Version.cs
index dabb0ec9..3ed47744 100644
--- a/projects/Version.cs
+++ b/projects/Version.cs
@@ -1,4 +1,4 @@
using System.Reflection;
[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyInformationalVersion("1.0.0.0814d1")]
\ No newline at end of file
+[assembly: AssemblyInformationalVersion("1.0.0.0818d1")]
\ No newline at end of file
diff --git a/projects/WebMVC/WebMVC.csproj b/projects/WebMVC/WebMVC.csproj
index 932f3e56..81a5b8e0 100644
--- a/projects/WebMVC/WebMVC.csproj
+++ b/projects/WebMVC/WebMVC.csproj
@@ -6,6 +6,6 @@
-
+
\ No newline at end of file
diff --git a/projects/WebSPA/WebSPA.csproj b/projects/WebSPA/WebSPA.csproj
index 9ac7e1be..df21dc51 100644
--- a/projects/WebSPA/WebSPA.csproj
+++ b/projects/WebSPA/WebSPA.csproj
@@ -6,6 +6,6 @@
-
+
\ No newline at end of file
diff --git a/projects/projects.sln b/projects/projects.sln
index c78a84cd..3b09b09e 100644
--- a/projects/projects.sln
+++ b/projects/projects.sln
@@ -42,6 +42,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebSPA", "WebSPA\WebSPA.csp
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JobServer", "JobServer\JobServer.csproj", "{6E2766D8-9ECF-469E-8662-A20F673E52CC}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IoTDameon", "IoTDameon\IoTDameon.csproj", "{60596088-3C4E-4EA2-933A-B66CD269845B}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -160,6 +162,18 @@ Global
{6E2766D8-9ECF-469E-8662-A20F673E52CC}.Release|iPhone.Build.0 = Release|Any CPU
{6E2766D8-9ECF-469E-8662-A20F673E52CC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{6E2766D8-9ECF-469E-8662-A20F673E52CC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Release|iPhone.Build.0 = Release|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {60596088-3C4E-4EA2-933A-B66CD269845B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -174,9 +188,10 @@ Global
{C66B39B3-D863-4651-99CD-74104CA65C47} = {11BCB5F9-0020-463A-92FB-BC25E2A0BF75}
{6F839910-580D-4CD1-A0C0-6FAF542B4480} = {11BCB5F9-0020-463A-92FB-BC25E2A0BF75}
{6E2766D8-9ECF-469E-8662-A20F673E52CC} = {E1681DC3-9AC2-4FF6-B3DE-37EF826E6F8A}
+ {60596088-3C4E-4EA2-933A-B66CD269845B} = {AE34E06D-C5C7-44BC-B168-85808318516C}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {0B7095FB-5E70-4EF8-805A-CB4A91AE4B0A}
BuildVersion_StartDate = 2000/1/1
+ SolutionGuid = {0B7095FB-5E70-4EF8-805A-CB4A91AE4B0A}
EndGlobalSection
EndGlobal
diff --git a/publish/build.ps1 b/publish/build.ps1
index 91954d0f..28101e0e 100644
--- a/publish/build.ps1
+++ b/publish/build.ps1
@@ -11,8 +11,8 @@ Remove-Item ./dist/linux-x64/publish/apps/srs/objs/nginx/html/live/*.png -recurs
Remove-Item ./dist/linux-x64/publish/apps/srs/objs/nginx/html/live/*.m3u8 -recurse -force
Remove-Item ./dist/linux-x64/publish/apps/srs/objs/nginx/html/live/*.ts -recurse -force
-Copy-Item ../projects/WebMVC/wwwroot ./dist/linux-x64/publish/apps/WebMVC/wwwroot -recurse
-Copy-Item ../projects/WebSPA/wwwroot ./dist/linux-x64/publish/apps/WebSPA/wwwroot -recurse
+Copy-Item ../projects/WebMVC/wwwroot/* ./dist/linux-x64/publish/apps/WebMVC/wwwroot -recurse
+Copy-Item ../projects/WebSPA/wwwroot/* ./dist/linux-x64/publish/apps/WebSPA/wwwroot -recurse
dotnet publish ../projects/UserCenter/UserCenter.csproj -c Release -r linux-x64 -o ../publish/dist/linux-x64/publish/apps/UserCenter
dotnet publish ../projects/JobServer/JobServer.csproj -c Release -r linux-x64 -o ../publish/dist/linux-x64/publish/apps/JobServer
diff --git a/publish/src/linux-x64/publish/docker-compose.yml b/publish/src/linux-x64/publish/docker-compose.yml
index 287f9d77..591038c0 100644
--- a/publish/src/linux-x64/publish/docker-compose.yml
+++ b/publish/src/linux-x64/publish/docker-compose.yml
@@ -30,8 +30,8 @@ services:
volumes:
- ./docker/conf/website/nginx.conf:/etc/nginx/nginx.conf
- ./docker/log/website:/var/log/nginx
- - ./apps/WebMVC/wwwroot:/usr/share/nginx/html/desktop
- - ./apps/WebSPA/wwwroot:/usr/share/nginx/html/mobile
+ - ./apps/WebMVC/wwwroot:/root/nginx/html/desktop
+ - ./apps/WebSPA/wwwroot:/root/nginx/html/mobile
networks:
default:
ipv4_address: 172.172.0.10
diff --git a/publish/src/linux-x64/publish/docker/conf/website/nginx.conf b/publish/src/linux-x64/publish/docker/conf/website/nginx.conf
index 3889a8ef..a7a6ebdc 100644
--- a/publish/src/linux-x64/publish/docker/conf/website/nginx.conf
+++ b/publish/src/linux-x64/publish/docker/conf/website/nginx.conf
@@ -24,9 +24,9 @@ http {
server_name localhost;
location / {
- root /usr/share/nginx/html/desktop;
+ root /root/nginx/html/desktop;
if ($http_user_agent ~* "(mobile|android|ipad|iphone|ipod|tablet)") {
- root /usr/share/nginx/html/mobile;
+ root /root/nginx/html/mobile;
}
index index.html;
}