public bool LockOrder(LockSellStonesOrder lockOrder, CustomerMySqlTransaction trans)
        {
            //1.修改订单状态;
            //2.添加锁定信息记录。
            MySqlCommand mycmd = null;

            try
            {
                string textDel = "delete from locksellstonesorder where OrderNumber = @OrderNumber;";
                string textA   = "update sellstonesorder set OrderState = @OrderState where OrderNumber = @OrderNumber;";
                string textB   = "insert into locksellstonesorder " +
                                 "(`OrderNumber`, `PayUrl`, `LockedByUserName`, `LockedTime` ) " +
                                 " values " +
                                 "(@OrderNumber, @PayUrl, @LockedByUserName, @LockedTime); ";

                mycmd             = trans.CreateCommand();
                mycmd.CommandText = textDel + textA + textB;
                mycmd.Parameters.AddWithValue("@OrderState", (int)SellOrderState.Lock);
                mycmd.Parameters.AddWithValue("@OrderNumber", lockOrder.StonesOrder.OrderNumber);
                mycmd.Parameters.AddWithValue("@PayUrl", lockOrder.PayUrl);
                mycmd.Parameters.AddWithValue("@LockedByUserName", DESEncrypt.EncryptDES(lockOrder.LockedByUserName));
                mycmd.Parameters.AddWithValue("@LockedTime", lockOrder.LockedTime);
                mycmd.ExecuteNonQuery();

                return(true);
            }
            finally
            {
                mycmd.Dispose();
            }
        }
Example #2
0
        public LockSellStonesOrder Lock(string playerUserName)
        {
            lock (this._lock)
            {
                CustomerMySqlTransaction trans = null;
                try
                {
                    if (this._lockOrderObject != null && !CheckOrderLockedTimeOut())
                    {
                        return(this._lockOrderObject);
                    }

                    if (trans == null)
                    {
                        trans = MyDBHelper.Instance.CreateTrans();
                    }

                    this._lockOrderObject = new LockSellStonesOrder()
                    {
                        StonesOrder         = this._sellOrder,
                        PayUrl              = OrderController.Instance.CreateAlipayLink(playerUserName, this.OrderNumber, "迅灵矿石", this.ValueRMB, GlobalConfig.GameConfig.Stones_RMB + "矿石 = 1 灵币 = " + 1 / GlobalConfig.GameConfig.Yuan_RMB + "元人民币"),
                        LockedByUserName    = playerUserName,
                        LockedTime          = DateTime.Now,
                        OrderLockedTimeSpan = 0
                    };
                    this._sellOrder.OrderState = SellOrderState.Lock;
                    DBProvider.StoneOrderDBProvider.LockOrder(this._lockOrderObject, trans);

                    trans.Commit();

                    return(this._lockOrderObject);
                }
                catch (Exception exc)
                {
                    if (trans != null)
                    {
                        trans.Rollback();
                    }
                    this._sellOrder.OrderState = SellOrderState.Wait;
                    this._lockOrderObject      = null;
                    LogHelper.Instance.AddErrorLog("Lock Order[" + this._sellOrder.OrderNumber + "] by User[" + playerUserName + "] Error", exc);
                    return(null);
                }
                finally
                {
                    if (trans != null)
                    {
                        trans.Dispose();
                    }
                }
            }
        }
Example #3
0
        public LockSellStonesOrder GetLockedOrderByUserName(string userName)
        {
            lock (_lockListSellOrders)
            {
                LockSellStonesOrder order = null;
                foreach (var item in dicSellOrders.Values)
                {
                    if (item.CheckBuyerName(userName))
                    {
                        if (!item.CheckOrderLockedTimeOut())
                        {
                            order = item.LockedOrder;
                        }
                    }
                }

                return(order);
            }
        }
Example #4
0
 /// <summary>
 /// 如果订单状态为异常时,不取消锁定
 /// </summary>
 /// <returns></returns>
 public bool ReleaseLock()
 {
     lock (this._lock)
     {
         if (this._sellOrder.OrderState == SellOrderState.Exception)
         {
             return(false);
         }
         CustomerMySqlTransaction trans = null;
         try
         {
             trans = MyDBHelper.Instance.CreateTrans();
             DBProvider.StoneOrderDBProvider.ReleaseOrderLock(this._sellOrder.OrderNumber, trans);
             trans.Commit();
             this._sellOrder.OrderState = SellOrderState.Wait;
             this._lockOrderObject      = null;
             return(true);
         }
         catch (Exception exc)
         {
             if (trans != null)
             {
                 trans.Rollback();
             }
             LogHelper.Instance.AddErrorLog("ReleaseLock Order[" + this._sellOrder.OrderNumber + "] Error", exc);
             return(false);
         }
         finally
         {
             if (trans != null)
             {
                 trans.Dispose();
             }
         }
     }
 }
Example #5
0
 public void UpdateLockedOrder(LockSellStonesOrder lockInfo)
 {
     _lockOrderObject = lockInfo;
     this._sellOrder  = lockInfo.StonesOrder;
 }
Example #6
0
 public StoneOrderRunnable(LockSellStonesOrder lockInfo)
 {
     _lockOrderObject = lockInfo;
     this._sellOrder  = lockInfo.StonesOrder;
 }
 public StoneOrderNotFinishedRecordUIModel(LockSellStonesOrder parent)
 {
     this.LockSellStonesOrderObject = parent;
 }
 public LockSellStonesOrderUIModel(LockSellStonesOrder parent)
 {
     this.ParentObject = parent;
 }