Compare commits

..

10 Commits

Author SHA1 Message Date
ChenYi
f7769e448e DictionaryObjectExtensionsTypeHandler 2026-04-03 17:30:43 +08:00
ChenYi
16a22575d6 完善jsob类型数据存取 2026-04-03 14:19:47 +08:00
ChenYi
c6ad9803c9 jsonB优化 2026-04-02 23:38:58 +08:00
ChenYi
f6241b1cbd jsonB结构处理 2026-04-02 22:51:23 +08:00
ChenYi
e9d37c954f 优化字典 2026-04-01 17:23:10 +08:00
ChenYi
562edc3792 优化字典 2026-03-31 16:36:11 +08:00
ChenYi
a49912ec48 JToken 无默认构造函数,显式指定映射策略避免 Mapster 2026-03-27 10:24:55 +08:00
ChenYi
82e662c867 更新docker镜像版本 2026-03-25 22:10:28 +08:00
ChenYi
f1ac4f67b5 测试数据库更新 2026-03-23 10:35:58 +08:00
ChenYi
b0a009c0f5 端口还原 2026-03-23 10:12:30 +08:00
15 changed files with 164 additions and 153 deletions

View File

@ -1,12 +1,12 @@
# FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
FROM registry.cn-qingdao.aliyuncs.com/jisheyun/aspnetcore:10.0.02_basic_ub24_dmpv35 AS base
FROM registry.cn-qingdao.aliyuncs.com/jisheyun/aspnetcore:10.0.05_basic_ub24_dmpv35 AS base
WORKDIR /app
EXPOSE 10500
EXPOSE 443
ENV TZ=Asia/Shanghai
ENV ASPNETCORE_ENVIRONMENT=Development
FROM mcr.microsoft.com/dotnet/sdk:10.0.102 AS build
FROM registry.cn-qingdao.aliyuncs.com/jisheyun/netsdk:10.0.201-noble AS build
COPY ["JiShe.IoT.Admin.sln", "."]
COPY ["Directory.Build.JiShe.targets", "."]
COPY ["Directory.Build.Microsoft.targets", "."]

View File

@ -34,12 +34,12 @@
<!--FreeSql-->
<PackageReference Update="FreeSql.Cloud" Version="2.0.1" />
<PackageReference Update="FreeSql.Extensions.JsonMap" Version="3.5.305" />
<PackageReference Update="FreeSql" Version="3.5.305"/>
<PackageReference Update="FreeSql.Provider.MysqlConnector" Version="3.5.305"/>
<PackageReference Update="FreeSql.Provider.Sqlite" Version="3.5.305"/>
<PackageReference Update="FreeSql.Provider.SqlServer" Version="3.5.305" />
<PackageReference Update="FreeSql.Provider.PostgreSQL " Version="3.5.305" />
<PackageReference Update="FreeSql.Extensions.JsonMap" Version="3.5.307" />
<PackageReference Update="FreeSql" Version="3.5.307"/>
<PackageReference Update="FreeSql.Provider.MysqlConnector" Version="3.5.307"/>
<PackageReference Update="FreeSql.Provider.Sqlite" Version="3.5.307"/>
<PackageReference Update="FreeSql.Provider.SqlServer" Version="3.5.307" />
<PackageReference Update="FreeSql.Provider.PostgreSQL " Version="3.5.307" />
<!-- 单元测试包-->
<PackageReference Update="xunit" Version="2.9.3"/>
@ -111,7 +111,7 @@
<!-- Humanizer 中文格式包-->
<PackageReference Update="Humanizer.Core.zh-Hans" Version="2.14.1"/>
<PackageReference Update="Scriban" Version="6.6.0" />
<PackageReference Update="Scriban" Version="7.0.6" />
<PackageReference Update="Otp.NET" Version="1.4.0" />
<PackageReference Update="QRCoder" Version="1.6.0" />
@ -120,6 +120,7 @@
<!--Flurl-->
<PackageReference Update="Flurl.Http" Version="4.0.2" />
<PackageReference Update="Mapster" Version="7.4.0" />
<PackageReference Update="Newtonsoft.Json" Version="13.0.3" />
<!--Apache.IoTDB-->
<PackageReference Update="Apache.IoTDB" Version="2.0.2.15" />

View File

@ -1,6 +1,6 @@
services:
zookeeper:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.3
container_name: zookeeper
hostname: zookeeper
restart: unless-stopped
@ -29,7 +29,7 @@ services:
start_period: 60s
pulsar-cluster-init:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.3
container_name: pulsar-cluster-init
hostname: pulsar-cluster-init
command: >
@ -42,7 +42,7 @@ services:
- pulsar-net
bookie:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.3
container_name: pulsar-bookie
hostname: pulsar-bookie
restart: unless-stopped
@ -77,7 +77,7 @@ services:
- pulsar-bookkeeper-data:/pulsar/data/bookkeeper
broker:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.3
container_name: pulsar-broker
hostname: pulsar-broker
restart: unless-stopped
@ -149,7 +149,7 @@ services:
start_period: 60s
pulsar-init:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.3
container_name: pulsar-init
hostname: pulsar-init
command: >
@ -183,7 +183,7 @@ services:
- pulsar-net
iotdb-standalone-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.6-standalone
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.7-standalone
hostname: iotdb-standalone
container_name: iotdb-standalone
restart: always
@ -216,7 +216,7 @@ services:
- pulsar-net
redis-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.0.2-alpine3.21
image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.6.2-alpine3.23
container_name: redis
restart: always
hostname: redis
@ -237,7 +237,7 @@ services:
- pulsar-net
postgres-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.1-alpine
image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.3-alpine
container_name: postgres
hostname: postgres
restart: unless-stopped

View File

@ -1,6 +1,6 @@
services:
iotdb-standalone:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.6-standalone
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.7-standalone
hostname: iotdb-standalone
container_name: iotdb-standalone
restart: "no"

View File

@ -1,6 +1,6 @@
services:
zookeeper:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.3
container_name: zookeeper
hostname: zookeeper
restart: unless-stopped
@ -34,7 +34,7 @@ services:
max-file: "3"
bookie:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.3
container_name: pulsar-bookie
hostname: pulsar-bookie
restart: unless-stopped
@ -77,7 +77,7 @@ services:
max-file: "3"
broker:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.1
image: registry.cn-qingdao.aliyuncs.com/jisheyun/pulsar:4.1.3
container_name: pulsar-broker
hostname: pulsar-broker
restart: unless-stopped
@ -152,7 +152,7 @@ services:
max-file: "3"
iotdb-standalone-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.6-standalone
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.7-standalone
hostname: iotdb-standalone
container_name: iotdb-standalone
restart: always
@ -190,7 +190,7 @@ services:
max-file: "5"
redis-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.0.2-alpine3.21
image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.6.2-alpine3.23
container_name: redis
restart: always
hostname: redis
@ -216,7 +216,7 @@ services:
max-file: "3"
postgres-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.1-alpine
image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.3-alpine
container_name: postgres
hostname: postgres
restart: unless-stopped

View File

@ -1,6 +1,6 @@
services:
iotdb-standalone-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.6-standalone
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.7-standalone
hostname: iotdb-standalone
container_name: iotdb-standalone
restart: always
@ -38,7 +38,7 @@ services:
max-file: "5"
redis-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.0.2-alpine3.21
image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.6.2-alpine3.23
container_name: redis
restart: always
hostname: redis
@ -64,7 +64,7 @@ services:
max-file: "3"
postgres-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.1-alpine
image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.3-alpine
container_name: postgres
hostname: postgres
restart: unless-stopped

View File

@ -1,6 +1,6 @@
services:
iotdb-standalone-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.6-standalone
image: registry.cn-qingdao.aliyuncs.com/jisheyun/iotdb:2.0.7-standalone
hostname: iotdb-standalone
container_name: iotdb-standalone
restart: always
@ -33,7 +33,7 @@ services:
- pulsar-net
redis-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.0.2-alpine3.21
image: registry.cn-qingdao.aliyuncs.com/jisheyun/redis:8.6.2-alpine3.23
container_name: redis
restart: always
hostname: redis
@ -54,7 +54,7 @@ services:
- pulsar-net
postgres-service:
image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.1-alpine
image: registry.cn-qingdao.aliyuncs.com/jisheyun/postgres:18.3-alpine
container_name: postgres
hostname: postgres
restart: unless-stopped

View File

@ -1,12 +1,12 @@
#FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
FROM registry.cn-qingdao.aliyuncs.com/jisheyun/aspnetcore:9.0.6_ub24_simsun_pdp_v341 AS base
# FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
FROM registry.cn-qingdao.aliyuncs.com/jisheyun/aspnetcore:10.0.05_basic_ub24_dmpv35 AS base
WORKDIR /app
EXPOSE 10500
EXPOSE 443
ENV TZ=Asia/Shanghai
ENV ASPNETCORE_ENVIRONMENT=Production
ENV ASPNETCORE_ENVIRONMENT=Development
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
FROM registry.cn-qingdao.aliyuncs.com/jisheyun/netsdk:10.0.201-noble AS build
COPY ["JiShe.IoT.Admin.sln", "."]
COPY ["Directory.Build.JiShe.targets", "."]
COPY ["Directory.Build.Microsoft.targets", "."]
@ -16,16 +16,14 @@ COPY ["Directory.Build.Volo.targets", "."]
COPY ["NuGet.Config", "."]
COPY ["host/", "host/"]
COPY ["src/", "src/"]
COPY ["JiShe.ServicePro/", "JiShe.ServicePro/"]
WORKDIR /host/JiShe.IoT.HttpApi.Host
FROM build AS publish
RUN dotnet publish "JiShe.IoT.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false
RUN dotnet publish "JiShe.IoT.HttpApi.Host.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "JiShe.IoT.HttpApi.Host.dll"]

View File

@ -47,7 +47,7 @@ public class Program
//options.Limits.MaxConcurrentConnections = 1000;//限制并发连接数,默认无限制
});
builder.WebHost.UseUrls($"http://+:20500");
builder.WebHost.UseUrls($"http://+:10500");
var app = builder.Build();
await app.InitializeApplicationAsync();
await app.RunAsync();

View File

@ -5,7 +5,7 @@
},
"ConnectionStrings": {
//"Default": "Data Source=192.168.111.174;Port=13306;Database=JiSheIoTProDB386;uid=root;pwd=JiShe!aqG#5kGgh&0;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true;TreatTinyAsBoolean=false;SslMode=None;Pooling=true;"
"Default": "Host=192.168.111.174;Port=5432;Database=jisheiotprodb;Username=postgres;Password=JiShe!aqG#5kGgh&0;Encoding=UTF8;Pooling=true;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=100;"
"Default": "Host=192.168.111.174;Port=5432;Database=jisheiotprodb58;Username=postgres;Password=JiShe!aqG#5kGgh&0;Encoding=UTF8;Pooling=true;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=100;"
},
"Hangfire": {
"Redis": {

View File

@ -237,6 +237,15 @@ namespace JiShe.IoT.IoTPlatformAggregation
}
}
if (!string.IsNullOrWhiteSpace(input.FiledType) && input.FiledType.ToLowerInvariant().Contains("service"))
{
var tempServiceResult = OneNETAllThingModel.GetAllServicesSelectResult(oneNETAllThingModel.Services);
if (tempServiceResult != null)
{
selectResults.AddRange(tempServiceResult);
}
}
var tempPropertyCacheResult = OneNETAllThingModel.GetAllPropertiesSelectResult(oneNETAllThingModel.Properties);
if (tempPropertyCacheResult != null)
{
@ -272,6 +281,15 @@ namespace JiShe.IoT.IoTPlatformAggregation
}
}
if (!string.IsNullOrWhiteSpace(input.FiledType) && input.FiledType.ToLowerInvariant().Contains("service"))
{
var tempEventResult = OneNETAllThingModel.GetAllServicesSelectResult(oneNETAllThingModel.Services);
if (tempEventResult != null)
{
selectResults.AddRange(tempEventResult);
}
}
var tempPropertyResult = OneNETAllThingModel.GetAllPropertiesSelectResult(oneNETAllThingModel.Properties);
if (tempPropertyResult != null)
{

View File

@ -1,37 +1,41 @@
{
"App": {
"SelfUrl": "http://localhost:44315",
"CorsOrigins": "https://*.IoT.com,http://localhost:4200,http://localhost:3100,http://localhost:80,http://10.10.10.104:4200"
},
"ConnectionStrings": {
"Default": "Host=47.110.53.196;Port=35432;Database=jisheiotprodb68;Username=postgres;Password=JiShe!aqG#5kGgh&0;Encoding=UTF8;Pooling=true;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=100;"
"Default": "Host=192.168.111.174;Port=5432;Database=jisheiotprodb58;Username=postgres;Password=JiShe!aqG#5kGgh&0;Encoding=UTF8;Pooling=true;Pooling=true;Minimum Pool Size=5;Maximum Pool Size=100;"
},
"Hangfire": {
"Redis": {
"Host": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#",
"DB": "2"
}
"IoTDBOptions": {
"UserName": "root",
"Password": "Lixiao@1980",
//"TreeModelClusterList": [ "192.168.111.174:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
//"TableModelClusterList": [ "192.168.111.174:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
"TreeModelClusterList": [ "192.168.111.174:30710" ],
"TableModelClusterList": [ "192.168.111.174:30710" ],
"PoolSize": 32,
"DataBaseName": "jisheiotdata",
"OpenDebugMode": false,
"UseTableSessionPoolByDefault": false
},
"Redis": {
"Configuration": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#,defaultdatabase=5"
"FreeRedisOptions": {
"ConnectionString": "192.168.111.42:30712,password=1q3J@BGf!yhTaD46nS#,abortConnect=false,connectTimeout=30000,allowAdmin=true,maxPoolSize=500,defaultdatabase=14",
"UseDistributedCache": true
},
"Kafka": {
"BootstrapServers": "47.110.62.104:9094,47.110.53.196:9094,47.110.60.222:9094",
"EnableFilter": true,
"EnableAuthorization": false,
"SaslUserName": "lixiao",
"SaslPassword": "lixiao@1980",
"KafkaReplicationFactor": 3,
"NumPartitions": 30,
"TaskThreadCount": -1
"ServerApplicationOptions": {
"ServerTagName": "JiSheCollectBus10",
"FirstCollectionTime": "2025-04-28 15:07:00",
"AutomaticVerificationTime": "16:07:00",
"AutomaticTerminalVersionTime": "17:07:00",
"AutomaticTelematicsModuleTime": "17:30:00",
"AutomaticDayFreezeTime": "02:30:00",
"AutomaticMonthFreezeTime": "03:30:00",
"DefaultProtocolPlugin": "T37612012ProtocolPlugin",
"VerifySignatureToken": "SIcPQnpMgaFDmNlIjNmzq5smshz7cKrh",
"DistributedMessage": 2
},
"Pulsar": {
"ServiceUrl": "pulsar://47.110.53.196:9093", //pulsar+ssl://iot-north-mq.heclouds.com:6651 pulsar://47.110.53.196:26974
"WebUrl": "http://47.110.53.196:9094",
"ServiceUrl": "pulsar://47.110.60.222:9093",
"WebUrl": "http://47.110.60.222:9094",
"UserName": "admin",
"TenantName": "1YMVZZkAkRArjxSD8457",
"Namespace": "OneNET",
"MessageTTL": 3600,
"PulsarSecretKey": "0fd7afb8b0d04e6abc4fdfdac2190a79",
"PulsarSubscriptionCustomName": "sub",
"EnableTls": false,
@ -44,78 +48,10 @@
"DefaultPartitions": 16,
"DefaultBundles": 16,
"EnableAutoCreation": true, //Topic
"TopicMode": "Static", //DynamicStatic
"TopicMode": "Static", //Dynamic
"EnableTopicTypeFilter": true, //Topic
"AllowedTopicTypes": [ "Static" ], //Topic
"AllowedClusters": [ "pulsar-cluster-1" ], //
"AdminRoles": [ "admin" ],
"EnableConsumerIdleCleanup": true,
"ConsumerIdleCleanupMinutes": 120,
"EnableProducerIdleCleanup": true,
"ProducerIdleCleanupMinutes": 60
},
"IoTDBOptions": {
"UserName": "root",
"Password": "Li#xiao@198!0",
//"TreeModelClusterList": [ "47.110.53.196:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
//"TableModelClusterList": [ "47.110.53.196:6667", "47.110.60.222:6667", "47.110.62.104:6667" ],
"TreeModelClusterList": [ "47.110.53.196:30710" ],
"TableModelClusterList": [ "47.110.53.196:30710" ],
"PoolSize": 32,
"DataBaseName": "jisheiotdata",
"OpenDebugMode": true,
"UseTableSessionPoolByDefault": false,
"BatchInsertSize": 1000
},
"ServerApplicationOptions": {
"ServerTagName": "JiSheCollectBus12",
"FirstCollectionTime": "2025-04-28 15:07:00",
"AutomaticVerificationTime": "16:07:00",
"AutomaticTerminalVersionTime": "17:07:00",
"AutomaticTelematicsModuleTime": "17:30:00",
"AutomaticDayFreezeTime": "02:30:00",
"AutomaticMonthFreezeTime": "03:30:00",
"DefaultProtocolPlugin": "T37612012ProtocolPlugin",
"SignatureToken": "SIcPQnpMgaFDmNlIjNmzq5smshz7cKrh",
"AesSecurityKey": "RPTEIGCA1KvDEXS1",
"IsAesEncrypted": false,
"DistributedMessage": 2,
"SnowflakeWorkerId": 1,
"DownloadDeviceFirmwareBasicUrl": "http://121.42.175.177:32580/Aggregation/Device/DownloadFirmware?Id=",
"MQTTServerType": 1
},
"Jwt": {
"Audience": "JiShe.IoT",
"SecurityKey": "dzehzRz9a8asdfaf43ghVD@d#fasdfaf567sdadfasdf=",
"Issuer": "JiShe.IoT",
"ExpirationTime": 2
},
"Cap": {
"RabbitMq": {
"HostName": "localhost",
"UserName": "admin",
"Password": "1q2w3E*",
"Port": 5672
}
},
"FreeRedisOptions": {
"ConnectionString": "47.110.53.196:30712,password=1q3J@BGf!yhTaD46nS#,abortConnect=false,connectTimeout=30000,allowAdmin=true,maxPoolSize=500,defaultdatabase=14",
"UseDistributedCache": true
},
"FreeSqlProviderOptions": {
"UsePrepayDB": false,
"UseEnergyDB": false,
"PrintLog": false,
"DataType": 1
},
"OneNETSecureReceiveOptions": {
"OneNETVerifySignatureToken": "SIcPQnpMgaFDmNlIjNmzq5smshz7cKrh",
"OneNETAesKey": "RPTEIGCA1KvDEXS1"
},
"DataChannelOptions": {
"DefaultBatchSize": 10000,
"TelemetryBatchSize": 10000,
"EmptyWaitmilliseconds": 500,
"TimeoutMilliseconds": 500
"AdminRoles": [ "admin" ]
}
}

View File

@ -5,7 +5,6 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Newtonsoft.Json.Linq;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using Volo.Abp.EntityFrameworkCore;
@ -14,7 +13,7 @@ using Volo.Abp.EntityFrameworkCore;
namespace JiShe.IoT.Migrations
{
[DbContext(typeof(IoTDbContext))]
[Migration("20260320152205_InitialCreate")]
[Migration("20260403061310_InitialCreate")]
partial class InitialCreate
{
/// <inheritdoc />
@ -537,8 +536,8 @@ namespace JiShe.IoT.Migrations
.HasColumnType("character varying(256)");
b.Property<string>("ExtendedAttributeValue")
.HasMaxLength(2048)
.HasColumnType("character varying(2048)");
.HasColumnType("jsonb")
.HasComment("扩展属性值信息");
b.Property<bool>("IsEnabled")
.HasColumnType("boolean");
@ -754,6 +753,18 @@ namespace JiShe.IoT.Migrations
.HasColumnType("integer")
.HasComment("设备类型,与业务系统无关,主要区分是网关设备、直连设备");
b.Property<int>("EncryptionMethod")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(1)
.HasComment("设备鉴权加密方式");
b.Property<int>("EncryptionType")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(1)
.HasComment("设备加密类型,类型不同给,鉴权路径资源不同,默认为一型一密");
b.Property<string>("ExtraProperties")
.HasColumnType("text")
.HasColumnName("ExtraProperties")
@ -826,6 +837,10 @@ namespace JiShe.IoT.Migrations
.HasColumnType("timestamp with time zone")
.HasComment("最后在线时间");
b.Property<bool?>("NeedEquipmentProductionPlan")
.HasColumnType("boolean")
.HasComment("是否需要设备生产计划");
b.Property<int?>("OSACreatorId")
.HasColumnType("integer")
.HasComment("旧系统授权创建者Id");
@ -854,6 +869,10 @@ namespace JiShe.IoT.Migrations
.HasColumnType("text")
.HasComment("备注");
b.Property<string>("SimCardInfo")
.HasColumnType("jsonb")
.HasComment("SIM卡信息");
b.Property<int>("SubDeviceCapacity")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
@ -1170,6 +1189,12 @@ namespace JiShe.IoT.Migrations
.HasColumnType("character varying(256)")
.HasComment("指令名称");
b.Property<int>("CommandType")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasComment("指令类型");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.IsRequired()
@ -1567,7 +1592,9 @@ namespace JiShe.IoT.Migrations
.HasComment("物模型标识符访问模式");
b.Property<string>("CallServiceOperateCommand")
.HasColumnType("text");
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasComment("服务调用参数通用指令,物模型服务类才有,一般用于保存操作子设备时的透明转发指令。");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
@ -1622,7 +1649,7 @@ namespace JiShe.IoT.Migrations
.HasColumnType("character varying(64)")
.HasComment("物联网平台中对应的产品物模型属性或者事件数据类型");
b.Property<JToken>("IoTPlatformRawFieldExtension")
b.Property<string>("IoTPlatformRawFieldExtension")
.HasColumnType("jsonb")
.HasComment("物联网平台中对应产品物模型标识符扩展,结构体或者数组的时候,是参数的名称与长度的键值对,其他类型就是长度或者值范围");
@ -1680,7 +1707,7 @@ namespace JiShe.IoT.Migrations
.HasColumnType("character varying(64)")
.HasComment("管理后台产品标准的物模型属性或者事件名称");
b.Property<JToken>("StandardFieldFieldExtension")
b.Property<string>("StandardFieldFieldExtension")
.HasColumnType("jsonb")
.HasComment("标准物模型字段标识符扩展,数组或者结构体时候的参数或者元素名称集合");

View File

@ -1,6 +1,5 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Newtonsoft.Json.Linq;
#nullable disable
@ -762,6 +761,10 @@ namespace JiShe.IoT.Migrations
UpgradeDate = table.Column<DateTime>(type: "timestamp with time zone", nullable: true, comment: "升级日期"),
SubDeviceCapacity = table.Column<int>(type: "integer", nullable: false, defaultValue: 64, comment: "子设备容量"),
ReadingMode = table.Column<int>(type: "integer", nullable: false, defaultValue: 1, comment: "抄读模式"),
SimCardInfo = table.Column<string>(type: "jsonb", nullable: true, comment: "SIM卡信息"),
EncryptionType = table.Column<int>(type: "integer", nullable: false, defaultValue: 1, comment: "设备加密类型,类型不同给,鉴权路径资源不同,默认为一型一密"),
EncryptionMethod = table.Column<int>(type: "integer", nullable: false, defaultValue: 1, comment: "设备鉴权加密方式"),
NeedEquipmentProductionPlan = table.Column<bool>(type: "boolean", nullable: true, comment: "是否需要设备生产计划"),
ConcurrencyStamp = table.Column<string>(type: "character varying(40)", maxLength: 40, nullable: false),
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
CreatorId = table.Column<Guid>(type: "uuid", nullable: true),
@ -790,6 +793,7 @@ namespace JiShe.IoT.Migrations
Id = table.Column<Guid>(type: "uuid", nullable: false),
DeviceThingModelId = table.Column<Guid>(type: "uuid", nullable: false, comment: "设备端物模型Id"),
IoTPlatform = table.Column<int>(type: "integer", nullable: false, comment: "物联网平台类型"),
CommandType = table.Column<int>(type: "integer", nullable: false, defaultValue: 0, comment: "指令类型"),
IoTPlatformProductId = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false, comment: "物联网平台中对应的产品Id"),
CommandName = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false, comment: "指令名称"),
IssueCommand = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: false, comment: "完整的单个下发指令"),
@ -939,17 +943,17 @@ namespace JiShe.IoT.Migrations
FiledType = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false, comment: "物联网平台中对应产品物模型属性或者事件类型"),
IoTPlatformRawFieldName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false, comment: "物联网平台中对应的产品物模型属性或者事件名称"),
IoTPlatformRawFieldDataType = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: true, comment: "物联网平台中对应的产品物模型属性或者事件数据类型"),
IoTPlatformRawFieldExtension = table.Column<JToken>(type: "jsonb", nullable: true, comment: "物联网平台中对应产品物模型标识符扩展,结构体或者数组的时候,是参数的名称与长度的键值对,其他类型就是长度或者值范围"),
IoTPlatformRawFieldExtension = table.Column<string>(type: "jsonb", nullable: true, comment: "物联网平台中对应产品物模型标识符扩展,结构体或者数组的时候,是参数的名称与长度的键值对,其他类型就是长度或者值范围"),
StandardFieldName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false, comment: "管理后台产品标准的物模型属性或者事件名称"),
StandardFieldValueType = table.Column<string>(type: "character varying(20)", maxLength: 20, nullable: false, comment: "标准物模型字段值类型"),
StandardFieldDisplayName = table.Column<string>(type: "character varying(64)", maxLength: 64, nullable: false, comment: "管理后台产品标准的物模型属性或者事件名称"),
StandardFieldFieldExtension = table.Column<JToken>(type: "jsonb", nullable: true, comment: "标准物模型字段标识符扩展,数组或者结构体时候的参数或者元素名称集合"),
StandardFieldFieldExtension = table.Column<string>(type: "jsonb", nullable: true, comment: "标准物模型字段标识符扩展,数组或者结构体时候的参数或者元素名称集合"),
IsValueNeedConvert = table.Column<bool>(type: "boolean", nullable: false, comment: "是否需要值类型转换"),
IsSpecialIdentifier = table.Column<bool>(type: "boolean", nullable: false, comment: "是否是特殊物模型标识符"),
IsOperableIdentifier = table.Column<bool>(type: "boolean", nullable: false, comment: "是否可操作物模型标识符"),
AccessMode = table.Column<string>(type: "character varying(10)", maxLength: 10, nullable: false, defaultValue: "r", comment: "物模型标识符访问模式"),
IdentifierType = table.Column<int>(type: "integer", nullable: false, comment: "物模型标识符类型"),
CallServiceOperateCommand = table.Column<string>(type: "text", nullable: true),
CallServiceOperateCommand = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true, comment: "服务调用参数通用指令,物模型服务类才有,一般用于保存操作子设备时的透明转发指令。"),
ConcurrencyStamp = table.Column<string>(type: "character varying(40)", maxLength: 40, nullable: false),
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
CreatorId = table.Column<Guid>(type: "uuid", nullable: true),
@ -1242,7 +1246,7 @@ namespace JiShe.IoT.Migrations
Description = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: true),
IsEnabled = table.Column<bool>(type: "boolean", nullable: false),
ExtendedAttribute = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
ExtendedAttributeValue = table.Column<string>(type: "character varying(2048)", maxLength: 2048, nullable: true),
ExtendedAttributeValue = table.Column<string>(type: "jsonb", nullable: true, comment: "扩展属性值信息"),
CreationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
CreatorId = table.Column<Guid>(type: "uuid", nullable: true),
LastModificationTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: true),

View File

@ -4,7 +4,6 @@ using JiShe.IoT.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Newtonsoft.Json.Linq;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
using Volo.Abp.EntityFrameworkCore;
@ -534,8 +533,8 @@ namespace JiShe.IoT.Migrations
.HasColumnType("character varying(256)");
b.Property<string>("ExtendedAttributeValue")
.HasMaxLength(2048)
.HasColumnType("character varying(2048)");
.HasColumnType("jsonb")
.HasComment("扩展属性值信息");
b.Property<bool>("IsEnabled")
.HasColumnType("boolean");
@ -751,6 +750,18 @@ namespace JiShe.IoT.Migrations
.HasColumnType("integer")
.HasComment("设备类型,与业务系统无关,主要区分是网关设备、直连设备");
b.Property<int>("EncryptionMethod")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(1)
.HasComment("设备鉴权加密方式");
b.Property<int>("EncryptionType")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(1)
.HasComment("设备加密类型,类型不同给,鉴权路径资源不同,默认为一型一密");
b.Property<string>("ExtraProperties")
.HasColumnType("text")
.HasColumnName("ExtraProperties")
@ -823,6 +834,10 @@ namespace JiShe.IoT.Migrations
.HasColumnType("timestamp with time zone")
.HasComment("最后在线时间");
b.Property<bool?>("NeedEquipmentProductionPlan")
.HasColumnType("boolean")
.HasComment("是否需要设备生产计划");
b.Property<int?>("OSACreatorId")
.HasColumnType("integer")
.HasComment("旧系统授权创建者Id");
@ -851,6 +866,10 @@ namespace JiShe.IoT.Migrations
.HasColumnType("text")
.HasComment("备注");
b.Property<string>("SimCardInfo")
.HasColumnType("jsonb")
.HasComment("SIM卡信息");
b.Property<int>("SubDeviceCapacity")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
@ -1167,6 +1186,12 @@ namespace JiShe.IoT.Migrations
.HasColumnType("character varying(256)")
.HasComment("指令名称");
b.Property<int>("CommandType")
.ValueGeneratedOnAdd()
.HasColumnType("integer")
.HasDefaultValue(0)
.HasComment("指令类型");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
.IsRequired()
@ -1564,7 +1589,9 @@ namespace JiShe.IoT.Migrations
.HasComment("物模型标识符访问模式");
b.Property<string>("CallServiceOperateCommand")
.HasColumnType("text");
.HasMaxLength(128)
.HasColumnType("character varying(128)")
.HasComment("服务调用参数通用指令,物模型服务类才有,一般用于保存操作子设备时的透明转发指令。");
b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken()
@ -1619,7 +1646,7 @@ namespace JiShe.IoT.Migrations
.HasColumnType("character varying(64)")
.HasComment("物联网平台中对应的产品物模型属性或者事件数据类型");
b.Property<JToken>("IoTPlatformRawFieldExtension")
b.Property<string>("IoTPlatformRawFieldExtension")
.HasColumnType("jsonb")
.HasComment("物联网平台中对应产品物模型标识符扩展,结构体或者数组的时候,是参数的名称与长度的键值对,其他类型就是长度或者值范围");
@ -1677,7 +1704,7 @@ namespace JiShe.IoT.Migrations
.HasColumnType("character varying(64)")
.HasComment("管理后台产品标准的物模型属性或者事件名称");
b.Property<JToken>("StandardFieldFieldExtension")
b.Property<string>("StandardFieldFieldExtension")
.HasColumnType("jsonb")
.HasComment("标准物模型字段标识符扩展,数组或者结构体时候的参数或者元素名称集合");