Files
BuYuHouDuan/CommonDomain/LotteryPrizeProductHelper.cs
T
2026-10-12 16:22:04 +08:00

46 lines
1.7 KiB
C#

using CommonDomain.BaseModel;
namespace CommonDomain;
public static class LotteryPrizeProductHelper
{
public static void Enrich(LotteryActivityConfig? lottery, GameConfig? gameConfig)
{
if (lottery?.Pools == null || gameConfig == null) return;
foreach (var prize in lottery.Pools.SelectMany(pool => pool.PrizeList ?? new List<LotteryPrize>()))
{
if (string.IsNullOrWhiteSpace(prize.OtherId)) continue;
var number = prize.OtherId.Trim();
var fragment = gameConfig.PropFragments?.FirstOrDefault(item => item.Number == number);
BaseProduct? product;
if (fragment != null)
{
prize.Type = 4;
product = fragment;
}
else
{
product = gameConfig.PropConfig?.FirstOrDefault(item => item.Number == number);
if (product == null) continue;
prize.Type = 3;
}
var imageUrl = product.ImageUrl;
if (string.IsNullOrWhiteSpace(imageUrl) && fragment != null)
imageUrl = gameConfig.PropConfig?.FirstOrDefault(item => item.Number == fragment.ProductNumber)?.ImageUrl ?? "";
if (string.IsNullOrWhiteSpace(prize.Name)) prize.Name = product.Name;
if (!string.IsNullOrWhiteSpace(imageUrl)) prize.Icon = imageUrl;
prize.Product ??= new BaseProduct();
prize.Product.Number = product.Number;
prize.Product.Name = product.Name;
prize.Product.Desc = product.Desc;
prize.Product.ImageUrl = imageUrl;
prize.Product.Type = product.Type;
prize.Product.Level = product.Level;
}
}
}