using Oms.Application.Dtos.Orders;
namespace Oms.Application.Shared;
///
/// 发布快照读取后规范化(旧字段迁移、去掉冗余)。
///
public static class PublishSnapshotNormalizer
{
public static void NormalizeRulesSnapshot(SalesProductRulesPublishSnapshotDto? snapshot)
{
if (snapshot is null)
{
return;
}
NormalizeKpiAreas(snapshot.BlacklistAreaInfos);
NormalizeKpiAreas(snapshot.RemoteAreaInfos);
}
public static void NormalizePriceSnapshot(SalesProductPricePublishSnapshotDto? snapshot)
{
if (snapshot is null)
{
return;
}
NormalizeKpiAreas(snapshot.PriceAreaInfos);
}
public static void NormalizeKpiAreas(List? areas)
{
if (areas is null)
{
return;
}
foreach (var area in areas)
{
if (string.IsNullOrWhiteSpace(area.PostcodeRange)
&& (!string.IsNullOrWhiteSpace(area.LeftPostcode) || !string.IsNullOrWhiteSpace(area.RightPostcode)))
{
area.PostcodeRange = KpiAreaSnapshotMapper.BuildPostcodeRange(area.LeftPostcode, area.RightPostcode);
}
area.LeftPostcode = null;
area.RightPostcode = null;
}
}
}