/// <summary> /// 记录玩家下注信息 /// </summary> /// <param name="playerBetInfo">玩家下注信息</param> /// <returns>保存是否成功</returns> public bool AddPlayerBetInfo(PlayerBet playerBetInfo) { bool flag = false; try { string matchDate = FormateMatchDate(playerBetInfo.MatchDate); MySqlParameter[] parms = new MySqlParameter[]{ new MySqlParameter("@ghostId",playerBetInfo.Ghost.ghostId), new MySqlParameter("@playerId", playerBetInfo.Player.Id), new MySqlParameter("@player", playerBetInfo.Player.LoginName), new MySqlParameter("@matchId", playerBetInfo.MatchId), new MySqlParameter("@leagueName", playerBetInfo.LeagueName), new MySqlParameter("@betCoverage", playerBetInfo.BetCoverage), new MySqlParameter("@betType", playerBetInfo.BetType), new MySqlParameter("@homeName",playerBetInfo.HomeName), new MySqlParameter("@awayName", playerBetInfo.AwayName), new MySqlParameter("@transTime", playerBetInfo.betTime), new MySqlParameter("@matchType", playerBetInfo.MatchType), new MySqlParameter("@seletecedMatch", playerBetInfo.SelectedMatch), new MySqlParameter("@sportType",playerBetInfo.SportType), new MySqlParameter("@HDP", playerBetInfo.HDP), new MySqlParameter("@odds", playerBetInfo.Odds), new MySqlParameter("@oddsType", playerBetInfo.OddsType), new MySqlParameter("@amount", playerBetInfo.Amount), new MySqlParameter("@win", playerBetInfo.WinValue), new MySqlParameter("@status", playerBetInfo.Status), new MySqlParameter("@isOutstanding", playerBetInfo.IsOutstanding), new MySqlParameter("@accountingDate", playerBetInfo.AccountingDate), new MySqlParameter("@isFollowAdmin", playerBetInfo.IsFollowAdmin), new MySqlParameter("@isSuccess", playerBetInfo.IsSuccess), new MySqlParameter("@result", playerBetInfo.Result), new MySqlParameter("@remarks", playerBetInfo.Remarks), new MySqlParameter("@matchDate", matchDate) }; if (DBHelper.ExecuteNonQuery(connectStr, CommandType.StoredProcedure, "AddNewPlayerBetInfo", parms) != 0) { flag = true; } } catch { throw; } return flag; }
/// <summary> /// 下注成功 /// </summary> /// <param name="message">下注消息</param> /// <param name="currentBet">下注对象</param> private void SaveBetInfo(string message, AgentToClientBet currentBet) { if (string.IsNullOrEmpty(message)) { return; } message = message.ToLower(); if (message.Contains(BET_SUCCESS)) { PlayerBet playerBet = new PlayerBet(); playerBet.Player = playerConvert.Player; playerBet.IsSuccess = true; playerBet.Result = BET_SUCCESS; playerBet.Remarks = string.Empty; playerBet.AccountingDate = DateTime.Now.ToShortDateString(); DataServiceAdapter.SavePlayerBetInfo(playerBet, currentBet.get_SourceAgentMemberBet()); } else { if (0 == currentBet.get_SourceAgentMemberBet().BetFailCount | currentBet.get_SourceAgentMemberBet().BetFailCount > ConstUtil.BET_FAIL_COUNT) { PlayerBetLog log = setBetLogMessage(message); DataServiceAdapter.SavePlayerBetLog(log); } } }
/// <summary> /// 更新玩家盈利 /// </summary> /// <param name="playerBetInfo"></param> /// <returns></returns> public bool UpdatePlayerBetWin(PlayerBet playerBetInfo) { bool flag = false; MySqlParameter[] parms = new MySqlParameter[]{ new MySqlParameter("@_betId",playerBetInfo.Id), new MySqlParameter("@_win",playerBetInfo.WinValue), new MySqlParameter("@_accountingDate", playerBetInfo.AccountingDate), new MySqlParameter("@_status", playerBetInfo.Status) }; try { if (DBHelper.ExecuteNonQuery(connectStr, CommandType.StoredProcedure, "UpdatePlayerBetInfoWin", parms) != 0) { flag = true; } } catch { throw; } return flag; }
/// <summary> /// 保存玩家亏盈报表 /// </summary> /// <param name="playerBet"></param> /// <returns></returns> //[MethodImpl(MethodImplOptions.Synchronized), DebuggerNonUserCode] public bool SaveProfitReport(PlayerBet playerBet) { bool isSuccess = false; try { // 判断该条记录是否存在 MySqlParameter[] parameters = new MySqlParameter[] { new MySqlParameter("@_ghostId",playerBet.Ghost.ghostId), new MySqlParameter("@_playerId",playerBet.Player.Id), new MySqlParameter("@_accountingDate",playerBet.AccountingDate), }; DataSet ds = DBHelper.ExecuteDataset(connectStr, CommandType.StoredProcedure, "GetProfixReport", parameters); if(null != ds) { DataTable dt = ds.Tables[0]; if (dt.Rows.Count == 0) { // 不存在时添加 parameters = new MySqlParameter[] { new MySqlParameter("@_ghostId",playerBet.Ghost.ghostId), new MySqlParameter("@_playerId",playerBet.Player.Id), new MySqlParameter("@_win",playerBet.WinValue), new MySqlParameter("@_accountingDate",playerBet.AccountingDate), }; DBHelper.ExecuteNonQuery(connectStr, CommandType.StoredProcedure, "AddProfitReport", parameters); } else { double win = Convert.ToDouble(dt.Rows[0]["win"]); win += playerBet.WinValue; parameters = new MySqlParameter[] { new MySqlParameter("@_id", Convert.ToInt32(dt.Rows[0]["id"])), new MySqlParameter("@_win",win) }; DBHelper.ExecuteNonQuery(connectStr, CommandType.StoredProcedure, "UpdateProfitReport", parameters); } } isSuccess = true; } catch (Exception e) { isSuccess = false; } return isSuccess; }
/// <summary> /// 根据赛事ID查询未结算的赛事 /// </summary> /// <param name="homeName"></param> /// <param name="awayName"></param> /// <param name="matchDate"></param> /// <returns></returns> public List<PlayerBet> GetPlayerBetsByMatchId(string matchId) { List<PlayerBet> playerBets = null; try { MySqlParameter[] parms = new MySqlParameter[]{ new MySqlParameter("@_matchId",matchId), }; playerBets = new List<PlayerBet>(); DataSet ds = DBHelper.ExecuteDataset(connectStr, CommandType.StoredProcedure, "getPlayerBetInfoByMatchId", parms); if (null != ds) { DataTable dt = ds.Tables[0]; if (null != dt && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { PlayerBet playerBet = new PlayerBet(); playerBet.Id = System.Convert.ToInt32(dt.Rows[i]["betId"]); playerBet.LeagueName = dt.Rows[i]["leagueName"].ToString(); playerBet.HomeName = dt.Rows[i]["homeName"].ToString(); playerBet.AwayName = dt.Rows[i]["awayName"].ToString(); playerBet.BetCoverage = dt.Rows[i]["betCoverage"].ToString(); playerBet.BetType = dt.Rows[i]["betType"].ToString(); playerBet.SelectedMatch = dt.Rows[i]["seletecedMatch"].ToString(); playerBet.Odds = System.Convert.ToDouble(dt.Rows[i]["odds"]); playerBet.Amount = System.Convert.ToInt32(dt.Rows[i]["amount"]); playerBet.HDP = System.Convert.ToDouble(dt.Rows[i]["HDP"]); int ghostId = System.Convert.ToInt32(dt.Rows[i]["ghostId"]); playerBet.Ghost = new Ghost(ghostId); int playerId = System.Convert.ToInt32(dt.Rows[i]["playerId"]); playerBet.Player = new Player(playerId); playerBets.Add(playerBet); } } } } catch { throw; } return playerBets; }
/// <summary> /// 更新玩家盈利 /// </summary> /// <param name="playerBet"></param> /// <returns></returns> public static bool UpdatePlayerBet(PlayerBet playerBet) { bool isSuccess = false; try { // 创建下注数据访问对象 BetService betService = new BetService(); isSuccess = betService.UpdatePlayerBetWin(playerBet); if(isSuccess) { // 更新玩家亏盈报表 betService.SaveProfitReport(playerBet); System.Threading.Thread.Sleep(50); } } catch (Exception e) { throw; } return isSuccess; }
/// <summary> /// 保存Player下注信息 /// </summary> /// <param name="matchBetNew">新的下注</param> /// <returns>保存是否成功</returns> public static bool SavePlayerBetInfo(PlayerBet playerBet, MatchBetNew matchBetNew) { bool isSuccess = false; try { playerBet.Ghost = GetGhostByGhostName(matchBetNew.get_MemberName(), matchBetNew.get_Company()); playerBet.Player = GetPlayerByPlayerName(playerBet.Player.LoginName); playerBet.MatchId = matchBetNew.getMatchID(); playerBet.LeagueName = matchBetNew.get_League(); playerBet.SelectedMatch = matchBetNew.get_SelectedMatch(); playerBet.MatchType = matchBetNew.get_MatchType(); playerBet.HomeName = matchBetNew.get_HomeName(); playerBet.AwayName = matchBetNew.get_AwayName(); playerBet.MatchDate = matchBetNew.get_MatchDate(); playerBet.betTime = matchBetNew.get_BetDate(); playerBet.BetCoverage = System.Convert.ToString(matchBetNew.get_BetCoverage()); playerBet.BetType = System.Convert.ToString(matchBetNew.get_BetType()); playerBet.Status = System.Convert.ToString(matchBetNew.get_RunningStatus()) + "<br/>" + matchBetNew.get_IPAddress(); playerBet.SportType = System.Convert.ToString(matchBetNew.get_SportType()); if (string.IsNullOrEmpty(matchBetNew.HDPValue)) { matchBetNew.HDPValue = "0.0"; } playerBet.HDP = Double.Parse(matchBetNew.HDPValue); playerBet.Odds = matchBetNew.get_Odds(); playerBet.OddsType = System.Convert.ToString(matchBetNew.get_OddsType()); playerBet.Amount = int.Parse(matchBetNew.get_BetAmount()); playerBet.WinValue = 0; playerBet.IsOutstanding = true; // 创建下注数据访问对象 BetService ghostBetService = new BetService(); isSuccess = ghostBetService.AddPlayerBetInfo(playerBet); } catch (Exception e) { throw; } return isSuccess; }