init
This commit is contained in:
parent
9b160e1d6f
commit
4a7c50727e
13
.idea/.idea.SJZY.Track.Api/.idea/.gitignore
generated
vendored
13
.idea/.idea.SJZY.Track.Api/.idea/.gitignore
generated
vendored
@ -1,13 +0,0 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Rider ignored files
|
||||
/projectSettingsUpdater.xml
|
||||
/.idea.SJZY.Track.Api.iml
|
||||
/modules.xml
|
||||
/contentModel.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<packageSources>
|
||||
<add key="xiaolipro.cn" value="https://baget.xiaolipro.cn/v3/index.json" />
|
||||
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
|
||||
</packageSources>
|
||||
</configuration>
|
||||
</configuration>
|
||||
|
||||
@ -2,21 +2,21 @@
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.2.32630.192
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SJZY.Track.Api", "src\SJZY.Track.Api\SJZY.Track.Api.csproj", "{5F1A9619-A5A3-4F5F-AEFF-880707A251E1}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TrackCenter.Api", "src\TrackCenter.Api\TrackCenter.Api.csproj", "{5F1A9619-A5A3-4F5F-AEFF-880707A251E1}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SJZY.Track.Application", "src\SJZY.Track.Application\SJZY.Track.Application.csproj", "{E052AEB3-A86F-431E-A685-769D3E59CB8A}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TrackCenter.Application", "src\TrackCenter.Application\TrackCenter.Application.csproj", "{E052AEB3-A86F-431E-A685-769D3E59CB8A}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{DAC93270-5A25-40E5-B851-E7CA398DBC31}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{0E2537C3-6EF3-4085-9BD2-CF923E53F82A}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SJZY.Track.Repository", "src\SJZY.Track.Repository\SJZY.Track.Repository.csproj", "{D9CF5706-1972-414F-821E-AA32C13B8570}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TrackCenter.Repository", "src\TrackCenter.Repository\TrackCenter.Repository.csproj", "{D9CF5706-1972-414F-821E-AA32C13B8570}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SJZY.Track.Application.Contract", "src\SJZY.Track.Application.Contract\SJZY.Track.Application.Contract.csproj", "{390A44FB-0DB5-4B66-86AB-7712DC3030F5}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TrackCenter.Application.Contract", "src\TrackCenter.Application.Contract\TrackCenter.Application.Contract.csproj", "{390A44FB-0DB5-4B66-86AB-7712DC3030F5}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SJZY.Track.Test", "test\SJZY.Track.Test\SJZY.Track.Test.csproj", "{3A53539C-4A85-4E5D-A071-7B4B193AB0E0}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SJZY.Track.Domain", "src\SJZY.Track.Domain\SJZY.Track.Domain.csproj", "{073EB297-E752-49AC-BED8-B4AEBAB518F6}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TrackCenter.Domain", "src\TrackCenter.Domain\TrackCenter.Domain.csproj", "{073EB297-E752-49AC-BED8-B4AEBAB518F6}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solution items", "solution items", "{086C7812-46F9-49FD-B490-A769E2C0729E}"
|
||||
ProjectSection(SolutionItems) = preProject
|
||||
@ -24,6 +24,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solution items", "solution
|
||||
NuGet.Config = NuGet.Config
|
||||
.gitignore = .gitignore
|
||||
.editorconfig = .editorconfig
|
||||
global.json = global.json
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
3
TrackCenter.sln.DotSettings
Normal file
3
TrackCenter.sln.DotSettings
Normal file
@ -0,0 +1,3 @@
|
||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=dels/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=SJZY/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||
5
global.json
Normal file
5
global.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"sdk": {
|
||||
"version": "8.0.303"
|
||||
}
|
||||
}
|
||||
@ -1,27 +0,0 @@
|
||||
using SJZY.Expand.ABP.Core.Configuration;
|
||||
using SJZY.Expand.ABP.Core.Configuration.AutoRegistOptions;
|
||||
using SJZY.Expand.ABP.Core.Logger;
|
||||
using SJZY.Track.Api;
|
||||
|
||||
try
|
||||
{
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
builder
|
||||
.AddConfigurationContainer()
|
||||
.AddOptionsFromConfiguration()
|
||||
.UseSerilogDefault()
|
||||
.AddOTel() //注入OTel
|
||||
.Host.AddAppSettingsSecretsJson()
|
||||
.UseAutofac();
|
||||
|
||||
await builder.AddApplicationAsync<SjzyTrackApiModule>();
|
||||
|
||||
var app = builder.Build();
|
||||
await app.InitializeApplicationAsync();
|
||||
app.UseOTel(); //启动WebApi的请求管道配置
|
||||
await app.RunAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"项目启动失败,异常信息:{ex}");
|
||||
}
|
||||
@ -1,128 +0,0 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using FluentValidation.AspNetCore;
|
||||
using Hangfire;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SJZY.Expand.ABP.Core;
|
||||
using SJZY.Expand.ABP.Core.Cors;
|
||||
using SJZY.Expand.ABP.Core.Filter;
|
||||
using SJZY.Expand.ABP.Core.JsonSerialization;
|
||||
using SJZY.Expand.ABP.Core.Localization;
|
||||
using SJZY.Expand.ABP.Core.Prometheus;
|
||||
using SJZY.Expand.ABP.Core.Redis;
|
||||
using SJZY.Expand.ABP.Core.Swagger;
|
||||
using SJZY.Track.Application;
|
||||
using SJZY.Track.Application.Hangfire;
|
||||
using SJZY.Track.Application.HostServices;
|
||||
using SJZY.Track.Repository;
|
||||
using Volo.Abp;
|
||||
using Volo.Abp.AspNetCore.Mvc;
|
||||
using Volo.Abp.AspNetCore.Serilog;
|
||||
using Volo.Abp.Auditing;
|
||||
using Volo.Abp.Autofac;
|
||||
using Volo.Abp.Json;
|
||||
using Volo.Abp.Modularity;
|
||||
|
||||
[assembly: HostingStartup(typeof(HostingStartup))]
|
||||
|
||||
namespace SJZY.Track.Api;
|
||||
|
||||
[DependsOn(
|
||||
typeof(AbpAutofacModule),
|
||||
typeof(SjzyAbpCodeModule),
|
||||
typeof(AbpAspNetCoreMvcModule),
|
||||
typeof(AbpAspNetCoreSerilogModule),
|
||||
typeof(SjzyTrackApplicationModule),
|
||||
typeof(SjzyTrackRepositoryModule)
|
||||
)]
|
||||
public class SjzyTrackApiModule : AbpModule
|
||||
{
|
||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||
{
|
||||
var environment = context.Services.GetHostingEnvironment();
|
||||
var configuration = context.Services.GetConfiguration();
|
||||
context.Services.AddSwagger();
|
||||
|
||||
//过滤器相关配置
|
||||
context.Services.AddMvc(options =>
|
||||
{
|
||||
options.Filters.AddService<GlobalExceptionFilter>();
|
||||
options.Filters.AddService<RequestLogFilter>();
|
||||
options.Filters.AddService<UnifyResultFilter>();
|
||||
}).AddNewtonsoftJson();
|
||||
|
||||
context.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters();
|
||||
|
||||
//Json格式化全局处理
|
||||
context.Services.Configure<MvcNewtonsoftJsonOptions>(options =>
|
||||
{
|
||||
options.SerializerSettings.ContractResolver =
|
||||
new Newtonsoft.Json.Serialization.
|
||||
CamelCasePropertyNamesContractResolver(); //.DefaultContractResolver();
|
||||
options.SerializerSettings.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss"));
|
||||
options.SerializerSettings.Converters.Add(new LongJsonConverter());
|
||||
});
|
||||
|
||||
Configure<AbpJsonOptions>(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss");
|
||||
Configure<AbpAuditingOptions>(options => { options.IsEnabled = false; });
|
||||
|
||||
context.Services.AddRedis();
|
||||
context.Services.AddHostedService<RedisHostService>();
|
||||
}
|
||||
|
||||
public override void OnApplicationInitialization(ApplicationInitializationContext context)
|
||||
{
|
||||
var app = context.GetApplicationBuilder();
|
||||
var env = context.GetEnvironment();
|
||||
var configuration = context.GetConfiguration();
|
||||
|
||||
if (env.IsDevelopment())
|
||||
app.UseDeveloperExceptionPage();
|
||||
|
||||
app.UseRequestCulture();
|
||||
app.UseRouting();
|
||||
app.UseCorsPolicy();
|
||||
app.UseConfiguredEndpoints();
|
||||
app.UseAbpSwaggerUI(env);
|
||||
app.UseAbpSerilogEnrichers();
|
||||
app.UsePrometheus();
|
||||
app.UseHangfireDashboard("/hangfire", new DashboardOptions
|
||||
{
|
||||
DisplayStorageConnectionString = false,
|
||||
IgnoreAntiforgeryToken = true,
|
||||
AppPath = configuration["Swagger:JsonUrlPrefix"]! + "/",
|
||||
PrefixPath = System.Diagnostics.Debugger.IsAttached
|
||||
? ""
|
||||
: configuration["Swagger:JsonUrlPrefix"]!,
|
||||
DashboardTitle = "轨迹预警任务",
|
||||
Authorization = new[] { new AnonymousHangfireAuthorizationFilter() }
|
||||
});
|
||||
|
||||
#region 启动提示
|
||||
|
||||
// var isLinux = RuntimeInformation.IsOSPlatform(OSPlatform.Linux);
|
||||
// var arch = RuntimeInformation.ProcessArchitecture;
|
||||
// var os = isLinux ? "linux-" : "win-";
|
||||
// var rid = os + arch;
|
||||
// Console.WriteLine("\r\nrid:" + rid);
|
||||
// // 获取当前程序集路径
|
||||
// var assemblyPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
||||
// var path = Path.Combine(assemblyPath, "runtimes", rid, "native", isLinux ? "librdkafka.so" : "librdkafka.dll");
|
||||
// Console.WriteLine("libPath:"+path);
|
||||
// var loadSuccess = Confluent.Kafka.Library.Load(path);
|
||||
// Console.WriteLine($"KafkaLib 加载{loadSuccess}");
|
||||
// Console.WriteLine("Kafka.LibVersion:" + Confluent.Kafka.Library.VersionString);
|
||||
Console.WriteLine($@"
|
||||
+-------------------------------------------------------+
|
||||
| |
|
||||
| |
|
||||
| 轨迹中心启动成功 |
|
||||
| {DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")} |
|
||||
| |
|
||||
| |
|
||||
+-------------------------------------------------------+
|
||||
");
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -1,100 +0,0 @@
|
||||
{
|
||||
"Environment": "Dev",
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"Microsoft.AspNetCore": "Debug"
|
||||
}
|
||||
},
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "server=mysql-dev.default.svc.cluster.local;Database=sjzy_track;Uid=sjzy_dev_user;Pwd=818f83e5;AllowLoadLocalInfile=true;SslMode=None;Charset=utf8mb4;"
|
||||
},
|
||||
"CAP": {
|
||||
"FailedRetryCount": 0,
|
||||
"FailedRetryInterval": 60,
|
||||
"PrefetchCount": 1,
|
||||
"ConsumerThreadCount": 2,
|
||||
"UseDispatchingPerGroup": true,
|
||||
"SucceedMessageExpiredAfter": 21600
|
||||
},
|
||||
"Redis": {
|
||||
"Host": "redis-dev.default.svc.cluster.local:6379",
|
||||
"Password": "gaVEHR3V7qiY",
|
||||
"MaxPoolSize": 1000,
|
||||
"Database": 6,
|
||||
"Prefix": "",
|
||||
"IdleTimeout": 1000
|
||||
},
|
||||
"CorsPolicy": [
|
||||
""
|
||||
],
|
||||
"Swagger": {
|
||||
"IsEnable": true,
|
||||
"ServiceUrl": "/trackApi",
|
||||
"JsonUrlPrefix": "/trackApi",
|
||||
//转发目录前缀,部署服务器时需要配置 /kingmall
|
||||
"ScanPrefix": [
|
||||
"SJZY"
|
||||
]
|
||||
//全局扫描程序集或xml文件时只加载以 SJZY 开头的内容
|
||||
},
|
||||
"RabbitMQ": {
|
||||
"UserName": "sjzy",
|
||||
"Password": "jhUbkzDT7VVi",
|
||||
"HostName": "rabbitmq-dev.default.svc.cluster.local",
|
||||
"Port": 5672
|
||||
},
|
||||
"Notice": {
|
||||
"Webhook": "https://open.feishu.cn/open-apis/bot/v2/hook/fbe92f24-7f9f-41ea-a93a-63d855a03bc0",
|
||||
"Title": "😭 轨迹中台开发环境异常"
|
||||
},
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Debug",
|
||||
"Override": {
|
||||
"System": "Debug",
|
||||
"Microsoft": "Debug",
|
||||
"Microsoft.Hosting.Lifetime": "Debug",
|
||||
"Microsoft.EntityFrameworkCore": "Debug"
|
||||
}
|
||||
},
|
||||
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ],
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "Console",
|
||||
"Args": {
|
||||
//"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, SystemConsoleTheme.Literate",
|
||||
"outputTemplate": "{NewLine}[{Timestamp:yyyy-MM-dd HH:mm:ss fff} {Level:u3}] {Message:lj}"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"OSS": {
|
||||
"AccessKeyId": "LTAI5t81UbwY8rkqLkURCEys",
|
||||
"AccessKeySecret": "hFfNFTJSyVA1EqBSuXwBaSdm3RGoFL",
|
||||
"Endpoint": "http://oss-cn-shenzhen.aliyuncs.com/",
|
||||
"BucketName": "cams3",
|
||||
"ReturnHttpsUrl": true
|
||||
},
|
||||
"ElasticSearch": {
|
||||
"NodeUrls": [ "http://elasticsearch-dev.default.svc.cluster.local:9200" ],
|
||||
"LoginName": "elastic",
|
||||
"Password": "afyTgmVb8jq6",
|
||||
"Base64PassPassword": "Basic ZWxhc3RpYzphZnlUZ21WYjhqcTY="
|
||||
},
|
||||
"RemoteServices": {
|
||||
"InterfaceForward": {
|
||||
"BaseUrl": "http://interfaceapi-test.default.svc.cluster.local:5041/",
|
||||
"AppKey": "BSI2302001",
|
||||
"AppSecret": "ArJYL14XZneXpqvpq80wyi3h2hT918AX"
|
||||
},
|
||||
"UserCenter": {
|
||||
"BaseUrl": "http://userapi-dev.default.svc.cluster.local:5020/"
|
||||
}
|
||||
},
|
||||
"Language": {
|
||||
"SystemName": "Track",
|
||||
"Index": 6,
|
||||
"KeyPrefix": "language"
|
||||
}
|
||||
}
|
||||
@ -1,96 +0,0 @@
|
||||
{
|
||||
"Environment": "Dev",
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "server=192.168.80.81;Database=sjzy_package_channel;Uid=root;Pwd=10c1fb814e7c1552;"
|
||||
},
|
||||
"Redis": {
|
||||
"ConnectionString": "192.168.80.57:6379,abortConnect=false",
|
||||
"PassWord": "",
|
||||
"DefaultDatabaseIndex": 6,
|
||||
"Prefix": ""
|
||||
},
|
||||
"Consul": {
|
||||
"ServiceName": "PackageChannel",
|
||||
"ServiceIP": "192.168.80.55",
|
||||
"ServicePort": 5034,
|
||||
"ServiceHealthCheck": "http://192.168.80.55:5034/HealthCheck",
|
||||
"ConsulAddress": "http://192.168.80.56:8500"
|
||||
},
|
||||
"CorsPolicy": [
|
||||
"http://172.16.216.101:18006"
|
||||
],
|
||||
"Swagger": {
|
||||
"IsEnable": true,
|
||||
"ServiceUrl": "",
|
||||
"JsonUrlPrefix": "", //转发目录前缀,部署服务器时需要配置 /kingmall
|
||||
"ScanPrefix": [ "SJZY" ] //全局扫描程序集或xml文件时只加载以 SJZY 开头的内容
|
||||
},
|
||||
"OSS": {
|
||||
"AccessKeyId": "LTAI5tJWyx1kgQfk221QFknu",
|
||||
"AccessKeySecret": "0AvP3vyBdwT1pwvLXeqeJ448US8QL8",
|
||||
"Endpoint": "http://oss-cn-shenzhen.aliyuncs.com/",
|
||||
"BucketName": "cams3"
|
||||
},
|
||||
"RabbitMQ": {
|
||||
"UserName": "sjzy",
|
||||
"Password": "sjzyadmin",
|
||||
"HostName": "192.168.80.56",
|
||||
"Port": 5672
|
||||
},
|
||||
"Custome": {
|
||||
"Setting1": 12,
|
||||
"Setting2": 22
|
||||
},
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Debug",
|
||||
"Override": {
|
||||
"System": "Warning",
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Information",
|
||||
"Microsoft.EntityFrameworkCore": "Information"
|
||||
}
|
||||
},
|
||||
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ],
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "Console",
|
||||
"Args": {
|
||||
//"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, SystemConsoleTheme.Literate",
|
||||
"outputTemplate": "{NewLine}[{Timestamp:yyyy-MM-dd HH:mm:ss fff} {Level:u3}] {Message:lj}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "File",
|
||||
"Args": {
|
||||
"path": "logs/.log",
|
||||
"rollingInterval": "Day",
|
||||
"outputTemplate": "{NewLine}[{Timestamp:yyyy-MM-dd HH:mm:ss,fff} {Level:u3}] {Message:lj}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "Elasticsearch",
|
||||
"Args": {
|
||||
"nodeUris": "http://192.168.80.56:9200",
|
||||
"indexFormat": "log_channel_{0:yyyy.MM.dd}",
|
||||
"autoRegisterTemplate": true,
|
||||
"autoRegisterTemplateVersion": "ESv7",
|
||||
"connectionGlobalHeaders": "Authorization=Basic ZWxhc3RpYzpzanp5YWRtaW4=;"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"QiChaCha": {
|
||||
"ApiUrl": "http://api.qichacha.com",
|
||||
"Key": "3f07b46db1104426a7beec2a70b67334",
|
||||
"SecretKey": "0DEDE94A0E14C5A060CF65F87A96FDDC",
|
||||
"ValidDays": 180
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,91 +0,0 @@
|
||||
{
|
||||
"Environment": "Dev",
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"ConnectionStrings": {
|
||||
"DefaultConnection": "server=mysql-test.default.svc.cluster.local;Database=sjzy_track;Uid=sjzy_test_user;Pwd=848c1c31;AllowLoadLocalInfile=true;SslMode=None;Charset=utf8mb4;",
|
||||
"canalView": "server=mysql-test.default.svc.cluster.local;Database=sjzy_track;Uid=sjzy_test_user;Pwd=848c1c31;AllowLoadLocalInfile=true;SslMode=None;Charset=utf8mb4;"
|
||||
},
|
||||
"Redis": {
|
||||
"ConnectionString": "192.168.80.58:6379,abortConnect=false",
|
||||
"PassWord": "",
|
||||
"DefaultDatabaseIndex": 8,
|
||||
"Prefix": ""
|
||||
},
|
||||
"Consul": {
|
||||
"ServiceName": "Package.Setting",
|
||||
"ServiceIP": "192.168.80.57",
|
||||
"ServicePort": 5047,
|
||||
"ServiceHealthCheck": "http://192.168.80.57:5047/HealthCheck",
|
||||
"ConsulAddress": "http://192.168.80.58:8500"
|
||||
},
|
||||
"CorsPolicy": [
|
||||
""
|
||||
],
|
||||
"Swagger": {
|
||||
"IsEnable": true,
|
||||
"ServiceUrl": "",
|
||||
"JsonUrlPrefix": "", //转发目录前缀,部署服务器时需要配置 /kingmall
|
||||
"ScanPrefix": [ "SJZY" ] //全局扫描程序集或xml文件时只加载以 SJZY 开头的内容
|
||||
},
|
||||
"RabbitMQ": {
|
||||
"UserName": "sjzy",
|
||||
"Password": "sjzyadmin",
|
||||
"HostName": "192.168.80.58",
|
||||
"Port": 5672
|
||||
},
|
||||
"Custome": {
|
||||
"Setting1": 12,
|
||||
"Setting2": 22
|
||||
},
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Information",
|
||||
"Override": {
|
||||
"System": "Warning",
|
||||
"Microsoft": "Warning",
|
||||
"Microsoft.Hosting.Lifetime": "Information",
|
||||
"Microsoft.EntityFrameworkCore": "Information"
|
||||
}
|
||||
},
|
||||
"Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ],
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "Console",
|
||||
"Args": {
|
||||
//"theme": "Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, SystemConsoleTheme.Literate",
|
||||
"outputTemplate": "{NewLine}[{Timestamp:yyyy-MM-dd HH:mm:ss fff} {Level:u3}] {Message:lj}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "File",
|
||||
"Args": {
|
||||
"path": "logs/.log",
|
||||
"rollingInterval": "Day",
|
||||
"outputTemplate": "{NewLine}[{Timestamp:yyyy-MM-dd HH:mm:ss,fff} {Level:u3}] {Message:lj}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"Name": "Elasticsearch",
|
||||
"Args": {
|
||||
"nodeUris": "http://192.168.80.97:9200",
|
||||
"indexFormat": "log_package_setting_{0:yyyy.MM.dd}",
|
||||
"autoRegisterTemplate": true,
|
||||
"autoRegisterTemplateVersion": "ESv7",
|
||||
"connectionGlobalHeaders": "Authorization=Basic ZWxhc3RpYzpzanp5YWRtaW4=;"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"OSS": {
|
||||
"AccessKeyId": "LTAI5tJWyx1kgQfk221QFknu",
|
||||
"AccessKeySecret": "0AvP3vyBdwT1pwvLXeqeJ448US8QL8",
|
||||
"Endpoint": "http://oss-cn-shenzhen.aliyuncs.com/",
|
||||
"BucketName": "cams3",
|
||||
"ReturnHttpsUrl": true
|
||||
}
|
||||
}
|
||||
@ -1,22 +0,0 @@
|
||||
{
|
||||
"Configuration": {
|
||||
"UseLocalConfiguration": false,
|
||||
"ConfiguraFileName": "appsettings.Development.json",
|
||||
"Apollo": {
|
||||
"AppId": "SJZY.Track.Configuration",
|
||||
"Env": "DEV",
|
||||
"Namespace": "test",
|
||||
"MetaServer": "https://apollo.test.shijizhongyun.com",
|
||||
"ConfigServer": [
|
||||
"https://apollo.test.shijizhongyun.com"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Kestrel": {
|
||||
"EndPoints": {
|
||||
"Http": {
|
||||
"Url": "http://*:5056"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
|
||||
|
||||
public class TrackPushRecordItem
|
||||
{
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
using SJZY.Track.Application.Contract.Dtos.Forewarning;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Events;
|
||||
|
||||
public class ClearRulCacheEvent
|
||||
{
|
||||
public List<RuleAreaBaseInfo> Items { get; set; }
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
namespace SJZY.Track.Application.Contract.Services;
|
||||
|
||||
public interface IKpiAreaCacheService
|
||||
{
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
namespace SJZY.Track.Application.Contract.Services;
|
||||
|
||||
public interface ITrackFlagService
|
||||
{
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
namespace SJZY.Track.Application.Contract.Services;
|
||||
|
||||
public interface ITrackStatusService
|
||||
{
|
||||
}
|
||||
@ -1,46 +0,0 @@
|
||||
using SJZY.Expand.ABP.Core;
|
||||
using SJZY.Track.Domain.Extensions;
|
||||
using SJZY.Track.Domain.Queries;
|
||||
using Volo.Abp.DependencyInjection;
|
||||
|
||||
namespace SJZY.Track.Application.Caching;
|
||||
|
||||
/// <summary>
|
||||
/// 系统id中文名称字典缓存
|
||||
/// </summary>
|
||||
public class SystemCnNameDictCache : BasicCacheForPeriodicRefresh<int, string>, ISingletonDependency
|
||||
{
|
||||
private readonly IVSystemQueries _vSystemQueries;
|
||||
|
||||
public SystemCnNameDictCache(IVSystemQueries vSystemQueries) : base(RedisHelper.Client)
|
||||
{
|
||||
_vSystemQueries = vSystemQueries;
|
||||
}
|
||||
|
||||
protected override string BuildRedisKey(int key) => $"{GlobalConst.TrackDataDictKeyPrefix}:SystemCnName:{key}";
|
||||
|
||||
protected override TimeSpan RedisExpire => TimeSpan.FromSeconds(-1); // 设置缓存不过期,指定id系统被删除时仍能兜底提供系统中文名
|
||||
protected override TimeSpan LocalExpire => TimeSpan.FromMinutes(10); // 本地缓存10分钟过期后在次请求会刷新数据
|
||||
protected override TimeSpan MissingKeySetNullRedisExpire => TimeSpan.FromMinutes(1); // 缓存不存在时设置redisNull
|
||||
|
||||
protected override async ValueTask<string?> LoadAsync(int key)
|
||||
{
|
||||
if (key == 0) return null;
|
||||
return await _vSystemQueries.GetFirstAsync(x => x.Id == key, x => x.CnName);
|
||||
}
|
||||
|
||||
protected override async ValueTask<Dictionary<int, string>> LoadAsync(HashSet<int> keys)
|
||||
{
|
||||
if (keys.Count == 0) return Empty<int, string>.Dict;
|
||||
|
||||
var result = await _vSystemQueries.GetListAsync(x => keys.Contains(x.Id), x => new
|
||||
{
|
||||
x.Id,
|
||||
x.CnName
|
||||
});
|
||||
|
||||
return result.Count == 0
|
||||
? Empty<int, string>.Dict
|
||||
: result.ToDictionary(x => x.Id, y => y.CnName);
|
||||
}
|
||||
}
|
||||
@ -1,81 +0,0 @@
|
||||
using System.Diagnostics;
|
||||
using BSI.Stack.Rabbit;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using RabbitMQ.Client;
|
||||
using Volo.Abp.DependencyInjection;
|
||||
|
||||
namespace SJZY.Track.Application.Rabbit;
|
||||
|
||||
/// <summary>
|
||||
/// 支持发布确认模式
|
||||
/// </summary>
|
||||
public class RabbitClientBusExt : RabbitClientBus, ISingletonDependency
|
||||
{
|
||||
public RabbitClientBusExt(IServiceProvider sp, ILogger<RabbitClient> logger)
|
||||
: base(sp, logger, sp.GetRequiredService<IOptionsMonitor<RabbitOptions>>().CurrentValue)
|
||||
{
|
||||
}
|
||||
|
||||
public void PublishByConfirmSelect(
|
||||
string exchange,
|
||||
string routingKey,
|
||||
byte[] data,
|
||||
Action<IBasicProperties>? options = null
|
||||
)
|
||||
{
|
||||
using var activity = RabbitInstrumentation.ActivitySource.StartActivity("/" + exchange + "/" + routingKey);
|
||||
activity?.SetTag("kind", "publish");
|
||||
var key = exchange + ":" + routingKey;
|
||||
Lazy<IModel> orAdd = Channels.GetOrAdd(key, (Func<string, Lazy<IModel>>) (_ => new Lazy<IModel>(CreateModel)));
|
||||
var basicProperties1 = orAdd.Value.CreateBasicProperties();
|
||||
|
||||
// 配置属性
|
||||
if (options != null)
|
||||
options(basicProperties1);
|
||||
var model = orAdd.Value;
|
||||
|
||||
// 启用发布确认
|
||||
model.ConfirmSelect();
|
||||
var readOnlyMemory = (ReadOnlyMemory<byte>) data;
|
||||
model.BasicPublish(exchange, routingKey, basicProperties1, readOnlyMemory);
|
||||
model.WaitForConfirmsOrDie();
|
||||
}
|
||||
|
||||
public void PublishByConfirmSelect(
|
||||
string exchange,
|
||||
string routingKey,
|
||||
IEnumerable<byte[]> datas,
|
||||
Action<IBasicProperties>? options = null
|
||||
)
|
||||
{
|
||||
using var activity = RabbitInstrumentation.ActivitySource.StartActivity("/" + exchange + "/" + routingKey);
|
||||
activity?.SetTag("kind", "publish");
|
||||
var key = exchange + ":" + routingKey;
|
||||
Lazy<IModel> orAdd = Channels.GetOrAdd(key, (Func<string, Lazy<IModel>>) (_ => new Lazy<IModel>(CreateModel)));
|
||||
var basicProperties1 = orAdd.Value.CreateBasicProperties();
|
||||
|
||||
// 配置属性
|
||||
if (options != null)
|
||||
options(basicProperties1);
|
||||
var model = orAdd.Value;
|
||||
|
||||
// 启用发布确认
|
||||
model.ConfirmSelect();
|
||||
foreach (var data in datas)
|
||||
{
|
||||
var readOnlyMemory = (ReadOnlyMemory<byte>) data;
|
||||
model.BasicPublish(exchange, routingKey, basicProperties1, readOnlyMemory);
|
||||
}
|
||||
model.WaitForConfirmsOrDie();
|
||||
}
|
||||
|
||||
private IConnection GetConnection()
|
||||
{
|
||||
var key = Connections.OrderBy((Func<KeyValuePair<IConnection, int>, int>) (q => q.Value)).Select((Func<KeyValuePair<IConnection, int>, IConnection>) (q => q.Key)).FirstOrDefault();
|
||||
Connections.AddOrUpdate(key, (Func<IConnection, int>) (_ => 1), (Func<IConnection, int, int>) ((_, v) => v + 1));
|
||||
return key;
|
||||
}
|
||||
|
||||
private IModel CreateModel() => GetConnection().CreateModel();
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
using SJZY.Track.Domain.Dtos.TrackFlags;
|
||||
|
||||
namespace SJZY.Track.Domain.Aggregates.TrackFlagAggregate;
|
||||
|
||||
public interface ITrackFlagRepository : IBasicRepository<TrackFlagEntity>
|
||||
{
|
||||
Task<GetTrackFlagDetailVO?> GetDetailAsync(int id);
|
||||
Task<UnifyPageResultDto<GetTrackFlagListVO>> GetPageTrackFlag(GetPageTrackFlagVO input);
|
||||
}
|
||||
@ -1,10 +0,0 @@
|
||||
// Global using directives
|
||||
|
||||
global using System;
|
||||
global using System.Collections.Generic;
|
||||
global using System.Linq.Expressions;
|
||||
global using System.Threading.Tasks;
|
||||
global using SJZY.Expand.ABP.Core.Common.Dto;
|
||||
global using SJZY.Expand.ABP.Core.SqlSugar.Entitys;
|
||||
global using SJZY.Track.Domain.SeedWork;
|
||||
global using SqlSugar;
|
||||
@ -1,62 +0,0 @@
|
||||
namespace SJZY.Track.Domain.Queries;
|
||||
|
||||
public interface IBasicQuery<T> where T : IEntity
|
||||
{
|
||||
/// <summary>
|
||||
/// top 1
|
||||
/// </summary>
|
||||
/// <param name="whereExpression"></param>
|
||||
/// <returns></returns>
|
||||
Task<T?> GetFirstAsync(Expression<Func<T, bool>> whereExpression);
|
||||
|
||||
/// <summary>
|
||||
/// top 1 select fields
|
||||
/// </summary>
|
||||
/// <param name="whereExpression"></param>
|
||||
/// <param name="resultExpression"></param>
|
||||
/// <typeparam name="TResult"></typeparam>
|
||||
/// <returns></returns>
|
||||
Task<TResult?> GetFirstAsync<TResult>(Expression<Func<T, bool>> whereExpression,
|
||||
Expression<Func<T, TResult>> resultExpression);
|
||||
|
||||
/// <summary>
|
||||
/// get list
|
||||
/// </summary>
|
||||
/// <param name="whereExpression"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<T>> GetListAsync(Expression<Func<T, bool>> whereExpression);
|
||||
|
||||
/// <summary>
|
||||
/// get list select fields
|
||||
/// </summary>
|
||||
/// <param name="whereExpression"></param>
|
||||
/// <param name="resultExpression"></param>
|
||||
/// <typeparam name="TResult"></typeparam>
|
||||
/// <returns></returns>
|
||||
Task<List<TResult>> GetListAsync<TResult>(Expression<Func<T, bool>> whereExpression,
|
||||
Expression<Func<T, TResult>> resultExpression);
|
||||
|
||||
/// <summary>
|
||||
/// get list select fields, return arrary
|
||||
/// </summary>
|
||||
/// <param name="whereExpression"></param>
|
||||
/// <param name="resultExpression"></param>
|
||||
/// <typeparam name="TResult"></typeparam>
|
||||
/// <returns></returns>
|
||||
Task<TResult[]> GetArrayAsync<TResult>(Expression<Func<T, bool>> whereExpression,
|
||||
Expression<Func<T, TResult>> resultExpression);
|
||||
|
||||
/// <summary>
|
||||
/// count
|
||||
/// </summary>
|
||||
/// <param name="exp"></param>
|
||||
/// <returns></returns>
|
||||
Task<int> CountAsync(Expression<Func<T, bool>> exp);
|
||||
|
||||
/// <summary>
|
||||
/// exists
|
||||
/// </summary>
|
||||
/// <param name="exp"></param>
|
||||
/// <returns></returns>
|
||||
Task<bool> IsAnyAsync(Expression<Func<T, bool>> exp);
|
||||
}
|
||||
@ -1,75 +0,0 @@
|
||||
using SJZY.Track.Domain.Dtos.Order;
|
||||
using SJZY.Track.Domain.Dtos.TrackContents;
|
||||
using SJZY.Track.Domain.Dtos.TrackPull;
|
||||
|
||||
namespace SJZY.Track.Domain.Queries;
|
||||
|
||||
/// <summary>
|
||||
/// 提供接口专用查询
|
||||
/// </summary>
|
||||
public interface IProvideQueries
|
||||
{
|
||||
/// <summary>
|
||||
/// 根据子系统内容映射,得到映射后的轨迹code
|
||||
/// </summary>
|
||||
/// <param name="upSubSystemId"></param>
|
||||
/// <param name="subSystemId"></param>
|
||||
/// <param name="trackCodes"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<string>> MapTrackCodesAsync(int upSubSystemId, int subSystemId, params string[] trackCodes);
|
||||
|
||||
/// <summary>
|
||||
/// 获取子系统内容Code映射
|
||||
/// </summary>
|
||||
/// <param name="upSubSystemId"></param>
|
||||
/// <param name="subSystemId"></param>
|
||||
/// <param name="trackCodes"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<TrackCodeMapVO>> GetTrackCodeMapsAsync(int upSubSystemId, int subSystemId, params string[] trackCodes);
|
||||
/// <summary>
|
||||
/// 根据订单模板找对应服务商
|
||||
/// </summary>
|
||||
/// <param name="subSystemId"></param>
|
||||
/// <param name="orderNos"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<OrderWithServiceProviderVO>> FindOrderWithServiceProviderAsync(int subSystemId, List<string> orderNos);
|
||||
|
||||
/// <summary>
|
||||
/// 获取服务商下所有单(未完成的)
|
||||
/// </summary>
|
||||
/// <param name="serviceProviderCode">服务商代码</param>
|
||||
/// <param name="pageIndex"></param>
|
||||
/// <param name="pageSize"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<OrderWithServiceProviderVO>> FindOrderWithServiceProviderAsync(string serviceProviderCode, int pageIndex,
|
||||
int pageSize = 1000);
|
||||
|
||||
/// <summary>
|
||||
/// 获取轨迹内容
|
||||
/// </summary>
|
||||
/// <param name="subSystemId"></param>
|
||||
/// <param name="trackCode"></param>
|
||||
/// <returns></returns>
|
||||
Task<TrackContentVO?> GetTrackContentAsync(int subSystemId, string trackCode);
|
||||
|
||||
/// <summary>
|
||||
/// 获取轨迹内容
|
||||
/// </summary>
|
||||
/// <param name="subSystemIds">子系统ids</param>
|
||||
/// <param name="trackCodes">轨迹代码集合</param>
|
||||
/// <returns></returns>
|
||||
Task<List<TrackContentVO>> GetTrackContentsAsync(int[] subSystemIds, string[] trackCodes);
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有拉取配置
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<List<TrackPullConfigVo>> GetAllPullConfigsAsync();
|
||||
|
||||
/// <summary>
|
||||
/// 子系统id换code
|
||||
/// </summary>
|
||||
/// <param name="subSystemId"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> SubSystemId2CodeAsync(int subSystemId);
|
||||
}
|
||||
@ -1,18 +0,0 @@
|
||||
namespace SJZY.Track.Domain.Queries;
|
||||
|
||||
public interface ITimezoneQueries
|
||||
{
|
||||
/// <summary>
|
||||
/// 通过城市英文名称获取时区
|
||||
/// </summary>
|
||||
/// <param name="cityEnName"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> GetCityTimezone(string cityEnName);
|
||||
|
||||
/// <summary>
|
||||
/// 通过港口三字码获取时区
|
||||
/// </summary>
|
||||
/// <param name="airCode"></param>
|
||||
/// <returns></returns>
|
||||
Task<string> GetPortTimezone(string airCode);
|
||||
}
|
||||
@ -1,7 +0,0 @@
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
|
||||
namespace SJZY.Track.Domain.Queries;
|
||||
|
||||
public interface IVExternalSubjectQueries : IBasicQuery<VExternalSubjectEntity>
|
||||
{
|
||||
}
|
||||
@ -1,7 +0,0 @@
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
|
||||
namespace SJZY.Track.Domain.Queries;
|
||||
|
||||
public interface IVFsUserQueries : IBasicQuery<VFSUserEntity>
|
||||
{
|
||||
}
|
||||
@ -1,7 +0,0 @@
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
|
||||
namespace SJZY.Track.Domain.Queries;
|
||||
|
||||
public interface IVSystemQueries : IBasicQuery<VSystemEntity>
|
||||
{
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<Import Project="../../common.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SJZY.Expand.ABP.Core" Version="7.8.6"/>
|
||||
<PackageReference Include="SJZY.Expand.ElasticSearch" Version="7.0.17" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -1,7 +0,0 @@
|
||||
using Volo.Abp.Modularity;
|
||||
|
||||
namespace SJZY.Track.Domain;
|
||||
|
||||
public class SjzyTrackDomainModule : AbpModule
|
||||
{
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
namespace SJZY.Track.Domain.SeedWork;
|
||||
|
||||
public interface IAggregateRoot : IEntity
|
||||
{
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
namespace SJZY.Track.Domain.SeedWork;
|
||||
|
||||
public interface IEntity
|
||||
{
|
||||
}
|
||||
@ -1,66 +0,0 @@
|
||||
using SJZY.UserCenter.HttpApi.Services;
|
||||
|
||||
#pragma warning disable 1591
|
||||
|
||||
namespace SJZY.Track.Repository;
|
||||
|
||||
/// <summary>
|
||||
/// Sqlsugar 上下文对象
|
||||
/// </summary>
|
||||
public class DataBaseContext
|
||||
{
|
||||
#region 审计属性自动赋值
|
||||
|
||||
public static void OnExcutingAction(object oldValue, DataFilterModel entityInfo)
|
||||
{
|
||||
//过滤掉 "v_" 开头的表
|
||||
if (entityInfo.EntityColumnInfo.DbTableName.StartsWith("v_", StringComparison.OrdinalIgnoreCase))
|
||||
throw new Exception("非法的操作,不允许编辑映射表");
|
||||
|
||||
//新增
|
||||
if (entityInfo.OperationType == DataFilterType.InsertByObject)
|
||||
{
|
||||
var time = DateTime.Now;
|
||||
var userId = CurrentUserRequest.CurrentUser.UserId;
|
||||
|
||||
if (entityInfo.PropertyName == nameof(ICreateBaicEntity.CreateTime))
|
||||
entityInfo.SetValue(time);
|
||||
else if (entityInfo.PropertyName == nameof(IUpdateBasicEntity.UpdateTime))
|
||||
entityInfo.SetValue(time);
|
||||
else if (entityInfo.PropertyName == nameof(ICreateBaicEntity.CreateUserId))
|
||||
{
|
||||
entityInfo.SetValue(userId);
|
||||
}
|
||||
else if (entityInfo.PropertyName == nameof(IUpdateBasicEntity.UpdateUserId))
|
||||
{
|
||||
entityInfo.SetValue(userId);
|
||||
}
|
||||
}
|
||||
//修改
|
||||
else if (entityInfo.OperationType == DataFilterType.UpdateByObject)
|
||||
{
|
||||
if (entityInfo.PropertyName == nameof(IUpdateBasicEntity.UpdateTime))
|
||||
entityInfo.SetValue(DateTime.Now);
|
||||
else if (entityInfo.PropertyName == nameof(IUpdateBasicEntity.UpdateUserId))
|
||||
{
|
||||
entityInfo.SetValue(CurrentUserRequest.CurrentUser.UserId);
|
||||
}
|
||||
//删除
|
||||
else if (entityInfo.PropertyName == nameof(IDeleteBasicEntity.IsDeleted))
|
||||
{
|
||||
var currentType = entityInfo.EntityValue.GetType();
|
||||
bool.TryParse(
|
||||
currentType.GetProperty(entityInfo.PropertyName)?.GetValue(entityInfo.EntityValue)?.ToString(),
|
||||
out bool isdelete);
|
||||
if (isdelete)
|
||||
{
|
||||
//currentType.GetProperty(nameof(IDeleteBasicEntity.DeleteUserId))?.SetValue(entityInfo.EntityValue, 5);
|
||||
currentType.GetProperty(nameof(IDeleteBasicEntity.DeleteTime))
|
||||
?.SetValue(entityInfo.EntityValue, DateTime.Now);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion 审计属性自动赋值
|
||||
}
|
||||
@ -1,6 +0,0 @@
|
||||
global using SJZY.Expand.ABP.Core;
|
||||
global using SJZY.Expand.ABP.Core.Common.Dto;
|
||||
global using SJZY.Expand.ABP.Core.SqlSugar;
|
||||
global using SJZY.Expand.ABP.Core.SqlSugar.Entitys;
|
||||
global using SqlSugar;
|
||||
global using Volo.Abp.DependencyInjection;
|
||||
@ -1,39 +0,0 @@
|
||||
using System.Linq.Expressions;
|
||||
using SJZY.Track.Domain.Queries;
|
||||
using SJZY.Track.Domain.SeedWork;
|
||||
|
||||
namespace SJZY.Track.Repository.Queries;
|
||||
|
||||
/// <summary>
|
||||
/// basic queries
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class BasicQuery<T> : SimpleClient<T>, IBasicQuery<T> where T : class, IEntity, new()
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public BasicQuery()
|
||||
{
|
||||
Context = SqlsugarScopeBasic.GetContextSafely("default");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<TResult?> GetFirstAsync<TResult>(Expression<Func<T, bool>> whereExpression,
|
||||
Expression<Func<T, TResult>> resultExpression)
|
||||
{
|
||||
return await Context.Queryable<T>().Where(whereExpression).Select(resultExpression).FirstAsync();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<List<TResult>> GetListAsync<TResult>(Expression<Func<T, bool>> whereExpression,
|
||||
Expression<Func<T, TResult>> resultExpression)
|
||||
{
|
||||
return await Context.Queryable<T>().Where(whereExpression).Select(resultExpression).ToListAsync();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<TResult[]> GetArrayAsync<TResult>(Expression<Func<T, bool>> whereExpression,
|
||||
Expression<Func<T, TResult>> resultExpression)
|
||||
{
|
||||
return await Context.Queryable<T>().Where(whereExpression).Select(resultExpression).ToArrayAsync();
|
||||
}
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
using SJZY.Track.Domain.Queries;
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
|
||||
namespace SJZY.Track.Repository.Queries;
|
||||
|
||||
public class VExternalSubjectQueries : BasicQuery<VExternalSubjectEntity>, IVExternalSubjectQueries, ITransientDependency
|
||||
{
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
using SJZY.Track.Domain.Queries;
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
|
||||
namespace SJZY.Track.Repository.Queries;
|
||||
|
||||
public class VFsUserQueries: BasicQuery<VFSUserEntity>, IVFsUserQueries, ITransientDependency
|
||||
{
|
||||
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
using SJZY.Track.Domain.Queries;
|
||||
using SJZY.Track.Domain.VEntities;
|
||||
|
||||
namespace SJZY.Track.Repository.Queries;
|
||||
|
||||
public class VSystemQueries : BasicQuery<VSystemEntity>, IVSystemQueries, ITransientDependency
|
||||
{
|
||||
}
|
||||
@ -1,5 +0,0 @@
|
||||
namespace SJZY.Track.Repository.Repositories;
|
||||
|
||||
public class KpiAreaInfoRepository
|
||||
{
|
||||
}
|
||||
@ -1,20 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="../../common.props" />
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
<NoWarn>CS8613</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="SJZY.LoggerCenter.HttpApi" Version="7.0.5" />
|
||||
<PackageReference Include="SJZY.OTel.Extension" Version="1.1.3" />
|
||||
<PackageReference Include="Volo.Abp.Autofac" Version="7.0.2" />
|
||||
<PackageReference Include="SJZY.UserCenter.HttpApi" Version="3.1.8.17-alpha" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SJZY.Track.Domain\SJZY.Track.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -1,61 +0,0 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using SJZY.Expand.ABP.Core.SqlSugar.Options;
|
||||
using SJZY.Expand.ElasticSearch;
|
||||
using SJZY.Track.Domain;
|
||||
using SJZY.Track.Domain.Queries;
|
||||
using SJZY.Track.Repository.Queries;
|
||||
using SJZY.Track.Repository.Repositories;
|
||||
using Volo.Abp.Autofac;
|
||||
using Volo.Abp.Modularity;
|
||||
|
||||
namespace SJZY.Track.Repository;
|
||||
|
||||
/// <summary>
|
||||
/// 仓储模块
|
||||
/// </summary>
|
||||
[DependsOn(typeof(AbpAutofacModule))]
|
||||
[DependsOn(typeof(SjzyTrackDomainModule))]
|
||||
public class SjzyTrackRepositoryModule : AbpModule
|
||||
{
|
||||
public override void PreConfigureServices(ServiceConfigurationContext context)
|
||||
{
|
||||
var configuration = context.Services.GetConfiguration();
|
||||
|
||||
context.Services.AddSqlsugar(options =>
|
||||
{
|
||||
options.AddRange(new List<SqlsugarOptions>
|
||||
{
|
||||
new()
|
||||
{
|
||||
ConnectionString = configuration["ConnectionStrings:DefaultConnection"]!,
|
||||
DbType = DbType.MySql,
|
||||
IsAutoCloseConnection = true,
|
||||
ConfigId = "default",
|
||||
OpenSqlLog = true
|
||||
}
|
||||
}
|
||||
);
|
||||
}, DataBaseContext.OnExcutingAction, "SJZY.Track.Domain");
|
||||
|
||||
context.Services.AddElasticSearch(options =>
|
||||
{
|
||||
if (System.Diagnostics.Debugger.IsAttached)
|
||||
{
|
||||
options.ShowLogInfo = true;
|
||||
}
|
||||
|
||||
options.NodeUrls = configuration.GetSection("ElasticSearch:NodeUrls").Get<List<string>>()!;
|
||||
options.LoginName = configuration["ElasticSearch:LoginName"]!;
|
||||
options.Password = configuration["ElasticSearch:Password"]!;
|
||||
options.Base64PassPassword = configuration["ElasticSearch:Base64PassPassword"]!;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||
{
|
||||
context.Services.AddTransient(typeof(IBasicQuery<>), typeof(BasicQuery<>));
|
||||
context.Services.AddTransient(typeof(IBasicRepository<>), typeof(BasicRepository<>));
|
||||
}
|
||||
}
|
||||
28
src/TrackCenter.Api/Program.cs
Normal file
28
src/TrackCenter.Api/Program.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using Serilog;
|
||||
using TrackCenter.Api;
|
||||
|
||||
var builder = WebApplication.CreateSlimBuilder(args);
|
||||
var configuration = builder.Configuration;
|
||||
Log.Logger = new LoggerConfiguration()
|
||||
.ReadFrom.Configuration(configuration)
|
||||
.CreateLogger();
|
||||
|
||||
try
|
||||
{
|
||||
builder.WebHost.UseUrls(builder.Configuration.GetSection("App:Urls").Get<string[]>() ?? []);
|
||||
builder.Host.UseAutofac().UseSerilog();
|
||||
builder.Services.AddApplication<TrackCenterApiModule>();
|
||||
|
||||
|
||||
var app = builder.Build();
|
||||
app.InitializeApplication();
|
||||
app.Run();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Fatal(ex, "G");
|
||||
}
|
||||
finally
|
||||
{
|
||||
Log.CloseAndFlush();
|
||||
}
|
||||
@ -3,7 +3,7 @@
|
||||
<Import Project="../../common.props"/>
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<TargetFramework>net8</TargetFramework>
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<DockerfileContext>..\..</DockerfileContext>
|
||||
@ -14,12 +14,15 @@
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="7.0.2"/>
|
||||
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.17.0"/>
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0"/>
|
||||
<PackageReference Include="Volo.Abp.Autofac" Version="7.0.2"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SJZY.Track.Application\SJZY.Track.Application.csproj"/>
|
||||
<ProjectReference Include="..\SJZY.Track.Repository\SJZY.Track.Repository.csproj"/>
|
||||
<ProjectReference Include="..\TrackCenter.Application\TrackCenter.Application.csproj" />
|
||||
<ProjectReference Include="..\TrackCenter.Repository\TrackCenter.Repository.csproj" />
|
||||
<PackageReference Include="Fake.Autofac" Version="8.0.0-preview11" />
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="9.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="10.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Update="kafkalib\**\*" CopyToPublishDirectory="Always" CopyToOutputDirectory="Always" />
|
||||
78
src/TrackCenter.Api/TrackCenterApiModule.cs
Normal file
78
src/TrackCenter.Api/TrackCenterApiModule.cs
Normal file
@ -0,0 +1,78 @@
|
||||
using Fake.AspNetCore;
|
||||
using Fake.AspNetCore.Auditing;
|
||||
using Fake.AspNetCore.Mvc.Conventions;
|
||||
using Fake.Autofac;
|
||||
using Fake.Modularity;
|
||||
using FluentValidation.AspNetCore;
|
||||
using Hangfire;
|
||||
using TrackCenter.Application;
|
||||
using TrackCenter.Application.Hangfire;
|
||||
using TrackCenter.Repository;
|
||||
|
||||
namespace TrackCenter.Api;
|
||||
|
||||
[DependsOn(typeof(FakeAutofacModule))]
|
||||
[DependsOn(typeof(TrackCenterApplicationModule))]
|
||||
[DependsOn(typeof(TrackCenterRepositoryModule))]
|
||||
public class TrackCenterApiModule : FakeModule
|
||||
{
|
||||
private const string DefaultCorsPolicyName = "default";
|
||||
|
||||
public override void ConfigureServices(ServiceConfigurationContext context)
|
||||
{
|
||||
var services = context.Services;
|
||||
var configuration = context.Services.GetConfiguration();
|
||||
|
||||
services.Configure<ApplicationService2ControllerOptions>(options =>
|
||||
{
|
||||
options.ScanApplicationServices<TrackCenterApplicationModule>();
|
||||
});
|
||||
|
||||
|
||||
services.AddFakeExceptionFilter()
|
||||
.AddFakeValidationActionFilter()
|
||||
.AddFakeAspNetCoreAuditing()
|
||||
.AddFakeUnitOfWorkActionFilter();
|
||||
|
||||
services.AddFakeSwaggerGen();
|
||||
context.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters();
|
||||
|
||||
services.AddCors(options =>
|
||||
{
|
||||
options.AddPolicy(DefaultCorsPolicyName, builder =>
|
||||
{
|
||||
builder.WithOrigins(configuration.GetSection("App:CorsOrigins").Get<string[]>() ?? [])
|
||||
.AllowAnyHeader()
|
||||
.AllowAnyMethod()
|
||||
.AllowCredentials();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public override void ConfigureApplication(ApplicationConfigureContext context)
|
||||
{
|
||||
var app = context.GetWebApplication();
|
||||
var configuration = context.GetConfiguration();
|
||||
|
||||
app.MapControllers();
|
||||
// Configure the HTTP request pipeline.
|
||||
app.UseFakeSwagger();
|
||||
|
||||
app.UseRouting();
|
||||
|
||||
app.UseCors(DefaultCorsPolicyName);
|
||||
|
||||
// todo: 缺乏配置
|
||||
app.UseHangfireDashboard("/hangfire", new DashboardOptions
|
||||
{
|
||||
DisplayStorageConnectionString = false,
|
||||
IgnoreAntiforgeryToken = true,
|
||||
AppPath = configuration["Swagger:JsonUrlPrefix"]! + "/",
|
||||
PrefixPath = System.Diagnostics.Debugger.IsAttached
|
||||
? ""
|
||||
: configuration["Swagger:JsonUrlPrefix"]!,
|
||||
DashboardTitle = "轨迹预警任务",
|
||||
Authorization = [new AnonymousHangfireAuthorizationFilter()]
|
||||
});
|
||||
}
|
||||
}
|
||||
21
src/TrackCenter.Api/appsettings.Development.json
Normal file
21
src/TrackCenter.Api/appsettings.Development.json
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
"Serilog": {
|
||||
"MinimumLevel": {
|
||||
"Default": "Information",
|
||||
"Override": {
|
||||
"Microsoft.AspNetCore": "Information"
|
||||
}
|
||||
},
|
||||
"Enrich": [
|
||||
"FromLogContext",
|
||||
"WithMachineName",
|
||||
"WithProcessId",
|
||||
"WithThreadId"
|
||||
],
|
||||
"WriteTo": [
|
||||
{
|
||||
"Name": "Console"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
|
||||
namespace TrackCenter.Application.Contract.Dtos.Forewarning;
|
||||
|
||||
public class AreaCacheEntry
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
|
||||
namespace TrackCenter.Application.Contract.Dtos.Forewarning;
|
||||
|
||||
public class RuleAreaBaseInfo
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class BatchDeleteTrackByEsIdInput
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class BatchDeleteTrackInput : OrderNosInfo
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class BatchUpsertTrackInput : OrderNosInfo
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class DeleteOrderInput : OrderNoInfo
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class FileItemDto
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class GetDetailTimelineInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class GetDetailTimelineOutput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class TrackOrderDetailDto
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class GetPageTrackOrderInput : PageInfoInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class GetPageTrackTemplateListInput : PageInfoInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
/// <summary>
|
||||
/// 支持模板,传入时区补正,按轨迹发生时间升序降序
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class GetTrackOutput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class GetTrackTemplateListInput
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class LinkOrderInput
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
/// <summary>
|
||||
/// 子系统id+订单类型+订单号 确定唯一订单
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class PushTrackInput : OrderNosInfo
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
/// <summary>
|
||||
/// 查询轨迹推送映射关系入参
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class RefreshTrackInput
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
/// <summary>
|
||||
/// 轨迹标识符,用于唯一标识一个轨迹
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class TrackTemplateOutput
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class UpdateOrderInput : OrderNoInfo
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class UpdateOrderStatusInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class UpdateOrderPullConfigsInput : OrderNosInfo
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class UpsertOrderInput : UpdateOrderInput
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
namespace TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class UpsertTrackInput : OrderNoInfo
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class EditTrackContentInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class EditTrackContentMapInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class GetAvailableContentInput
|
||||
{
|
||||
@ -1,6 +1,6 @@
|
||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
using TrackCenter.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class GetAvailableContentOutput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class GetContentDetailInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class GetContentDetailOutput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class GetPageTrackContentInput : PageInfoInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class GetTrackContentByCodeInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public class GetTrackContentByCodeOutput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackContents;
|
||||
|
||||
public sealed class TrackContentOutput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackFlags;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackFlags;
|
||||
|
||||
public class EditTrackFlagInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackFlags;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackFlags;
|
||||
|
||||
public class GetTrackFlagListDto
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackNode;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackNode;
|
||||
|
||||
public class EditTrackNodeInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackOrder;
|
||||
|
||||
public class GetTrackCounterOutput
|
||||
{
|
||||
@ -0,0 +1,5 @@
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackOrder;
|
||||
|
||||
public class TrackPushRecordItem
|
||||
{
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackOrder;
|
||||
|
||||
public class TrackPushRecordOutput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPull;
|
||||
|
||||
public class EditTrackPullConfigInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPull;
|
||||
|
||||
public class EditTrackPullContentInput
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPull;
|
||||
|
||||
public class TrackPullContentConfigDto
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPull;
|
||||
|
||||
public class TrackPullParamConfigDto
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPull;
|
||||
|
||||
public class TrackPullParamsWithContentDto
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPull;
|
||||
|
||||
public class TrackPullPayload
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPull;
|
||||
|
||||
public class TrackRefreshAttach
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPull;
|
||||
|
||||
public class TrackRefreshContext
|
||||
{
|
||||
@ -1,4 +1,4 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
|
||||
namespace TrackCenter.Application.Contract.Dtos.TrackPush;
|
||||
|
||||
public class EditTrackPushConfigInput
|
||||
{
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user