示例#1
0
 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);
        }
示例#3
0
 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();
     }
 }