/// <summary> /// 红包 /// </summary> /// <param name="RedBagDetail"></param> public void AddRedBagDetail(C_Fund_RedBagDetail RedBagDetail) { DB.GetDal <C_Fund_RedBagDetail>().Add(RedBagDetail); }
public void Payin_To_Balance(AccountType accountType, string category, string userId, string orderId, decimal payMoney, string summary, RedBagCategory redBag = RedBagCategory.FillMoney, string operatorId = "") { //if (accountType == AccountType.Freeze) // throw new Exception("退款账户不能为冻结账户"); if (payMoney <= 0M) { return; } //throw new Exception("转入金额不能小于0."); var balanceManager = new LocalLoginBusiness(); var fundManager = new FundManager(); //查询帐户余额 var userBalance = balanceManager.QueryUserBalanceInfo(userId); if (userBalance == null) { throw new Exception("用户帐户不存在 - " + userId); } var payDetailList = new List <PayDetail>(); payDetailList.Add(new PayDetail { AccountType = accountType, PayMoney = payMoney, PayType = PayType.Payin, }); var before = 0M; var after = 0M; switch (accountType) { case AccountType.Bonus: before = userBalance.BonusBalance; after = userBalance.BonusBalance + payMoney; //userBalance.BonusBalance = after; break; case AccountType.Commission: before = userBalance.CommissionBalance; after = userBalance.CommissionBalance + payMoney; //userBalance.CommissionBalance = after; break; case AccountType.FillMoney: before = userBalance.FillMoneyBalance; after = userBalance.FillMoneyBalance + payMoney; //userBalance.FillMoneyBalance = after; break; case AccountType.Experts: before = userBalance.ExpertsBalance; after = userBalance.ExpertsBalance + payMoney; //userBalance.ExpertsBalance = after; break; case AccountType.RedBag: before = userBalance.RedBagBalance; after = userBalance.RedBagBalance + payMoney; //userBalance.RedBagBalance = after; var RedBagDetail = new C_Fund_RedBagDetail { CreateTime = DateTime.Now, OrderId = orderId, RedBagCategory = (int)redBag, RedBagMoney = payMoney, UserId = userId, }; fundManager.AddRedBagDetail(RedBagDetail); break; case AccountType.Freeze: before = userBalance.FreezeBalance; after = userBalance.FreezeBalance + payMoney; //userBalance.FreezeBalance = after; break; case AccountType.CPS: before = userBalance.CPSBalance; after = userBalance.CPSBalance + payMoney; //userBalance.CPSBalance = after; break; default: throw new ArgumentException("不支持的账户类型 - " + accountType); } var FundDetail = new C_Fund_Detail { Category = category, CreateTime = DateTime.Now, KeyLine = orderId, OrderId = orderId, AccountType = (int)accountType, PayMoney = payMoney, PayType = (int)PayType.Payin, Summary = summary, UserId = userId, BeforeBalance = before, AfterBalance = after, OperatorId = string.IsNullOrEmpty(operatorId) ? userId : operatorId, }; fundManager.AddFundDetail(FundDetail); //balanceManager.UpdateUserBalance(userBalance); PayToUserBalance(userId, payDetailList.ToArray()); }