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; } } }