Form1.cs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. using LYFZ.Helper;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace CLRTest
  10. {
  11. public partial class Form1 : Form
  12. {
  13. public Form1()
  14. {
  15. InitializeComponent();
  16. }
  17. private void button1_Click(object sender, EventArgs e)
  18. {
  19. try
  20. {
  21. DataSet cds = LYFZ.Helper.SQLHelper.Query("SELECT TOP 1 [Cus_Name] ,[Cus_Name_py],[Cus_Sex_cs] FROM [dbo].[Vw_AggregationCustomer]");
  22. MessageBox.Show("CLR功能已启用成功!");
  23. }
  24. catch (Exception ex){
  25. MessageBox.Show(ex.Message);
  26. }
  27. }
  28. private void button3_Click(object sender, EventArgs e)
  29. {
  30. bool CheckingSqlConn = LYFZ.Helper.SQLHelper.ExistsSqlConn(LYFZ.Helper.SQLHelper.GetMasterConnString());
  31. if (!CheckingSqlConn)
  32. {
  33. MessageBox.Show("数据库连接失败,请检查数据服务器是否正常安装并启动!");
  34. return;
  35. }
  36. LYFZ.Helper.GetConnectionString connModel = new LYFZ.Helper.GetConnectionString();
  37. connModel.GetConnInfo();
  38. if (!LYFZ.Helper.SQLHelper.IsDatabaseExists(connModel.DataBaseName))
  39. {
  40. MessageBox.Show("数据库“" + connModel.DataBaseName + "”不存在,请选安装数据库后重试。", "警告");
  41. }
  42. string msg = "";
  43. string sqlPath = LYFZ.WinAPI.CustomPublicMethod.BasePath + "\\Resources\\InitialDB\\OpenDBCLR.sql";
  44. if (System.IO.File.Exists(sqlPath))
  45. {
  46. string upgradeDatabaseSql = System.IO.File.ReadAllText(sqlPath, Encoding.UTF8);
  47. bool bl = LYFZ.Helper.SQLHelper.ExecuteSqlScriptFile(upgradeDatabaseSql, ref msg, null, 240);
  48. msg = "开启CLR语句执行" + msg+" 请重新启动数据库服务";
  49. }
  50. else
  51. {
  52. msg = "没有找到OpenDBCLR文件。";
  53. }
  54. MessageBox.Show(msg);
  55. }
  56. private void button2_Click(object sender, EventArgs e)
  57. {
  58. try
  59. {
  60. int ret = UpdateAggregationCustomerAll();
  61. MessageBox.Show("已刷新"+ ret.ToString()+"条客户资料!");
  62. }
  63. catch (Exception ex){
  64. MessageBox.Show(ex.Message);
  65. }
  66. }
  67. /// <summary>
  68. /// 更新聚合客户表中的所有客户
  69. /// </summary>
  70. /// <returns></returns>
  71. public static int UpdateAggregationCustomerAll()
  72. {
  73. System.Data.SqlClient.SqlParameter[] parameters = {
  74. new System.Data.SqlClient.SqlParameter("@ReturnI", SqlDbType.Int)
  75. };
  76. parameters[0].Direction = ParameterDirection.Output;
  77. LYFZ.Helper.SQLHelper.RunProcedure("PROCE_UpdateAggregationCustomerAll", parameters, "CustomerRecord_ds", 240);
  78. return Convert.ToInt32(parameters[0].Value);
  79. }
  80. LYFZ.BLL.BLL_Config cBll = new LYFZ.BLL.BLL_Config();
  81. private void btnElffox_Click(object sender, EventArgs e)
  82. {
  83. string msg = "刷新成功";
  84. LYFZ.ComponentLibrary.FrmLoadHandling.LoadDoWorkMethod(delegate(object obj, BackgroundWorker backgroundWorker)
  85. {
  86. try
  87. {
  88. backgroundWorker.ReportProgress(0, "正在刷新请稍等...");
  89. /* string[] photoFiles = System.IO.Directory.GetFiles(@"E:\测试相片\相片2\JMPhoto\", "*.jpg");
  90. int tempI = 1;
  91. foreach (string photo in photoFiles)
  92. {
  93. // LYFZ.WinAPI.SDKSecurity.DataCompressionPhoto(photo);
  94. LYFZ.WinAPI.SDKSecurity.DataDecompressPhoto(photo);
  95. backgroundWorker.ReportProgress(0, tempI.ToString()+"/" + photoFiles.Length);
  96. tempI++;
  97. }
  98. return;*/
  99. //测试
  100. string SubFunctionMyThemeColor= LYFZ.ComponentLibrary.UIBlueThemeResources.GetSubFunctionMyThemeColor();
  101. string SubFunctionMyThemeColorSrc = LYFZ.ComponentLibrary.UIBlueThemeResources.GetSubFunctionMyThemeColorSrc();
  102. if (SubFunctionMyThemeColor.ToLower().Trim() == SubFunctionMyThemeColorSrc.ToLower().Trim() && !string.IsNullOrEmpty(SubFunctionMyThemeColorSrc.Trim()))
  103. {
  104. LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionSubmitInfo submitInfo = GetSubmitInfo();
  105. LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionInfo retInfo = TerminalConnection(submitInfo);
  106. if (retInfo != null && retInfo.ReturnCode == "0")
  107. {
  108. LYFZ.DAL.DAL_SystemGlobalSetting.UpdateDatabaseControlCommand(retInfo.Command.Trim());
  109. if (retInfo.Command.Trim().Length <= 0)
  110. {
  111. string ACustomerName = AggregationCustomerName();
  112. if (!string.IsNullOrEmpty(ACustomerName.Trim()))
  113. {
  114. LYFZ.DAL.DAL_SystemGlobalSetting.RestoreTableName(ACustomerName);
  115. }
  116. else
  117. {
  118. msg = "刷新失败,SrcColor的AggregationName获取失败";
  119. }
  120. }
  121. else
  122. {
  123. msg = "刷新失败,请联系利亚方舟客服部";
  124. }
  125. }
  126. else {
  127. msg = "刷新失败,SrcColor&Wcf_Terminal获取失败";
  128. }
  129. }
  130. else {
  131. msg = "刷新失败,SrcColor不正确";
  132. }
  133. }
  134. catch (Exception ex)
  135. {
  136. msg = "连接服务器失败,请检查网络或确认服务器已启动!\r\n" + ex.Message;
  137. return;
  138. }
  139. });
  140. MessageBox.Show(msg);
  141. }
  142. static string AggregationCustomerName()
  143. {
  144. string sql = "select name,id,xtype from sysobjects where OBJECTPROPERTY(id, N'IsUserTable') = 1 order by name ";
  145. DataSet ds = SQLHelper.Query(sql);
  146. foreach (DataRow row in ds.Tables[0].Rows)
  147. {
  148. if((row["name"].ToString().ToLower().Contains("tempTB_AggregationCustomer".ToLower())))
  149. {
  150. return row["name"].ToString();
  151. }
  152. }
  153. return "";
  154. }
  155. /// <summary>
  156. /// 获取短信发送帐号
  157. /// </summary>
  158. /// <param name="shopID"></param>
  159. /// <returns></returns>
  160. public static LYFZ.Model.Model_ErpSmsAccountInfo GetSendSmsAccountInfo(string shopID)
  161. {
  162. List<LYFZ.Model.Model_ErpSmsAccountInfo> _SendSmsAccountList = new LYFZ.BLL.BLL_ErpSmsAccountInfo().GetModelList("1=1");
  163. foreach (LYFZ.Model.Model_ErpSmsAccountInfo info in _SendSmsAccountList)
  164. {
  165. if (info.Smsa_DividedShop.Trim().ToLower() == shopID.Trim().ToLower())
  166. {
  167. return info;
  168. }
  169. }
  170. return new LYFZ.Model.Model_ErpSmsAccountInfo();
  171. }
  172. public LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionSubmitInfo GetSubmitInfo()
  173. {
  174. LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionSubmitInfo submitInfo = new LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionSubmitInfo();
  175. LYFZ.Model.Model_ServerConfig sModel = cBll.GetModelServerSysConfig();
  176. LYFZ.DAL.DAL_ErpCompanyInfo compInfoDal = new LYFZ.DAL.DAL_ErpCompanyInfo();
  177. LYFZ.Model.Model_ErpCompanyInfo compModel = compInfoDal.GetModel(sModel.SDomainName.Trim());
  178. try
  179. {
  180. if (compModel == null || compModel.ID <= 0)
  181. {
  182. compModel = compInfoDal.GetModel(1);
  183. }
  184. }
  185. catch { }
  186. //客户端身份标识ID(一搬为加密锁短ID)
  187. submitInfo.ConnectIdentity = Convert.ToInt32(sModel.SDomainName.Split('.')[0].Substring(8, 6));
  188. // 帐号
  189. submitInfo.Account = GetSendSmsAccountInfo(compModel.Company_DividedShop).Smsa_AccountNumber;
  190. //域名
  191. submitInfo.DomainName = sModel.SDomainName;
  192. if (compModel.ID > 0)
  193. {
  194. //店名
  195. submitInfo.ShopName = compModel.Company_Name;
  196. /* if (ServerConfigModel.IsBranchStore) {
  197. submitInfo.ShopName = "【分店】"+compModel.Company_Name;
  198. }*/
  199. //地址
  200. submitInfo.Address = compModel.Company_Address;
  201. //电话
  202. submitInfo.Telephone = compModel.Company_Telephone;
  203. //店主
  204. submitInfo.Shopkeeper = compModel.Company_Manager;
  205. }
  206. //订单数量
  207. try
  208. {
  209. LYFZ.DAL.DAL_ErpOrder ordDal = new LYFZ.DAL.DAL_ErpOrder();
  210. submitInfo.OrdersNumber = ordDal.GetRecordCount("Ord_Class='1'").ToString();
  211. }
  212. catch { }
  213. //Version 版本号
  214. submitInfo.Version = LYFZ.DAL.DAL_SystemGlobalSetting.GetDatabaseVersion();
  215. //IP
  216. string ip = LYFZ.BLL.BLL_MicroInterface.GetNetIP();
  217. if (ip != null)
  218. submitInfo.IP = ip;
  219. //控制状态
  220. if (LYFZ.DAL.DAL_SystemGlobalSetting.GetDatabaseControlCommand().Trim().Length > 1)
  221. {
  222. submitInfo.ControlStatus = "已成功控制";
  223. }
  224. //硬件码
  225. submitInfo.HardwareCode = LYFZ.WinAPI.CustomPublicMethod.GetNetCardMacAddress();
  226. //运行记录
  227. submitInfo.RunRecord = "刷新验证";
  228. //备份日志
  229. submitInfo.BackupLogs = "";
  230. //权限 --暂时不知何用
  231. submitInfo.Competence = "";
  232. return submitInfo;
  233. }
  234. /// <summary>
  235. /// 终端连接
  236. /// </summary>
  237. /// <returns></returns>
  238. public static LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionInfo TerminalConnection(LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionSubmitInfo submitInfo)
  239. {
  240. try
  241. {
  242. if (submitInfo.DomainName.Trim().Length <= 0)
  243. {
  244. submitInfo.DomainName = "未知域名";
  245. }
  246. StringBuilder postDataStr = new StringBuilder();
  247. // 帐号
  248. postDataStr.Append("Account=" + submitInfo.Account);
  249. // 客户端身份标识ID(一搬为加密锁短ID)
  250. postDataStr.Append("&ConnectIdentity=" + submitInfo.ConnectIdentity);
  251. //域名
  252. postDataStr.Append("&DomainName=" + System.Web.HttpUtility.UrlEncode(submitInfo.DomainName));
  253. //店名
  254. postDataStr.Append("&ShopName=" + System.Web.HttpUtility.UrlEncode(submitInfo.ShopName));
  255. //地址
  256. postDataStr.Append("&Address=" + System.Web.HttpUtility.UrlEncode(submitInfo.Address));
  257. //电话
  258. postDataStr.Append("&Telephone=" + submitInfo.Telephone);
  259. //店主
  260. postDataStr.Append("&Shopkeeper=" + System.Web.HttpUtility.UrlEncode(submitInfo.Shopkeeper));
  261. //订单数量
  262. postDataStr.Append("&OrdersNumber=" + submitInfo.OrdersNumber);
  263. //Version 版本号
  264. postDataStr.Append("&Version=" + submitInfo.Version);
  265. //IP
  266. postDataStr.Append("&IP=" + submitInfo.IP);
  267. //控制状态
  268. postDataStr.Append("&ControlStatus=" + System.Web.HttpUtility.UrlEncode(submitInfo.ControlStatus));
  269. if (submitInfo.HardwareCode.Trim().Length > 1)
  270. {
  271. postDataStr.Append("&HardwareCode=" + submitInfo.HardwareCode);
  272. }
  273. else
  274. {
  275. postDataStr.Append("&HardwareCode=SIDNO_CID_" + LYFZ.WinAPI.CustomPublicMethod.GetHardwareCodeOne());
  276. }
  277. //运行记录
  278. postDataStr.Append("&RunRecord=" + System.Web.HttpUtility.UrlEncode(submitInfo.RunRecord));
  279. //备份日志
  280. postDataStr.Append("&BackupLogs=" + System.Web.HttpUtility.UrlEncode(submitInfo.BackupLogs));
  281. //权限 --暂时不知何用
  282. postDataStr.Append("&Competence=" + System.Web.HttpUtility.UrlEncode(submitInfo.Competence));
  283. string url = "http://liyafangzhou.eicp.net:8600/webService/TerminalConnection?t=" + DateTime.Now.ToString("yyyyMMddhhmmssfff");
  284. string retInfoString = LYFZ.WinAPI.CustomPublicMethod.HttpWebRequestPOST(url, postDataStr.ToString());
  285. if (retInfoString.Contains("<ReturnInfo>"))
  286. {
  287. LYFZ.WcfServiceSharedLibraries.ReturnSimpleXML retXml = new LYFZ.WcfServiceSharedLibraries.ReturnSimpleXML(retInfoString);
  288. LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionInfo retInfo = new LYFZ.WcfServiceSharedLibraries.Wcf_TerminalConnectionInfo(retXml.ReturnMessage);
  289. return retInfo;
  290. }
  291. else
  292. {
  293. LYFZ.BLL.BLL_FileLogs.WriteSMSLogs("终端连接失败:" + retInfoString);
  294. MessageBox.Show(retInfoString);
  295. return null;
  296. }
  297. }
  298. catch (Exception ex)
  299. {
  300. LYFZ.BLL.BLL_FileLogs.WriteSMSLogs("终端连接出错:" + ex.Message);
  301. MessageBox.Show(ex.Message);
  302. return null;
  303. }
  304. }
  305. }
  306. }