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); }
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 = "奖品已经添加到您的账户中,敬请查收。"; // } //} }
/// <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); } }
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(); } } }
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); }
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); }
public RouletteWinAwardTakeWindow(RouletteWinnerRecord record) { InitializeComponent(); _record = record; IsOK = false; }