/// <summary> /// 直接充值 /// </summary> /// <param name="uid"></param> /// <param name="amount"></param> /// <returns></returns> public bool DirectRecharge(int uid, double amount) { // 1.生成参数 IDictionary <string, DbParameter[]> dictionary = new Dictionary <string, DbParameter[]>(); PayParam payParam = RechargeUtil.GetDirectParam(uid, amount); // 2.生成流水账 Pays payAccounts = RechargeUtil.GetPayAccounts(Constants.HotAccountID, uid, payParam); paysRepository.InsertAccounts(payAccounts, ref dictionary); // 3.生成往来账 var list = new List <Accounts>() { new Accounts() { AccountsId = IdWorkTool.Instance().GetId(), PayId = payParam.SystemRecordId, TradeAccountId = payParam.ToUid, TradeAccountName = payParam.ToUsername, AccountsType = 1, Amount = payParam.Amount, Remark = payParam.Remark, Currency = payParam.Currency, AddTime = DateTime.Now } }; accountsRepository.BatchInsertAccounts(list, ref dictionary); // 4.目标账户进账 var user = userRepository.SelectFinanceDetail(uid); walletRepository.PutAccounts(user.Uid, amount, user.Version, ref dictionary); return(walletRepository.CommitTransactionLock(dictionary)); }