完善产品OneNET产品管理

This commit is contained in:
ChenYi 2025-07-29 14:30:48 +08:00
parent 1db4a63f97
commit caf5bf0c19
5 changed files with 117 additions and 71 deletions

1
.gitignore vendored
View File

@ -55,3 +55,4 @@
/test/JiShe.IoT.EntityFrameworkCore.Tests/bin/Release/net9.0 /test/JiShe.IoT.EntityFrameworkCore.Tests/bin/Release/net9.0
/test/JiShe.IoT.HttpApi.Client.ConsoleTestApp/bin/Release/net9.0 /test/JiShe.IoT.HttpApi.Client.ConsoleTestApp/bin/Release/net9.0
/test/JiShe.IoT.TestBase/bin/Release/net9.0 /test/JiShe.IoT.TestBase/bin/Release/net9.0
/host/JiShe.IoT.HttpApi.Host/UploadFile/20250729/host/abp-file-management

View File

@ -1,7 +1,7 @@
{ {
"App": { "App": {
"SelfUrl": "http://localhost:44315", "SelfUrl": "http://localhost:44315",
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://localhost" "CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://10.10.70.11:4200"
}, },
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Data Source=47.110.60.222;Port=13306;Database=JiSheIoTProDB;uid=root;pwd=JiShe!aqG#5kGgh&0;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true;", "Default": "Data Source=47.110.60.222;Port=13306;Database=JiSheIoTProDB;uid=root;pwd=JiShe!aqG#5kGgh&0;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true;",

View File

@ -13,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace JiShe.IoT.Migrations namespace JiShe.IoT.Migrations
{ {
[DbContext(typeof(IoTDbContext))] [DbContext(typeof(IoTDbContext))]
[Migration("20250725092548_InitialCreate")] [Migration("20250729024912_InitialCreate")]
partial class InitialCreate partial class InitialCreate
{ {
/// <inheritdoc /> /// <inheritdoc />
@ -307,8 +307,8 @@ namespace JiShe.IoT.Migrations
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("MasterKey") b.Property<string>("MasterKey")
.HasMaxLength(128) .HasMaxLength(1024)
.HasColumnType("varchar(128)") .HasColumnType("varchar(1024)")
.HasComment("主密钥"); .HasComment("主密钥");
b.Property<int>("NetworkType") b.Property<int>("NetworkType")
@ -1204,8 +1204,8 @@ namespace JiShe.IoT.Migrations
b.Property<string>("AccountAccesskey") b.Property<string>("AccountAccesskey")
.IsRequired() .IsRequired()
.HasMaxLength(50) .HasMaxLength(1024)
.HasColumnType("varchar(50)") .HasColumnType("varchar(1024)")
.HasComment("账户通信密钥,平台可以重置密钥"); .HasComment("账户通信密钥,平台可以重置密钥");
b.Property<string>("AccountName") b.Property<string>("AccountName")
@ -1311,10 +1311,12 @@ namespace JiShe.IoT.Migrations
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<int>("AccessProtocol") b.Property<int>("AccessProtocol")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("接入协议");
b.Property<string>("Brand") b.Property<string>("Brand")
.HasColumnType("longtext"); .HasColumnType("longtext")
.HasComment("产品品牌");
b.Property<string>("CommunicationAddress") b.Property<string>("CommunicationAddress")
.HasMaxLength(256) .HasMaxLength(256)
@ -1342,7 +1344,8 @@ namespace JiShe.IoT.Migrations
.HasColumnName("CreatorId"); .HasColumnName("CreatorId");
b.Property<int>("DataProtocol") b.Property<int>("DataProtocol")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("数据协议");
b.Property<Guid?>("DeleterId") b.Property<Guid?>("DeleterId")
.HasColumnType("char(36)") .HasColumnType("char(36)")
@ -1352,10 +1355,15 @@ namespace JiShe.IoT.Migrations
.HasColumnType("datetime(6)") .HasColumnType("datetime(6)")
.HasColumnName("DeletionTime"); .HasColumnName("DeletionTime");
b.Property<string>("DeviceThingModelUrl") b.Property<string>("DeviceThingModelFileId")
.HasMaxLength(50)
.HasColumnType("varchar(50)")
.HasComment("设备物模型文件Id");
b.Property<string>("DeviceThingModelFileName")
.HasMaxLength(256) .HasMaxLength(256)
.HasColumnType("varchar(256)") .HasColumnType("varchar(256)")
.HasComment("设备物模型文件管理地址"); .HasComment("设备物模型文件名称");
b.Property<string>("ExtraProperties") b.Property<string>("ExtraProperties")
.HasColumnType("longtext") .HasColumnType("longtext")
@ -1377,9 +1385,6 @@ namespace JiShe.IoT.Migrations
b.Property<bool>("IsEnabled") b.Property<bool>("IsEnabled")
.HasColumnType("tinyint(1)"); .HasColumnType("tinyint(1)");
b.Property<bool>("IsEncrypted")
.HasColumnType("tinyint(1)");
b.Property<DateTime?>("LastModificationTime") b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime(6)") .HasColumnType("datetime(6)")
.HasColumnName("LastModificationTime"); .HasColumnName("LastModificationTime");
@ -1389,19 +1394,24 @@ namespace JiShe.IoT.Migrations
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("Manufacturer") b.Property<string>("Manufacturer")
.HasColumnType("longtext"); .HasColumnType("longtext")
.HasComment("产品厂商");
b.Property<string>("Model") b.Property<string>("Model")
.HasColumnType("longtext"); .HasColumnType("longtext")
.HasComment("产品型号");
b.Property<string>("Network") b.Property<string>("Network")
.HasColumnType("longtext"); .HasColumnType("longtext")
.HasComment("联网方式");
b.Property<int>("NodeType") b.Property<int>("NodeType")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("节点类型");
b.Property<int>("NotActiveDeviceCount") b.Property<int>("NotActiveDeviceCount")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("未激活设备数");
b.Property<int?>("OSACreatorId") b.Property<int?>("OSACreatorId")
.HasColumnType("int") .HasColumnType("int")
@ -1416,7 +1426,8 @@ namespace JiShe.IoT.Migrations
.HasComment("旧系统授权最后修改者Id"); .HasComment("旧系统授权最后修改者Id");
b.Property<int>("OfflineDeviceCount") b.Property<int>("OfflineDeviceCount")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("离线设备数");
b.Property<string>("OneNETAccountId") b.Property<string>("OneNETAccountId")
.IsRequired() .IsRequired()
@ -1425,19 +1436,22 @@ namespace JiShe.IoT.Migrations
.HasComment("账户Id"); .HasComment("账户Id");
b.Property<int>("OnlineDeviceCount") b.Property<int>("OnlineDeviceCount")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("在线设备总数");
b.Property<int>("OwnDeviceCount") b.Property<int>("OwnDeviceCount")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("自有设备总数");
b.Property<string>("ProductAccesskey") b.Property<string>("ProductAccesskey")
.IsRequired() .IsRequired()
.HasMaxLength(128) .HasMaxLength(1024)
.HasColumnType("varchar(128)") .HasColumnType("varchar(1024)")
.HasComment("产品访问密钥"); .HasComment("产品访问密钥");
b.Property<DateTime>("ProductCreateTime") b.Property<DateTime>("ProductCreateTime")
.HasColumnType("datetime(6)"); .HasColumnType("datetime(6)")
.HasComment("产品创建时间");
b.Property<string>("ProductName") b.Property<string>("ProductName")
.HasMaxLength(128) .HasMaxLength(128)
@ -1445,14 +1459,16 @@ namespace JiShe.IoT.Migrations
.HasComment("产品名称"); .HasComment("产品名称");
b.Property<DateTime>("ProductUpdateTime") b.Property<DateTime>("ProductUpdateTime")
.HasColumnType("datetime(6)"); .HasColumnType("datetime(6)")
.HasComment("最近修改时间");
b.Property<string>("Remark") b.Property<string>("Remark")
.HasColumnType("longtext") .HasColumnType("longtext")
.HasComment("备注"); .HasComment("备注");
b.Property<int>("Status") b.Property<int>("Status")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("开发状态");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("char(36)") .HasColumnType("char(36)")
@ -1463,6 +1479,9 @@ namespace JiShe.IoT.Migrations
b.HasIndex("CreationTime"); b.HasIndex("CreationTime");
b.HasIndex("IoTPlatformProductId")
.IsUnique();
b.HasIndex(new[] { "Id", "IoTPlatformProductId", "ProductName", "CreationTime" }, "IX_ServiceProOneNETProductInfo_IsNotUniqueKey") b.HasIndex(new[] { "Id", "IoTPlatformProductId", "ProductName", "CreationTime" }, "IX_ServiceProOneNETProductInfo_IsNotUniqueKey")
.IsDescending(); .IsDescending();

View File

@ -792,7 +792,7 @@ namespace JiShe.IoT.Migrations
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
CommunicationAddress = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "通讯服务地址") CommunicationAddress = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "通讯服务地址")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
MasterKey = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "主密钥") MasterKey = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: true, comment: "主密钥")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
IoTPlatformProductId = table.Column<int>(type: "int", nullable: false), IoTPlatformProductId = table.Column<int>(type: "int", nullable: false),
ProductName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "产品名称") ProductName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "产品名称")
@ -949,7 +949,7 @@ namespace JiShe.IoT.Migrations
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
PhoneNumber = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false, comment: "手机号码") PhoneNumber = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false, comment: "手机号码")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
AccountAccesskey = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: false, comment: "账户通信密钥,平台可以重置密钥") AccountAccesskey = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: false, comment: "账户通信密钥,平台可以重置密钥")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
ProductCount = table.Column<int>(type: "int", nullable: false), ProductCount = table.Column<int>(type: "int", nullable: false),
ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: false) ConcurrencyStamp = table.Column<string>(type: "varchar(40)", maxLength: 40, nullable: false)
@ -988,30 +988,31 @@ namespace JiShe.IoT.Migrations
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
ProductName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "产品名称") ProductName = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: true, comment: "产品名称")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
ProductAccesskey = table.Column<string>(type: "varchar(128)", maxLength: 128, nullable: false, comment: "产品访问密钥") ProductAccesskey = table.Column<string>(type: "varchar(1024)", maxLength: 1024, nullable: false, comment: "产品访问密钥")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
DeviceThingModelUrl = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "设备物模型文件管理地址") DeviceThingModelFileId = table.Column<string>(type: "varchar(50)", maxLength: 50, nullable: true, comment: "设备物模型文件Id")
.Annotation("MySql:CharSet", "utf8mb4"),
DeviceThingModelFileName = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "设备物模型文件名称")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
IsEncrypted = table.Column<bool>(type: "tinyint(1)", nullable: false),
IsEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false), IsEnabled = table.Column<bool>(type: "tinyint(1)", nullable: false),
AccessProtocol = table.Column<int>(type: "int", nullable: false), AccessProtocol = table.Column<int>(type: "int", nullable: false, comment: "接入协议"),
DataProtocol = table.Column<int>(type: "int", nullable: false), DataProtocol = table.Column<int>(type: "int", nullable: false, comment: "数据协议"),
NodeType = table.Column<int>(type: "int", nullable: false), NodeType = table.Column<int>(type: "int", nullable: false, comment: "节点类型"),
ProductCreateTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), ProductCreateTime = table.Column<DateTime>(type: "datetime(6)", nullable: false, comment: "产品创建时间"),
ProductUpdateTime = table.Column<DateTime>(type: "datetime(6)", nullable: false), ProductUpdateTime = table.Column<DateTime>(type: "datetime(6)", nullable: false, comment: "最近修改时间"),
Network = table.Column<string>(type: "longtext", nullable: true) Network = table.Column<string>(type: "longtext", nullable: true, comment: "联网方式")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
Manufacturer = table.Column<string>(type: "longtext", nullable: true) Manufacturer = table.Column<string>(type: "longtext", nullable: true, comment: "产品厂商")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
Model = table.Column<string>(type: "longtext", nullable: true) Model = table.Column<string>(type: "longtext", nullable: true, comment: "产品型号")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
Brand = table.Column<string>(type: "longtext", nullable: true) Brand = table.Column<string>(type: "longtext", nullable: true, comment: "产品品牌")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
Status = table.Column<int>(type: "int", nullable: false), Status = table.Column<int>(type: "int", nullable: false, comment: "开发状态"),
OwnDeviceCount = table.Column<int>(type: "int", nullable: false), OwnDeviceCount = table.Column<int>(type: "int", nullable: false, comment: "自有设备总数"),
OnlineDeviceCount = table.Column<int>(type: "int", nullable: false), OnlineDeviceCount = table.Column<int>(type: "int", nullable: false, comment: "在线设备总数"),
OfflineDeviceCount = table.Column<int>(type: "int", nullable: false), OfflineDeviceCount = table.Column<int>(type: "int", nullable: false, comment: "离线设备数"),
NotActiveDeviceCount = table.Column<int>(type: "int", nullable: false), NotActiveDeviceCount = table.Column<int>(type: "int", nullable: false, comment: "未激活设备数"),
CommunicationAddress = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "通讯服务地址") CommunicationAddress = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "通讯服务地址")
.Annotation("MySql:CharSet", "utf8mb4"), .Annotation("MySql:CharSet", "utf8mb4"),
CommunicationAddressTLS = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "TLS通讯服务地址") CommunicationAddressTLS = table.Column<string>(type: "varchar(256)", maxLength: 256, nullable: true, comment: "TLS通讯服务地址")
@ -1725,6 +1726,12 @@ namespace JiShe.IoT.Migrations
table: "ServiceProOneNETProductInfo", table: "ServiceProOneNETProductInfo",
column: "CreationTime"); column: "CreationTime");
migrationBuilder.CreateIndex(
name: "IX_ServiceProOneNETProductInfo_IoTPlatformProductId",
table: "ServiceProOneNETProductInfo",
column: "IoTPlatformProductId",
unique: true);
migrationBuilder.CreateIndex( migrationBuilder.CreateIndex(
name: "IX_ServiceProOneNETProductInfo_IsNotUniqueKey", name: "IX_ServiceProOneNETProductInfo_IsNotUniqueKey",
table: "ServiceProOneNETProductInfo", table: "ServiceProOneNETProductInfo",

View File

@ -304,8 +304,8 @@ namespace JiShe.IoT.Migrations
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("MasterKey") b.Property<string>("MasterKey")
.HasMaxLength(128) .HasMaxLength(1024)
.HasColumnType("varchar(128)") .HasColumnType("varchar(1024)")
.HasComment("主密钥"); .HasComment("主密钥");
b.Property<int>("NetworkType") b.Property<int>("NetworkType")
@ -1201,8 +1201,8 @@ namespace JiShe.IoT.Migrations
b.Property<string>("AccountAccesskey") b.Property<string>("AccountAccesskey")
.IsRequired() .IsRequired()
.HasMaxLength(50) .HasMaxLength(1024)
.HasColumnType("varchar(50)") .HasColumnType("varchar(1024)")
.HasComment("账户通信密钥,平台可以重置密钥"); .HasComment("账户通信密钥,平台可以重置密钥");
b.Property<string>("AccountName") b.Property<string>("AccountName")
@ -1308,10 +1308,12 @@ namespace JiShe.IoT.Migrations
.HasColumnType("char(36)"); .HasColumnType("char(36)");
b.Property<int>("AccessProtocol") b.Property<int>("AccessProtocol")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("接入协议");
b.Property<string>("Brand") b.Property<string>("Brand")
.HasColumnType("longtext"); .HasColumnType("longtext")
.HasComment("产品品牌");
b.Property<string>("CommunicationAddress") b.Property<string>("CommunicationAddress")
.HasMaxLength(256) .HasMaxLength(256)
@ -1339,7 +1341,8 @@ namespace JiShe.IoT.Migrations
.HasColumnName("CreatorId"); .HasColumnName("CreatorId");
b.Property<int>("DataProtocol") b.Property<int>("DataProtocol")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("数据协议");
b.Property<Guid?>("DeleterId") b.Property<Guid?>("DeleterId")
.HasColumnType("char(36)") .HasColumnType("char(36)")
@ -1349,10 +1352,15 @@ namespace JiShe.IoT.Migrations
.HasColumnType("datetime(6)") .HasColumnType("datetime(6)")
.HasColumnName("DeletionTime"); .HasColumnName("DeletionTime");
b.Property<string>("DeviceThingModelUrl") b.Property<string>("DeviceThingModelFileId")
.HasMaxLength(50)
.HasColumnType("varchar(50)")
.HasComment("设备物模型文件Id");
b.Property<string>("DeviceThingModelFileName")
.HasMaxLength(256) .HasMaxLength(256)
.HasColumnType("varchar(256)") .HasColumnType("varchar(256)")
.HasComment("设备物模型文件管理地址"); .HasComment("设备物模型文件名称");
b.Property<string>("ExtraProperties") b.Property<string>("ExtraProperties")
.HasColumnType("longtext") .HasColumnType("longtext")
@ -1374,9 +1382,6 @@ namespace JiShe.IoT.Migrations
b.Property<bool>("IsEnabled") b.Property<bool>("IsEnabled")
.HasColumnType("tinyint(1)"); .HasColumnType("tinyint(1)");
b.Property<bool>("IsEncrypted")
.HasColumnType("tinyint(1)");
b.Property<DateTime?>("LastModificationTime") b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime(6)") .HasColumnType("datetime(6)")
.HasColumnName("LastModificationTime"); .HasColumnName("LastModificationTime");
@ -1386,19 +1391,24 @@ namespace JiShe.IoT.Migrations
.HasColumnName("LastModifierId"); .HasColumnName("LastModifierId");
b.Property<string>("Manufacturer") b.Property<string>("Manufacturer")
.HasColumnType("longtext"); .HasColumnType("longtext")
.HasComment("产品厂商");
b.Property<string>("Model") b.Property<string>("Model")
.HasColumnType("longtext"); .HasColumnType("longtext")
.HasComment("产品型号");
b.Property<string>("Network") b.Property<string>("Network")
.HasColumnType("longtext"); .HasColumnType("longtext")
.HasComment("联网方式");
b.Property<int>("NodeType") b.Property<int>("NodeType")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("节点类型");
b.Property<int>("NotActiveDeviceCount") b.Property<int>("NotActiveDeviceCount")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("未激活设备数");
b.Property<int?>("OSACreatorId") b.Property<int?>("OSACreatorId")
.HasColumnType("int") .HasColumnType("int")
@ -1413,7 +1423,8 @@ namespace JiShe.IoT.Migrations
.HasComment("旧系统授权最后修改者Id"); .HasComment("旧系统授权最后修改者Id");
b.Property<int>("OfflineDeviceCount") b.Property<int>("OfflineDeviceCount")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("离线设备数");
b.Property<string>("OneNETAccountId") b.Property<string>("OneNETAccountId")
.IsRequired() .IsRequired()
@ -1422,19 +1433,22 @@ namespace JiShe.IoT.Migrations
.HasComment("账户Id"); .HasComment("账户Id");
b.Property<int>("OnlineDeviceCount") b.Property<int>("OnlineDeviceCount")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("在线设备总数");
b.Property<int>("OwnDeviceCount") b.Property<int>("OwnDeviceCount")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("自有设备总数");
b.Property<string>("ProductAccesskey") b.Property<string>("ProductAccesskey")
.IsRequired() .IsRequired()
.HasMaxLength(128) .HasMaxLength(1024)
.HasColumnType("varchar(128)") .HasColumnType("varchar(1024)")
.HasComment("产品访问密钥"); .HasComment("产品访问密钥");
b.Property<DateTime>("ProductCreateTime") b.Property<DateTime>("ProductCreateTime")
.HasColumnType("datetime(6)"); .HasColumnType("datetime(6)")
.HasComment("产品创建时间");
b.Property<string>("ProductName") b.Property<string>("ProductName")
.HasMaxLength(128) .HasMaxLength(128)
@ -1442,14 +1456,16 @@ namespace JiShe.IoT.Migrations
.HasComment("产品名称"); .HasComment("产品名称");
b.Property<DateTime>("ProductUpdateTime") b.Property<DateTime>("ProductUpdateTime")
.HasColumnType("datetime(6)"); .HasColumnType("datetime(6)")
.HasComment("最近修改时间");
b.Property<string>("Remark") b.Property<string>("Remark")
.HasColumnType("longtext") .HasColumnType("longtext")
.HasComment("备注"); .HasComment("备注");
b.Property<int>("Status") b.Property<int>("Status")
.HasColumnType("int"); .HasColumnType("int")
.HasComment("开发状态");
b.Property<Guid?>("TenantId") b.Property<Guid?>("TenantId")
.HasColumnType("char(36)") .HasColumnType("char(36)")
@ -1460,6 +1476,9 @@ namespace JiShe.IoT.Migrations
b.HasIndex("CreationTime"); b.HasIndex("CreationTime");
b.HasIndex("IoTPlatformProductId")
.IsUnique();
b.HasIndex(new[] { "Id", "IoTPlatformProductId", "ProductName", "CreationTime" }, "IX_ServiceProOneNETProductInfo_IsNotUniqueKey") b.HasIndex(new[] { "Id", "IoTPlatformProductId", "ProductName", "CreationTime" }, "IX_ServiceProOneNETProductInfo_IsNotUniqueKey")
.IsDescending(); .IsDescending();