private void save_config() { string str_detect = "N"; if (CheckDetect.Checked) { str_detect = "Y"; } BathClass.set_config_by_key(ConfigKeys.KEY_CHECK_DETECT, str_detect); string str_server = "N"; if (CheckServer.Checked) { str_server = "Y"; } BathClass.set_config_by_key(ConfigKeys.KEY_CHECK_SERVER, str_server); string str_auto = "N"; if (CheckAuto.Checked) { str_auto = "Y"; } BathClass.set_config_by_key(ConfigKeys.KEY_CHECK_AUTO, str_auto); string str_time = TextTimeLimit.Text.Trim(); if (str_time != "") { timeLimit = MConvert <int> .ToTypeOrDefault(str_time, -1); BathClass.set_config_by_key(ConfigKeys.KEY_TIME_LIMIT, str_time); } string str_money = TextMoneyLimit.Text.Trim(); if (str_money != "") { moneyLimit = MConvert <int> .ToTypeOrDefault(str_money, -1); BathClass.set_config_by_key(ConfigKeys.KEY_MONEY_LIMIT, str_money); } string str_checkSMS = "N"; if (CheckSMS.Checked) { str_checkSMS = "Y"; } BathClass.set_config_by_key(ConfigKeys.KEY_SMS_OPERATION, str_checkSMS); string str_smsPort = ""; if (cmbComPort.Enabled) { str_smsPort = cmbComPort.Text.Trim(); } if (str_smsPort != "") { BathClass.set_config_by_key(ConfigKeys.KEY_SMSPORT, str_smsPort); } string str_baudrate = ""; if (txtBoxBaudRate.Enabled) { str_baudrate = txtBoxBaudRate.Text.Trim(); } if (str_baudrate != "") { BathClass.set_config_by_key(ConfigKeys.KEY_SMSBAUD, str_baudrate); } }
private void BtnOk_Click(object sender, EventArgs e) { save_config(); #region 检测是否需要启动检测手牌异常线程 if (CheckDetect.Checked) { timeLimit = MConvert <int> .ToTypeOrDefault(TextTimeLimit.Text, -1); moneyLimit = MConvert <double> .ToTypeOrDefault(TextMoneyLimit.Text, -1); if (m_thread_detect == null) { m_thread_detect = new Thread(new ThreadStart(detect_unnormal_seat_thread)); m_thread_detect.IsBackground = true; m_thread_detect.Start(); } } #endregion #region 检测是否需要启动自动滚消费线程 if (CheckAuto.Checked) { if (m_thread_auto == null) { m_thread_auto = new Thread(new ThreadStart(order_auto_add_thread)); m_thread_auto.IsBackground = true; m_thread_auto.Start(); } } #endregion #region 检测是否需要启动UDP服务器线程 if (CheckServer.Checked) { if (udp_Server == null) { try { udp_Server = new UdpListenerPlus(Constants.LocalUdpPort); udp_Server.OnThreadTaskRequest += new UdpListenerPlus.ThreadTaskRequest(Handle_Udp_Msg); } catch (Exception) { if (udp_Server != null) { udp_Server.Stop(); udp_Server = null; } MessageBox.Show(this, "启动UDP服务器失败!", "信息"); } } else { udp_Server.Stop(); udp_Server = null; } } #endregion #region 启动云服务器上传线程 if (m_uploadCloud == null) { m_uploadCloud = new UploadCloud(connectionString); m_uploadCloud.start(); } #endregion #region 检测是否启用短信操控 if (CheckSMS.Checked) { BtnOk.Enabled = false; string port = IOUtil.get_config_by_key(ConfigKeys.KEY_SMSPORT); if (port != "") { comport = MConvert <uint> .ToTypeOrDefault(port.Substring(3, port.Length - 3), 0); } string str_baudrate = IOUtil.get_config_by_key(ConfigKeys.KEY_SMSBAUD); baudrate = MConvert <uint> .ToTypeOrDefault(str_baudrate, 0); string mobileType = ""; string CopyRightToCOM = ""; string CopyRight = "//上海迅赛信息技术有限公司,网址www.xunsai.com//"; if (SmsClass.Sms_Connection(CopyRight, comport, baudrate, out mobileType, out CopyRightToCOM) == 0) { MessageBox.Show("短信猫打开失败,请重新配置!"); BtnOk.Enabled = true; return; } m_thread_smsOpertion = new Thread(new ThreadStart(sms_operation_thread)); m_thread_smsOpertion.IsBackground = true; m_thread_smsOpertion.Start(); } #endregion this.WindowState = FormWindowState.Minimized; BtnOk.Enabled = true; }
//上传账单数据 private void run_account() { while (true) { try { var db = new BathDBDataContext(connectionString); long maxId = -1; var abandonIds = new List <long>(); var account_uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "Account"); if (account_uploadRecords != null) { maxId = MConvert <long> .ToTypeOrDefault(account_uploadRecords.maxId, -1); if (account_uploadRecords.abandonId != null) { var idArray = account_uploadRecords.abandonId.Split(Constants.SplitChar); abandonIds = Array.ConvertAll <string, long>(idArray, delegate(string s) { return(MConvert <long> .ToTypeOrDefault(s, -1)); }).ToList(); } } else { account_uploadRecords = new UploadRecords(); account_uploadRecords.tableName = "Account"; db.UploadRecords.InsertOnSubmit(account_uploadRecords); db.SubmitChanges(); } #region 更新abandonIds,去除掉夜审之前的,以免abandonIds过长 var maxTime = DateTime.Parse("2013-01-01 00:00:00"); if (db.ClearTable.Any()) { maxTime = db.ClearTable.Max(x => x.clearTime); } var max_passed_account_id = db.Account.Where(x => x.payTime <= maxTime).Max(x => x.id); abandonIds.RemoveAll(x => x <= max_passed_account_id); var _idArray = Array.ConvertAll <long, string>(abandonIds.ToArray(), delegate(long s) { return(s.ToString()); }); account_uploadRecords.abandonId = string.Join(Constants.SplitChar.ToString(), _idArray); db.SubmitChanges(); #endregion var accounts = db.Account.Where(x => x.id > maxId); var _accounts = db.Account.Where(x => x.payTime >= maxTime && x.abandon != null && !abandonIds.Contains(x.id)); accounts = accounts.Union(_accounts).Distinct(); bool changed = false; foreach (var account in accounts) { bool sucess = false; while (!sucess) { sucess = upload_json(BathClass.ConvertToJsonString(account), "account"); if (sucess) { changed = true; if (maxId < account.id) { maxId = account.id; account_uploadRecords.maxId = account.id; } if (account.abandon != null && account.id >= max_passed_account_id) { account_uploadRecords.abandonId += Constants.SplitChar + account.id.ToString(); } } } } if (changed) { db.SubmitChanges(); } } catch (System.Exception ex) { IOUtil.insert_file(BathClass.getErrorFileName(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "run_account" + ex.Message); } } }
//上传ClearTable数据 private void run_clearTable() { while (true) { try { var db = new BathDBDataContext(connectionString); long maxId = -1; DateTime clearTime = DateTime.Now; var uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "ClearTable"); if (uploadRecords != null) { maxId = MConvert <long> .ToTypeOrDefault(uploadRecords.maxId, -1); clearTime = MConvert <DateTime> .ToTypeOrDefault(uploadRecords.clearTime, clearTime); } else { uploadRecords = new UploadRecords(); uploadRecords.tableName = "ClearTable"; db.UploadRecords.InsertOnSubmit(uploadRecords); db.SubmitChanges(); } var clearTables = db.ClearTable.Where(x => x.id > maxId); var _clearTables = db.ClearTable.Where(x => x.id == maxId && x.clearTime != clearTime); clearTables = clearTables.Union(_clearTables).Distinct(); bool changed = false; foreach (var clearTable in clearTables) { bool sucess = false; while (!sucess) { sucess = upload_json(BathClass.ConvertToJsonString(clearTable), "ClearTable"); if (sucess) { changed = true; if (maxId < clearTable.id) { maxId = clearTable.id; uploadRecords.maxId = clearTable.id; } if (clearTable.clearTime != clearTime) { clearTime = clearTable.clearTime; uploadRecords.clearTime = clearTable.clearTime; } db.SubmitChanges(); } } } if (changed) { db.SubmitChanges(); } } catch (System.Exception ex) { } } }
//上传会员卡销售 private void run_cardSale() { while (true) { try { var db = new BathDBDataContext(connectionString); long maxId = -1; var abandonIds = new List <long>(); var uploadRecords = db.UploadRecords.FirstOrDefault(x => x.tableName == "CardSale"); if (uploadRecords != null) { maxId = MConvert <long> .ToTypeOrDefault(uploadRecords.maxId, -1); if (uploadRecords.abandonId != null) { var idArray = uploadRecords.abandonId.Split(Constants.SplitChar); abandonIds = Array.ConvertAll <string, long>(idArray, delegate(string s) { return(MConvert <long> .ToTypeOrDefault(s, -1)); }).ToList(); } } else { uploadRecords = new UploadRecords(); uploadRecords.tableName = "CardSale"; db.UploadRecords.InsertOnSubmit(uploadRecords); db.SubmitChanges(); } #region 更新abandonIds,去除掉夜审之前的,以免abandonIds过长 var maxTime = DateTime.Parse("2013-01-01 00:00:00"); if (db.ClearTable.Any()) { maxTime = db.ClearTable.Max(x => x.clearTime); } var max_passed_id = db.CardSale.Where(x => x.payTime <= maxTime).Max(x => x.id); abandonIds.RemoveAll(x => x <= max_passed_id); var _idArray = Array.ConvertAll <long, string>(abandonIds.ToArray(), delegate(long s) { return(s.ToString()); }); uploadRecords.abandonId = string.Join(Constants.SplitChar.ToString(), _idArray); db.SubmitChanges(); #endregion var cardSales = db.CardSale.Where(x => x.id > maxId); var _cardSales = db.CardSale.Where(x => x.payTime >= maxTime && x.abandon != null && !abandonIds.Contains(x.id)); cardSales = cardSales.Union(_cardSales).Distinct(); bool changed = false; foreach (var cardSale in cardSales) { bool sucess = false; while (!sucess) { sucess = upload_json(BathClass.ConvertToJsonString(cardSale), "CardSale"); if (sucess) { changed = true; if (maxId < cardSale.id) { maxId = cardSale.id; uploadRecords.maxId = cardSale.id; } if (cardSale.abandon != null && cardSale.id >= max_passed_id) { uploadRecords.abandonId += Constants.SplitChar + cardSale.id.ToString(); } } } } if (changed) { db.SubmitChanges(); } } catch (System.Exception ex) { } } }