using System; using System.Configuration; using System.Collections.Generic; using System.Diagnostics; using System.Data; using System.Linq; using System.IO; using System.Text; using System.Windows.Forms; using System.Net; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace SocketTransfer.SDK { public class CommonHelper { protected static string _OracleConnStrWeChat = ConfigurationManager.AppSettings["OracleConnStrWeChat"].ToString(); protected static string _OracleConnStr = ConfigurationManager.AppSettings["OracleConnStr"].ToString(); #region 方法 -> 获取传输类型 public static string GetSendType(int _ReceiveType) { switch (_ReceiveType) { case 0: return "EndAccount"; case 1: return "SellData"; case 2: return "CommoditySale"; case 3: return "Transfer_Sale"; case 4: return "WeChatPushDetail"; case 5: return "WeChatPushSale"; case 6: return "DataCollection"; default: return ""; } } #endregion #region 方法 -> 类对象更新事件 #region 插入结账数据 -> InsertEndAccount public static bool InsertEndAccount(EndAccountReceive _EndAccountReceive) { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_ENDACCOUNT_EX WHERE SERVERPARTCODE = '" + _EndAccountReceive.SERVERPARTCODE + "' AND TRANSFER_ID = " + _EndAccountReceive.TRANSFER_ID, "T_ENDACCOUNT").Tables[0].Rows.Count == 0) { try { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_EXCHANGE.T_ENDACCOUNT_EX ( ENDACCOUNT_EX_ID,ENDACCOUNT_STARTDATE,ENDACCOUNT_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE, ENDPERSONCODE,TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,CASH,CREDITCARD, TICKETBILL,VIPPERSON,COSTBILL,OTHERPAY,CASHPAY,FLAG,TRANSFER_ID) VALUES (HIGHWAY_EXCHANGE.SEQ_ENDACCOUNT_EX.NEXTVAL,TO_DATE('" + _EndAccountReceive.ENDACCOUNT_STARTDATE + "','YYYY/MM/DD HH24:MI:SS'),TO_DATE('" + _EndAccountReceive.ENDACCOUNT_DATE + "','YYYY/MM/DD HH24:MI:SS'),'" + _EndAccountReceive.SERVERPARTCODE + "','" + _EndAccountReceive.SHOPCODE + "','" + _EndAccountReceive.MACHINECODE + "','" + _EndAccountReceive.ENDPERSONCODE + "'," + _EndAccountReceive.TICKETCOUNT + "," + _EndAccountReceive.TOTALCOUNT + "," + _EndAccountReceive.TOTALSELLAMOUNT + "," + _EndAccountReceive.TOTALOFFAMOUNT + "," + _EndAccountReceive.CASH + "," + _EndAccountReceive.CREDITCARD + "," + _EndAccountReceive.TICKETBILL + "," + _EndAccountReceive.VIPPERSON + "," + _EndAccountReceive.COSTBILL + "," + _EndAccountReceive.OTHERPAY + "," + _EndAccountReceive.CASHPAY + "," + _EndAccountReceive.FLAG + "," + _EndAccountReceive.TRANSFER_ID + ")"); return true; } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertEndAccount)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//EndAccountListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _EndAccountReceive.Encoding.GetString(_EndAccountReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } else { return true; } } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertEndAccount)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//EndAccountListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _EndAccountReceive.Encoding.GetString(_EndAccountReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } #endregion #region 插入流水数据 -> InsertSellData public static bool InsertSellData(Transfer_SellDataReceive _Transfer_SellDataReceive) { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA WHERE SERVERPARTCODE = '" + _Transfer_SellDataReceive.SERVERPARTCODE + "' AND TRANSFER_ID = " + _Transfer_SellDataReceive.TRANSFER_ID, "T_TRANSFER_SELLDATA").Tables[0].Rows.Count == 0) { try { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_EXCHANGE.T_TRANSFER_SELLDATA ( TRANSFER_ID,SELLDATA_DATE,SERVERPARTCODE,SHOPCODE,MACHINECODE,TICKETCODE, WORKERCODE,SELLCOUNT,OFFPRICE,FACTAMOUNT,TRANSFER_FIRSTDATAS,TRANSFER_SECONDDATAS, TRANSFER_THIRDDATAS,TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS) VALUES (" + _Transfer_SellDataReceive.TRANSFER_ID + ",TO_DATE('" + _Transfer_SellDataReceive.SELLDATA_DATE + "','YYYY/MM/DD HH24:MI:SS'),'" + _Transfer_SellDataReceive.SERVERPARTCODE + "','" + _Transfer_SellDataReceive.SHOPCODE + "','" + _Transfer_SellDataReceive.MACHINECODE + "','" + _Transfer_SellDataReceive.TICKETCODE + "','" + _Transfer_SellDataReceive.WORKERCODE + "'," + _Transfer_SellDataReceive.SELLCOUNT + "," + _Transfer_SellDataReceive.OFFPRICE + "," + _Transfer_SellDataReceive.FACTAMOUNT + ",'" + _Transfer_SellDataReceive.TRANSFER_FIRSTDATAS + "','" + _Transfer_SellDataReceive.TRANSFER_SECONDDATAS + "','" + _Transfer_SellDataReceive.TRANSFER_THIRDDATAS + "','" + _Transfer_SellDataReceive.TRANSFER_FORTHDATAS + "','" + _Transfer_SellDataReceive.TRANSFER_FIFTHDATAS + "')"); return true; } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertSellData)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//SellDataListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _Transfer_SellDataReceive.Encoding.GetString(_Transfer_SellDataReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } else { return true; } } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertSellData)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//SellDataListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _Transfer_SellDataReceive.Encoding.GetString(_Transfer_SellDataReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } #endregion #region 插入单品数据 -> InsertCommoditySale public static bool InsertCommoditySale(CommoditySaleReceive _CommoditySaleReceive) { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_COMMODITYSALE_TS WHERE SERVERPARTCODE = '" + _CommoditySaleReceive.SERVERPARTCODE + "' AND TRANSFER_ID = " + _CommoditySaleReceive.TRANSFER_ID, "T_COMMODITYSALE").Tables[0].Rows.Count == 0) { try { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_EXCHANGE.T_COMMODITYSALE_TS (COMMODITYSALE_ID, STARTDATE,ENDDATE,SERVERPARTCODE,SHOPCODE,COMMODITY_TYPE,COMMODITY_CODE,COMMODITY_NAME, TICKETCOUNT,TOTALCOUNT,TOTALSELLAMOUNT,TOTALOFFAMOUNT,FLAG,TRANSFER_ID) VALUES (" + _CommoditySaleReceive.COMMODITYSALE_ID + ",TO_DATE('" + _CommoditySaleReceive.STARTDATE + "','YYYY/MM/DD HH24:MI:SS'),TO_DATE('" + _CommoditySaleReceive.ENDDATE + "','YYYY/MM/DD HH24:MI:SS'),'" + _CommoditySaleReceive.SERVERPARTCODE + "','" + _CommoditySaleReceive.SHOPCODE + "','" + _CommoditySaleReceive.COMMODITY_TYPE + "','" + _CommoditySaleReceive.COMMODITY_CODE + "','" + _CommoditySaleReceive.COMMODITY_NAME + "'," + _CommoditySaleReceive.TICKETCOUNT + "," + _CommoditySaleReceive.TOTALCOUNT + "," + _CommoditySaleReceive.TOTALSELLAMOUNT + "," + _CommoditySaleReceive.TOTALOFFAMOUNT + "," + _CommoditySaleReceive.FLAG + "," + _CommoditySaleReceive.TRANSFER_ID + ")"); return true; } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertCommoditySale)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//CommoditySaleListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _CommoditySaleReceive.Encoding.GetString(_CommoditySaleReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } else { return true; } } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertCommoditySale)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//CommoditySaleListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _CommoditySaleReceive.Encoding.GetString(_CommoditySaleReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } #endregion #region 插入单品数据 -> InsertTransfer_Sale public static bool InsertTransfer_Sale(Transfer_SaleReceive _Transfer_SaleReceive) { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_TRANSFER_SALE WHERE SERVERPARTCODE = '" + _Transfer_SaleReceive.SERVERPARTCODE + "' AND TRANSFER_ID = " + _Transfer_SaleReceive.TRANSFER_ID, "T_TRANSFER_SALE").Tables[0].Rows.Count == 0 && !string.IsNullOrEmpty(_Transfer_SaleReceive.TRANSFER_FIFTEENTHDATAS)) { try { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_EXCHANGE.T_TRANSFER_SALE (TRANSFER_ID,STARTDATE,ENDDATE, SERVERPARTCODE,SHOPCODE,TRANSFER_FIRSTDATAS,TRANSFER_SECONDDATAS,TRANSFER_THIRDDATAS, TRANSFER_FORTHDATAS,TRANSFER_FIFTHDATAS,TRANSFER_SIXTHDATAS,TRANSFER_SEVENTHDATAS, TRANSFER_EIGHTHDATAS,TRANSFER_NINTHTDATAS,TRANSFER_TENTHDATAS,TRANSFER_ELEVENTHDATAS, TRANSFER_TWELFTHDATAS,TRANSFER_THIRTEENTHDATAS,TRANSFER_FOURTEENTHDATAS,TRANSFER_FIFTEENTHDATAS) VALUES (" + _Transfer_SaleReceive.TRANSFER_ID + ",TO_DATE('" + _Transfer_SaleReceive.STARTDATE + "','YYYY/MM/DD HH24:MI:SS'),TO_DATE('" + _Transfer_SaleReceive.ENDDATE + "','YYYY/MM/DD HH24:MI:SS'),'" + _Transfer_SaleReceive.SERVERPARTCODE + "','" + _Transfer_SaleReceive.SHOPCODE + "','" + _Transfer_SaleReceive.TRANSFER_FIRSTDATAS + "','" + _Transfer_SaleReceive.TRANSFER_SECONDDATAS + "','" + _Transfer_SaleReceive.TRANSFER_THIRDDATAS + "','" + _Transfer_SaleReceive.TRANSFER_FORTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_FIFTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_SIXTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_SEVENTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_EIGHTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_NINTHTDATAS + "','" + _Transfer_SaleReceive.TRANSFER_TENTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_ELEVENTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_TWELFTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_THIRTEENTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_FOURTEENTHDATAS + "','" + _Transfer_SaleReceive.TRANSFER_FIFTEENTHDATAS + "')"); return true; } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertTransfer_Sale)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//Transfer_SaleListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _Transfer_SaleReceive.Encoding.GetString(_Transfer_SaleReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } else if (string.IsNullOrEmpty(_Transfer_SaleReceive.TRANSFER_FIFTEENTHDATAS)) { return false; } else { return true; } } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertTransfer_Sale)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//Transfer_SaleListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _Transfer_SaleReceive.Encoding.GetString(_Transfer_SaleReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } #endregion #region 插入推送数据 -> InsertWeChatPushDetail public static bool InsertWeChatPushDetail(WeChatPushDetailReceive _WeChatPushDetailReceive) { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStrWeChat.Split(',')[0], _OracleConnStrWeChat.Split(',')[1], _OracleConnStrWeChat.Split(',')[2], _OracleConnStrWeChat.Split(',')[3]); if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_STORAGE.T_WECHATPUSHDETAIL WHERE PROVINCE_CODE = '" + _WeChatPushDetailReceive.PROVINCE_CODE + "' AND WECHATPUSHDETAIL_ID = " + _WeChatPushDetailReceive.WECHATPUSHDETAIL_ID, "T_WECHATPUSHDETAIL").Tables[0].Rows.Count == 0) { try { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_STORAGE.T_WECHATPUSHDETAIL (PROVINCE_CODE, WECHATPUSHDETAIL_ID,RTWECHATPUSH_ID,DIRECTION_IDS,GROUP_TYPE,USER_NAME,STATISTICS_DATE, CURRENT_TOTALPRICE,CASHPAY,DIFFERENT_PRICE_MORE,DIFFERENT_PRICE_LESS,TICKETCOUNT, TOTALOFFAMOUNT,MOBILEPAYMENT,COMMODITY_COUNT,PASS_COUNT,TOTAL_COUNT,HOLIDAY_REVENUE, HOLIDAY_TICKETCOUNT,HOLIDAY_TOTALCOUNT,HOLIDAY_DAYS,PROMOTION_REVENUES,WEEK_REVENUE, WEEK_AVERAGEPRICE,WEEK_YEARONYEAR,MONTH_REVENUE,MONTH_AVERAGEPRICE,MONTH_YEARONYEAR, YEAR_REVENUE,YEAR_AVERAGEPRICE,YEAR_YEARONYEAR,YEAR_TOTALPRICE,MARKET_REVENUE, RESTAURANT_REVENUE,SNACK_REVENUE,OTHER_REVENUE,COMPREHENSIVE_REVENUE,THEME_REVENUE, STANDARD_REVENUE,PAKINGZONE_REVENUE,SERVERPART_REVENUE,WECHATPUSHDETAIL_DESC) VALUES ('" + _WeChatPushDetailReceive.PROVINCE_CODE + "'," + _WeChatPushDetailReceive.WECHATPUSHDETAIL_ID + "," + _WeChatPushDetailReceive.RTWECHATPUSH_ID + ",'" + _WeChatPushDetailReceive.DIRECTION_IDS + "'," + _WeChatPushDetailReceive.GROUP_TYPE + ",'" + _WeChatPushDetailReceive.USER_NAME + "',TO_DATE('" + _WeChatPushDetailReceive.STATISTICS_DATE + "','YYYY/MM/DD HH24:MI:SS')," + _WeChatPushDetailReceive.CURRENT_TOTALPRICE + "," + _WeChatPushDetailReceive.CASHPAY + "," + _WeChatPushDetailReceive.DIFFERENT_PRICE_MORE + "," + _WeChatPushDetailReceive.DIFFERENT_PRICE_LESS + "," + _WeChatPushDetailReceive.TICKETCOUNT + "," + _WeChatPushDetailReceive.TOTALOFFAMOUNT + "," + _WeChatPushDetailReceive.MOBILEPAYMENT + "," + _WeChatPushDetailReceive.COMMODITY_COUNT + "," + _WeChatPushDetailReceive.PASS_COUNT + "," + _WeChatPushDetailReceive.TOTAL_COUNT + "," + _WeChatPushDetailReceive.HOLIDAY_REVENUE + "," + _WeChatPushDetailReceive.HOLIDAY_TICKETCOUNT + "," + _WeChatPushDetailReceive.HOLIDAY_TOTALCOUNT + "," + _WeChatPushDetailReceive.HOLIDAY_DAYS + ",'" + _WeChatPushDetailReceive.PROMOTION_REVENUES + "'," + _WeChatPushDetailReceive.WEEK_REVENUE + "," + _WeChatPushDetailReceive.WEEK_AVERAGEPRICE + "," + _WeChatPushDetailReceive.WEEK_YEARONYEAR + "," + _WeChatPushDetailReceive.MONTH_REVENUE + "," + _WeChatPushDetailReceive.MONTH_AVERAGEPRICE + "," + _WeChatPushDetailReceive.MONTH_YEARONYEAR + "," + _WeChatPushDetailReceive.YEAR_REVENUE + "," + _WeChatPushDetailReceive.YEAR_AVERAGEPRICE + "," + _WeChatPushDetailReceive.YEAR_YEARONYEAR + "," + _WeChatPushDetailReceive.YEAR_TOTALPRICE + "," + _WeChatPushDetailReceive.MARKET_REVENUE + "," + _WeChatPushDetailReceive.RESTAURANT_REVENUE + "," + _WeChatPushDetailReceive.SNACK_REVENUE + "," + _WeChatPushDetailReceive.OTHER_REVENUE + "," + _WeChatPushDetailReceive.COMPREHENSIVE_REVENUE + "," + _WeChatPushDetailReceive.THEME_REVENUE + "," + _WeChatPushDetailReceive.STANDARD_REVENUE + "," + _WeChatPushDetailReceive.PAKINGZONE_REVENUE + ",'" + _WeChatPushDetailReceive.SERVERPART_REVENUE + "','" + _WeChatPushDetailReceive.WECHATPUSHDETAIL_DESC + "')"); return true; } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertWeChatPushDetail)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//WeChatPushDetailListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _WeChatPushDetailReceive.Encoding.GetString(_WeChatPushDetailReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } else { return true; } } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertWeChatPushDetail)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//WeChatPushDetailListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _WeChatPushDetailReceive.Encoding.GetString(_WeChatPushDetailReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } #endregion #region 插入推送详情 -> InsertWeChatPushSale public static bool InsertWeChatPushSale(WeChatPushSaleReceive _WeChatPushSaleReceive) { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStrWeChat.Split(',')[0], _OracleConnStrWeChat.Split(',')[1], _OracleConnStrWeChat.Split(',')[2], _OracleConnStrWeChat.Split(',')[3]); if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_STORAGE.T_WECHATPUSHSALES WHERE PROVINCE_CODE = '" + _WeChatPushSaleReceive.PROVINCE_CODE + "' AND WECHATPUSHSALES_ID = " + _WeChatPushSaleReceive.WECHATPUSHSALES_ID, "T_WECHATPUSHSALES").Tables[0].Rows.Count == 0) { try { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_STORAGE.T_WECHATPUSHSALES (WECHATPUSHSALES_ID,PROVINCE_CODE, WECHATPUSHDETAIL_ID,GROUP_TYPE,DATA_TYPE,FIRST_RANK,SECOND_RANK,THIRD_RANK,FOURTH_RANK, FIFTH_RANK,SIXTH_RANK,SEVENTH_RANK,EIGHTH_RANK,NINTH_RANK,TENTH_RANK,WECHATPUSHSALES_DESC) VALUES (" + _WeChatPushSaleReceive.WECHATPUSHSALES_ID + ",'" + _WeChatPushSaleReceive.PROVINCE_CODE + "'," + _WeChatPushSaleReceive.WECHATPUSHDETAIL_ID + "," + _WeChatPushSaleReceive.GROUP_TYPE + "," + _WeChatPushSaleReceive.DATA_TYPE + ",'" + _WeChatPushSaleReceive.FIRST_RANK + "','" + _WeChatPushSaleReceive.SECOND_RANK + "','" + _WeChatPushSaleReceive.THIRD_RANK + "','" + _WeChatPushSaleReceive.FOURTH_RANK + "','" + _WeChatPushSaleReceive.FIFTH_RANK + "','" + _WeChatPushSaleReceive.SIXTH_RANK + "','" + _WeChatPushSaleReceive.SEVENTH_RANK + "','" + _WeChatPushSaleReceive.EIGHTH_RANK + "','" + _WeChatPushSaleReceive.NINTH_RANK + "','" + _WeChatPushSaleReceive.TENTH_RANK + "','" + _WeChatPushSaleReceive.WECHATPUSHSALES_DESC + "')"); return true; } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertWeChatPushSale)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//WeChatPushSaleListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _WeChatPushSaleReceive.Encoding.GetString(_WeChatPushSaleReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } else { return true; } } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertWeChatPushSale)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//WeChatPushSaleListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _WeChatPushSaleReceive.Encoding.GetString(_WeChatPushSaleReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } #endregion #region 插入推送详情 -> InsertDataCollection public static bool InsertDataCollection(DataCollectionReceive _DataCollectionReceive) { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_DATACOLLECTION WHERE SERVERPARTCODE = '" + _DataCollectionReceive.SERVERPARTCODE + "' AND TRANSFER_ID = " + _DataCollectionReceive.TRANSFER_ID, "T_DATACOLLECTION").Tables[0].Rows.Count == 0) { try { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_EXCHANGE.T_DATACOLLECTION (DATACOLLECTION_ID, SERVERPARTCODE,SHOPCODE,MACHINECODE,MACADDRESS,MACHINENAME,DATACOLLECTION_TYPE, DATACOLLECTION_DATE,TOTAL_COUNT,TOTALSELL_AMOUNT,TICKET_COUNT,TICKET_INFO,TRANSFER_ID) VALUES (" + _DataCollectionReceive.TRANSFER_ID + ",'" + _DataCollectionReceive.SERVERPARTCODE + "','" + _DataCollectionReceive.SHOPCODE + "','" + _DataCollectionReceive.MACHINECODE + "','" + _DataCollectionReceive.MACADDRESS + "','" + _DataCollectionReceive.MACHINENAME + "'," + _DataCollectionReceive.DATACOLLECTION_TYPE + ",TO_DATE('" + _DataCollectionReceive.DATACOLLECTION_DATE + "','YYYY/MM/DD HH24:MI:SS')," + _DataCollectionReceive.TOTAL_COUNT + "," + _DataCollectionReceive.TOTALSELL_AMOUNT + "," + _DataCollectionReceive.TICKET_COUNT + ",'" + _DataCollectionReceive.TICKET_INFO + "'," + _DataCollectionReceive.TRANSFER_ID + ")"); return true; } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertDataCollection)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//DataCollectionListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _DataCollectionReceive.Encoding.GetString(_DataCollectionReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } else { return true; } } catch (Exception ex) { LogHelper.WriteReceiveLog("(InsertDataCollection)" + ex.Message); string dir = Application.StartupPath + "//ErrorData"; string fil = dir + "//DataCollectionListen" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".log"; if (!Directory.Exists(dir)) { System.IO.Directory.CreateDirectory(dir); } FileStream filestream = new FileStream(fil, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None); StreamWriter writer = new StreamWriter(filestream, System.Text.Encoding.Default); writer.BaseStream.Seek(0, SeekOrigin.End); writer.WriteLine("{0}", _DataCollectionReceive.Encoding.GetString(_DataCollectionReceive.Source).Trim('\0')); writer.Flush(); writer.Close(); filestream.Close(); return false; } } #endregion #region 插入心跳时间 -> InsertTransferTool public static bool InsertTransferTool(TransferTool _TransferTool) { try { OracleHelper _OracleHelper = new OracleHelper(_OracleConnStr.Split(',')[0], _OracleConnStr.Split(',')[1], _OracleConnStr.Split(',')[2], _OracleConnStr.Split(',')[3]); if (_OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM HIGHWAY_EXCHANGE.T_TRANSFERTOOL WHERE SERVERPARTCODE = '" + _TransferTool.SERVERPARTCODE + "'", "T_TRANSFERTOOL").Tables[0].Rows.Count == 0) { try { _OracleHelper.ExcuteSql(@"INSERT INTO HIGHWAY_EXCHANGE.T_TRANSFERTOOL ( TRANSFERTOOL_ID,SERVERPARTCODE,SERVERPART_NAME,TRANSFERTOOL_DATE,TRANSFERTOOL_DESC) VALUES (HIGHWAY_EXCHANGE.SEQ_TRANSFERTOOL.NEXTVAL,'" + _TransferTool.SERVERPARTCODE + "','" + _TransferTool.SERVERPART_NAME + "',TO_DATE('" + _TransferTool.TRANSFERTOOL_DATE + "','YYYY/MM/DD HH24:MI:SS'),'" + _TransferTool.TRANSFERTOOL_DESC + "')"); } catch { } } else { try { _OracleHelper.ExcuteSql("UPDATE HIGHWAY_EXCHANGE.T_TRANSFERTOOL SET TRANSFERTOOL_DATE = TO_DATE('" + _TransferTool.TRANSFERTOOL_DATE + "','YYYY/MM/DD HH24:MI:SS'),SERVERPART_NAME = '" + _TransferTool.SERVERPART_NAME + "',TRANSFERTOOL_DESC = '" + _TransferTool.TRANSFERTOOL_DESC + "' WHERE SERVERPARTCODE = '" + _TransferTool.SERVERPARTCODE + "'"); } catch { } } } catch { } return true; } #endregion #endregion #region 方法 -> 进程处理 public static bool ProcessExists(string ProcName) { bool Flag = false; Process[] processes = Process.GetProcessesByName(ProcName.Substring(0, ProcName.LastIndexOf('.'))); //同程序名的所有进程 foreach (Process p in processes)//判断当前进程中是否已有该程序 { if (p.MainModule.ModuleName == ProcName)//通过程序路径判断,而不能通过程序名判断 { string strVN = p.MainModule.FileVersionInfo.FileVersion; //获取进程中正在运行的这个程序的版本号 Flag = true; // 结束进程 break; } } return Flag; } public static void StartProc(string ProcName) { Process[] processes = Process.GetProcessesByName(ProcName.Substring(0, ProcName.LastIndexOf('.'))); //同程序名的所有进程 foreach (Process p in processes)//判断当前进程中是否已有该程序 { if (p.MainModule.ModuleName == ProcName)//通过程序路径判断,而不能通过程序名判断 { string strVN = p.MainModule.FileVersionInfo.FileVersion; //获取进程中正在运行的这个程序的版本号 p.Kill(); // 结束进程 } } //启动程序 Process.Start(ProcName); } public static void StartProc(string[] ProcNames) { foreach (string str in ProcNames) { StartProc(str); } } public static void KillProc(string ProcName) { Process[] processes = Process.GetProcessesByName(ProcName.Substring(0, ProcName.LastIndexOf('.'))); //同程序名的所有进程 foreach (Process p in processes)//判断当前进程中是否已有该程序 { if (p.MainModule.ModuleName == ProcName)//通过程序路径判断,而不能通过程序名判断 { string strVN = p.MainModule.FileVersionInfo.FileVersion; //获取进程中正在运行的这个程序的版本号 p.Kill(); // 结束进程 } } } public static void KillProc(string[] ProcNames) { foreach (string str in ProcNames) { KillProc(str); } } #endregion #region 方法 -> Get方式获取参数 public static string HttpPost(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); request.Method = "POST"; request.ContentType = "application/json; charset=utf-8"; request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr); StreamWriter writer = new StreamWriter(request.GetRequestStream()); writer.Write(postDataStr); writer.Flush(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); string encoding = response.ContentEncoding; if (encoding == null || encoding.Length < 1) { encoding = "UTF-8"; //默认编码 } StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)); string retString = reader.ReadToEnd(); return retString; } #endregion #region 方法 -> 获取通道秘钥 public static void GetAccess(string AppID, string AppSecret, TextBox access_token, TextBox LastTime, TextBox GetTime) { string url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + AppID + "&secret=" + AppSecret; //根据url创建HttpWebRequest对象 HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url); objRequest.Method = "get"; //读取服务器返回信息 HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse(); //using作为语句,用于定义一个范围,在此范围的末尾将释放对象 using (StreamReader sr = new StreamReader(objResponse.GetResponseStream())) { //ReadToEnd适用于小文件的读取,一次性的返回整个文件 JObject _JObject = (JObject)JsonConvert.DeserializeObject(sr.ReadToEnd()); try { access_token.Text = _JObject["access_token"].ToString(); LastTime.Text = _JObject["expires_in"].ToString(); GetTime.Text = DateTime.Now.ToString(); } catch (Exception ex) { LogHelper.WriteSendLog(ex.Message); string Message = "错误代码:" + _JObject["errcode"].ToString() + ",错误原因:" + _JObject["errmsg"].ToString(); LogHelper.WriteSendLog(Message); } sr.Close(); } } #endregion #region 方法 -> 检测表是否存在 public static void TableExists(OracleHelper _OracleHelper, string UserName, string TableName, string CreateTableSql) { //是否存在表 DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM DBA_TABLES WHERE OWNER = '" + UserName + "' AND TABLE_NAME = '" + TableName + "'").Tables[0]; if (_DataTable.Rows.Count == 0) { _OracleHelper.ExcuteSql(CreateTableSql); } } public static void SequenceExists(OracleHelper _OracleHelper, string UserName, string SequenceName) { //是否存在序列 DataTable _DataTable = _OracleHelper.ExcuteSqlGetDataSet("SELECT 1 FROM ALL_SEQUENCES WHERE SEQUENCE_OWNER = '" + UserName + "' AND SEQUENCE_NAME = '" + SequenceName + "'").Tables[0]; if (_DataTable.Rows.Count == 0) { _OracleHelper.ExcuteSql("CREATE SEQUENCE " + UserName + "." + SequenceName + " INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE CACHE 2 NOORDER"); } } #endregion #region 方法 -> 检测对象是否为空 public static bool ObjectEmpty(string[] _Object) { bool Flag = true; foreach (string STR in _Object) { if (string.IsNullOrEmpty(STR)) { Flag = false; } } return Flag; } #endregion #region 方法 -> 检测网站是否联通 public static bool ConnectState(string ConnectUrl) { try { // Creates an HttpWebRequest for the specified URL. HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(ConnectUrl); // 有些网站会阻止程序访问,需要加入下面这句 myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"; myHttpWebRequest.Method = "GET"; // Sends the HttpWebRequest and waits for a response. HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); if (myHttpWebResponse.StatusCode == HttpStatusCode.OK) { myHttpWebResponse.Close(); return true; } else { myHttpWebResponse.Close(); return false; } // Releases the resources of the response. } catch { return false; } } #endregion } }