一個傳統的C2C網站的用戶充值的过程

简介:

image 


  1. #region 插入用户汇款充值记录
    
  2.         public void UserRemittance(UserAccountRecord userAccountRecord, WebBankAccountRecord webBankAccountRecord)
    
  3.         {
    
  4.             /// <summary>
    
  5.             ///用户账户收支明细
    
  6.             /// </summary>
    
  7.             IUserAccountRecordsRepository IUARRpstry = new UserAccountRecordsRepository();
    
  8.             /// <summary>
    
  9.             ///  用户账户余额
    
  10.             /// </summary>
    
  11.             IUserAccountBalancesRepository IUABRpstry = new UserAccountBalancesRepository();
    
  12.             /// <summary>
    
  13.             /// 网站银行账户收支明细
    
  14.             /// </summary>
    
  15.             IWebBankAccountRecordsRepository IWBARRpstry = new WebBankAccountRecordsRepository();
    
  16.             /// <summary>
    
  17.             /// 网站银行账户余额
    
  18.             /// </summary>
    
  19.             IWebAccountBalancesRepository IWABRpstry = new WebAccountBalancesRepository();
    
  20.             using (TransactionScope ts = new TransactionScope())
    
  21.             {
    
  22.                 try
    
  23.                 {
    
  24.                     using (TransactionScope ts2 = new TransactionScope())
    
  25.                     {
    
  26.                         //第一步:插入新的记录到用户账户收支明细表(UserAccountRecords)
    
  27.                         #region 第一步:插入新的记录到用户账户收支明细表(UserAccountRecords)
    
  28.                         try
    
  29.                         {
    
  30.                             using (TransactionScope ts3 = new TransactionScope())
    
  31.                             {
    
  32.                                 try
    
  33.                                 {
    
  34.                                     IUARRpstry.Insert(userAccountRecord);
    
  35.                                     ts3.Complete();
    
  36.                                 }
    
  37.                                 catch (Exception err)
    
  38.                                 {
    
  39.                                     throw err;
    
  40.                                 }
    
  41.                                 finally
    
  42.                                 {
    
  43.                                     ts3.Dispose();
    
  44.                                 }
    
  45.                             }
    
  46.                         #endregion
    
  47.                         //第二步:更新用户账户余额(UserAccountBalances)
    
  48.                         #region 第二步:更新用户账户余额(UserAccountBalances)
    
  49.                             Entity.UserAccountBalance userAccountBalanceLinq = (from userAccountBalance in IUABRpstry.GetUserAccountBalances().Where(x => x.UserID.Equals(userAccountRecord.UserID))
    
  50.                                                                                 select userAccountBalance).SingleOrDefault();
    
  51.                             decimal totalBalance = (from useraccountrecord in IUARRpstry.GetUserAccountRecords().Where(x => x.UserID.Equals(userAccountRecord.UserID) && x.Status.Equals(Entity.UserAccountRecordStatus.Normal))
    
  52.                                                     select useraccountrecord.Amount).Sum();
    
  53.                             userAccountBalanceLinq.TotalBalance = totalBalance;
    
  54.                             IUABRpstry.Update(userAccountBalanceLinq, Entity.UserAccountBalancesColumnEnum.TotalBalance);
    
  55.                             #endregion
    
  56.                         //第三步:插入新的记录到网站银行账户收支明细(WebBankAccountRecords)
    
  57.                         #region 插入新的记录到网站银行账户收支明细(WebBankAccountRecords)
    
  58.                             IWBARRpstry.Insert(webBankAccountRecord);
    
  59.                             #endregion
    
  60.                         ts2.Complete();
    
  61.                         }
    
  62.                         catch (Exception err)
    
  63.                         {
    
  64.                             throw err;
    
  65.                         }
    
  66.                         finally
    
  67.                         {
    
  68.                             ts2.Dispose();
    
  69.                         }
    
  70.                     }
    
  71.                     //第四步:更新网站银行账户余额(WebAccountBalances)
    
  72.                     #region 第四步:更新网站银行账户余额(WebAccountBalances)
    
  73.                     decimal BankAccountBalance;
    
  74.                     int sum = (from balance in IWBARRpstry.GetWebBankAccountRecords().Where(x => x.Status.Equals(Entity.WebBankAccountRecordStatus.Normal))
    
  75.                                select balance).Count();
    
  76.                     if (sum == 0)
    
  77.                     {
    
  78.                         BankAccountBalance = 0;
    
  79.                     }
    
  80.                     else
    
  81.                     {
    
  82.                         BankAccountBalance = (from balance in IWBARRpstry.GetWebBankAccountRecords().Where(x => x.Status.Equals(Entity.WebBankAccountRecordStatus.Normal))
    
  83.                                               select balance.Amount).Sum();
    
  84.                     }
    
  85.                     Entity.WebAccountBalance webAccountBalance = (from webAB in IWABRpstry.GetWebAccountBalances()
    
  86.                                                                    select webAB).SingleOrDefault();
    
  87.                     webAccountBalance.BankAcountBalance = BankAccountBalance;
    
  88.                     IWABRpstry.Update(webAccountBalance, Entity.WebAccountBalancesColumnEnum.BankAcountBalance);
    
  89.                     #endregion
    
  90.                     ts.Complete();
    
  91.                 }
    
  92.                 catch (Exception err)
    
  93.                 {
    
  94.                     throw err;
    
  95.                 }
    
  96.                 finally
    
  97.                 {
    
  98.                     ts.Dispose();
    
  99.                 }
    
  100.             }
    
  101.         }
    
  102.         #endregion
本文转自博客园张占岭(仓储大叔)的博客,原文链接: 一個傳統的C2C網站的用戶充值的过程 ,如需转载请自行联系原博主。
目录
相关文章
|
存储 缓存 程序员
对不起,学会这些知识后我飘了(二)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
132 0
对不起,学会这些知识后我飘了(二)
|
存储 算法 安全
对不起,学会这些知识后我飘了(五)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
85 0
对不起,学会这些知识后我飘了(五)
|
监控 中间件 Unix
对不起,学会这些知识后我飘了(四)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
93 0
对不起,学会这些知识后我飘了(四)
|
存储 编解码 算法
对不起,学会这些知识后我飘了(三)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
127 0
对不起,学会这些知识后我飘了(三)
|
存储 缓存 小程序
对不起,学会这些知识后我飘了(一)
我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了。在当今计算机行业中,会应用是基本素质,如果你懂其原理才能让你在行业中走的更远,而计算机基础知识又是重中之重。下面,跟随我的脚步,为你介绍一下计算机底层知识。
81 0
对不起,学会这些知识后我飘了(一)
|
数据安全/隐私保护
804. 唯一摩尔斯密码词 : 简单模拟题
804. 唯一摩尔斯密码词 : 简单模拟题
【刷穿 LeetCode】551. 学生出勤记录 I : 简单模拟题(附模拟题目录)
【刷穿 LeetCode】551. 学生出勤记录 I : 简单模拟题(附模拟题目录)
|
Linux Windows
唉,被坑惨了!
32 位系统,用户态的虚拟空间只有 3G,如果创建线程时分配的栈空间是 10M,那么一个进程最多只能创建 300 个左右的线程。 64 位系统,用户态的虚拟空间大到有 128T,理论上不会受虚拟内存大小的限制,而会受系统的参数或性能限制。
唉,被坑惨了!
UPC--换座位(一道没想到暴力就能过的题)
题目描述 聪聪和同学们正在玩这样一个换座位的游戏:班上共有2n个少先队员,开始时每个少先队员坐在自己的板凳上排成一队,由聪聪开始击鼓,每次击鼓开始时,前n个同学坐到第2、4、…、2n个板凳上,后n个同学坐到第1、3、…、2n-1个板凳上,击鼓结束时坐错或者还没有坐到对应板凳上的同学就要接受惩罚——表演一个节目,并按规定坐好。聪聪不断的击鼓然后停顿后又击鼓…,同学们都觉得这个游戏很好玩,但是当游戏结束时,同学们傻眼了,由于每位同学的板凳都差不多,他们找不到自己的板凳了。 而聪聪这时反应特别快,他说经过一定次数的换座位,每位同学一定能回到自己的板凳的。那么这个次数最少是多少呢?你会计算吗?
203 0

热门文章

最新文章

下一篇
开通oss服务