feat: 轨迹映射界面的推送配置增加推送时间格式

This commit is contained in:
钟喜旺 2024-07-25 09:26:07 +08:00
parent f42287a7f8
commit d67c7ce820
8 changed files with 162 additions and 5 deletions

View File

@ -1,4 +1,6 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
using SJZY.Track.Domain.Enums;
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class EditTrackPushConfigInput
{
@ -48,4 +50,19 @@ public class EditTrackPushConfigInput
/// 是否全量推送
/// </summary>
public bool? IsAllPush { get; set; }
/// <summary>
/// 时间格式枚举
/// </summary>
public DateTimeFormatEnum DateTimeFormatType { get; set; }
/// <summary>
/// 日期时间格式模板
/// </summary>
public string? DateTimeFormat { get; set; }
/// <summary>
/// 时区格式格式模板
/// </summary>
public string? TimezoneFormat { get; set; }
}

View File

@ -1,4 +1,6 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
using SJZY.Track.Domain.Enums;
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class TrackPushContentConfigDto
{
@ -71,4 +73,20 @@ public class TrackPushContentConfigDto
/// 扩展字段参数值
/// </summary>
public string? ExpandFieldsValue { get; set; }
/// <summary>
/// 时间格式枚举
/// </summary>
public DateTimeFormatEnum DateTimeFormatType { get; set; }
/// <summary>
/// 日期时间格式模板
/// </summary>
public string? DateTimeFormat { get; set; }
/// <summary>
/// 时区格式格式模板
/// </summary>
public string? TimezoneFormat { get; set; }
}

View File

@ -87,6 +87,8 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
if (!config.IsAutoPush) continue;
if (config.OrderType != order.OrderType) continue;
// todo 确认是不是这里转换
DateTimeFormat( @event.SystemPushInfo.TrackTime,"yyyy-MM-dd HH:mm:ss");
var log = new TrackPushRecordIndex
{
OptionType = @event.OptionType.ToString(),
@ -160,6 +162,12 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
}
}
private string DateTimeFormat(DateTime dateTime,string format)
{
return dateTime.ToString("yyyy-MM-dd HH:mm:ss");
}
private async Task DoUpdateAsync(TrackPushEvent @event)
{
var config = _pushConfigs.FirstOrDefault(x => x.TrackCode == @event.TrackCode);
@ -250,6 +258,7 @@ public class TrackPushEventHandler : ITransientDependency, ICapSubscribe
if (config.IsAllPush)
{
//todo 这个是指每次都带上之前的轨迹嘛
var history = await _trackPushRecordsRepository.GetLatestTrackPushRecordAsync(log.OrderId);
if (history != default)
{

View File

@ -0,0 +1,36 @@
namespace SJZY.Track.Application.Helpers;
public static class DateTimeHelper
{
/// <summary>
/// Generates a Unix timestamp from a DateTime object.
/// </summary>
/// <param name="dateTime">The DateTime object to convert to a Unix timestamp.</param>
/// <returns>The Unix timestamp as a long.</returns>
public static long GenerateUnixTimestamp(DateTime dateTime)
{
return new DateTimeOffset(dateTime).ToUnixTimeSeconds();
}
/// <summary>
/// Formats a DateTime object into a specified format.
/// </summary>
/// <param name="dateTime">The DateTime object to format.</param>
/// <param name="format">The format string.</param>
/// <returns>The formatted date string.</returns>
public static string FormatDateTime(DateTime dateTime, string format)
{
return dateTime.ToString(format);
}
/// <summary>
/// 时区格式化
/// </summary>
/// <param name="timezone"></param>
/// <param name="format"></param>
/// <returns></returns>
public static string TimezoneFormat(float timezone, string format)
{
return string.Format(format, timezone);
}
}

View File

@ -48,7 +48,7 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc
var trackPushConfig = await _trackPushConfigRepository.GetFirstAsync(
x => x.SubSystemId == subSystemId && x.CustomId == customId, x => new
{
x.Id, x.IsAutoPush, x.IsAllPush, x.IsCanDelete, x.IsCanUpdate, x.SubSystemId, x.CustomId
x.Id, x.IsAutoPush, x.IsAllPush, x.IsCanDelete, x.IsCanUpdate, x.SubSystemId, x.CustomId,x.DateTimeFormatType,x.DateTimeFormat,x.TimezoneFormat
});
if (trackPushConfig == null)
{
@ -68,6 +68,9 @@ public class TrackPushCacheService : ITrackPushCacheService, ITransientDependenc
IsCanUpdate = trackPushConfig.IsCanUpdate,
IsAllPush = trackPushConfig.IsAllPush,
IsCanDelete = trackPushConfig.IsCanDelete,
DateTimeFormatType = trackPushConfig.DateTimeFormatType,
DateTimeFormat = trackPushConfig.DateTimeFormat,
TimezoneFormat = trackPushConfig.TimezoneFormat,
ServiceProviderCode = item.ServiceProviderCode,
OrderType = item.OrderType,
TrackCode = item.TrackCode,

View File

@ -1,4 +1,6 @@
namespace SJZY.Track.Domain.Aggregates.TrackPushAggregate;
using SJZY.Track.Domain.Enums;
namespace SJZY.Track.Domain.Aggregates.TrackPushAggregate;
/// <summary>
/// 轨迹推送配置表
@ -53,4 +55,22 @@ public class TrackPushConfigEntity : IFullAuditedBasicEntitys, IAggregateRoot
/// </summary>
[SugarColumn(ColumnName = "IsAllPush")]
public bool IsAllPush { get; set; }
/// <summary>
/// 日期时间格式类型
/// </summary>
[SugarColumn(ColumnName = "DateTimeFormatType")]
public DateTimeFormatEnum DateTimeFormatType { get; set; }
/// <summary>
/// 日期时间格式模板
/// </summary>
[SugarColumn(ColumnName = "DateTimeFormat")]
public string? DateTimeFormat { get; set; }
/// <summary>
/// 时区格式格式模板
/// </summary>
[SugarColumn(ColumnName = "TimezoneFormat")]
public string? TimezoneFormat { get; set; }
}

View File

@ -0,0 +1,17 @@
namespace SJZY.Track.Domain.Enums;
/// <summary>
/// 时间样式枚举
/// </summary>
public enum DateTimeFormatEnum
{
/// <summary>
/// 时间戳
/// </summary>
Timestamp=1,
/// <summary>
/// 时间加时区
/// </summary>
DateTimeAndTimezone =2
}

View File

@ -0,0 +1,37 @@
namespace SJZY.Track.Domain.Enums;
/// <summary>
/// 推送轨迹时区来源
/// </summary>
public enum TimezoneSourceEnum
{
/// <summary>
/// 起运城市
/// </summary>
DeliverCity = 1,
/// <summary>
/// 接收城市
/// </summary>
ReceiveCity = 2,
/// <summary>
/// 起运港口
/// </summary>
DeliverPort = 3,
/// <summary>
/// 接收港口
/// </summary>
ReceivePort = 4,
/// <summary>
/// 起运国家
/// </summary>
DeliverCountry = 5,
/// <summary>
/// 接收国家
/// </summary>
ReceiveCountry = 6
}