优惠劵完善

This commit is contained in:
马梓彭 2026-03-02 22:45:29 +08:00
parent b4db8390ea
commit 534bd5f40f

View File

@ -36,29 +36,56 @@ public class CouponService : BaseService<YD_Event.Core.Entities.Coupon>, ITransi
// 先获取实体列表
var entityList = await query.ToPagedListAsync(input);
// 转换并填充赛事名称
var resultList = new List<CouponPageOutput>();
foreach (var item in entityList.Rows)
// 获取所有相关的赛事ID
var allEventIds = entityList.Rows
.Where(x => !string.IsNullOrEmpty(x.EventIds))
.SelectMany(x => x.EventIds.Split(',', StringSplitOptions.RemoveEmptyEntries))
.Select(long.Parse)
.Distinct()
.ToList();
var eventMap = new Dictionary<long, string>();
if (allEventIds.Any())
{
var output = item.Adapt<CouponPageOutput>();
output.EventIds = string.IsNullOrEmpty(item.EventIds)
var events = await _eventRepository.AsQueryable()
.Where(x => allEventIds.Contains(x.Id))
.ToListAsync();
eventMap = events.ToDictionary(x => x.Id, x => x.EventName);
}
// 转换并填充赛事名称
var resultList = entityList.Rows.Select(item =>
{
var eventIdList = string.IsNullOrEmpty(item.EventIds)
? new List<long>()
: item.EventIds.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(long.Parse).ToList();
if (output.EventIds.Any())
var eventNames = "通用";
if (eventIdList.Any())
{
var eventNames = await _eventRepository.AsQueryable()
.Where(x => output.EventIds.Contains(x.Id))
.Select(x => x.EventName)
.ToListAsync();
output.EventNames = string.Join(",", eventNames);
var names = eventIdList
.Where(id => eventMap.ContainsKey(id))
.Select(id => eventMap[id]);
eventNames = string.Join(",", names);
}
else
return new CouponPageOutput
{
output.EventNames = "通用";
}
resultList.Add(output);
}
Id = item.Id,
Name = item.Name,
Type = item.Type,
Value = item.Value,
StartTime = item.StartTime,
EndTime = item.EndTime,
RedemptionCode = item.RedemptionCode,
TotalQuantity = item.TotalQuantity,
ClaimedQuantity = item.ClaimedQuantity,
UsedQuantity = item.UsedQuantity,
CreatedTime = item.CreatedTime,
EventIds = eventIdList,
EventNames = eventNames
};
}).ToList();
return new CouponPageResult
{