From 39c3e0419631a559644c8dbab1ca4cd75329b5b1 Mon Sep 17 00:00:00 2001 From: wanggang <76527413@qq.com> Date: Thu, 8 Apr 2021 17:29:13 +0800 Subject: [PATCH] update Former-commit-id: 363b58d3158a59d02803f8bd5d87a68b5c2c68c9 Former-commit-id: 6f1be3f72083490eff9f4a47f1364798906c6d19 --- .../Platform/appsettings.Development.json | 5 +- projects/Platform/db.sql | 1920 ++++++----------- publish/build.ps1 | 4 +- publish/exclude.txt | 1 + .../linux-x64/publish/conf/gateway/nginx.conf | 30 +- .../src/linux-x64/publish/conf/mysql/my.cnf | 9 +- .../linux-x64/publish/conf/website/nginx.conf | 8 +- .../publish/docker-compose.override.yml | 8 +- .../linux-x64/publish/docker-compose.prod.yml | 5 +- .../src/linux-x64/publish/docker-compose.yml | 43 +- 10 files changed, 644 insertions(+), 1389 deletions(-) diff --git a/projects/Platform/appsettings.Development.json b/projects/Platform/appsettings.Development.json index 883da92a..8b55db62 100644 --- a/projects/Platform/appsettings.Development.json +++ b/projects/Platform/appsettings.Development.json @@ -7,8 +7,9 @@ } }, "AppSettings": { - "Database": "SQLite", - "JobDatabase": "SQLite", + //"Database": "SQLite", + //"JobDatabase": "SQLite", + //"Cache": "Memory", "Profiler": true }, "ReverseProxy": { diff --git a/projects/Platform/db.sql b/projects/Platform/db.sql index 866eb1fa..806072e7 100644 --- a/projects/Platform/db.sql +++ b/projects/Platform/db.sql @@ -1,1429 +1,723 @@ -CREATE TABLE "AppModule" ( - -- 模块 +CREATE TABLE `AppModule` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Number', + `Url` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Url', + `Order` int NOT NULL COMMENT 'Order', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_AppModule` PRIMARY KEY (`Id`) +) COMMENT '模块'; + + +CREATE TABLE `Area` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Type` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Type', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Number', + `Order` int NOT NULL COMMENT 'Order', + `Left` int NOT NULL COMMENT 'Left', + `Right` int NOT NULL COMMENT 'Right', + `ParentId` char(36) NULL COMMENT 'ParentId', + CONSTRAINT `PK_Area` PRIMARY KEY (`Id`), + CONSTRAINT `FK_Area_Area_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `Area` (`Id`) ON DELETE RESTRICT +) COMMENT '区域'; + + +CREATE TABLE `DictionaryCategory` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Key` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Key', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_DictionaryCategory` PRIMARY KEY (`Id`) +) COMMENT '字典分类'; + + +CREATE TABLE `IoTProductCategory` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Image` longtext CHARACTER SET utf8mb4 NULL COMMENT '分类图标', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Number', + `Order` int NOT NULL COMMENT 'Order', + `Left` int NOT NULL COMMENT 'Left', + `Right` int NOT NULL COMMENT 'Right', + `ParentId` char(36) NULL COMMENT 'ParentId', + CONSTRAINT `PK_IoTProductCategory` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTProductCategory_IoTProductCategory_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `IoTProductCategory` (`Id`) ON DELETE RESTRICT +) COMMENT '分类'; + + +CREATE TABLE `LiveRecord` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `DeviceNumber` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'DeviceNumber', + `DeviceName` longtext CHARACTER SET utf8mb4 NULL COMMENT 'DeviceName', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Name', + `Value` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Value', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_LiveRecord` PRIMARY KEY (`Id`) +) COMMENT '录像'; + + +CREATE TABLE `Setting` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Value` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Value', + `Type` int NOT NULL COMMENT 'Type', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_Setting` PRIMARY KEY (`Id`) +) COMMENT '配置'; + + +CREATE TABLE `Site` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Icon` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Icon', + `Description` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Description', + `Key` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Key', + `Home` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Home', + `Login` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Login', + `Logout` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Logout', + `Disabled` tinyint(1) NOT NULL COMMENT 'Disabled', + `Order` int NOT NULL COMMENT 'Order', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_Site` PRIMARY KEY (`Id`) +) COMMENT '应用'; + + +CREATE TABLE `Statistic` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Key` varchar(255) CHARACTER SET utf8mb4 NULL COMMENT 'Key', + `Value` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Value', + `IntValue` int NULL COMMENT 'IntValue', + `DoubleValue` double NULL COMMENT 'DoubleValue', + `DateTimeValue` datetime(6) NULL COMMENT 'DateTimeValue', + `Type` int NOT NULL COMMENT 'Type', + `UpdateAt` datetime(6) NOT NULL COMMENT 'UpdateAt', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_Statistic` PRIMARY KEY (`Id`) +) COMMENT '数据统计'; + + +CREATE TABLE `User` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `UserName` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'UserName', + `SecurityStamp` longtext CHARACTER SET utf8mb4 NULL COMMENT 'SecurityStamp', + `PasswordHash` longtext CHARACTER SET utf8mb4 NULL COMMENT 'PasswordHash', + `PasswordConfirmed` tinyint(1) NOT NULL COMMENT 'PasswordConfirmed', + `Email` varchar(255) CHARACTER SET utf8mb4 NULL COMMENT 'Email', + `EmailConfirmed` tinyint(1) NOT NULL COMMENT 'EmailConfirmed', + `PhoneNumber` varchar(255) CHARACTER SET utf8mb4 NULL COMMENT 'PhoneNumber', + `PhoneNumberConfirmed` tinyint(1) NOT NULL COMMENT 'PhoneNumberConfirmed', + `RealName` longtext CHARACTER SET utf8mb4 NULL COMMENT 'RealName', + `IdentityNumber` longtext CHARACTER SET utf8mb4 NULL COMMENT 'IdentityNumber', + `IdentityConfirmed` tinyint(1) NOT NULL COMMENT 'IdentityConfirmed', + `NickName` longtext CHARACTER SET utf8mb4 NULL COMMENT 'NickName', + `Avatar` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Avatar', + `Sex` int NULL COMMENT 'Sex', + `Birthday` datetime(6) NULL COMMENT 'Birthday', + `LockoutEnabled` tinyint(1) NOT NULL COMMENT 'LockoutEnabled', + `AccessFailedCount` int NOT NULL COMMENT 'AccessFailedCount', + `LockoutEnd` datetime(6) NULL COMMENT 'LockoutEnd', + `RowVersion` longtext CHARACTER SET utf8mb4 NULL COMMENT 'RowVersion', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_User` PRIMARY KEY (`Id`) +) COMMENT '用户'; + + +CREATE TABLE `PermissionCategory` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `AppModuleId` char(36) NULL COMMENT 'AppModuleId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Number', + `Order` int NOT NULL COMMENT 'Order', + `Left` int NOT NULL COMMENT 'Left', + `Right` int NOT NULL COMMENT 'Right', + `ParentId` char(36) NULL COMMENT 'ParentId', + CONSTRAINT `PK_PermissionCategory` PRIMARY KEY (`Id`), + CONSTRAINT `FK_PermissionCategory_AppModule_AppModuleId` FOREIGN KEY (`AppModuleId`) REFERENCES `AppModule` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_PermissionCategory_PermissionCategory_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `PermissionCategory` (`Id`) ON DELETE RESTRICT +) COMMENT '权限分类'; + + +CREATE TABLE `Organ` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Type` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Type', + `Image` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Image', + `Description` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Description', + `AreaId` char(36) NULL COMMENT 'AreaId', + `IsReadOnly` tinyint(1) NOT NULL COMMENT 'IsReadOnly', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + `Name` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Number', + `Order` int NOT NULL COMMENT 'Order', + `Left` int NOT NULL COMMENT 'Left', + `Right` int NOT NULL COMMENT 'Right', + `ParentId` char(36) NULL COMMENT 'ParentId', + CONSTRAINT `PK_Organ` PRIMARY KEY (`Id`), + CONSTRAINT `FK_Organ_Area_AreaId` FOREIGN KEY (`AreaId`) REFERENCES `Area` (`Id`) ON DELETE SET NULL, + CONSTRAINT `FK_Organ_Organ_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `Organ` (`Id`) ON DELETE RESTRICT +) COMMENT '机构'; + + +CREATE TABLE `DictionaryItem` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Value` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Value', + `Order` int NOT NULL COMMENT 'Order', + `CategoryId` char(36) NOT NULL COMMENT 'CategoryId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_DictionaryItem` PRIMARY KEY (`Id`), + CONSTRAINT `FK_DictionaryItem_DictionaryCategory_CategoryId` FOREIGN KEY (`CategoryId`) REFERENCES `DictionaryCategory` (`Id`) ON DELETE CASCADE +) COMMENT '字典'; + + +CREATE TABLE `IoTProduct` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT '产品名称', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '产品型号', + `Image` longtext CHARACTER SET utf8mb4 NULL COMMENT '图标', + `Template` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Template', + `Path` longtext CHARACTER SET utf8mb4 NULL COMMENT '路径', + `ApiJson` longtext CHARACTER SET utf8mb4 NULL COMMENT 'ApiJson', + `Order` int NOT NULL COMMENT '序号', + `IoTProductCategoryId` char(36) NULL COMMENT 'IoTProductCategoryId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTProduct` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTProduct_IoTProductCategory_IoTProductCategoryId` FOREIGN KEY (`IoTProductCategoryId`) REFERENCES `IoTProductCategory` (`Id`) ON DELETE SET NULL +) COMMENT '产品'; + + +CREATE TABLE `Permission` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Number', + `IsReadOnly` tinyint(1) NOT NULL COMMENT 'IsReadOnly', + `Hide` tinyint(1) NOT NULL COMMENT 'Hide', + `Type` int NOT NULL COMMENT 'Type', + `CategoryId` char(36) NULL COMMENT 'CategoryId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_Permission` PRIMARY KEY (`Id`), + CONSTRAINT `FK_Permission_PermissionCategory_CategoryId` FOREIGN KEY (`CategoryId`) REFERENCES `PermissionCategory` (`Id`) ON DELETE SET NULL +) COMMENT '权限'; + + +CREATE TABLE `Building` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Type` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Type', + `Image` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Image', + `Description` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Description', + `OrganId` char(36) NOT NULL COMMENT 'OrganId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Number', + `Order` int NOT NULL COMMENT 'Order', + `Left` int NOT NULL COMMENT 'Left', + `Right` int NOT NULL COMMENT 'Right', + `ParentId` char(36) NULL COMMENT 'ParentId', + CONSTRAINT `PK_Building` PRIMARY KEY (`Id`), + CONSTRAINT `FK_Building_Building_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `Building` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_Building_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `Organ` (`Id`) ON DELETE CASCADE +) COMMENT '房间'; + + +CREATE TABLE `Department` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Type` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Type', + `OrganId` char(36) NOT NULL COMMENT 'OrganId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Number', + `Order` int NOT NULL COMMENT 'Order', + `Left` int NOT NULL COMMENT 'Left', + `Right` int NOT NULL COMMENT 'Right', + `ParentId` char(36) NULL COMMENT 'ParentId', + CONSTRAINT `PK_Department` PRIMARY KEY (`Id`), + CONSTRAINT `FK_Department_Department_ParentId` FOREIGN KEY (`ParentId`) REFERENCES `Department` (`Id`) ON DELETE RESTRICT, + CONSTRAINT `FK_Department_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `Organ` (`Id`) ON DELETE CASCADE +) COMMENT '部门'; + + +CREATE TABLE `OrganUser` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Type` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Type', + `OrganId` char(36) NOT NULL COMMENT 'OrganId', + `UserId` char(36) NOT NULL COMMENT 'UserId', + `IsDefault` tinyint(1) NOT NULL COMMENT 'IsDefault', + `IsReadOnly` tinyint(1) NOT NULL COMMENT 'IsReadOnly', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_OrganUser` PRIMARY KEY (`Id`), + CONSTRAINT `FK_OrganUser_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `Organ` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_OrganUser_User_UserId` FOREIGN KEY (`UserId`) REFERENCES `User` (`Id`) ON DELETE CASCADE +) COMMENT '机构用户'; + + +CREATE TABLE `Role` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT 'Name', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT 'Number', + `IsReadOnly` tinyint(1) NOT NULL COMMENT 'IsReadOnly', + `OrganId` char(36) NOT NULL COMMENT 'OrganId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_Role` PRIMARY KEY (`Id`), + CONSTRAINT `FK_Role_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `Organ` (`Id`) ON DELETE CASCADE +) COMMENT '角色'; + + +CREATE TABLE `Title` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Name', + `MinLevel` int NOT NULL COMMENT 'MinLevel', + `MaxLevel` int NOT NULL COMMENT 'MaxLevel', + `OrganId` char(36) NOT NULL COMMENT 'OrganId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_Title` PRIMARY KEY (`Id`), + CONSTRAINT `FK_Title_Organ_OrganId` FOREIGN KEY (`OrganId`) REFERENCES `Organ` (`Id`) ON DELETE CASCADE +) COMMENT '职务'; + + +CREATE TABLE `IoTApi` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` varchar(255) CHARACTER SET utf8mb4 NULL COMMENT 'Name', + `Path` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Path', + `Command` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Command', + `Method` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Method', + `IoTProductId` char(36) NOT NULL COMMENT 'IoTProductId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTApi` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTApi_IoTProduct_IoTProductId` FOREIGN KEY (`IoTProductId`) REFERENCES `IoTProduct` (`Id`) ON DELETE CASCADE +) COMMENT '接口'; + + +CREATE TABLE `IoTGateway` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT '节点名称', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '节点编号', + `IsOnline` tinyint(1) NOT NULL COMMENT '在线', + `Image` longtext CHARACTER SET utf8mb4 NULL COMMENT '图片', + `Version` longtext CHARACTER SET utf8mb4 NULL COMMENT '版本', + `Password` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Password', + `Order` int NOT NULL COMMENT '序号', + `Hidden` tinyint(1) NOT NULL COMMENT '隐藏', + `BuildingId` char(36) NULL COMMENT 'BuildingId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTGateway` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTGateway_Building_BuildingId` FOREIGN KEY (`BuildingId`) REFERENCES `Building` (`Id`) ON DELETE SET NULL +) COMMENT '网关'; + + +CREATE TABLE `IoTScene` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT '名称', + `Image` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT '图标', + `Hidden` tinyint(1) NOT NULL COMMENT '隐藏', + `Order` int NOT NULL COMMENT '序号', + `BuildingId` char(36) NOT NULL COMMENT 'BuildingId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTScene` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTScene_Building_BuildingId` FOREIGN KEY (`BuildingId`) REFERENCES `Building` (`Id`) ON DELETE CASCADE +) COMMENT '机构场景'; + + +CREATE TABLE `OrganUserRole` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `IsReadOnly` tinyint(1) NOT NULL COMMENT 'IsReadOnly', + `OrganUserId` char(36) NOT NULL COMMENT 'OrganUserId', + `OrganRoleId` char(36) NOT NULL COMMENT 'OrganRoleId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_OrganUserRole` PRIMARY KEY (`Id`), + CONSTRAINT `FK_OrganUserRole_OrganUser_OrganUserId` FOREIGN KEY (`OrganUserId`) REFERENCES `OrganUser` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_OrganUserRole_Role_OrganRoleId` FOREIGN KEY (`OrganRoleId`) REFERENCES `Role` (`Id`) ON DELETE CASCADE +) COMMENT '用户角色'; + + +CREATE TABLE `RolePermission` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `RoleId` char(36) NOT NULL COMMENT 'RoleId', + `PermissionId` char(36) NOT NULL COMMENT 'PermissionId', + `IsReadOnly` tinyint(1) NOT NULL COMMENT 'IsReadOnly', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_RolePermission` PRIMARY KEY (`Id`), + CONSTRAINT `FK_RolePermission_Permission_PermissionId` FOREIGN KEY (`PermissionId`) REFERENCES `Permission` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_RolePermission_Role_RoleId` FOREIGN KEY (`RoleId`) REFERENCES `Role` (`Id`) ON DELETE CASCADE +) COMMENT '角色权限'; + + +CREATE TABLE `Job` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Name', + `Level` int NOT NULL COMMENT 'Level', + `TitleId` char(36) NOT NULL COMMENT 'TitleId', + `DepartmentId` char(36) NOT NULL COMMENT 'DepartmentId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_Job` PRIMARY KEY (`Id`), + CONSTRAINT `FK_Job_Department_DepartmentId` FOREIGN KEY (`DepartmentId`) REFERENCES `Department` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_Job_Title_TitleId` FOREIGN KEY (`TitleId`) REFERENCES `Title` (`Id`) ON DELETE CASCADE +) COMMENT '职位'; + + +CREATE TABLE `IoTParameter` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Type` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Type', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Name', + `Description` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Description', + `Required` tinyint(1) NOT NULL COMMENT 'Required', + `Maxinum` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Maxinum', + `Minimum` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Minimum', + `IoTApiId` char(36) NOT NULL COMMENT 'IoTApiId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTParameter` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTParameter_IoTApi_IoTApiId` FOREIGN KEY (`IoTApiId`) REFERENCES `IoTApi` (`Id`) ON DELETE CASCADE +) COMMENT '参数'; + + +CREATE TABLE `IoTDevice` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT '名称', + `Number` varchar(255) CHARACTER SET utf8mb4 NOT NULL COMMENT '编号', + `Gateway` longtext CHARACTER SET utf8mb4 NULL COMMENT '网关编号', + `DisplayName` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT '显示名称', + `Tag` longtext CHARACTER SET utf8mb4 NULL COMMENT '标记', + `IsOnline` tinyint(1) NOT NULL COMMENT '在线状态', + `Icon` longtext CHARACTER SET utf8mb4 NULL COMMENT '图标', + `Ip` longtext CHARACTER SET utf8mb4 NULL COMMENT 'IP', + `UserName` longtext CHARACTER SET utf8mb4 NULL COMMENT '用户名', + `Password` longtext CHARACTER SET utf8mb4 NULL COMMENT '密码', + `ConnectId` longtext CHARACTER SET utf8mb4 NULL COMMENT '连接Id', + `Order` int NOT NULL COMMENT '序号', + `Disabled` tinyint(1) NOT NULL COMMENT '隐藏', + `IoTProductId` char(36) NOT NULL COMMENT '产品Id', + `IoTGatewayId` char(36) NOT NULL COMMENT '节点Id', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTDevice` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTDevice_IoTGateway_IoTGatewayId` FOREIGN KEY (`IoTGatewayId`) REFERENCES `IoTGateway` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_IoTDevice_IoTProduct_IoTProductId` FOREIGN KEY (`IoTProductId`) REFERENCES `IoTProduct` (`Id`) ON DELETE CASCADE +) COMMENT '设备'; + + +CREATE TABLE `IoTTimer` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Name', + `Cron` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Cron', + `Disabled` tinyint(1) NOT NULL COMMENT '禁用', + `IoTSceneId` char(36) NOT NULL COMMENT 'IoTSceneId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTTimer` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTTimer_IoTScene_IoTSceneId` FOREIGN KEY (`IoTSceneId`) REFERENCES `IoTScene` (`Id`) ON DELETE CASCADE +) COMMENT '定时器'; + + +CREATE TABLE `DepartmentUser` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Position` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Position', + `Type` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Type', + `OrganUserId` char(36) NOT NULL COMMENT 'OrganUserId', + `DeparementId` char(36) NOT NULL COMMENT 'DeparementId', + `JobId` char(36) NULL COMMENT 'JobId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_DepartmentUser` PRIMARY KEY (`Id`), + CONSTRAINT `FK_DepartmentUser_Department_DeparementId` FOREIGN KEY (`DeparementId`) REFERENCES `Department` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_DepartmentUser_Job_JobId` FOREIGN KEY (`JobId`) REFERENCES `Job` (`Id`) ON DELETE SET NULL, + CONSTRAINT `FK_DepartmentUser_OrganUser_OrganUserId` FOREIGN KEY (`OrganUserId`) REFERENCES `OrganUser` (`Id`) ON DELETE CASCADE +) COMMENT '部门用户'; + + +CREATE TABLE `IoTCommand` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT '命令名称', + `Order` int NOT NULL COMMENT '序号', + `Disabled` tinyint(1) NOT NULL COMMENT '隐藏', + `Delay` int NOT NULL COMMENT '延迟', + `QueryString` longtext CHARACTER SET utf8mb4 NULL COMMENT 'QueryString', + `ApiId` char(36) NOT NULL COMMENT 'ApiId', + `DeviceId` char(36) NOT NULL COMMENT 'DeviceId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTCommand` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTCommand_IoTApi_ApiId` FOREIGN KEY (`ApiId`) REFERENCES `IoTApi` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_IoTCommand_IoTDevice_DeviceId` FOREIGN KEY (`DeviceId`) REFERENCES `IoTDevice` (`Id`) ON DELETE CASCADE +) COMMENT '命令'; + + +CREATE TABLE `IoTData` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Key` longtext CHARACTER SET utf8mb4 NOT NULL COMMENT '键', + `Value` longtext CHARACTER SET utf8mb4 NULL COMMENT '值', + `IntValue` int NULL COMMENT 'IntValue', + `DoubleValue` double NULL COMMENT 'DoubleValue', + `DateTimeValue` datetime(6) NULL COMMENT 'DateTimeValue', + `EnumValues` longtext CHARACTER SET utf8mb4 NULL COMMENT '枚举候选值列表', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT '名称', + `DataType` int NOT NULL COMMENT '数据分类', + `ValueType` int NOT NULL COMMENT '数值类型', + `ValueSchema` longtext CHARACTER SET utf8mb4 NULL COMMENT '对象模式', + `Unit` longtext CHARACTER SET utf8mb4 NULL COMMENT '单位', + `Description` longtext CHARACTER SET utf8mb4 NULL COMMENT '描述', + `Timestamp` bigint NOT NULL COMMENT '时间戳', + `Hidden` tinyint(1) NOT NULL COMMENT '隐藏', + `IoTDeviceId` char(36) NOT NULL COMMENT '设备Id', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTData` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTData_IoTDevice_IoTDeviceId` FOREIGN KEY (`IoTDeviceId`) REFERENCES `IoTDevice` (`Id`) ON DELETE CASCADE +) COMMENT '数据'; - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_AppModule" PRIMARY KEY, - -- Name - "Name" TEXT NOT NULL, +CREATE TABLE `IoTSceneIoTCommand` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `IoTSceneId` char(36) NOT NULL COMMENT 'IoTSceneId', + `IoTCommandId` char(36) NOT NULL COMMENT 'IoTCommandId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTSceneIoTCommand` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTSceneIoTCommand_IoTCommand_IoTCommandId` FOREIGN KEY (`IoTCommandId`) REFERENCES `IoTCommand` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_IoTSceneIoTCommand_IoTScene_IoTSceneId` FOREIGN KEY (`IoTSceneId`) REFERENCES `IoTScene` (`Id`) ON DELETE CASCADE +) COMMENT '场景命令'; - -- Number - "Number" TEXT NULL, - -- Url - "Url" TEXT NULL, +CREATE TABLE `IoTTigger` ( + `Id` char(36) NOT NULL COMMENT 'Id', + `Name` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Name', + `Type` int NOT NULL COMMENT 'Type', + `Condition` longtext CHARACTER SET utf8mb4 NULL COMMENT 'Condition', + `Start` datetime(6) NOT NULL COMMENT 'Start', + `End` datetime(6) NOT NULL COMMENT 'End', + `Disabled` tinyint(1) NOT NULL COMMENT '禁用', + `IoTDataId` char(36) NOT NULL COMMENT 'IoTDataId', + `IoTSceneId` char(36) NOT NULL COMMENT 'IoTSceneId', + `Created` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) COMMENT 'Created', + `Modified` datetime(6) NULL COMMENT 'Modified', + `Deleted` datetime(6) NULL COMMENT 'Deleted', + CONSTRAINT `PK_IoTTigger` PRIMARY KEY (`Id`), + CONSTRAINT `FK_IoTTigger_IoTData_IoTDataId` FOREIGN KEY (`IoTDataId`) REFERENCES `IoTData` (`Id`) ON DELETE CASCADE, + CONSTRAINT `FK_IoTTigger_IoTScene_IoTSceneId` FOREIGN KEY (`IoTSceneId`) REFERENCES `IoTScene` (`Id`) ON DELETE CASCADE +) COMMENT '触发器'; - -- Order - "Order" INTEGER NOT NULL, - -- Created - "Created" TEXT NOT NULL, +CREATE UNIQUE INDEX `IX_Area_Number` ON `Area` (`Number`); - -- Modified - "Modified" TEXT NULL, - -- Deleted - "Deleted" TEXT NULL -); +CREATE INDEX `IX_Area_ParentId` ON `Area` (`ParentId`); -CREATE TABLE "Area" ( - -- 区域 +CREATE UNIQUE INDEX `IX_Building_OrganId_ParentId_Number` ON `Building` (`OrganId`, `ParentId`, `Number`); - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Area" PRIMARY KEY, - -- Type - "Type" TEXT NULL, +CREATE INDEX `IX_Building_ParentId` ON `Building` (`ParentId`); - -- Created - "Created" TEXT NOT NULL, - -- Modified - "Modified" TEXT NULL, +CREATE UNIQUE INDEX `IX_Department_OrganId_Number` ON `Department` (`OrganId`, `Number`); - -- Deleted - "Deleted" TEXT NULL, - -- Name - "Name" TEXT NOT NULL, +CREATE INDEX `IX_Department_ParentId` ON `Department` (`ParentId`); - -- Number - "Number" TEXT NOT NULL, - -- Order - "Order" INTEGER NOT NULL, +CREATE UNIQUE INDEX `IX_DepartmentUser_DeparementId_OrganUserId` ON `DepartmentUser` (`DeparementId`, `OrganUserId`); - -- Left - "Left" INTEGER NOT NULL, - -- Right - "Right" INTEGER NOT NULL, +CREATE INDEX `IX_DepartmentUser_JobId` ON `DepartmentUser` (`JobId`); - -- ParentId - "ParentId" TEXT NULL, - CONSTRAINT "FK_Area_Area_ParentId" FOREIGN KEY ("ParentId") REFERENCES "Area" ("Id") ON DELETE RESTRICT -); +CREATE INDEX `IX_DepartmentUser_OrganUserId` ON `DepartmentUser` (`OrganUserId`); -CREATE TABLE "DictionaryCategory" ( - -- 字典分类 - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_DictionaryCategory" PRIMARY KEY, +CREATE UNIQUE INDEX `IX_DictionaryCategory_Key` ON `DictionaryCategory` (`Key`); - -- Name - "Name" TEXT NOT NULL, - -- Key - "Key" TEXT NOT NULL, +CREATE UNIQUE INDEX `IX_DictionaryItem_CategoryId_Value` ON `DictionaryItem` (`CategoryId`, `Value`); - -- Created - "Created" TEXT NOT NULL, - -- Modified - "Modified" TEXT NULL, +CREATE UNIQUE INDEX `IX_IoTApi_IoTProductId_Name` ON `IoTApi` (`IoTProductId`, `Name`); - -- Deleted - "Deleted" TEXT NULL -); +CREATE INDEX `IX_IoTCommand_ApiId` ON `IoTCommand` (`ApiId`); -CREATE TABLE "IoTProductCategory" ( - -- 分类 - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTProductCategory" PRIMARY KEY, +CREATE INDEX `IX_IoTCommand_DeviceId` ON `IoTCommand` (`DeviceId`); - -- 分类图标 - "Image" TEXT NULL, - -- Created - "Created" TEXT NOT NULL, +CREATE INDEX `IX_IoTData_IoTDeviceId` ON `IoTData` (`IoTDeviceId`); - -- Modified - "Modified" TEXT NULL, - -- Deleted - "Deleted" TEXT NULL, +CREATE INDEX `IX_IoTDevice_IoTGatewayId` ON `IoTDevice` (`IoTGatewayId`); - -- Name - "Name" TEXT NOT NULL, - -- Number - "Number" TEXT NOT NULL, +CREATE INDEX `IX_IoTDevice_IoTProductId` ON `IoTDevice` (`IoTProductId`); - -- Order - "Order" INTEGER NOT NULL, - -- Left - "Left" INTEGER NOT NULL, +CREATE UNIQUE INDEX `IX_IoTDevice_Number` ON `IoTDevice` (`Number`); - -- Right - "Right" INTEGER NOT NULL, - -- ParentId - "ParentId" TEXT NULL, - CONSTRAINT "FK_IoTProductCategory_IoTProductCategory_ParentId" FOREIGN KEY ("ParentId") REFERENCES "IoTProductCategory" ("Id") ON DELETE RESTRICT -); +CREATE INDEX `IX_IoTGateway_BuildingId` ON `IoTGateway` (`BuildingId`); -CREATE TABLE "LiveRecord" ( - -- 录像 +CREATE UNIQUE INDEX `IX_IoTGateway_Number` ON `IoTGateway` (`Number`); - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_LiveRecord" PRIMARY KEY, - -- DeviceNumber - "DeviceNumber" TEXT NOT NULL, +CREATE INDEX `IX_IoTParameter_IoTApiId` ON `IoTParameter` (`IoTApiId`); - -- DeviceName - "DeviceName" TEXT NULL, - -- Name - "Name" TEXT NULL, +CREATE INDEX `IX_IoTProduct_IoTProductCategoryId` ON `IoTProduct` (`IoTProductCategoryId`); - -- Value - "Value" TEXT NULL, - -- Created - "Created" TEXT NOT NULL, +CREATE UNIQUE INDEX `IX_IoTProduct_Number` ON `IoTProduct` (`Number`); - -- Modified - "Modified" TEXT NULL, - -- Deleted - "Deleted" TEXT NULL -); +CREATE UNIQUE INDEX `IX_IoTProductCategory_Number` ON `IoTProductCategory` (`Number`); -CREATE TABLE "Setting" ( - -- 配置 +CREATE INDEX `IX_IoTProductCategory_ParentId` ON `IoTProductCategory` (`ParentId`); - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Setting" PRIMARY KEY, - -- Name - "Name" TEXT NOT NULL, +CREATE INDEX `IX_IoTScene_BuildingId` ON `IoTScene` (`BuildingId`); - -- Value - "Value" TEXT NULL, - -- Type - "Type" INTEGER NOT NULL, +CREATE INDEX `IX_IoTSceneIoTCommand_IoTCommandId` ON `IoTSceneIoTCommand` (`IoTCommandId`); - -- Created - "Created" TEXT NOT NULL, - -- Modified - "Modified" TEXT NULL, +CREATE INDEX `IX_IoTSceneIoTCommand_IoTSceneId` ON `IoTSceneIoTCommand` (`IoTSceneId`); - -- Deleted - "Deleted" TEXT NULL -); +CREATE INDEX `IX_IoTTigger_IoTDataId` ON `IoTTigger` (`IoTDataId`); -CREATE TABLE "Site" ( - -- 应用 - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Site" PRIMARY KEY, +CREATE INDEX `IX_IoTTigger_IoTSceneId` ON `IoTTigger` (`IoTSceneId`); - -- Name - "Name" TEXT NOT NULL, - -- Icon - "Icon" TEXT NULL, +CREATE INDEX `IX_IoTTimer_IoTSceneId` ON `IoTTimer` (`IoTSceneId`); - -- Description - "Description" TEXT NULL, - -- Key - "Key" TEXT NULL, +CREATE INDEX `IX_Job_DepartmentId` ON `Job` (`DepartmentId`); - -- Home - "Home" TEXT NULL, - -- Login - "Login" TEXT NULL, +CREATE INDEX `IX_Job_TitleId` ON `Job` (`TitleId`); - -- Logout - "Logout" TEXT NULL, - -- Disabled - "Disabled" INTEGER NOT NULL, +CREATE INDEX `IX_Organ_AreaId` ON `Organ` (`AreaId`); - -- Order - "Order" INTEGER NOT NULL, - -- Created - "Created" TEXT NOT NULL, +CREATE UNIQUE INDEX `IX_Organ_Name` ON `Organ` (`Name`); - -- Modified - "Modified" TEXT NULL, - -- Deleted - "Deleted" TEXT NULL -); +CREATE UNIQUE INDEX `IX_Organ_Number` ON `Organ` (`Number`); -CREATE TABLE "Statistic" ( - -- 数据统计 +CREATE INDEX `IX_Organ_ParentId` ON `Organ` (`ParentId`); - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Statistic" PRIMARY KEY, - -- Key - "Key" TEXT NULL, +CREATE UNIQUE INDEX `IX_OrganUser_OrganId_UserId` ON `OrganUser` (`OrganId`, `UserId`); - -- Value - "Value" TEXT NULL, - -- IntValue - "IntValue" INTEGER NULL, +CREATE INDEX `IX_OrganUser_UserId` ON `OrganUser` (`UserId`); - -- DoubleValue - "DoubleValue" REAL NULL, - -- DateTimeValue - "DateTimeValue" TEXT NULL, +CREATE INDEX `IX_OrganUserRole_OrganRoleId` ON `OrganUserRole` (`OrganRoleId`); - -- Type - "Type" INTEGER NOT NULL, - -- UpdateAt - "UpdateAt" TEXT NOT NULL, +CREATE UNIQUE INDEX `IX_OrganUserRole_OrganUserId_OrganRoleId` ON `OrganUserRole` (`OrganUserId`, `OrganRoleId`); - -- Created - "Created" TEXT NOT NULL, - -- Modified - "Modified" TEXT NULL, +CREATE INDEX `IX_Permission_CategoryId` ON `Permission` (`CategoryId`); - -- Deleted - "Deleted" TEXT NULL -); +CREATE UNIQUE INDEX `IX_Permission_Number` ON `Permission` (`Number`); -CREATE TABLE "User" ( - -- 用户 - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_User" PRIMARY KEY, +CREATE INDEX `IX_PermissionCategory_AppModuleId` ON `PermissionCategory` (`AppModuleId`); - -- UserName - "UserName" TEXT NOT NULL, - -- SecurityStamp - "SecurityStamp" TEXT NULL, +CREATE INDEX `IX_PermissionCategory_ParentId` ON `PermissionCategory` (`ParentId`); - -- PasswordHash - "PasswordHash" TEXT NULL, - -- PasswordConfirmed - "PasswordConfirmed" INTEGER NOT NULL, +CREATE UNIQUE INDEX `IX_Role_OrganId_Number` ON `Role` (`OrganId`, `Number`); - -- Email - "Email" TEXT NULL, - -- EmailConfirmed - "EmailConfirmed" INTEGER NOT NULL, +CREATE INDEX `IX_RolePermission_PermissionId` ON `RolePermission` (`PermissionId`); - -- PhoneNumber - "PhoneNumber" TEXT NULL, - -- PhoneNumberConfirmed - "PhoneNumberConfirmed" INTEGER NOT NULL, +CREATE UNIQUE INDEX `IX_RolePermission_RoleId_PermissionId` ON `RolePermission` (`RoleId`, `PermissionId`); - -- RealName - "RealName" TEXT NULL, - -- IdentityNumber - "IdentityNumber" TEXT NULL, +CREATE UNIQUE INDEX `IX_Setting_Name` ON `Setting` (`Name`); - -- IdentityConfirmed - "IdentityConfirmed" INTEGER NOT NULL, - -- NickName - "NickName" TEXT NULL, +CREATE UNIQUE INDEX `IX_Site_Name` ON `Site` (`Name`); - -- Avatar - "Avatar" TEXT NULL, - -- Sex - "Sex" INTEGER NULL, +CREATE UNIQUE INDEX `IX_Statistic_Key` ON `Statistic` (`Key`); - -- Birthday - "Birthday" TEXT NULL, - -- LockoutEnabled - "LockoutEnabled" INTEGER NOT NULL, +CREATE INDEX `IX_Title_OrganId` ON `Title` (`OrganId`); - -- AccessFailedCount - "AccessFailedCount" INTEGER NOT NULL, - -- LockoutEnd - "LockoutEnd" TEXT NULL, +CREATE UNIQUE INDEX `IX_User_Email` ON `User` (`Email`); - -- RowVersion - "RowVersion" TEXT NULL, - -- Created - "Created" TEXT NOT NULL, +CREATE UNIQUE INDEX `IX_User_PhoneNumber` ON `User` (`PhoneNumber`); - -- Modified - "Modified" TEXT NULL, - -- Deleted - "Deleted" TEXT NULL -); - - -CREATE TABLE "PermissionCategory" ( - -- 权限分类 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_PermissionCategory" PRIMARY KEY, - - -- AppModuleId - "AppModuleId" TEXT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - - -- Name - "Name" TEXT NOT NULL, - - -- Number - "Number" TEXT NOT NULL, - - -- Order - "Order" INTEGER NOT NULL, - - -- Left - "Left" INTEGER NOT NULL, - - -- Right - "Right" INTEGER NOT NULL, - - -- ParentId - "ParentId" TEXT NULL, - CONSTRAINT "FK_PermissionCategory_AppModule_AppModuleId" FOREIGN KEY ("AppModuleId") REFERENCES "AppModule" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_PermissionCategory_PermissionCategory_ParentId" FOREIGN KEY ("ParentId") REFERENCES "PermissionCategory" ("Id") ON DELETE RESTRICT -); - - -CREATE TABLE "Organ" ( - -- 机构 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Organ" PRIMARY KEY, - - -- Type - "Type" TEXT NULL, - - -- Image - "Image" TEXT NULL, - - -- Description - "Description" TEXT NULL, - - -- AreaId - "AreaId" TEXT NULL, - - -- IsReadOnly - "IsReadOnly" INTEGER NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - - -- Name - "Name" TEXT NOT NULL, - - -- Number - "Number" TEXT NOT NULL, - - -- Order - "Order" INTEGER NOT NULL, - - -- Left - "Left" INTEGER NOT NULL, - - -- Right - "Right" INTEGER NOT NULL, - - -- ParentId - "ParentId" TEXT NULL, - CONSTRAINT "FK_Organ_Area_AreaId" FOREIGN KEY ("AreaId") REFERENCES "Area" ("Id") ON DELETE SET NULL, - CONSTRAINT "FK_Organ_Organ_ParentId" FOREIGN KEY ("ParentId") REFERENCES "Organ" ("Id") ON DELETE RESTRICT -); - - -CREATE TABLE "DictionaryItem" ( - -- 字典 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_DictionaryItem" PRIMARY KEY, - - -- Name - "Name" TEXT NOT NULL, - - -- Value - "Value" TEXT NOT NULL, - - -- Order - "Order" INTEGER NOT NULL, - - -- CategoryId - "CategoryId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_DictionaryItem_DictionaryCategory_CategoryId" FOREIGN KEY ("CategoryId") REFERENCES "DictionaryCategory" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTProduct" ( - -- 产品 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTProduct" PRIMARY KEY, - - -- 产品名称 - "Name" TEXT NULL, - - -- 产品型号 - "Number" TEXT NOT NULL, - - -- 图标 - "Image" TEXT NULL, - - -- Template - "Template" TEXT NULL, - - -- 路径 - "Path" TEXT NULL, - - -- ApiJson - "ApiJson" TEXT NULL, - - -- 序号 - "Order" INTEGER NOT NULL, - - -- IoTProductCategoryId - "IoTProductCategoryId" TEXT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTProduct_IoTProductCategory_IoTProductCategoryId" FOREIGN KEY ("IoTProductCategoryId") REFERENCES "IoTProductCategory" ("Id") ON DELETE SET NULL -); - - -CREATE TABLE "Permission" ( - -- 权限 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Permission" PRIMARY KEY, - - -- Name - "Name" TEXT NOT NULL, - - -- Number - "Number" TEXT NOT NULL, - - -- IsReadOnly - "IsReadOnly" INTEGER NOT NULL, - - -- Hide - "Hide" INTEGER NOT NULL, - - -- Type - "Type" INTEGER NOT NULL, - - -- CategoryId - "CategoryId" TEXT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_Permission_PermissionCategory_CategoryId" FOREIGN KEY ("CategoryId") REFERENCES "PermissionCategory" ("Id") ON DELETE SET NULL -); - - -CREATE TABLE "Building" ( - -- 房间 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Building" PRIMARY KEY, - - -- Type - "Type" TEXT NULL, - - -- Image - "Image" TEXT NULL, - - -- Description - "Description" TEXT NULL, - - -- OrganId - "OrganId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - - -- Name - "Name" TEXT NOT NULL, - - -- Number - "Number" TEXT NOT NULL, - - -- Order - "Order" INTEGER NOT NULL, - - -- Left - "Left" INTEGER NOT NULL, - - -- Right - "Right" INTEGER NOT NULL, - - -- ParentId - "ParentId" TEXT NULL, - CONSTRAINT "FK_Building_Building_ParentId" FOREIGN KEY ("ParentId") REFERENCES "Building" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_Building_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "Organ" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "Department" ( - -- 部门 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Department" PRIMARY KEY, - - -- Type - "Type" TEXT NULL, - - -- OrganId - "OrganId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - - -- Name - "Name" TEXT NOT NULL, - - -- Number - "Number" TEXT NOT NULL, - - -- Order - "Order" INTEGER NOT NULL, - - -- Left - "Left" INTEGER NOT NULL, - - -- Right - "Right" INTEGER NOT NULL, - - -- ParentId - "ParentId" TEXT NULL, - CONSTRAINT "FK_Department_Department_ParentId" FOREIGN KEY ("ParentId") REFERENCES "Department" ("Id") ON DELETE RESTRICT, - CONSTRAINT "FK_Department_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "Organ" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "OrganUser" ( - -- 机构用户 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_OrganUser" PRIMARY KEY, - - -- Type - "Type" TEXT NULL, - - -- OrganId - "OrganId" TEXT NOT NULL, - - -- UserId - "UserId" TEXT NOT NULL, - - -- IsDefault - "IsDefault" INTEGER NOT NULL, - - -- IsReadOnly - "IsReadOnly" INTEGER NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_OrganUser_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "Organ" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_OrganUser_User_UserId" FOREIGN KEY ("UserId") REFERENCES "User" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "Role" ( - -- 角色 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Role" PRIMARY KEY, - - -- Name - "Name" TEXT NOT NULL, - - -- Number - "Number" TEXT NOT NULL, - - -- IsReadOnly - "IsReadOnly" INTEGER NOT NULL, - - -- OrganId - "OrganId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_Role_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "Organ" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "Title" ( - -- 职务 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Title" PRIMARY KEY, - - -- Name - "Name" TEXT NULL, - - -- MinLevel - "MinLevel" INTEGER NOT NULL, - - -- MaxLevel - "MaxLevel" INTEGER NOT NULL, - - -- OrganId - "OrganId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_Title_Organ_OrganId" FOREIGN KEY ("OrganId") REFERENCES "Organ" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTApi" ( - -- 接口 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTApi" PRIMARY KEY, - - -- Name - "Name" TEXT NULL, - - -- Path - "Path" TEXT NULL, - - -- Command - "Command" TEXT NULL, - - -- Method - "Method" TEXT NULL, - - -- IoTProductId - "IoTProductId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTApi_IoTProduct_IoTProductId" FOREIGN KEY ("IoTProductId") REFERENCES "IoTProduct" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTGateway" ( - -- 网关 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTGateway" PRIMARY KEY, - - -- 节点名称 - "Name" TEXT NULL, - - -- 节点编号 - "Number" TEXT NOT NULL, - - -- 在线 - "IsOnline" INTEGER NOT NULL, - - -- 图片 - "Image" TEXT NULL, - - -- 版本 - "Version" TEXT NULL, - - -- Password - "Password" TEXT NULL, - - -- 序号 - "Order" INTEGER NOT NULL, - - -- 隐藏 - "Hidden" INTEGER NOT NULL, - - -- BuildingId - "BuildingId" TEXT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTGateway_Building_BuildingId" FOREIGN KEY ("BuildingId") REFERENCES "Building" ("Id") ON DELETE SET NULL -); - - -CREATE TABLE "IoTScene" ( - -- 机构场景 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTScene" PRIMARY KEY, - - -- 名称 - "Name" TEXT NOT NULL, - - -- 图标 - "Image" TEXT NOT NULL, - - -- 隐藏 - "Hidden" INTEGER NOT NULL, - - -- 序号 - "Order" INTEGER NOT NULL, - - -- BuildingId - "BuildingId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTScene_Building_BuildingId" FOREIGN KEY ("BuildingId") REFERENCES "Building" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "OrganUserRole" ( - -- 用户角色 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_OrganUserRole" PRIMARY KEY, - - -- IsReadOnly - "IsReadOnly" INTEGER NOT NULL, - - -- OrganUserId - "OrganUserId" TEXT NOT NULL, - - -- OrganRoleId - "OrganRoleId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_OrganUserRole_OrganUser_OrganUserId" FOREIGN KEY ("OrganUserId") REFERENCES "OrganUser" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_OrganUserRole_Role_OrganRoleId" FOREIGN KEY ("OrganRoleId") REFERENCES "Role" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "RolePermission" ( - -- 角色权限 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_RolePermission" PRIMARY KEY, - - -- RoleId - "RoleId" TEXT NOT NULL, - - -- PermissionId - "PermissionId" TEXT NOT NULL, - - -- IsReadOnly - "IsReadOnly" INTEGER NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_RolePermission_Permission_PermissionId" FOREIGN KEY ("PermissionId") REFERENCES "Permission" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_RolePermission_Role_RoleId" FOREIGN KEY ("RoleId") REFERENCES "Role" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "Job" ( - -- 职位 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_Job" PRIMARY KEY, - - -- Name - "Name" TEXT NULL, - - -- Level - "Level" INTEGER NOT NULL, - - -- TitleId - "TitleId" TEXT NOT NULL, - - -- DepartmentId - "DepartmentId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_Job_Department_DepartmentId" FOREIGN KEY ("DepartmentId") REFERENCES "Department" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_Job_Title_TitleId" FOREIGN KEY ("TitleId") REFERENCES "Title" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTParameter" ( - -- 参数 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTParameter" PRIMARY KEY, - - -- Type - "Type" TEXT NULL, - - -- Name - "Name" TEXT NULL, - - -- Description - "Description" TEXT NULL, - - -- Required - "Required" INTEGER NOT NULL, - - -- Maxinum - "Maxinum" TEXT NULL, - - -- Minimum - "Minimum" TEXT NULL, - - -- IoTApiId - "IoTApiId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTParameter_IoTApi_IoTApiId" FOREIGN KEY ("IoTApiId") REFERENCES "IoTApi" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTDevice" ( - -- 设备 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTDevice" PRIMARY KEY, - - -- 名称 - "Name" TEXT NULL, - - -- 编号 - "Number" TEXT NOT NULL, - - -- 网关编号 - "Gateway" TEXT NULL, - - -- 显示名称 - "DisplayName" TEXT NOT NULL, - - -- 标记 - "Tag" TEXT NULL, - - -- 在线状态 - "IsOnline" INTEGER NOT NULL, - - -- 图标 - "Icon" TEXT NULL, - - -- IP - "Ip" TEXT NULL, - - -- 用户名 - "UserName" TEXT NULL, - - -- 密码 - "Password" TEXT NULL, - - -- 连接Id - "ConnectId" TEXT NULL, - - -- 序号 - "Order" INTEGER NOT NULL, - - -- 隐藏 - "Disabled" INTEGER NOT NULL, - - -- 产品Id - "IoTProductId" TEXT NOT NULL, - - -- 节点Id - "IoTGatewayId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTDevice_IoTGateway_IoTGatewayId" FOREIGN KEY ("IoTGatewayId") REFERENCES "IoTGateway" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_IoTDevice_IoTProduct_IoTProductId" FOREIGN KEY ("IoTProductId") REFERENCES "IoTProduct" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTTimer" ( - -- 定时器 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTTimer" PRIMARY KEY, - - -- Name - "Name" TEXT NULL, - - -- Cron - "Cron" TEXT NULL, - - -- 禁用 - "Disabled" INTEGER NOT NULL, - - -- IoTSceneId - "IoTSceneId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTTimer_IoTScene_IoTSceneId" FOREIGN KEY ("IoTSceneId") REFERENCES "IoTScene" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "DepartmentUser" ( - -- 部门用户 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_DepartmentUser" PRIMARY KEY, - - -- Position - "Position" TEXT NULL, - - -- Type - "Type" TEXT NULL, - - -- OrganUserId - "OrganUserId" TEXT NOT NULL, - - -- DeparementId - "DeparementId" TEXT NOT NULL, - - -- JobId - "JobId" TEXT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_DepartmentUser_Department_DeparementId" FOREIGN KEY ("DeparementId") REFERENCES "Department" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_DepartmentUser_Job_JobId" FOREIGN KEY ("JobId") REFERENCES "Job" ("Id") ON DELETE SET NULL, - CONSTRAINT "FK_DepartmentUser_OrganUser_OrganUserId" FOREIGN KEY ("OrganUserId") REFERENCES "OrganUser" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTCommand" ( - -- 命令 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTCommand" PRIMARY KEY, - - -- 命令名称 - "Name" TEXT NULL, - - -- 序号 - "Order" INTEGER NOT NULL, - - -- 隐藏 - "Disabled" INTEGER NOT NULL, - - -- 延迟 - "Delay" INTEGER NOT NULL, - - -- QueryString - "QueryString" TEXT NULL, - - -- ApiId - "ApiId" TEXT NOT NULL, - - -- DeviceId - "DeviceId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTCommand_IoTApi_ApiId" FOREIGN KEY ("ApiId") REFERENCES "IoTApi" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_IoTCommand_IoTDevice_DeviceId" FOREIGN KEY ("DeviceId") REFERENCES "IoTDevice" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTData" ( - -- 数据 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTData" PRIMARY KEY, - - -- 键 - "Key" TEXT NOT NULL, - - -- 值 - "Value" TEXT NULL, - - -- IntValue - "IntValue" INTEGER NULL, - - -- DoubleValue - "DoubleValue" REAL NULL, - - -- DateTimeValue - "DateTimeValue" TEXT NULL, - - -- 枚举候选值列表 - "EnumValues" TEXT NULL, - - -- 名称 - "Name" TEXT NULL, - - -- 数据分类 - "DataType" INTEGER NOT NULL, - - -- 数值类型 - "ValueType" INTEGER NOT NULL, - - -- 对象模式 - "ValueSchema" TEXT NULL, - - -- 单位 - "Unit" TEXT NULL, - - -- 描述 - "Description" TEXT NULL, - - -- 时间戳 - "Timestamp" INTEGER NOT NULL, - - -- 隐藏 - "Hidden" INTEGER NOT NULL, - - -- 设备Id - "IoTDeviceId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTData_IoTDevice_IoTDeviceId" FOREIGN KEY ("IoTDeviceId") REFERENCES "IoTDevice" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTSceneIoTCommand" ( - -- 场景命令 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTSceneIoTCommand" PRIMARY KEY, - - -- IoTSceneId - "IoTSceneId" TEXT NOT NULL, - - -- IoTCommandId - "IoTCommandId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTSceneIoTCommand_IoTCommand_IoTCommandId" FOREIGN KEY ("IoTCommandId") REFERENCES "IoTCommand" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_IoTSceneIoTCommand_IoTScene_IoTSceneId" FOREIGN KEY ("IoTSceneId") REFERENCES "IoTScene" ("Id") ON DELETE CASCADE -); - - -CREATE TABLE "IoTTigger" ( - -- 触发器 - - -- Id - "Id" TEXT NOT NULL CONSTRAINT "PK_IoTTigger" PRIMARY KEY, - - -- Name - "Name" TEXT NULL, - - -- Type - "Type" INTEGER NOT NULL, - - -- Condition - "Condition" TEXT NULL, - - -- Start - "Start" TEXT NOT NULL, - - -- End - "End" TEXT NOT NULL, - - -- 禁用 - "Disabled" INTEGER NOT NULL, - - -- IoTDataId - "IoTDataId" TEXT NOT NULL, - - -- IoTSceneId - "IoTSceneId" TEXT NOT NULL, - - -- Created - "Created" TEXT NOT NULL, - - -- Modified - "Modified" TEXT NULL, - - -- Deleted - "Deleted" TEXT NULL, - CONSTRAINT "FK_IoTTigger_IoTData_IoTDataId" FOREIGN KEY ("IoTDataId") REFERENCES "IoTData" ("Id") ON DELETE CASCADE, - CONSTRAINT "FK_IoTTigger_IoTScene_IoTSceneId" FOREIGN KEY ("IoTSceneId") REFERENCES "IoTScene" ("Id") ON DELETE CASCADE -); - - -CREATE UNIQUE INDEX "IX_Area_Number" ON "Area" ("Number"); - - -CREATE INDEX "IX_Area_ParentId" ON "Area" ("ParentId"); - - -CREATE UNIQUE INDEX "IX_Building_OrganId_ParentId_Number" ON "Building" ("OrganId", "ParentId", "Number"); - - -CREATE INDEX "IX_Building_ParentId" ON "Building" ("ParentId"); - - -CREATE UNIQUE INDEX "IX_Department_OrganId_Number" ON "Department" ("OrganId", "Number"); - - -CREATE INDEX "IX_Department_ParentId" ON "Department" ("ParentId"); - - -CREATE UNIQUE INDEX "IX_DepartmentUser_DeparementId_OrganUserId" ON "DepartmentUser" ("DeparementId", "OrganUserId"); - - -CREATE INDEX "IX_DepartmentUser_JobId" ON "DepartmentUser" ("JobId"); - - -CREATE INDEX "IX_DepartmentUser_OrganUserId" ON "DepartmentUser" ("OrganUserId"); - - -CREATE UNIQUE INDEX "IX_DictionaryCategory_Key" ON "DictionaryCategory" ("Key"); - - -CREATE UNIQUE INDEX "IX_DictionaryItem_CategoryId_Value" ON "DictionaryItem" ("CategoryId", "Value"); - - -CREATE UNIQUE INDEX "IX_IoTApi_IoTProductId_Name" ON "IoTApi" ("IoTProductId", "Name"); - - -CREATE INDEX "IX_IoTCommand_ApiId" ON "IoTCommand" ("ApiId"); - - -CREATE INDEX "IX_IoTCommand_DeviceId" ON "IoTCommand" ("DeviceId"); - - -CREATE INDEX "IX_IoTData_IoTDeviceId" ON "IoTData" ("IoTDeviceId"); - - -CREATE INDEX "IX_IoTDevice_IoTGatewayId" ON "IoTDevice" ("IoTGatewayId"); - - -CREATE INDEX "IX_IoTDevice_IoTProductId" ON "IoTDevice" ("IoTProductId"); - - -CREATE UNIQUE INDEX "IX_IoTDevice_Number" ON "IoTDevice" ("Number"); - - -CREATE INDEX "IX_IoTGateway_BuildingId" ON "IoTGateway" ("BuildingId"); - - -CREATE UNIQUE INDEX "IX_IoTGateway_Number" ON "IoTGateway" ("Number"); - - -CREATE INDEX "IX_IoTParameter_IoTApiId" ON "IoTParameter" ("IoTApiId"); - - -CREATE INDEX "IX_IoTProduct_IoTProductCategoryId" ON "IoTProduct" ("IoTProductCategoryId"); - - -CREATE UNIQUE INDEX "IX_IoTProduct_Number" ON "IoTProduct" ("Number"); - - -CREATE UNIQUE INDEX "IX_IoTProductCategory_Number" ON "IoTProductCategory" ("Number"); - - -CREATE INDEX "IX_IoTProductCategory_ParentId" ON "IoTProductCategory" ("ParentId"); - - -CREATE INDEX "IX_IoTScene_BuildingId" ON "IoTScene" ("BuildingId"); - - -CREATE INDEX "IX_IoTSceneIoTCommand_IoTCommandId" ON "IoTSceneIoTCommand" ("IoTCommandId"); - - -CREATE INDEX "IX_IoTSceneIoTCommand_IoTSceneId" ON "IoTSceneIoTCommand" ("IoTSceneId"); - - -CREATE INDEX "IX_IoTTigger_IoTDataId" ON "IoTTigger" ("IoTDataId"); - - -CREATE INDEX "IX_IoTTigger_IoTSceneId" ON "IoTTigger" ("IoTSceneId"); - - -CREATE INDEX "IX_IoTTimer_IoTSceneId" ON "IoTTimer" ("IoTSceneId"); - - -CREATE INDEX "IX_Job_DepartmentId" ON "Job" ("DepartmentId"); - - -CREATE INDEX "IX_Job_TitleId" ON "Job" ("TitleId"); - - -CREATE INDEX "IX_Organ_AreaId" ON "Organ" ("AreaId"); - - -CREATE UNIQUE INDEX "IX_Organ_Name" ON "Organ" ("Name"); - - -CREATE UNIQUE INDEX "IX_Organ_Number" ON "Organ" ("Number"); - - -CREATE INDEX "IX_Organ_ParentId" ON "Organ" ("ParentId"); - - -CREATE UNIQUE INDEX "IX_OrganUser_OrganId_UserId" ON "OrganUser" ("OrganId", "UserId"); - - -CREATE INDEX "IX_OrganUser_UserId" ON "OrganUser" ("UserId"); - - -CREATE INDEX "IX_OrganUserRole_OrganRoleId" ON "OrganUserRole" ("OrganRoleId"); - - -CREATE UNIQUE INDEX "IX_OrganUserRole_OrganUserId_OrganRoleId" ON "OrganUserRole" ("OrganUserId", "OrganRoleId"); - - -CREATE INDEX "IX_Permission_CategoryId" ON "Permission" ("CategoryId"); - - -CREATE UNIQUE INDEX "IX_Permission_Number" ON "Permission" ("Number"); - - -CREATE INDEX "IX_PermissionCategory_AppModuleId" ON "PermissionCategory" ("AppModuleId"); - - -CREATE INDEX "IX_PermissionCategory_ParentId" ON "PermissionCategory" ("ParentId"); - - -CREATE UNIQUE INDEX "IX_Role_OrganId_Number" ON "Role" ("OrganId", "Number"); - - -CREATE INDEX "IX_RolePermission_PermissionId" ON "RolePermission" ("PermissionId"); - - -CREATE UNIQUE INDEX "IX_RolePermission_RoleId_PermissionId" ON "RolePermission" ("RoleId", "PermissionId"); - - -CREATE UNIQUE INDEX "IX_Setting_Name" ON "Setting" ("Name"); - - -CREATE UNIQUE INDEX "IX_Site_Name" ON "Site" ("Name"); - - -CREATE UNIQUE INDEX "IX_Statistic_Key" ON "Statistic" ("Key"); - - -CREATE INDEX "IX_Title_OrganId" ON "Title" ("OrganId"); - - -CREATE UNIQUE INDEX "IX_User_Email" ON "User" ("Email"); - - -CREATE UNIQUE INDEX "IX_User_PhoneNumber" ON "User" ("PhoneNumber"); - - -CREATE UNIQUE INDEX "IX_User_UserName" ON "User" ("UserName"); +CREATE UNIQUE INDEX `IX_User_UserName` ON `User` (`UserName`); diff --git a/publish/build.ps1 b/publish/build.ps1 index 5a232210..6957a08e 100644 --- a/publish/build.ps1 +++ b/publish/build.ps1 @@ -14,8 +14,8 @@ Remove-Item ./dist/linux-x64/publish/log/* -recurse -force Remove-Item ./dist/linux-x64/publish/data/* -recurse -force echo 'copy project files to dist folder' -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 -Path ../projects/WebMVC/wwwroot/* -Destination ./dist/linux-x64/publish/apps/WebMVC/wwwroot/ -Recurse +Copy-Item -Path ../projects/WebSPA/wwwroot/* -Destination ./dist/linux-x64/publish/apps/WebSPA/wwwroot/ -Recurse dotnet publish ../projects/Platform/Platform.csproj -c Release -r linux-x64 -p:PublishSingleFile=true -o ../publish/dist/linux-x64/publish/apps/Platform dotnet publish ../projects/IoTNode/IoTNode.csproj -c Release -r linux-arm64 -p:PublishSingleFile=true -o ../publish/dist/linux-arm64/publish/apps/IoTNode diff --git a/publish/exclude.txt b/publish/exclude.txt index 0868f9b6..1084d231 100644 --- a/publish/exclude.txt +++ b/publish/exclude.txt @@ -4,4 +4,5 @@ docker-compose.override.yml nginx.dev.conf \src\linux-x64\publish\log \src\linux-x64\publish\data +\src\linux-x64\publish\conf\platform diff --git a/publish/src/linux-x64/publish/conf/gateway/nginx.conf b/publish/src/linux-x64/publish/conf/gateway/nginx.conf index 806eca64..4308a260 100644 --- a/publish/src/linux-x64/publish/conf/gateway/nginx.conf +++ b/publish/src/linux-x64/publish/conf/gateway/nginx.conf @@ -29,51 +29,39 @@ http { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_pass http://172.172.0.20:9000/; + proxy_pass http://minio:9000/; } location ^~ /live/ { - proxy_pass http://172.172.0.60:8080/live/; + proxy_pass http://srs:8080/live/; } location ^~ /video/ { - proxy_pass http://172.172.0.60:8080/video/; + proxy_pass http://srs:8080/video/; } location ^~ /influxdb/ { - proxy_pass http://172.172.0.50:8086/; + proxy_pass http://influxdb:8086/; } location ^~ /portainer/ { - proxy_pass http://172.172.0.101:9000/; + proxy_pass http://portainer:9000/; } location ^~ /minio/ { - proxy_pass http://172.172.0.20:9000/minio/; - } - - location ^~ /mysqlui/ { - proxy_pass http://172.172.0.102/; - } - - location ^~ /influxui/ { - proxy_pass http://172.172.0.104:8083/; - } - - location ^~ /phpredisadmin/ { - proxy_pass http://172.172.0.103/; + proxy_pass http://minio:9000/minio/; } location ^~ /srs/ { - proxy_pass http://172.172.0.60:8080/; + proxy_pass http://srs:8080/; } location ^~ /platform/ { - proxy_pass http://172.172.0.80/platform/; + proxy_pass http://platform/platform/; } location ^~ /platform/hub { - proxy_pass http://172.172.0.80/platform/hub; + proxy_pass http://platform/platform/hub; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; diff --git a/publish/src/linux-x64/publish/conf/mysql/my.cnf b/publish/src/linux-x64/publish/conf/mysql/my.cnf index a4bb8f99..839a0075 100644 --- a/publish/src/linux-x64/publish/conf/mysql/my.cnf +++ b/publish/src/linux-x64/publish/conf/mysql/my.cnf @@ -1,6 +1,13 @@ +[client] +default-character-set=utf8mb4 + +[mysql] +default-character-set=utf8mb4 + [mysqld] +character-set-server=utf8mb4 +collation-server=utf8mb4_general_ci server_id=1 -binlog-ignore-db=master log-bin=mysql-bin binlog-format=ROW binlog_expire_logs_seconds=604800 \ No newline at end of file diff --git a/publish/src/linux-x64/publish/conf/website/nginx.conf b/publish/src/linux-x64/publish/conf/website/nginx.conf index ecd08a28..9c000b10 100644 --- a/publish/src/linux-x64/publish/conf/website/nginx.conf +++ b/publish/src/linux-x64/publish/conf/website/nginx.conf @@ -20,8 +20,8 @@ http { sendfile on; keepalive_timeout 65; - upstream gateway { - server 172.172.0.12:81; + upstream proxy { + server gateway:81; } server { @@ -38,11 +38,11 @@ http { } location ~* ^/(platform|dfs|live|video|influxdb|portainer|minio|mysqlui|influxui|phpredisadmin|srs)/ { - proxy_pass http://gateway; + proxy_pass http://proxy; } location ^~ /platform/hub { - proxy_pass http://gateway; + proxy_pass http://proxy; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; diff --git a/publish/src/linux-x64/publish/docker-compose.override.yml b/publish/src/linux-x64/publish/docker-compose.override.yml index 04c1a358..dfae7791 100644 --- a/publish/src/linux-x64/publish/docker-compose.override.yml +++ b/publish/src/linux-x64/publish/docker-compose.override.yml @@ -6,15 +6,11 @@ services: - ./conf/srs/dev:/usr/local/srs/conf website: volumes: - - ../../../../projects/WebSPA/wwwroot:/root/nginx/html/desktop - - ../../../../projects/WebSPA/wwwroot:/root/nginx/html/mobile + - ../../../../projects/Platform/wwwroot:/root/nginx/html/desktop platform: image: nginx:1.18.0 restart: always environment: TZ: "Asia/Shanghai" volumes: - - ./conf/platform/nginx.dev.conf:/etc/nginx/nginx.conf - networks: - default: - ipv4_address: 172.172.0.80 \ No newline at end of file + - ./conf/platform/nginx.dev.conf:/etc/nginx/nginx.conf \ No newline at end of file diff --git a/publish/src/linux-x64/publish/docker-compose.prod.yml b/publish/src/linux-x64/publish/docker-compose.prod.yml index dc883c18..568f2ff3 100644 --- a/publish/src/linux-x64/publish/docker-compose.prod.yml +++ b/publish/src/linux-x64/publish/docker-compose.prod.yml @@ -18,7 +18,4 @@ services: - 8011:80 volumes: - ./apps/Platform:/Platform - - ./docker/log/Platform:/Platform/logs - networks: - default: - ipv4_address: 172.172.0.80 \ No newline at end of file + - ./log/Platform:/Platform/logs \ No newline at end of file diff --git a/publish/src/linux-x64/publish/docker-compose.yml b/publish/src/linux-x64/publish/docker-compose.yml index f19c5367..7ecbc573 100644 --- a/publish/src/linux-x64/publish/docker-compose.yml +++ b/publish/src/linux-x64/publish/docker-compose.yml @@ -2,9 +2,6 @@ version: "3.8" networks: default: driver: bridge - ipam: - config: - - subnet: 172.172.0.0/24 services: #netdata netdata: @@ -17,17 +14,11 @@ services: security_opt: - apparmor:unconfined volumes: - - ./data/netdata/etc/netdata:/etc/netdata - - ./data/netdata/var/lib/netdata:/var/lib/netdata - - ./data/netdata/var/cache/netdata:/var/cache/netdata - /etc/passwd:/host/etc/passwd:ro - /etc/group:/host/etc/group:ro - /proc:/host/proc:ro - /sys:/host/sys:ro - /etc/os-release:/host/etc/os-release:ro - networks: - default: - ipv4_address: 172.172.0.100 #container management portainer: image: portainer/portainer:1.24.1 @@ -37,9 +28,6 @@ services: volumes: - /var/run/docker.sock:/var/run/docker.sock - ./data/portainer:/data - networks: - default: - ipv4_address: 172.172.0.101 #web site website: image: nginx:1.18.0 @@ -54,11 +42,8 @@ services: # - ./conf/website/edusoa.pem:/etc/nginx/edusoa.pem # - ./conf/website/edusoa.key:/etc/nginx/edusoa.key - ./log/website:/var/log/nginx - - ./apps/Platform/wwwroot:/root/nginx/html/desktop + - ./apps/WebMVC/wwwroot:/root/nginx/html/desktop - ./apps/WebSPA/wwwroot:/root/nginx/html/mobile - networks: - default: - ipv4_address: 172.172.0.10 #gateway gateway: image: nginx:1.18.0 @@ -70,9 +55,6 @@ services: volumes: - ./conf/gateway/nginx.conf:/etc/nginx/nginx.conf - ./log/gateway:/var/log/nginx - networks: - default: - ipv4_address: 172.172.0.12 #file server minio: image: minio/minio:RELEASE.2020-08-08T04-50-06Z @@ -85,13 +67,14 @@ services: - 9000:9000 volumes: - ./data/minio:/data - networks: - default: - ipv4_address: 172.172.0.20 #database server mysql: image: mysql:8.0 restart: always + deploy: + resources: + limits: + memory: 2g environment: - MYSQL_ROOT_PASSWORD=aA123456! command: --default-authentication-plugin=mysql_native_password @@ -101,9 +84,6 @@ services: - ./conf/mysql/my.cnf:/etc/mysql/conf.d/my.cnf - ./data/mysql:/var/lib/mysql - ./conf/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql - networks: - default: - ipv4_address: 172.172.0.30 influxdb: image: influxdb:1.8.1 restart: always @@ -117,9 +97,6 @@ services: - 8088:8088 volumes: - ./data/influxdb:/var/lib/influxdb - networks: - default: - ipv4_address: 172.172.0.50 #cache server redis: image: redis:6.0.6 @@ -130,9 +107,6 @@ services: - ./data/redis:/data - ./conf/redis/redis.conf:/usr/local/etc/redis/redis.conf command: redis-server /usr/local/etc/redis/redis.conf - networks: - default: - ipv4_address: 172.172.0.40 #streaming server srs: image: ossrs/srs:v4.0.84 @@ -147,9 +121,6 @@ services: volumes: - ./conf/srs/conf:/usr/local/srs/conf - ./data/srs:/usr/local/srs/objs/nginx/html/video - networks: - default: - ipv4_address: 172.172.0.60 #log db elasticsearch: image: elasticsearch:7.12.0 @@ -157,7 +128,7 @@ services: deploy: resources: limits: - memory: 1500M + memory: 2g environment: - discovery.type=single-node - ES_JAVA_OPTS=-Xms1g -Xmx1g @@ -173,4 +144,4 @@ services: image: kibana:7.12.0 restart: always ports: - - 5601:5601 + - 5601:5601 \ No newline at end of file