一個傳統的C2C網站的用戶充值的过程
#region 插入用户汇款充值记录
public void UserRemittance(UserAccountRecord userAccountRecord, WebBankAccountRecord webBankAccountRecord)
{
/// <summary>
///用户账户收支明细
/// </summary>
IUserAccountRecordsRepository IUARRpstry = new UserAccountRecordsRepository();
/// <summary>
/// 用户账户余额
/// </summary>
IUserAccountBalancesRepository IUABRpstry = new UserAccountBalancesRepository();
/// <summary>
/// 网站银行账户收支明细
/// </summary>
IWebBankAccountRecordsRepository IWBARRpstry = new WebBankAccountRecordsRepository();
/// <summary>
/// 网站银行账户余额
/// </summary>
IWebAccountBalancesRepository IWABRpstry = new WebAccountBalancesRepository();
using (TransactionScope ts = new TransactionScope())
{
try
{
using (TransactionScope ts2 = new TransactionScope())
{
//第一步:插入新的记录到用户账户收支明细表(UserAccountRecords)
#region 第一步:插入新的记录到用户账户收支明细表(UserAccountRecords)
try
{
using (TransactionScope ts3 = new TransactionScope())
{
try
{
IUARRpstry.Insert(userAccountRecord);
ts3.Complete();
}
catch (Exception err)
{
throw err;
}
finally
{
ts3.Dispose();
}
}
#endregion
//第二步:更新用户账户余额(UserAccountBalances)
#region 第二步:更新用户账户余额(UserAccountBalances)
Entity.UserAccountBalance userAccountBalanceLinq = (from userAccountBalance in IUABRpstry.GetUserAccountBalances().Where(x => x.UserID.Equals(userAccountRecord.UserID))
select userAccountBalance).SingleOrDefault();
decimal totalBalance = (from useraccountrecord in IUARRpstry.GetUserAccountRecords().Where(x => x.UserID.Equals(userAccountRecord.UserID) && x.Status.Equals(Entity.UserAccountRecordStatus.Normal))
select useraccountrecord.Amount).Sum();
userAccountBalanceLinq.TotalBalance = totalBalance;
IUABRpstry.Update(userAccountBalanceLinq, Entity.UserAccountBalancesColumnEnum.TotalBalance);
#endregion
//第三步:插入新的记录到网站银行账户收支明细(WebBankAccountRecords)
#region 插入新的记录到网站银行账户收支明细(WebBankAccountRecords)
IWBARRpstry.Insert(webBankAccountRecord);
#endregion
ts2.Complete();
}
catch (Exception err)
{
throw err;
}
finally
{
ts2.Dispose();
}
}
//第四步:更新网站银行账户余额(WebAccountBalances)
#region 第四步:更新网站银行账户余额(WebAccountBalances)
decimal BankAccountBalance;
int sum = (from balance in IWBARRpstry.GetWebBankAccountRecords().Where(x => x.Status.Equals(Entity.WebBankAccountRecordStatus.Normal))
select balance).Count();
if (sum == 0)
{
BankAccountBalance = 0;
}
else
{
BankAccountBalance = (from balance in IWBARRpstry.GetWebBankAccountRecords().Where(x => x.Status.Equals(Entity.WebBankAccountRecordStatus.Normal))
select balance.Amount).Sum();
}
Entity.WebAccountBalance webAccountBalance = (from webAB in IWABRpstry.GetWebAccountBalances()
select webAB).SingleOrDefault();
webAccountBalance.BankAcountBalance = BankAccountBalance;
IWABRpstry.Update(webAccountBalance, Entity.WebAccountBalancesColumnEnum.BankAcountBalance);
#endregion
ts.Complete();
}
catch (Exception err)
{
throw err;
}
finally
{
ts.Dispose();
}
}
}
#endregion
转载于:https://www.cnblogs.com/lori/archive/2011/05/20/2052072.html
一個傳統的C2C網站的用戶充值的过程相关推荐
- php uv pv,PHP網站流量統計--[pv,uv,ip及$_SERVER]說明
一.PV.UV.IP的英文解釋 PV(page view):頁面訪問量,每刷新一次就被記一次PV. UV(Unqie Vistor):獨立訪客,訪問您網站的一台電腦客戶端為一個訪客.24小時之內,同一 ...
- 20個網頁抓取工具快速抓取網站
網絡爬行(也稱為網絡抓取,屏幕抓取)已廣泛應用於當今的許多領域. 在網絡爬蟲工具進入公眾之前,對於沒有編程技能的普通人來說,這是一個神奇的詞. 它的高門檻阻礙了大數據門外的人們. 網絡抓取工具是自動爬 ...
- PHP 7問世,2億網站效能翻倍有望
經過10年的漫長等待,PHP 7終於正式問世了.這個影響全球8成網站的開發語言,一舉從5.0版,跳過了功敗垂成的6.0版,一舉進入了7.0時代. 20年前初夏,1995年6月8日,一位愛解決問題的C語 ...
- Wappalyzer — 查看網站所使用的環境、技術、主機與分析工具,一覽無遺!
文章來源:Wappalyzer - 查看網站所使用的環境.技術.主機與分析工具,一覽無遺! - TechMoon 科技月球 今天要來介紹一個線上免費工具「Wappalyzer」,讓你能夠檢測網站,了解 ...
- UVa Online Judge 工具網站
UVa Online Judge 工具網站 转自http://www.csie.ntnu.edu.tw/~u91029/uva.html Lucky貓的ACM園地,Lucky貓的 ACM 中譯題目 M ...
- mfc messagebox 非模态_進博尋寶記:當進博遇見非遺?愛上中國傳統文化--財經-
非遺客廳.人民網記者楊迪 攝 人民網上海11月4日電(記者楊迪)在第三屆中國國際進口博覽會新聞中心一側,一間古色古香的"非遺客廳"格外引人注目.現場的工作人員介紹,本屆進博會期間, ...
- gtav登录请确认不是机器人_GTA5線上被誤封號申訴方法【註:網站填表現在已經無法解封了,因為都是機器人自動回覆】...
最近正版被誤封的情況出現的非常嚴重undefined,有的剛剛購買了遊戲,上線才玩1個小時都沒有,就被封號了 ,對此玩家表示很無奈.去百度搜索解封方法,給的答案都是一樣的 --去申訴網站「https: ...
- 賣鞋網站MODISTA
MODISTA的特色不在它賣的鞋,而是它賣鞋背後的「陳列架」,它有一個直覺式的「商品瀏覽」系統 , 創立MODISTA的是兩個柏克萊加大電機資訊學系的研究生Arlo Faria與AJ Shankar, ...
- 手機電視挑戰傳統視聽習慣
有時我懷疑發明新裝置和新服務的人是否真地在替我們著想 .比如手機﹐它的確是一個相當好的工具.退回幾年﹐如果有人告訴我們﹐能夠將電話.通訊錄.差強人意的照相機.能夠發送電子郵件和上網.音樂播放器和視頻攝 ...
最新文章
- 模板 - DP动态规划
- 1.5w字,30图带你彻底掌握 AQS!
- Android呼叫开发系列WebService
- rocketmq之producer解析
- 无法监控端口_如何使用snmp监控linux服务器
- swift学习笔记-----swift中的指针
- t’触发器真值表和状态方程_清写出触发器按逻辑特性的分类;写出T触发器的状态方程。...
- html如何查看文档,查看文档
- [js] 渲染树构建、布局及绘制
- C# 全局唯一标识符 (GUID)
- 《图解HTTP》— 安全的HTTPS
- 如何让百度检索Github博客
- 低启动0.7V升压芯片
- 微信网页支付之H5支付
- IT运维外包甩不掉的包袱
- 从零开始Android游戏编程(第二版) 目录
- 阿里云大数据认证——使用DataV制作实时销售数据可视化大屏-课堂笔记
- MacPS安装服务器当前无响应,MAC版 PS安装插件提示未部署处理方式
- 【威联通Nas】安装docker版本的Nextcloud
- 人工智能作业之产生式推理系统