コード例 #1
0
ファイル: ChariDb.cs プロジェクト: ichari/ichari
 /// <summary>
 /// 创建新的 Account 对象。
 /// </summary>
 /// <param name="id">Id 属性的初始值。</param>
 /// <param name="userId">UserId 属性的初始值。</param>
 /// <param name="amount">Amount 属性的初始值。</param>
 /// <param name="userLevel">UserLevel 属性的初始值。</param>
 /// <param name="score">Score 属性的初始值。</param>
 /// <param name="isStop">IsStop 属性的初始值。</param>
 /// <param name="createTime">CreateTime 属性的初始值。</param>
 /// <param name="updateTime">UpdateTime 属性的初始值。</param>
 /// <param name="frozenAmount">FrozenAmount 属性的初始值。</param>
 public static Account CreateAccount(global::System.Int64 id, global::System.Int64 userId, global::System.Decimal amount, global::System.Int32 userLevel, global::System.Int32 score, global::System.Boolean isStop, global::System.DateTime createTime, global::System.DateTime updateTime, global::System.Decimal frozenAmount)
 {
     Account account = new Account();
     account.Id = id;
     account.UserId = userId;
     account.Amount = amount;
     account.UserLevel = userLevel;
     account.Score = score;
     account.IsStop = isStop;
     account.CreateTime = createTime;
     account.UpdateTime = updateTime;
     account.FrozenAmount = frozenAmount;
     return account;
 }
コード例 #2
0
ファイル: PaymentController.cs プロジェクト: ichari/ichari
        /// <summary>
        /// 支付成功的后续操作
        /// </summary>
        private void OnAfterPay(Order order,SrvResponse resp)
        {   
            var paylog = new PayLog();
            paylog.OrderId = order.OrderId;
            paylog.TransactionId = resp.Fields["qid"];
            paylog.UserId = order.UserId;
            paylog.PayWay = (int)PayWay.UnionPay;
            paylog.PayMoney = order.Total;
            paylog.PayUrl = resp.OrigPostString;
            paylog.BackUrl = Request.RawUrl;
            paylog.CreateTime = DateTime.Now;
            paylog.PayResult = "支付成功";
            //如果支付失败
            if (resp.ResponseCode != SrvResponse.RESP_SUCCESS)
                paylog.PayResult = "支付失败";
            else { 
                //账户操作
                var acc = _uow.AccountService.Get(t => t.UserId == order.UserId);
                if (acc == null)
                {
                    acc = new Account() { 
                        UserId = order.UserId,
                        Amount = 0,
                        IsStop = false,
                        CreateTime = DateTime.Now,
                        FrozenAmount = 0
                    };
                    //新增账户
                    _uow.AccountService.Add(acc);
                }
                //账户日志--充值
                var acclog = new AccountLog();
                acclog.UserId = order.UserId;
                acclog.OrderId = order.OrderId;
                acclog.Amount = order.Total;
                acclog.AccountWay = (int)AccountWay.In;
                acclog.Ip = Request.UserHostAddress;
                acclog.CreateTime = DateTime.Now;
                acclog.PayWay = (int)PayWay.UnionPay;
                _uow.AccountLogService.Add(acclog);
                //充值
                acc.Amount += order.Total;
                //账户日志--扣款
                var acclog2 = new AccountLog();
                acclog2.UserId = order.UserId;
                acclog2.OrderId = order.OrderId;
                acclog2.Amount = order.Total;
                acclog2.AccountWay = (int)AccountWay.Out;
                acclog2.Ip = Request.UserHostAddress;
                acclog2.CreateTime = DateTime.Now;
                acclog2.PayWay = (int)PayWay.UnionPay;
                _uow.AccountLogService.Add(acclog2);
                //修改账户余额
                acc.Amount -= order.Total;
                acc.UpdateTime = DateTime.Now;
                //写支付日志
                _uow.PayLogService.Add(paylog);
                //修改订单状态
                order.Status = (int)OrderState.Paid;
                order.UpdateTime = DateTime.Now;
                order.PayTime = DateTime.Now;

            }
            _uow.Commit();
        }
コード例 #3
0
ファイル: ChariDb.cs プロジェクト: ichari/ichari
 /// <summary>
 /// 用于向 Account EntitySet 添加新对象的方法,已弃用。请考虑改用关联的 ObjectSet&lt;T&gt; 属性的 .Add 方法。
 /// </summary>
 public void AddToAccount(Account account)
 {
     base.AddObject("Account", account);
 }