public async Task RollBackProductStock(ReduceProductStockEvent input) { //随机模拟50%概率补偿失败 if (RandomHelper.GetRandomBool()) { logger.LogInformation($"商品库存回滚成功,订单编号:{input.OrderNo},商品数量:{input.Items.Sum(x => x.Count)}!"); } else { logger.LogError($"商品库存回滚异常!!"); await RollBack(); } }
public async Task PrepareCreateOrder(PrepareCreateOrderEvent input) { var data = new ReduceProductStockEvent(); data.OrderNo = $"{DateTime.Now:yyyyMMddHHmmss}{RandomHelper.GetRandomInt(10000, 99999)}"; data.UserId = 1; data.Items = new List <ReduceProductStockEvent.ReduceProductStockItem>(); input.produceItems.ForEach(x => data.Items.Add(new ReduceProductStockEvent.ReduceProductStockItem() { ProductId = x.ProductId, Count = x.Count })); logger.LogInformation($"预处理订单创建成功,订单编号:{data.OrderNo}!"); await CallNext(data); }
public async Task ReduceProductStock(ReduceProductStockEvent input) { //随机模拟50%概率回退 if (RandomHelper.GetRandomBool()) { var data = new ReduceUserBalanceEvent(); data.OrderNo = input.OrderNo; data.UserId = 1; data.Balance = input.Items.Sum(x => x.Count * (decimal)2.88); logger.LogInformation($"商品预扣库存成功,订单编号:{input.OrderNo},商品数量:{input.Items.Sum(x => x.Count)}!"); await CallNext(data); } else { logger.LogWarning("商品预扣库存失败!"); await RollBack(); } }