public static TCPProcessCmdResults ProcessUpdateOrnamentDataCmd(DBManager dbMgr, TCPOutPacketPool pool, int nID, byte[] data, int count, out TCPOutPacket tcpOutPacket) { tcpOutPacket = null; try { OrnamentUpdateDbData dbData = DataHelper.BytesToObject <OrnamentUpdateDbData>(data, 0, count); DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref dbData.RoleId); if (null == dbRoleInfo) { LogManager.WriteLog(LogTypes.Error, string.Format("发起请求的角色不存在,CMD={0}, RoleID={1}", (TCPGameServerCmds)nID, dbData.RoleId), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); } lock (dbRoleInfo) { if (null == dbRoleInfo.OrnamentDataDict) { dbRoleInfo.OrnamentDataDict = new Dictionary <int, OrnamentData>(); } dbRoleInfo.OrnamentDataDict[dbData.Data.ID] = dbData.Data; } DBWriter.UpdateOramentData(dbMgr, dbData); tcpOutPacket = DataHelper.ObjectToTCPOutPacket <bool>(true, pool, nID); return(TCPProcessCmdResults.RESULT_DATA); } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, "", false, false); } tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); }
protected override void OnStart(string[] args) { try { Timer_Cleanup.Interval = Configuration.CleanupTimerInterval; Timer_Cleanup.Enabled = true; Timer_Parse.Interval = Configuration.ParseTimerInterval; Timer_Parse.Enabled = true; m_DBWriter = new DBWriter(); m_RawDataManager = RawDataManager.GetInstance(Configuration); var ipLocalTCP = new IPEndPoint(IPAddress.Any, Configuration.PortNumberData); m_MainTCPSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); m_MainTCPSocket.Bind(ipLocalTCP); m_MainTCPSocket.Listen(Configuration .PendingConnectionQueue); // param is backlog of connections to allow m_MainTCPSocket.BeginAccept(new AsyncCallback(OnTCPConnect), null); } catch (Exception e) { Logger.GetInstance().Exception("Failed to create TCP listener Socket", e, string.Empty); } }
public static void DoDestroyBangHui(DBManager dbMgr, int bhid) { lock (Global.BangHuiMutex) { DBWriter.DeleteBangHui(dbMgr, bhid); GameDBManager.BangHuiJunQiMgr.RemoveBangHuiJunQi(bhid); DBWriter.ClearAllRoleBangHuiInfo(dbMgr, bhid); List <DBRoleInfo> dbRoleInfoList = dbMgr.DBRoleMgr.GetCachingDBRoleInfoListByFaction(bhid); if (null != dbRoleInfoList) { for (int i = 0; i < dbRoleInfoList.Count; i++) { dbRoleInfoList[i].Faction = 0; dbRoleInfoList[i].BHName = ""; dbRoleInfoList[i].BHZhiWu = 0; } } } DBWriter.ClearBHLingDiByID(dbMgr, bhid); GameDBManager.BangHuiLingDiMgr.ClearBangHuiLingDi(bhid); ZhanMengShiJianManager.getInstance().onZhanMengJieSan(bhid); string gmCmdData = string.Format("-synclingdi", new object[0]); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); }
public bool RemovePreDeleteRole(DBUserInfo dbUserInfo, DBRoleInfo dbRoleInfo) { bool result; lock (this._PreDeleteRoleDict) { string userID = dbUserInfo.UserID; int roleID = dbRoleInfo.RoleID; DBManager dbMgr = DBManager.getInstance(); bool ret = false; bool hasrole = DBQuery.GetUserRole(dbMgr, userID, roleID); if (hasrole) { ret = DBWriter.UnPreRemoveRole(dbMgr, roleID); } if (!ret) { result = false; } else { this._PreDeleteRoleDict.Remove(roleID); lock (dbUserInfo) { int index = dbUserInfo.ListRoleIDs.IndexOf(roleID); if (index >= 0 && index < dbUserInfo.ListRoleIDs.Count) { dbUserInfo.ListRolePreRemoveTime[index] = ""; } } result = true; } } return(result); }
public void processCmdUpdateBuildLog(GameServerClient client, int nID, byte[] cmdParams, int count) { string cmdData = null; try { cmdData = new UTF8Encoding().GetString(cmdParams, 0, count); } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("解析指令字符串错误, CMD={0}", (TCPGameServerCmds)nID), null, true); client.sendCmd(30767, "0"); return; } string[] fields = cmdData.Split(new char[] { ':' }); if (fields.Length != 2) { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Recv={1}, CmdData={2}", (TCPGameServerCmds)nID, fields.Length, cmdData), null, true); client.sendCmd(30767, "0"); } else { string TimeLog = fields[0]; BuildingLogType LogType = (BuildingLogType)Convert.ToInt32(fields[1]); DBManager dbMgr = DBManager.getInstance(); DBWriter.UpdateBuildingLog(dbMgr, TimeLog, LogType); string strcmd = string.Format("{0}", 0); client.sendCmd(nID, strcmd); } }
private void BuildManagers() { AccountManager = new AccountManager(APIWrapper); ManagedSecuritiesManager = new ManagedSecuritiesManager(APIWrapper); List <ManagedSecurity> activeUNLList; UNLManagerDic = new Dictionary <string, SimpleBaseLogic>(); using (var session = DBSessionFactory.Instance.OpenSession()) { activeUNLList = session.Query <ManagedSecurity>() .Where(contract => contract.IsActive && contract.OptionChain).ToList(); } foreach (var managedSecurity in activeUNLList) { var unlManager = new UNLManager(managedSecurity, APIWrapper, Distributer); UNLManagerDic.Add(managedSecurity.Symbol, unlManager); unlManager.PositionNeedToOptimized += UNLManagerOnPositionNeedToOptimized; } MarginManager = new MarginManager(); DbWriter = new DBWriter(Configurations.Application.DBWritePeriod); Distributer.SetManagers(UNLManagerDic, AccountManager, ManagedSecuritiesManager, DbWriter, MarginManager); //UIDataManager = new UIDataManager(); }
public static void RecalcBangHuiNumLevel(DBManager dbMgr) { long ticks = DateTime.Now.Ticks; if (ticks - BangHuiNumLevelMgr.LastQueryTimeTicks >= BangHuiNumLevelMgr.MaxQueryTimeSlotTicks) { BangHuiNumLevelMgr.LastQueryTimeTicks = ticks; GameDBManager.BangHuiListMgr.RefreshBangHuiListData(dbMgr); BangHuiListData bangHuiListData = GameDBManager.BangHuiListMgr.GetBangHuiListData(dbMgr, -1, 0, 10000); if (bangHuiListData != null && null != bangHuiListData.BangHuiItemDataList) { List <BangHuiNumLevelItem> bangHuiNumLevelItemList = new List <BangHuiNumLevelItem>(); for (int i = 0; i < bangHuiListData.BangHuiItemDataList.Count; i++) { int totalNum; int totalLevel; long totalCombatforce; if (DBQuery.QueryBHMemberSumData(bangHuiListData.BangHuiItemDataList[i].BHID, out totalNum, out totalLevel, out totalCombatforce)) { bangHuiNumLevelItemList.Add(new BangHuiNumLevelItem { BHID = bangHuiListData.BangHuiItemDataList[i].BHID, TotalNum = totalNum, TotalLevel = totalLevel, TotalCombatForce = (int)Math.Min(totalCombatforce, 2147483647L) }); } } for (int i = 0; i < bangHuiNumLevelItemList.Count; i++) { DBWriter.UpdateBangHuiNumLevel(dbMgr, bangHuiNumLevelItemList[i].BHID, bangHuiNumLevelItemList[i].TotalNum, bangHuiNumLevelItemList[i].TotalLevel, bangHuiNumLevelItemList[i].TotalCombatForce); } } } }
/// <summary> /// 每周日凌晨清空扬州城中的税收 /// </summary> public void ProcessClearYangZhouTotalTax(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks; if (nowTicks - LastClearYangZhouTotalTaxTicks < (60L * 1000L * 10000L)) { return; } LastClearYangZhouTotalTaxTicks = nowTicks; int thisWeekID = WeekOfYear(); if (thisWeekID == ThisWeekID) { return; } ThisWeekID = thisWeekID; //清空指定帮会的领地的税收 ClearBangHuiLingDiByID((int)LingDiIDs.YouZhou); //清空某个帮会占领的领地税收 DBWriter.ClearBHLingDiTotalTaxByID(dbMgr, (int)LingDiIDs.YouZhou); }
public static TCPProcessCmdResults ProcessDBUpdateUserLimitGoodsUsedNumCmd(DBManager dbMgr, TCPOutPacketPool pool, int nID, byte[] data, int count, out TCPOutPacket tcpOutPacket) { tcpOutPacket = null; string cmdData = null; try { cmdData = new UTF8Encoding().GetString(data, 0, count); } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("解析指令字符串错误, CMD={0}", (TCPGameServerCmds)nID), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); } try { string[] fields = cmdData.Split(new char[] { ':' }); if (fields.Length != 5) { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Recv={1}, CmdData={2}", (TCPGameServerCmds)nID, fields.Length, cmdData), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); } int roleID = Convert.ToInt32(fields[0]); int goodsID = Convert.ToInt32(fields[1]); int dayID = Convert.ToInt32(fields[2]); int usedNum = Convert.ToInt32(fields[3]); string stage = fields[4]; DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref roleID); if (null == dbRoleInfo) { LogManager.WriteLog(LogTypes.Error, string.Format("发起请求的角色不存在,CMD={0}, RoleID={1}", (TCPGameServerCmds)nID, roleID), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); } int ret = DBWriter.AddUserLimitGoodsBuyItem(dbMgr, dbRoleInfo.UserID, goodsID, dayID, usedNum, stage); string strcmd; if (ret < 0) { strcmd = string.Format("{0}:{1}", roleID, -1); LogManager.WriteLog(LogTypes.Error, string.Format("添加限购物品的历史记录失败,CMD={0}, RoleID={1}", (TCPGameServerCmds)nID, roleID), null, true); } else { strcmd = string.Format("{0}:{1}", roleID, 0); } tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, strcmd, nID); return(TCPProcessCmdResults.RESULT_DATA); } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, "", false, false); } tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); }
/// <summary> /// 扫描充值流水生成二进制日志 /// </summary> public static void ScanInputLogToDBLog(DBManager dbMgr) { //if (!GameDBManager.DBEventsWriter.Enable) //{ // return; //} long nowTicks = DateTime.Now.Ticks / 10000; if (nowTicks - LastScanInputLogTicks < (30 * 1000)) { return; } LastScanInputLogTicks = nowTicks; //上次扫描充值流水的ID if (LastScanID < 0) { LastScanID = DBQuery.QueryLastScanInputLogID(dbMgr); } //查询充值记录,并且写入日志中 int newLastScanID = DBQuery.ScanInputLogFromTable(dbMgr, LastScanID); if (newLastScanID != LastScanID) { LastScanID = newLastScanID; DBWriter.UpdateLastScanInputLogID(dbMgr, LastScanID); } }
public void processCmdUpdateBuildData(GameServerClient client, int nID, byte[] cmdParams, int count) { string cmdData = null; try { cmdData = new UTF8Encoding().GetString(cmdParams, 0, count); } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("解析指令字符串错误, CMD={0}", (TCPGameServerCmds)nID), null, true); client.sendCmd(30767, "0"); return; } string[] fields = cmdData.Split(new char[] { ':' }); if (fields.Length != 9) { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Recv={1}, CmdData={2}", (TCPGameServerCmds)nID, fields.Length, cmdData), null, true); client.sendCmd(30767, "0"); } else { BuildingData myBuildData = new BuildingData(); int roleID = Convert.ToInt32(fields[0]); myBuildData.BuildId = Convert.ToInt32(fields[1]); myBuildData.BuildLev = Convert.ToInt32(fields[2]); myBuildData.BuildExp = Convert.ToInt32(fields[3]); myBuildData.TaskID_1 = Convert.ToInt32(fields[5]); myBuildData.TaskID_2 = Convert.ToInt32(fields[6]); myBuildData.TaskID_3 = Convert.ToInt32(fields[7]); myBuildData.TaskID_4 = Convert.ToInt32(fields[8]); myBuildData.BuildTime = fields[4].Replace('$', ':'); DBManager dbMgr = DBManager.getInstance(); DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref roleID); if (null == dbRoleInfo) { LogManager.WriteLog(LogTypes.Error, string.Format("发起请求的角色不存在,CMD={0}, RoleID={1}", (TCPGameServerCmds)nID, roleID), null, true); client.sendCmd(30767, "0"); } else { lock (dbRoleInfo) { if (null == dbRoleInfo.BuildingDataList) { dbRoleInfo.BuildingDataList = new List <BuildingData>(); } this.UpdateBuildData(dbRoleInfo.BuildingDataList, myBuildData); } DBWriter.UpdateBuildingData(dbMgr, roleID, myBuildData); string strcmd = string.Format("{0}", 0); client.sendCmd(nID, strcmd); } } }
/// <summary> /// 新区充值返利领取 /// </summary> /// <param name="dbMgr"></param> /// <param name="pool"></param> /// <param name="nID"></param> /// <param name="data"></param> /// <param name="count"></param> /// <param name="tcpOutPacket"></param> /// <returns></returns> private static TCPProcessCmdResults GetNewFanliAward(DBManager dbMgr, TCPOutPacketPool pool, int nID, int roleID, int activeid, string fromDate, string todate, List <int> minGateValueList, out TCPOutPacket tcpOutPacket) { tcpOutPacket = null; string cmdData = null; string strcmd = ""; try { DBRoleInfo roleInfo = dbMgr.GetDBRoleInfo(roleID); if (null == roleInfo) { strcmd = string.Format("{0}:{1}:{2}", -1001, roleID, activeid); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, strcmd, nID); return(TCPProcessCmdResults.RESULT_DATA); } int roleYuanBaoInPeriod = NewZoneActiveMgr.ComputTotalFanliValue(dbMgr, roleInfo, activeid, fromDate, todate, minGateValueList); DBUserInfo userInfo = dbMgr.GetDBUserInfo(roleInfo.UserID); //避免同一用户账号同时多次操作 lock (userInfo) { if (roleYuanBaoInPeriod > 0) { //活动时间取前一天的 DateTime sub1DayDateTime = Global.GetAddDaysDataTime(DateTime.Now, -1, true); DateTime startTime = new DateTime(sub1DayDateTime.Year, sub1DayDateTime.Month, sub1DayDateTime.Day, 0, 0, 0); DateTime endTime = new DateTime(sub1DayDateTime.Year, sub1DayDateTime.Month, sub1DayDateTime.Day, 23, 59, 59); string huoDongKeyStr = Global.GetHuoDongKeyString(startTime.ToString("yyyy-MM-dd HH:mm:ss"), endTime.ToString("yyyy-MM-dd HH:mm:ss")); //更新已领取状态 int ret = DBWriter.AddHongDongAwardRecordForUser(dbMgr, roleInfo.UserID, (int)(ActivityTypes.NewZoneFanli), huoDongKeyStr, 1, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); if (ret < 0) { strcmd = string.Format("{0}:{1}:{2}", -1008, roleID, activeid); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, strcmd, nID); return(TCPProcessCmdResults.RESULT_DATA); } } } strcmd = string.Format("{0}:{1}:{2}", 1, roleYuanBaoInPeriod, activeid); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, strcmd, nID); return(TCPProcessCmdResults.RESULT_DATA); } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, "", false); } tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", (int)TCPGameServerCmds.CMD_DB_ERR_RETURN); return(TCPProcessCmdResults.RESULT_DATA); }
public TCPProcessCmdResults ProcGetJieriGiveKingAward(DBManager dbMgr, TCPOutPacketPool pool, int nID, byte[] data, int count, out TCPOutPacket tcpOutPacket) { tcpOutPacket = null; string cmdData = null; try { cmdData = new UTF8Encoding().GetString(data, 0, count); } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("解析指令字符串错误, CMD={0}", (TCPGameServerCmds)nID), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); } try { string[] fields = cmdData.Split(new char[] { ':' }); if (fields.Length != 3) { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Recv={1}, CmdData={2}", (TCPGameServerCmds)nID, fields.Length, cmdData), null, true); tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); } int roleID = Convert.ToInt32(fields[0]); string fromDate = fields[1].Replace('$', ':'); string toDate = fields[2].Replace('$', ':'); DBRoleInfo roleInfo = dbMgr.GetDBRoleInfo(ref roleID); if (null == roleInfo) { tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, string.Format("{0}", -1001), nID); return(TCPProcessCmdResults.RESULT_DATA); } string huoDongKeyStr = Global.GetHuoDongKeyString(fromDate, toDate); lock (roleInfo) { int ret = DBWriter.AddHongDongAwardRecordForRole(dbMgr, roleInfo.RoleID, roleInfo.ZoneID, 51, huoDongKeyStr, 1, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); if (ret < 0) { tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, string.Format("{0}", -1008), nID); return(TCPProcessCmdResults.RESULT_DATA); } } tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, string.Format("{0}", 1), nID); return(TCPProcessCmdResults.RESULT_DATA); } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, "", false, false); } tcpOutPacket = TCPOutPacket.MakeTCPOutPacket(pool, "0", 30767); return(TCPProcessCmdResults.RESULT_DATA); }
public static void ClearOverdueMails(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks / 10000L; if (nowTicks - UserMailManager.LastClearMailTicks >= 123428447L) { UserMailManager.LastClearMailTicks = nowTicks; DBWriter.ClearOverdueMails(dbMgr, DateTime.Now.AddDays(-15.0)); } }
public void SetManagers(Dictionary <string, SimpleBaseLogic> unlManagerDic, AccountManager accountManager, ManagedSecuritiesManager managedSecuritiesManager, DBWriter writer, MarginManager marginManager) { _unlManagersDic = unlManagerDic; _accountManager = accountManager; _managedSecuritiesManager = managedSecuritiesManager; _dbWriter = writer; MarginManager = marginManager; }
/// <summary> /// 使用某个礼品码 /// </summary> /// <param name="dbMgr"></param> /// <param name="fileName"></param> public static int UseLiPinMa(DBManager dbMgr, int roleID, int songLiID, string liPinMa, bool insertLiPinMa = false) { if (null == _LiPinMaDict) { return(-1010); } Dictionary <string, LiPinMaItem> liPinMaDict = _LiPinMaDict; //先得到 int usedNum = 0; liPinMa = liPinMa.ToUpper(); //转成大写 //防止多用户重入 lock (Mutex) { LiPinMaItem liPinMaItem = null; if (!liPinMaDict.TryGetValue(liPinMa, out liPinMaItem)) { return(-1020); } if (liPinMaItem.HuodongID != songLiID) { return(-1030); } if (liPinMaItem.MaxNum > 0 && liPinMaItem.UsedNum >= liPinMaItem.MaxNum) { return(-1040); } //如果不允许平台内的礼品码重复领取 if (liPinMaItem.PingTaiRepeat <= 0) { //通过活动ID查询平台ID int pingTaiID = DBQuery.QueryPingTaiIDByHuoDongID(dbMgr, liPinMaItem.HuodongID, roleID, liPinMaItem.PingTaiID); if (pingTaiID == liPinMaItem.PingTaiID) { return(-10000); } } //添加使用礼品码的平台记录 DBWriter.AddUsedLiPinMa(dbMgr, liPinMaItem.HuodongID, liPinMaItem.LiPinMa, liPinMaItem.PingTaiID, roleID); liPinMaItem.UsedNum++; usedNum = liPinMaItem.UsedNum; } //修改一个礼品码的使用次数 DBWriter.UpdateLiPinMaUsedNum(dbMgr, liPinMa, usedNum); return(0); }
public ExtractResult Get(string dbName, string tableName) { string connString = dbConnConfig.ConnectionString; #region Setup google StorageClient var credentialsPath = "auth\\gd-hiring.json"; var credentialsJson = System.IO.File.ReadAllText(credentialsPath); var googleCredential = GoogleCredential.FromJson(credentialsJson); var storageClient = StorageClient.Create(googleCredential); storageClient.Service.HttpClient.Timeout = new TimeSpan(1, 0, 0); string bucketName = "gd-hiring-tri"; #endregion List <string> retVal = new List <string>(); try { using (DataContext db = new DataContext(connString)) { using (var reader = db.ReadTable(dbName, tableName)) { string filename = string.Format("{0}.{1}_{2:yyyy-MM-dd}.tsv", dbName, tableName, DateTime.Now); DBWriter.WriteToFile(reader, filename); var result = DBWriter.WriteToGCS(storageClient, bucketName, filename); if (result != null) { return(new ExtractResult() { SelfLink = result.SelfLink, MediaLink = result.MediaLink, Status = "200" }); } else { return(new ExtractResult() { Error = "Data not found!", Status = "404" }); } } } } catch (Exception e) { return(new ExtractResult() { Error = e.Message, Status = "500" }); } }
public static int updateWanMoTaData(DBManager dbMgr, int nRoleID, string[] fields, int startIndex) { int ret = -1; using (MyDbConnection3 conn = new MyDbConnection3(false)) { string cmdText = DBWriter.FormatUpdateSQL(nRoleID, fields, startIndex, WanMoTaDBController._fieldNames, "t_wanmota", WanMoTaDBController._fieldTypes, "roleID"); ret = conn.ExecuteNonQuery(cmdText, 0); } return(ret); }
public static bool UpdateMerlinData(DBManager dbMgr, int nRoleID, string[] fields, int nStartIndex) { bool result; if (fields == null || fields.Length != 15 || nStartIndex >= fields.Length) { result = false; } else { bool ret = false; MySQLConnection conn = null; try { conn = dbMgr.DBConns.PopDBConnection(); if (fields[6] != "*") { string endTime = new DateTime(Convert.ToInt64(fields[6]) * 10000L).ToString("yyyy-MM-dd HH:mm:ss"); fields[6] = endTime; } for (int i = 7; i <= 14; i++) { if (fields[i] != "*") { fields[i] = (Convert.ToDouble(fields[i]) * 100.0).ToString(); } } string cmdText = DBWriter.FormatUpdateSQL(nRoleID, fields, nStartIndex, MerlinDBOperate.t_fieldNames, "t_merlin_magic_book", MerlinDBOperate.t_fieldTypes, "roleID"); GameDBManager.SystemServerSQLEvents.AddEvent(string.Format("+SQL: {0}", cmdText), EventLevels.Important); MySQLCommand cmd = new MySQLCommand(cmdText, conn); try { cmd.ExecuteNonQuery(); ret = true; } catch (Exception) { LogManager.WriteLog(LogTypes.Error, string.Format("写入数据库失败: {0}", cmdText), null, true); } cmd.Dispose(); cmd = null; } finally { if (null != conn) { dbMgr.DBConns.PushDBConnection(conn); } } result = ret; } return(result); }
private static int _ProcessSuperInputFanLi(DBManager dbMgr, DBUserInfo dbUserInfo, SingleChargeData chargeData, int addUserMoney, int ChargeID, string chargeTm) { try { string SuperInputFanLiKey = chargeData.SuperInputFanLiKey; if (string.IsNullOrEmpty(SuperInputFanLiKey)) { return(0); } string[] KeyFileds = SuperInputFanLiKey.Split(new char[] { '_' }); if (KeyFileds.Length != 2) { return(0); } DateTime startTime = DateTime.Parse(KeyFileds[0]); DateTime endTime = DateTime.Parse(KeyFileds[1]); if (TimeUtil.NowDateTime() < startTime || TimeUtil.NowDateTime() > endTime) { return(0); } JieriSuperInputData configData = UserMoneyMgr.GetJieriSuperInputDataByChargeTm(chargeData, chargeTm); if (null == configData) { return(0); } string beginStr = configData.BeginTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(':', '$'); string endStr = configData.EndTime.ToString("yyyy-MM-dd HH:mm:ss").Replace(':', '$'); string keyStr = string.Format("res_{0}_{1}_{2}", beginStr, endStr, configData.ID); long reservetimes = 0L; string lastgettime = ""; int ret = DBQuery.GetAwardHistoryForUser(dbMgr, dbUserInfo.UserID, 71, keyStr, out reservetimes, out lastgettime); if (reservetimes <= 0L) { return(0); } reservetimes -= 1L; lastgettime = chargeTm; ret = DBWriter.UpdateHongDongAwardRecordForUser(dbMgr, dbUserInfo.UserID, 71, keyStr, reservetimes, lastgettime); if (ret < 0) { ret = DBWriter.AddHongDongAwardRecordForUser(dbMgr, dbUserInfo.UserID, 71, keyStr, reservetimes, lastgettime); } return(configData.ID); } catch (Exception ex) { LogManager.WriteException("_ProcessSuperInputFanLi:" + ex.ToString()); } return(0); }
private bool CheckHaveUpGradeItem(string strReqItem, DBManager dbMgr, int nBangHuiID, int nRoleID, int nToLevel) { BangHuiBagData dataBangHuiBag = DBQuery.QueryBangHuiBagDataByID(dbMgr, nBangHuiID); string[] arrReqItems = strReqItem.Split(new char[] { '|' }); int[] arrItemNums = new int[5]; for (int i = 0; i < arrItemNums.Length; i++) { arrItemNums[i] = 0; } for (int i = 0; i < arrReqItems.Length; i++) { string[] arrItemInfo = arrReqItems[i].Split(new char[] { ',' }); if (2 == arrItemInfo.Length) { arrItemNums[i] = int.Parse(arrItemInfo[1]); } } bool result; if (dataBangHuiBag.Goods1Num < arrItemNums[0]) { result = false; } else if (dataBangHuiBag.Goods2Num < arrItemNums[1]) { result = false; } else if (dataBangHuiBag.Goods3Num < arrItemNums[2]) { result = false; } else if (dataBangHuiBag.Goods4Num < arrItemNums[3]) { result = false; } else if (dataBangHuiBag.Goods5Num < arrItemNums[4]) { result = false; } else { DBWriter.UpdateBangHuiQiLevel(dbMgr, nBangHuiID, nToLevel, arrItemNums[0], arrItemNums[1], arrItemNums[2], arrItemNums[3], arrItemNums[4], 0); result = true; } return(result); }
public static void ClearBangHuiLingDi(DBManager dbMgr, int bhid) { lock (Global.BangHuiMutex) { GameDBManager.BangHuiJunQiMgr.RemoveBangHuiJunQi(bhid); } DBWriter.ClearBHLingDiByID(dbMgr, bhid); GameDBManager.BangHuiLingDiMgr.ClearBangHuiLingDi(bhid); string gmCmdData = string.Format("-synclingdi", new object[0]); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); }
public static void WriteTotalOnlineNumToDB(DBManager dbMgr) { DateTime dateTime = DateTime.Now; long nowTicks = dateTime.Ticks / 10000L; if (nowTicks - OnlineUserNumMgr.LastWriteDBTicks >= 120000L) { OnlineUserNumMgr.LastWriteDBTicks = nowTicks; int totalNum = LineManager.GetTotalOnlineNum(); string strMapOnlineInfo = LineManager.GetMapOnlineNum(); DBWriter.AddNewOnlineNumItem(dbMgr, totalNum, dateTime, strMapOnlineInfo); } }
private bool CheckHaveUpGradeItem(String strReqItem, DBManager dbMgr, int nBangHuiID, int nRoleID, int nToLevel) { BangHuiBagData dataBangHuiBag = DBQuery.QueryBangHuiBagDataByID(dbMgr, nBangHuiID); String[] arrReqItems = strReqItem.Split('|'); int[] arrItemNums = new int[5]; for (int i = 0; i < arrItemNums.Length; i++) { arrItemNums[i] = 0; } for (int i = 0; i < arrReqItems.Length; i++) { String[] arrItemInfo = arrReqItems[i].Split(','); if (2 != arrItemInfo.Length) { continue; } arrItemNums[i] = int.Parse(arrItemInfo[1]); } if (dataBangHuiBag.Goods1Num < arrItemNums[0]) { return(false); } if (dataBangHuiBag.Goods2Num < arrItemNums[1]) { return(false); } if (dataBangHuiBag.Goods3Num < arrItemNums[2]) { return(false); } if (dataBangHuiBag.Goods4Num < arrItemNums[3]) { return(false); } if (dataBangHuiBag.Goods5Num < arrItemNums[4]) { return(false); } DBWriter.UpdateBangHuiQiLevel(dbMgr, nBangHuiID, nToLevel, arrItemNums[0], arrItemNums[1], arrItemNums[2], arrItemNums[3], arrItemNums[4], 0); return(true); }
public void ProcessClearYangZhouTotalTax(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks; if (nowTicks - this.LastClearYangZhouTotalTaxTicks >= 600000000L) { this.LastClearYangZhouTotalTaxTicks = nowTicks; int thisWeekID = BangHuiLingDiManager.WeekOfYear(); if (thisWeekID != this.ThisWeekID) { this.ThisWeekID = thisWeekID; this.ClearBangHuiLingDiByID(3); DBWriter.ClearBHLingDiTotalTaxByID(dbMgr, 3); } } }
private void dbGoodsBakTableWorker_DoWork(object sender, EventArgs e) { try { long ticks = TimeUtil.NOW(); if (ticks - this.LastdbGoodsBakTableWorkerTicks >= 30000L) { this.LastdbGoodsBakTableWorkerTicks = ticks; DBWriter.SwitchGoodsBackupTable(DBManager.getInstance()); } } catch (Exception ex) { DataHelper.WriteFormatExceptionLog(ex, "dbWriterWorker_DoWork", false, false); } }
public static void ScanLastMails(DBManager dbMgr) { long nowTicks = DateTime.Now.Ticks / 10000L; if (nowTicks - UserMailManager.LastScanMailTicks >= 30000L) { UserMailManager.LastScanMailTicks = nowTicks; Dictionary <int, int> lastMailDict = DBQuery.ScanLastMailIDListFromTable(dbMgr); if (lastMailDict != null && lastMailDict.Count > 0) { string gmCmd = ""; string mailIDsToDel = ""; foreach (KeyValuePair <int, int> item in lastMailDict) { int roleID = item.Key; DBRoleInfo dbRoleInfo = dbMgr.GetDBRoleInfo(ref roleID); if (null != dbRoleInfo) { if (gmCmd.Length > 0) { gmCmd += "_"; } dbRoleInfo.LastMailID = item.Value; gmCmd += string.Format("{0}|{1}", dbRoleInfo.RoleID, item.Value); } else { DBWriter.UpdateRoleLastMail(dbMgr, item.Key, item.Value); } if (mailIDsToDel.Length > 0) { mailIDsToDel += ","; } mailIDsToDel += item.Value; } if (gmCmd.Length > 0) { string gmCmdData = string.Format("-notifymail {0}", gmCmd); ChatMsgManager.AddGMCmdChatMsg(-1, gmCmdData); } if (mailIDsToDel.Length >= 0) { DBWriter.DeleteLastScanMailIDs(dbMgr, lastMailDict); } } } }
public int DelFuMoMailFromLimitContorl(DBManager dbMgr, int roleid, int num) { int result; if (num > 0) { List <FuMoMailData> dataList = null; if (FuMoMailManager.CurrUserMailDatas.TryGetValue(roleid, out dataList)) { int temp = 0; string removeMailIdList = null; List <FuMoMailData> tempDataList = new List <FuMoMailData>(dataList); foreach (FuMoMailData itdata in dataList) { temp++; if (temp > num) { break; } if (!tempDataList.Remove(itdata)) { return(-1); } removeMailIdList = string.Format("{0}_{1}", itdata.MaillID, removeMailIdList); } FuMoMailManager.CurrUserMailDatas[roleid] = tempDataList; if (removeMailIdList == null) { return(0); } string parem = this.MakeDelListSQL(removeMailIdList.Split(new char[] { '_' })); if (DBWriter.DeleteMailFuMoByMailIDList(dbMgr, roleid, parem)) { return(1); } } result = -1; } else { result = 0; } return(result); }
public static int UseLiPinMa(DBManager dbMgr, int roleID, int songLiID, string liPinMa, bool insertLiPinMa = false) { int result; if (null == LiPinMaManager._LiPinMaDict) { result = -1010; } else { Dictionary <string, LiPinMaItem> liPinMaDict = LiPinMaManager._LiPinMaDict; int usedNum = 0; liPinMa = liPinMa.ToUpper(); lock (LiPinMaManager.Mutex) { LiPinMaItem liPinMaItem = null; if (!liPinMaDict.TryGetValue(liPinMa, out liPinMaItem)) { return(-1020); } if (liPinMaItem.HuodongID != songLiID) { return(-1030); } if (liPinMaItem.MaxNum > 0 && liPinMaItem.UsedNum >= liPinMaItem.MaxNum) { return(-1040); } if (liPinMaItem.PingTaiRepeat <= 0) { int pingTaiID = DBQuery.QueryPingTaiIDByHuoDongID(dbMgr, liPinMaItem.HuodongID, roleID, liPinMaItem.PingTaiID); if (pingTaiID == liPinMaItem.PingTaiID) { return(-10000); } } DBWriter.AddUsedLiPinMa(dbMgr, liPinMaItem.HuodongID, liPinMaItem.LiPinMa, liPinMaItem.PingTaiID, roleID); liPinMaItem.UsedNum++; usedNum = liPinMaItem.UsedNum; } DBWriter.UpdateLiPinMaUsedNum(dbMgr, liPinMa, usedNum); result = 0; } return(result); }
public WorkerTCPSocket(ServiceConfigurationSection config, Socket tcpSocket, DBWriter dbWriter, RawDataManager rawDataManager) { m_WorkerTCPSocketID = new Random().Next(); myDBWriter = dbWriter; myTCPSocket = tcpSocket; myRawDataManager = rawDataManager; myConfig = config; firstChunk = true; moreChunksExpected = false; dataBufferIndex = 0; emptyRxCount = 0; allChunksReceived = false; // Mark the age of this worker object connectionTime = DateTime.Now; packetParser = null; }