public async Task <bool> DispatchAsync(LotteryAwarded message) { try { Merchanter merchanter = _lotteryMerchanters.GetOrAdd(message.LvpMerchanerId, (merchanterId) => { return(_lotteryMerchanterApplicationService.FindMerchanterAsync(merchanterId).GetAwaiter().GetResult()); }); if (merchanter.IsNotice == false) { return(true); } return(await _policy.ExecuteAsync(async() => { HttpResponseMessage responseMessage = (await _client.PostAsync(merchanter.NoticeAddress, new ByteArrayContent(_serializer.Serialize(new { OrderId = message.LvpOrderId, Amount = message.BonusAmount, Status = (int)message.AwardingType })))).EnsureSuccessStatusCode(); byte[] bytes = await responseMessage.Content.ReadAsByteArrayAsync(); Handle result = _serializer.Deserialize <Handle>(bytes); _logger.LogInformation("Notice {0} result:{1}", message.LvpOrderId, result); return true; })); } catch (Exception ex) { _logger.LogError(ex, "Notice error! {0}", message.LvpOrderId); } return(false); }
public async Task <bool> DispatchAsync(LotteryTicketed message) { try { Merchanter merchanter = _lotteryMerchanters.GetOrAdd(message.LvpMerchanerId, (merchanterId) => { return(_lotteryMerchanterApplicationService.FindMerchanterAsync(merchanterId).GetAwaiter().GetResult()); }); if (merchanter.IsNotice == false) { return(true); } await _policy.ExecuteAsync(async() => { HttpResponseMessage responseMessage = (await _client.PostAsync(merchanter.TicketAddress, new ByteArrayContent(_serializer.Serialize(new { OrderId = message.LvpOrderId, TicketOdds = message.TicketedOdds ?? string.Empty, Status = (int)message.TicketingType })))).EnsureSuccessStatusCode(); byte[] bytes = await responseMessage.Content.ReadAsByteArrayAsync(); _logger.LogInformation("Notice {0} Response:{1}", message.LvpOrderId, Encoding.UTF8.GetString(bytes)); Handle result = _serializer.Deserialize <Handle>(bytes); return(result != null && result.Ret == 0); }); } catch (Exception ex) { _logger.LogError(ex, "Notice error! {0}", message.LvpOrderId); } return(true); }
public async Task Recharging(string merchanterId, string orderId, int amount) { var isContains = await _merchanterAccountLoggingManager.IsContainsAsync(merchanterId, orderId, 1000); if (isContains == false) { Merchanter merchanter = await _merchanterManager.FindMerchanterAsync(merchanterId); await _merchanterManager.AddBalanceAsync(merchanter, amount); await _merchanterAccountLoggingManager.CreateAsync(merchanterId, orderId, amount, merchanter.Balance, 1000); } }
public async Task Rewarding(string merchanterId, string orderId, int lotteryId, int amount) { var isContains = await _merchanterAccountLoggingManager.IsContainsAsync(merchanterId, orderId, 4000); if (isContains == false) { Merchanter merchanter = await _merchanterManager.FindMerchanterAsync(merchanterId); await _merchanterManager.AddBalanceAsync(merchanter, amount); await _merchanterManager.SubTotalAwardedAmount(merchanter, amount); await _merchanterAccountLoggingManager.CreateAsync(merchanterId, orderId, amount, merchanter.Balance, 4000, lotteryId); } }
public async Task Ticketing(string merchanterId, string orderId, int lotteryId, int amount) { var isContains = await _merchanterAccountLoggingManager.IsContainsAsync(merchanterId, orderId, 3000); if (isContains == false) { Merchanter merchanter = await _merchanterManager.FindMerchanterAsync(merchanterId); await _merchanterManager.SubBalanceAsync(merchanter, amount); await _merchanterManager.AddTotalTicketedAmount(merchanter, amount); /* 出票流水计负数 */ await _merchanterAccountLoggingManager.CreateAsync(merchanterId, orderId, 0 - amount, merchanter.Balance, 3000, lotteryId); } }