Example #1
0
        public int PayAward(string adminUserName, string playerUserName, int recordID)
        {
            RouletteWinnerRecord record = _finishedRouletteWinnerRecord.FirstOrDefault(r => r.RecordID == recordID);

            if (record == null)
            {
                return(OperResult.RESULTCODE_GAME_WINAWARDRECORD_NOT_EXIST);
            }
            if (record.UserName != playerUserName)
            {
                return(OperResult.RESULTCODE_GAME_WINAWARDRECORD_NOT_EXIST);
            }

            record.IsPay   = true;
            record.PayTime = MyDateTime.FromDateTime(DateTime.Now);

            //save To DB
            DBProvider.GameRouletteDBProvider.SetWinnerRecordPay(record);
            //notify player
            LogHelper.Instance.AddInfoLog("管理员[" + adminUserName + "],确认支付了玩家[" + playerUserName + "]的幸运转盘大奖," + record.AwardItem.AwardName);

            string playerToken = ClientManager.GetToken(playerUserName);

            if (!string.IsNullOrEmpty(playerToken))
            {
                if (RouletteWinRealAwardPaySucceedNotify != null)
                {
                    RouletteWinRealAwardPaySucceedNotify(playerToken, record);
                }
            }

            _finishedRouletteWinnerRecord.Remove(record);

            return(OperResult.RESULTCODE_TRUE);
        }
Example #2
0
        public RouletteWinAwardAlertWindow(RouletteWinnerRecord record)
        {
            InitializeComponent();
            //this._record = record;
            //this.DataContext = new RouletteAwardItemUIModel(record.AwardItem);

            //if (record.AwardItem.RouletteAwardType == RouletteAwardType.None)
            //{
            //    this.btnTakeAward.Visibility = System.Windows.Visibility.Collapsed;
            //    this.txtMessage.Visibility = System.Windows.Visibility.Visible;
            //    this.btnClose.Visibility = System.Windows.Visibility.Visible;
            //    this.txtMessage.Text = "再来一次吧...";
            //}
            //else
            //{
            //    if (this._record.AwardItem.IsRealAward)
            //    {
            //        this.btnTakeAward.Visibility = System.Windows.Visibility.Visible;
            //        this.txtMessage.Visibility = System.Windows.Visibility.Collapsed;
            //        this.btnClose.Visibility = System.Windows.Visibility.Collapsed;
            //    }
            //    else
            //    {
            //        this.btnTakeAward.Visibility = System.Windows.Visibility.Collapsed;
            //        this.txtMessage.Visibility = System.Windows.Visibility.Visible;
            //        this.btnClose.Visibility = System.Windows.Visibility.Visible;
            //        this.txtMessage.Text = "奖品已经添加到您的账户中,敬请查收。";
            //    }
            //}
        }
Example #3
0
        /// <summary>
        /// 领取奖励
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="recordID"></param>
        /// <param name="info1"></param>
        /// <param name="info2"></param>
        public int TakeAward(string userName, int recordID, string info1, string info2)
        {
            RouletteWinnerRecord record = _finishedRouletteWinnerRecord.FirstOrDefault(r => r.RecordID == recordID);

            if (record == null)
            {
                return(OperResult.RESULTCODE_GAME_WINAWARDRECORD_NOT_EXIST);
            }
            if (record.UserName != userName)
            {
                return(OperResult.RESULTCODE_GAME_WINAWARDRECORD_NOT_EXIST);
            }
            record.IsGot    = true;
            record.GotTime  = MyDateTime.FromDateTime(DateTime.Now);
            record.GotInfo1 = info1;
            record.GotInfo2 = info2;
            //Save to DB
            DBProvider.GameRouletteDBProvider.SetWinnerRecordGot(record);

            //Notify Administrator
            LogHelper.Instance.AddInfoLog("玩家[" + userName + "],领取了幸运转盘大奖," + record.AwardItem.AwardName);


            return(OperResult.RESULTCODE_TRUE);
        }
        public RouletteWinnerRecord GetPayWinAwardRecord(int UserID, int RouletteAwardItemID, DateTime WinTime)
        {
            RouletteWinnerRecord record = null;
            MySqlConnection      myconn = null;
            MySqlCommand         mycmd  = null;

            try
            {
                myconn = MyDBHelper.Instance.CreateConnection();
                myconn.Open();

                DataTable table = new DataTable();

                string sqlTextB = "select  r.* from roulettewinnerrecord r " +
                                  " where  r.UserID = @UserID and r.AwardItemID = @AwardItemID order by r.id desc limit 1 ";// and r.WinTime >= @WinTime";

                mycmd = myconn.CreateCommand();
                mycmd.Parameters.AddWithValue("@UserID", UserID);
                mycmd.Parameters.AddWithValue("@AwardItemID", RouletteAwardItemID);
                //mycmd.Parameters.AddWithValue("@WinTime", WinTime);


                string sqlAllText = "select ttt.*, s.UserName as UserName from " +
                                    " ( " + sqlTextB +
                                    " ) ttt " +
                                    "  left join   playersimpleinfo s  on ttt.UserID = s.id ";

                mycmd.CommandText = sqlAllText;

                MySqlDataAdapter adapter = new MySqlDataAdapter(mycmd);
                adapter.Fill(table);
                var records = MetaDBAdapter <RouletteWinnerRecord> .GetRouletteWinnerRecordFromDataTable(table);

                table.Clear();
                table.Dispose();
                adapter.Dispose();
                if (records != null && records.Length != 0)
                {
                    record = records[records.Length - 1];
                    if (record.RouletteAwardItemID != RouletteAwardItemID)
                    {
                        return(null);
                    }
                }

                return(record);
            }
            finally
            {
                if (mycmd != null)
                {
                    mycmd.Dispose();
                }
                if (myconn != null)
                {
                    myconn.Close();
                    myconn.Dispose();
                }
            }
        }
        public void RaiseOnSomebodyWinRouletteAward(RouletteWinnerRecord record)
        {
            Action <RouletteWinnerRecord> handler = this.OnSomebodyWinRouletteAward;

            if (null != handler)
            {
                handler(record);
            }
        }
        public void RaiseOnGameRouletteWinRealAwardPaySucceed(RouletteWinnerRecord record)
        {
            Action <RouletteWinnerRecord> handler = this.OnGameRouletteWinRealAwardPaySucceed;

            if (null != handler)
            {
                handler(record);
            }
        }
        public bool AddRouletteWinnerRecord(RouletteWinnerRecord record)
        {
            MySqlConnection myconn = null;
            MySqlCommand    mycmd  = null;

            try
            {
                myconn = MyDBHelper.Instance.CreateConnection();
                myconn.Open();

                string sqlInsertText = "insert into roulettewinnerrecord " +
                                       " (`UserID`, `AwardItemID`, `WinTime`, `IsGot`, `GotTime`, `IsPay`, `PayTime`, `GotInfo1`, `GotInfo2`) " +
                                       " values (@UserID, @AwardItemID, @WinTime, @IsGot, @GotTime, @IsPay, @PayTime, @GotInfo1, @GotInfo2)";

                mycmd             = myconn.CreateCommand();
                mycmd.CommandText = sqlInsertText;
                mycmd.Parameters.AddWithValue("@UserID", record.UserID);
                mycmd.Parameters.AddWithValue("@AwardItemID", record.AwardItem.ID);
                mycmd.Parameters.AddWithValue("@WinTime", record.WinTime.ToDateTime());
                mycmd.Parameters.AddWithValue("@IsGot", record.IsGot);
                if (record.GotTime == null)
                {
                    mycmd.Parameters.AddWithValue("@GotTime", DBNull.Value);
                }
                else
                {
                    mycmd.Parameters.AddWithValue("@GotTime", record.GotTime.ToDateTime());
                }
                mycmd.Parameters.AddWithValue("@IsPay", record.IsPay);
                if (record.PayTime == null)
                {
                    mycmd.Parameters.AddWithValue("@PayTime", DBNull.Value);
                }
                else
                {
                    mycmd.Parameters.AddWithValue("@PayTime", record.PayTime.ToDateTime());
                }
                mycmd.Parameters.AddWithValue("@GotInfo1", DESEncrypt.EncryptDES(record.GotInfo1));
                mycmd.Parameters.AddWithValue("@GotInfo2", DESEncrypt.EncryptDES(record.GotInfo2));

                mycmd.ExecuteNonQuery();
                mycmd.Dispose();
                return(true);
            }
            finally
            {
                if (mycmd != null)
                {
                    mycmd.Dispose();
                }
                if (myconn != null)
                {
                    myconn.Close();
                    myconn.Dispose();
                }
            }
        }
        private void RouletteWinAwardNotifyAllPlayers(RouletteWinnerRecord result)
        {
            var allClients = ClientManager.AllClients;

            foreach (var client in allClients)
            {
                new Thread(new ParameterizedThreadStart(o =>
                {
                    this.GameRouletteWinNotify(o.ToString(), result.ToString());
                })).Start(client.Token);
            }
        }
Example #9
0
        void Client_OnSomebodyWinRouletteAward(RouletteWinnerRecord obj)
        {
            try
            {
                if (obj == null)
                {
                    MyMessageBox.ShowInfo("幸运大转盘开奖,但服务器推送结果为空");
                    return;
                }

                this.ListNotPayRouletteWinnerRecords.Add(new RouletteWinnerRecordUIModel(obj));
            }
            catch (Exception exc)
            {
                MyMessageBox.ShowInfo("幸运大转盘开奖,服务器推送后处理异常。异常信息:" + exc.Message);
            }
        }
        public bool SetWinnerRecordGot(RouletteWinnerRecord record)
        {
            MySqlConnection myconn = null;
            MySqlCommand    mycmd  = null;

            try
            {
                myconn = MyDBHelper.Instance.CreateConnection();
                myconn.Open();

                string sqlInsertText = "update roulettewinnerrecord " +
                                       " set `IsGot` = @IsGot, `GotTime` = @GotTime, `GotInfo1` = @GotInfo1, `GotInfo2` = @GotInfo2 where `id` = @ID ";

                mycmd             = myconn.CreateCommand();
                mycmd.CommandText = sqlInsertText;
                mycmd.Parameters.AddWithValue("@IsGot", record.IsGot);
                mycmd.Parameters.AddWithValue("@GotTime", record.GotTime.ToDateTime());
                mycmd.Parameters.AddWithValue("@GotInfo1", DESEncrypt.EncryptDES(record.GotInfo1));
                mycmd.Parameters.AddWithValue("@GotInfo2", DESEncrypt.EncryptDES(record.GotInfo2));
                mycmd.Parameters.AddWithValue("@ID", record.RecordID);

                mycmd.ExecuteNonQuery();
                mycmd.Dispose();
                return(true);
            }
            finally
            {
                if (mycmd != null)
                {
                    mycmd.Dispose();
                }
                if (myconn != null)
                {
                    myconn.Close();
                    myconn.Dispose();
                }
            }
        }
        void Client_FinishRouletteCompleted(object sender, Wcf.Clients.WebInvokeEventArgs <RouletteWinnerRecord> e)
        {
            try
            {
                App.BusyToken.CloseBusyWindow();
                if (e.Error != null)
                {
                    MyMessageBox.ShowInfo("提交服务器异常,请联系管理员。");
                    this.btnStart.IsEnabled = true;
                    return;
                }
                if (e.Result == null)
                {
                    MyMessageBox.ShowInfo("提交服务器失败,请联系管理员。");
                    this.btnStart.IsEnabled = true;
                    return;
                }
                _syn.Post(o =>
                {
                    this._winAwardRecord = e.Result;
                    RouletteAwardItemUIModel awardItem  = new RouletteAwardItemUIModel(e.Result.AwardItem);
                    this.imgWinedAwardItem.Source       = awardItem.Icon;
                    this.txtWinedAwardItem.Text         = awardItem.AwardName;
                    this.panelWinedAwardItem.Visibility = System.Windows.Visibility.Visible;
                    App.GameRouletteVMObject.ListMyWinAwardRecords.Add(new SuperMinersCustomServiceSystem.Model.RouletteWinnerRecordUIModel(e.Result));

                    App.UserVMObject.AsyncGetPlayerInfo();

                    ResetItemBackground();
                }, null);
            }
            catch (Exception exc)
            {
                MyMessageBox.ShowInfo(exc.Message);
            }
        }
        public bool SetWinnerRecordPay(RouletteWinnerRecord record)
        {
            MySqlConnection myconn = null;
            MySqlCommand    mycmd  = null;

            try
            {
                myconn = MyDBHelper.Instance.CreateConnection();
                myconn.Open();

                string sqlInsertText = "update roulettewinnerrecord " +
                                       " set `IsPay` = @IsPay, `PayTime` = @PayTime where `id` = @ID ";

                mycmd             = myconn.CreateCommand();
                mycmd.CommandText = sqlInsertText;
                mycmd.Parameters.AddWithValue("@IsPay", record.IsPay);
                mycmd.Parameters.AddWithValue("@PayTime", record.PayTime.ToDateTime());
                mycmd.Parameters.AddWithValue("@ID", record.RecordID);

                mycmd.ExecuteNonQuery();
                mycmd.Dispose();
                return(true);
            }
            finally
            {
                if (mycmd != null)
                {
                    mycmd.Dispose();
                }
                if (myconn != null)
                {
                    myconn.Close();
                    myconn.Dispose();
                }
            }
        }
Example #13
0
 public void SomebodyWinRouletteAward(string token, RouletteWinnerRecord record)
 {
     this.InvokeCallback(token, "SomebodyWinRouletteAward", record);
 }
 public RouletteWinnerRecordUIModel(RouletteWinnerRecord parent)
 {
     ParentObject = parent;
 }
 public void GameRouletteWinRealAwardPaySucceed(string token, RouletteWinnerRecord record)
 {
     this.InvokeCallback(token, "GameRouletteWinRealAwardPaySucceed", record);
 }
Example #16
0
        public RouletteWinnerRecord Finish(int userID, string userName, int winAwardID)
        {
            int serverWinAwardID = -1;

            if (!this._tempRouletteWinnerRecord.TryGetValue(userName, out serverWinAwardID))
            {
                return(null);
            }

            if (serverWinAwardID != winAwardID && winAwardID != this._noneAwardID)
            {
                return(null);
            }
            this._tempRouletteWinnerRecord.Remove(userName);

            RouletteWinnerRecord record = new RouletteWinnerRecord()
            {
                RouletteAwardItemID = winAwardID,
                AwardItem           = this._dicCurrentRouletteAwardItems[winAwardID],
                UserID   = userID,
                UserName = userName,
                //UserNickName = userNickName,
                WinTime = MyDateTime.FromDateTime(DateTime.Now),
                IsGot   = false,
                IsPay   = false
            };

            var awardItem = this._dicCurrentRouletteAwardItems[winAwardID];

            if (awardItem.RouletteAwardType != RouletteAwardType.None)
            {
                if (awardItem.RouletteAwardType != RouletteAwardType.RealAward)
                {
                    var isOK = PlayerController.Instance.RouletteWinVirtualAwardPayUpdatePlayer(userName, awardItem);
                    if (isOK)
                    {
                        record.IsGot   = true;
                        record.GotTime = MyDateTime.FromDateTime(DateTime.Now);
                        record.IsPay   = true;
                        record.PayTime = MyDateTime.FromDateTime(DateTime.Now);
                    }
                }

                //通知
                LogHelper.Instance.AddInfoLog("玩家[" + userName + "],完成了幸运大转盘抽奖。并抽中" + record.AwardItem.AwardName);

                if (record.AwardItem.RouletteAwardType == RouletteAwardType.RealAward)
                {
                    this._finishedRouletteWinnerRecord.Add(record);
                }
            }
            else
            {
                record.IsGot   = true;
                record.GotTime = MyDateTime.FromDateTime(DateTime.Now);
                record.IsPay   = true;
                record.PayTime = MyDateTime.FromDateTime(DateTime.Now);
            }

            //Save Record
            DBProvider.GameRouletteDBProvider.AddRouletteWinnerRecord(record);
            var dbRecord = DBProvider.GameRouletteDBProvider.GetPayWinAwardRecord(record.UserID, winAwardID, record.WinTime.ToDateTime());

            if (dbRecord != null)
            {
                record.RecordID = dbRecord.RecordID;
            }

            return(record);
        }
Example #17
0
 public RouletteWinAwardTakeWindow(RouletteWinnerRecord record)
 {
     InitializeComponent();
     _record = record;
     IsOK    = false;
 }