public int BuyVirtualShoppingItem(int userID, string userName, VirtualShoppingItem shoppingItem, CustomerMySqlTransaction myTrans)
        {
            PlayerBuyVirtualShoppingItemRecord record = null;
            DateTime time = DateTime.Now;

            if (shoppingItem.ItemType == VirtualShoppingItemType.FactorySlaveFoods30Days)
            {
                int result = StoneFactoryController.Instance.AddFoods(userID, 30, myTrans);
                if (result != OperResult.RESULTCODE_TRUE)
                {
                    return(result);
                }

                record = new PlayerBuyVirtualShoppingItemRecord()
                {
                    OrderNumber             = OrderController.Instance.CreateOrderNumber(userName, time, AlipayTradeInType.VirtualShopping),
                    UserID                  = userID,
                    VirtualShoppingItemID   = shoppingItem.ID,
                    VirtualShoppingItemName = shoppingItem.Name,
                    BuyTime                 = new MetaData.MyDateTime(time),
                    UserName                = userName,
                };
            }
            else if (shoppingItem.ItemType == VirtualShoppingItemType.FactoryOpenTool)
            {
                int result = StoneFactoryController.Instance.OpenFactory(userID, myTrans);
                if (result != OperResult.RESULTCODE_TRUE)
                {
                    return(result);
                }

                record = new PlayerBuyVirtualShoppingItemRecord()
                {
                    OrderNumber             = OrderController.Instance.CreateOrderNumber(userName, time, AlipayTradeInType.VirtualShopping),
                    UserID                  = userID,
                    VirtualShoppingItemID   = shoppingItem.ID,
                    VirtualShoppingItemName = shoppingItem.Name,
                    BuyTime                 = new MetaData.MyDateTime(time),
                    UserName                = userName,
                };
            }
            else
            {
                record = new PlayerBuyVirtualShoppingItemRecord()
                {
                    OrderNumber           = OrderController.Instance.CreateOrderNumber(userName, time, AlipayTradeInType.VirtualShopping),
                    UserID                = userID,
                    VirtualShoppingItemID = shoppingItem.ID,
                    BuyTime               = new MetaData.MyDateTime(time)
                };
            }

            bool isOK = DBProvider.VirtualShoppingItemDBProvider.AddPlayerBuyVirtualShoppingItemRecord(record, myTrans);

            if (isOK)
            {
                return(OperResult.RESULTCODE_TRUE);
            }
            return(OperResult.RESULTCODE_FALSE);
        }
예제 #2
0
        public bool UpdateVirtualShoppingItem(VirtualShoppingItem item)
        {
            return(MyDBHelper.Instance.ConnectionCommandExecuteNonQuery(mycmd =>
            {
                string sqlText = "update virtualshoppingitem " +
                                 " set `Name`=@Name,`Remark`=@Remark,`ItemType`=@ItemType,`SellState`=@SellState,`PlayerMaxBuyableCount`=@PlayerMaxBuyableCount," +
                                 "`ValueShoppingCredits`=@ValueShoppingCredits,`GainExp`=@GainExp,`GainRMB`=@GainRMB,`GainGoldCoin`=@GainGoldCoin," +
                                 "`GainMine_StoneReserves`=@GainMine_StoneReserves,`GainMiner`=@GainMiner,`GainStone`=@GainStone," +
                                 "`GainDiamond`=@GainDiamond,`GainShoppingCredits`=@GainShoppingCredits,`GainGravel`=@GainGravel " +
                                 " where `ID`=@ID;";
                mycmd.CommandText = sqlText;
                mycmd.Parameters.AddWithValue("@Name", item.Name);
                mycmd.Parameters.AddWithValue("@Remark", item.Remark);
                mycmd.Parameters.AddWithValue("@ItemType", (int)item.ItemType);
                mycmd.Parameters.AddWithValue("@SellState", item.SellState);
                mycmd.Parameters.AddWithValue("@PlayerMaxBuyableCount", item.PlayerMaxBuyableCount);
                mycmd.Parameters.AddWithValue("@ValueShoppingCredits", item.ValueShoppingCredits);
                mycmd.Parameters.AddWithValue("@GainExp", item.GainExp);
                mycmd.Parameters.AddWithValue("@GainRMB", item.GainRMB);
                mycmd.Parameters.AddWithValue("@GainGoldCoin", item.GainGoldCoin);
                mycmd.Parameters.AddWithValue("@GainMine_StoneReserves", item.GainMine_StoneReserves);
                mycmd.Parameters.AddWithValue("@GainMiner", item.GainMiner);
                mycmd.Parameters.AddWithValue("@GainStone", item.GainStone);
                mycmd.Parameters.AddWithValue("@GainDiamond", item.GainDiamond);
                mycmd.Parameters.AddWithValue("@GainShoppingCredits", item.GainShoppingCredits);
                mycmd.Parameters.AddWithValue("@GainGravel", item.GainGravel);
                mycmd.Parameters.AddWithValue("@ID", item.ID);

                mycmd.ExecuteNonQuery();
            }));
        }
예제 #3
0
        public bool AddVirtualShoppingItem(VirtualShoppingItem item)
        {
            return(MyDBHelper.Instance.ConnectionCommandExecuteNonQuery(mycmd =>
            {
                string sqlText = "insert into virtualshoppingitem " +
                                 "(`Name`,`Remark`,`ItemType`,`SellState`,`PlayerMaxBuyableCount`,`ValueShoppingCredits`,`GainExp`,`GainRMB`,`GainGoldCoin`," +
                                 "`GainMine_StoneReserves`,`GainMiner`,`GainStone`,`GainDiamond`,`GainShoppingCredits`,`GainGravel`) " +
                                 " values (@Name,@Remark,@ItemType,@SellState,@PlayerMaxBuyableCount,@ValueShoppingCredits,@GainExp,@GainRMB,@GainGoldCoin," +
                                 "@GainMine_StoneReserves,@GainMiner,@GainStone,@GainDiamond,@GainShoppingCredits,@GainGravel )";
                mycmd.CommandText = sqlText;
                mycmd.Parameters.AddWithValue("@Name", item.Name);
                mycmd.Parameters.AddWithValue("@Remark", item.Remark);
                mycmd.Parameters.AddWithValue("@ItemType", (int)item.ItemType);
                mycmd.Parameters.AddWithValue("@SellState", item.SellState);
                mycmd.Parameters.AddWithValue("@PlayerMaxBuyableCount", item.PlayerMaxBuyableCount);
                mycmd.Parameters.AddWithValue("@ValueShoppingCredits", item.ValueShoppingCredits);
                mycmd.Parameters.AddWithValue("@GainExp", item.GainExp);
                mycmd.Parameters.AddWithValue("@GainRMB", item.GainRMB);
                mycmd.Parameters.AddWithValue("@GainGoldCoin", item.GainGoldCoin);
                mycmd.Parameters.AddWithValue("@GainMine_StoneReserves", item.GainMine_StoneReserves);
                mycmd.Parameters.AddWithValue("@GainMiner", item.GainMiner);
                mycmd.Parameters.AddWithValue("@GainStone", item.GainStone);
                mycmd.Parameters.AddWithValue("@GainDiamond", item.GainDiamond);
                mycmd.Parameters.AddWithValue("@GainShoppingCredits", item.GainShoppingCredits);
                mycmd.Parameters.AddWithValue("@GainGravel", item.GainGravel);

                mycmd.ExecuteNonQuery();
            }));
        }
        public bool CheckVirtualShoppingItemBuyable(int userID, VirtualShoppingItem item)
        {
            //小于等于0表示不限购
            if (item.PlayerMaxBuyableCount <= 0)
            {
                return(true);
            }
            int buyCount = DBProvider.VirtualShoppingItemDBProvider.GetPlayerBuyVirtualShoppingItemCount(userID, item.ID);

            return(buyCount < item.PlayerMaxBuyableCount);
        }
        public int UpdateVirtualShoppingItem(VirtualShoppingItem item)
        {
            string filePath = Path.Combine(GlobalData.VirtualShoppingImageFolder, item.Name + ".jpg");

            bool isOK = DBProvider.VirtualShoppingItemDBProvider.UpdateVirtualShoppingItem(item);

            if (isOK)
            {
                using (FileStream stream = new FileStream(filePath, FileMode.Create))
                {
                    stream.Write(item.IconBuffer, 0, item.IconBuffer.Length);
                }

                return(OperResult.RESULTCODE_TRUE);
            }

            return(OperResult.RESULTCODE_FALSE);
        }
        private void btnOK_Click(object sender, RoutedEventArgs e)
        {
            string name   = this.txtName.Text.Trim();
            string remark = this.txtRemark.Text.Trim();

            if (name == "")
            {
                MyMessageBox.ShowInfo("请填写名称");
                return;
            }
            if (remark == "")
            {
                MyMessageBox.ShowInfo("请填写说明");
                return;
            }
            if (this.imgIcon.Source == null || _iconBuffer == null)
            {
                MyMessageBox.ShowInfo("请上传图标");
                return;
            }

            if (MyMessageBox.ShowQuestionOKCancel("请确认奖项信息填写正确") != System.Windows.Forms.DialogResult.OK)
            {
                return;
            }


            VirtualShoppingItem item = new VirtualShoppingItem()
            {
                Name                   = name,
                Remark                 = remark,
                ItemType               = (VirtualShoppingItemType)this.cmbItemType.SelectedValue,
                GainDiamond            = (decimal)this.txtGainDiamond.Value,
                GainExp                = (decimal)this.txtGainExp.Value,
                GainGoldCoin           = (decimal)this.txtGainGoldCoin.Value,
                GainGravel             = (decimal)this.txtGainGravel.Value,
                GainMine_StoneReserves = (decimal)this.txtGainMine_StoneReserves.Value,
                GainMiner              = (decimal)this.txtGainMiner.Value,
                GainRMB                = (decimal)this.txtGainRMB.Value,
                GainShoppingCredits    = (decimal)this.txtGainShoppingCredits.Value,
                GainStone              = (decimal)this.txtGainStone.Value,
                IconBuffer             = this._iconBuffer,
                PlayerMaxBuyableCount  = (int)this.txtPlayerMaxBuyCount.Value,
                SellState              = (SellState)this.cmbItemState.SelectedIndex,
                ValueShoppingCredits   = (decimal)this.txtPriceRMB.Value
            };

            InputActionPasswordWindow winActionPassword = new InputActionPasswordWindow();

            if (winActionPassword.ShowDialog() == true)
            {
                string password = winActionPassword.ActionPassword;
                if (isAdd)
                {
                    this.AsyncAddVirtualShoppingItem(password, item);
                }
                else
                {
                    item.ID = this.oldID;
                    this.AsyncUpdateVirtualShoppingItem(password, item);
                }
            }
        }
예제 #7
0
 public void BuyVirtualShoppingItem(VirtualShoppingItem shoppingItem)
 {
     this._invoker.Invoke <int>(this._context, "BuyVirtualShoppingItem", this.BuyVirtualShoppingItemCompleted, GlobalData.Token, shoppingItem);
 }
예제 #8
0
 public void AsyncBuyVirtualShoppingItem(VirtualShoppingItem shoppingItem)
 {
     App.BusyToken.ShowBusyWindow("正在提交服务器...");
     GlobalData.Client.BuyVirtualShoppingItem(shoppingItem);
 }
 public VirtualShoppingItemUIModel(VirtualShoppingItem parent)
 {
     ParentObject = parent;
 }
        public int BuyVirtualShoppingItem(string token, VirtualShoppingItem shoppingItem)
        {
            if (RSAProvider.LoadRSA(token))
            {
                PlayerRunnable playerrunner = null;
                string         userName     = "";
                try
                {
                    userName     = ClientManager.GetClientUserName(token);
                    playerrunner = PlayerController.Instance.GetRunnable(userName);
                    if (playerrunner == null)
                    {
                        return(OperResult.RESULTCODE_USER_NOT_EXIST);
                    }

                    if (!VirtualShoppingController.Instance.CheckVirtualShoppingItemBuyable(playerrunner.BasePlayer.SimpleInfo.UserID, shoppingItem))
                    {
                        return(OperResult.RESULTCODE_VIRTUALSHOPPING_PLAYERCANOTBUY_THISITEM);
                    }

                    int result = MyDBHelper.Instance.TransactionDataBaseOper(myTrans =>
                    {
                        int innerResult = playerrunner.BuyVirtualShoppingItem(shoppingItem, myTrans);
                        if (innerResult != OperResult.RESULTCODE_TRUE)
                        {
                            return(innerResult);
                        }

                        return(VirtualShoppingController.Instance.BuyVirtualShoppingItem(playerrunner.BasePlayer.SimpleInfo.UserID, userName, shoppingItem, myTrans));
                    },
                                                                             exc =>
                    {
                        if (playerrunner != null)
                        {
                            playerrunner.RefreshFortune();
                        }

                        if (exc != null)
                        {
                            LogHelper.Instance.AddErrorLog("玩家[" + userName + "]购买虚拟商品[" + shoppingItem.Name + "]异常", exc);
                        }
                    });

                    if (result == OperResult.RESULTCODE_TRUE)
                    {
                        LogHelper.Instance.AddInfoLog("玩家[" + userName + "]成功购买了虚拟商品[" + shoppingItem.Name + "]");
                    }

                    return(result);
                }
                catch (Exception exc)
                {
                    LogHelper.Instance.AddErrorLog("玩家[" + userName + "]购买虚拟商品[" + shoppingItem.Name + "]异常. ClientIP=" + ClientManager.GetClientIP(token), exc);
                    return(OperResult.RESULTCODE_EXCEPTION);
                }
            }
            else
            {
                throw new Exception();
            }
        }