using Aliyun.Acs.Sms.Model.V20160927; using ProtoCSStruct; using Sog; namespace Operation { public class WebsiteSvc { private static long m_lastTickTime; private static string GetSaveFileName() { return "./Operation_Website_" + OperationServerUtils.GetApp().ServerID.ToString() + ".fdb"; } /// /// 保存到数据库,存本地文件 /// public static void SaveDataToFile() { ref var data = ref OperationServerUtils.GetOperationServerData().m_operationWebsite; string filename = GetSaveFileName(); int iRet = Sog.IO.FileDBSave.SaveToFile(ref data, filename); if (iRet != 0) { TraceLog.Error("WebsiteSvc.SaveDataToFile save file {0} error ,ret {1}", filename, iRet); return; } TraceLog.Trace("WebsiteSvc.SaveDataToFile save file {0} success", filename); } public static void LoadDataFromFile() { string filename = GetSaveFileName(); TraceLog.Trace("WebsiteSvc.LoadDataFromFile load now file {0}", filename); ref var data = ref OperationServerUtils.GetOperationServerData().m_operationWebsite; bool success = Sog.IO.FileDBSave.ReadFromFile(ref data, filename); if (success) { TraceLog.Trace("WebsiteSvc.LoadDataFromFile load file {0} success, DailySendTime {1}" , filename, data.DailySendTime); } } public static void OnTick(long nowMs) { //50秒一次 var tail = 5000 * 10; if (nowMs - m_lastTickTime < tail) { return; } m_lastTickTime = nowMs; SaveDataToFile(); } public static int UpdateNoticeSeq() { ref var data = ref OperationServerUtils.GetOperationServerData().m_operationWebsite; data.NoticeSeq++; return data.NoticeSeq; } public static void Commit() { SaveDataToFile(); PlayerPresetOp.UpdateVersion(); } } };