diff --git a/projects/IoTNode/db.sql b/projects/IoTNode/db.sql index 7336ce30..e64b57c3 100644 --- a/projects/IoTNode/db.sql +++ b/projects/IoTNode/db.sql @@ -168,6 +168,7 @@ CREATE TABLE "iot_OrganIoTScene" ( "Hidden" INTEGER NOT NULL, "DisplayOrder" INTEGER NOT NULL, "OrganId" TEXT NOT NULL, + "BuildingId" TEXT NULL, CONSTRAINT "FK_iot_OrganIoTScene_iot_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "iot_Organ" ("Id") ON DELETE CASCADE ); diff --git a/projects/Platform/Controllers/HomeController.cs b/projects/Platform/Controllers/HomeController.cs index 291eb347..10b7a697 100644 --- a/projects/Platform/Controllers/HomeController.cs +++ b/projects/Platform/Controllers/HomeController.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Platform.ViewModels; +using System.Collections.Generic; using System.Linq; namespace Platform.Controllers @@ -44,12 +45,27 @@ namespace Platform.Controllers public IActionResult Building(HomeModel model) { var userOrganId = User.GetOrganId().Value;//当前用户机构Id - var currentOrgan = this._organRepo.ReadOnlyTable().FirstOrDefault(o => o.Id == userOrganId);//当前用户机构 - var organList = this._organRepo.ReadOnlyTable()//当前用户机构及下级机构 - .Where(o => o.ParentId != null) - .Where(o => o.Left >= currentOrgan.Left && o.Right <= currentOrgan.Right) - .Include(o => o.Buildings) + var userOrgans = this._userRepo.ReadOnlyTable() + .Where(o=>o.UserName==User.Identity.Name) + .SelectMany(o => o.OrganUsers) + .Select(o => o.Organ) .ToList(); + var organList = new List(); + foreach (var item in userOrgans) + { + var userOrganList = this._organRepo.ReadOnlyTable()//当前用户机构及下级机构 + .Where(o => o.ParentId != null) + .Where(o => o.Left >= item.Left && o.Right <= item.Right) + .Include(o => o.Buildings) + .ToList(); + organList.AddRange(userOrganList); + } + var currentUserOrgan = this._organRepo.ReadOnlyTable().FirstOrDefault(o => o.Id == userOrganId);//当前用户机构 + //var organList = this._organRepo.ReadOnlyTable()//当前用户机构及下级机构 + // .Where(o => o.ParentId != null) + // .Where(o => o.Left >= currentUserOrgan.Left && o.Right <= currentUserOrgan.Right) + // .Include(o => o.Buildings) + // .ToList(); organList.ToTree(); var rootOrganId = this._organRepo.ReadOnlyTable().Where(o => o.Number == "root").Select(o => o.Id).FirstOrDefault(); model.Organs = organList.Where(o => o.Parent == null).ToList(); diff --git a/projects/Platform/Views/Home/Building.cshtml b/projects/Platform/Views/Home/Building.cshtml index 89f528c1..62efde6d 100644 --- a/projects/Platform/Views/Home/Building.cshtml +++ b/projects/Platform/Views/Home/Building.cshtml @@ -110,7 +110,7 @@
@foreach (var item in Model.Scenes) { -
+
@@ -130,11 +130,10 @@ {
建筑
-
-

此处显示下级建筑列表,带温湿度平均值、带批量开关用电器按钮

+
@foreach (var item in Model.Buildings) { -