Exemplo n.º 1
0
        private bool OperTrade(RechargeInput input, TradeType tradeTyppe)
        {
            var account = _financeAccount.FirstOrDefault(m => m.UserId == input.userId);

            if (account != null)
            {
                if (input.Amount < 0 && account.Blance + input.Amount < 0)
                {
                    throw new UserFriendlyException("账户余额不足, 扣款失败");
                }

                account.Blance = account.Blance + input.Amount;

                FinanceTradeDetail entity = new FinanceTradeDetail();
                entity.UserId           = input.userId;
                entity.Amount           = input.Amount;
                entity.FinanceAccountId = account.Id;
                entity.TradeType        = tradeTyppe.ToString();
                entity.SerialNo         = _tradeManager.GenerateTradeNo(tradeTyppe);
                return(_tradeManager.CreateTrade(entity));
            }
            throw new UserFriendlyException("未找到此账户");
        }