From dc0309e64f02227d8e1468b7326c07955f804612 Mon Sep 17 00:00:00 2001 From: chenqiyang <1406175257@qq.com> Date: 星期三, 22 六月 2022 11:22:18 +0800 Subject: [PATCH] 修改引用路径 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs | 243 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 242 insertions(+), 1 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs index 17e781e..30dd911 100644 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlFirmwareUpdateLogic.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using System.Linq; using System.Text; using ZigBee.Device; @@ -693,6 +694,246 @@ #endregion + #region 鈻� 璇诲彇App鏈�浣庣増鏈琠___________________ + + /// <summary> + /// 璇诲彇App鏈�浣庣増鏈� + /// </summary> + public static void ReadAppLestVersion() + { + if (FirmwareUpdateResourse.AppNeedUpdateUrl != null) + { + //宸茬粡璇诲彇杩囦簡,鍒欎笉鍐嶈鍙� + return; + } + var pra = new Dictionary<string, string>(); + pra["version"] = Common.CommonPage.CodeIDString; + pra["appName"] = "EvoyoHome"; + var bodyData = GetSignRequestJson(Newtonsoft.Json.JsonConvert.SerializeObject(pra)); + //var url = "https://china-gateway.hdlcontrol.com/smart-footstone/app/appVersion/check"; + var url = "https://test-gz.hdlcontrol.com/smart-footstone/app/appVersion/check"; + var byteData = Common.CommonPage.Instance.DoRequestZigbeeHttpsInterface(url, Encoding.UTF8.GetBytes(bodyData), null); + if (byteData == null) + { + return; + } + try + { + var jobject = Newtonsoft.Json.Linq.JObject.Parse(Encoding.UTF8.GetString(byteData)); + if (jobject["code"].ToString() != "0") + { + return; + } + var strData = jobject["data"].ToString(); + FirmwareUpdateResourse.AppNeedUpdateUrl = string.Empty; + if (string.IsNullOrEmpty(strData) == true) { return; } + + var jobData = Newtonsoft.Json.Linq.JObject.Parse(strData); + //濡傛灉鏄己鍒跺崌绾х殑璇� + if (jobData["isEnforce"].ToString().ToLower() == "true") + { +#if iOS + FirmwareUpdateResourse.AppNeedUpdateUrl = jobData["iosUrl"].ToString(); +#endif +#if Android + FirmwareUpdateResourse.AppNeedUpdateUrl = jobData["androidUrl"].ToString(); +#endif + } + } + catch { } + } + + #endregion + + #region 鈻� 璇诲彇缃戝叧鏈�浣庣増鏈琠__________________ + + /// <summary> + /// 璇诲彇缃戝叧鏈�浣庣増鏈� + /// </summary> + public static void ReadGatewayLestVersion() + { + //姣忔鍒囨崲浣忓畢,閮戒細鍘昏鍙栦竴娆� + FirmwareUpdateResourse.ListGatewayNeedUpdate = new List<string>(); + + var listGateway = HdlGatewayLogic.Current.GetAllLocalGateway(); + foreach (var gw in listGateway) + { + var pra = new Dictionary<string, string>(); + pra["hardwareId"] = gw.LinuxHardVersion.ToString(); + pra["imagesId"] = gw.LinuxImageType.ToString(); + pra["version"] = gw.LinuxFirmwareVersion.ToString(); + var bodyData = GetSignRequestJson(Newtonsoft.Json.JsonConvert.SerializeObject(pra)); + //var url = "https://china-gateway.hdlcontrol.com/smart-footstone/app/appVersion/check"; + var url = "https://test-gz.hdlcontrol.com/smart-footstone/app/gateway-hardware/check"; + var byteData = Common.CommonPage.Instance.DoRequestZigbeeHttpsInterface(url, Encoding.UTF8.GetBytes(bodyData), null); + if (byteData == null) + { + return; + } + try + { + var jobject = Newtonsoft.Json.Linq.JObject.Parse(Encoding.UTF8.GetString(byteData)); + if (jobject["code"].ToString() != "0") + { + continue; + } + var strData = jobject["data"].ToString(); + if (string.IsNullOrEmpty(strData) == true) { return; } + + var jobData = Newtonsoft.Json.Linq.JObject.Parse(strData); + //濡傛灉鏄己鍒跺崌绾х殑璇� + if (jobData["isEnforce"].ToString().ToLower() == "true") + { + FirmwareUpdateResourse.ListGatewayNeedUpdate.Add(gw.GwId); + } + } + catch { } + } + } + + #endregion + + #region 鈻� 妫�娴嬭兘澶熸樉绀哄叕鍛奯__________________ + + /// <summary> + /// 妫�娴嬭兘澶熸樉绀哄叕鍛� + /// </summary> + public static bool CheckCanShowNotice() + { + //涓嶇鎴愪笉鎴愬姛,璇昏繃涓�娆′箣鍚庡氨涓嶅啀璇诲彇 + if (FirmwareUpdateResourse.ReadedNotice == true) + { + return false; + } + FirmwareUpdateResourse.ReadedNotice = true; +#if Android + var url = "https://developer.hdlcontrol.com/AnnouncementAndriod.html"; +#endif +#if iOS + var url = "https://developer.hdlcontrol.com/AnnouncementIos.html"; +#endif + + var byteData = Common.CommonPage.Instance.DoRequestZigbeeHttpsInterface(url, null, null, "GET"); + if (byteData == null) + { + //濡傛灉鏄�404,鍒欒繑鍥瀎alse + return false; + } + //鍔犺浇绯荤粺鍏憡 + var fileData = HdlFileLogic.Current.ReadFileTextContent(DirNameResourse.AppNoticeFile); + if (fileData == null) { fileData = string.Empty; } + + //鍔犱笂褰撳ぉ鏃ユ湡 + var strNotice = DateTime.Now.ToString("yyyyMMdd") + "\r\n" + Encoding.UTF8.GetString(byteData); + if (fileData == strNotice) + { + //鍏憡鍐呭涓�鑷�,鍒欎笉鎻愮ず + return false; + } + //濡傛灉鍏憡涓嶄竴鑷�,鎴栬�呭凡缁忚繃浜嗕竴澶�,鍒欐樉绀� + HdlFileLogic.Current.SaveTextToFile(DirNameResourse.AppNoticeFile, strNotice); + + return true; + } + + #endregion + + #region 鈻� 鏂颁簯绔闂瘑鍖檁____________________ + + /// <summary> + /// appKey(璁块棶浜戠鍥哄畾鐨勪笢瑗�) + /// </summary> + private const string APP_KEY = "HDL-HOME-APP-TEST"; + /// <summary> + /// 鎴戜篃涓嶇煡閬撹繖鏄粈涔堥涓滆タ + /// </summary> + private const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss"; + /// <summary> + /// 鑾峰彇褰撳墠鏃堕棿鎴冲��(璁块棶浜戠浣跨敤) + /// </summary> + /// <returns></returns> + private static string GetTimestamp() + { + System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 褰撳湴鏃跺尯 + return ((long)(DateTime.Now - startTime).TotalSeconds).ToString(); // 鐩稿樊绉掓暟 + } + + /// <summary> + /// MD5鍔犲瘑 + /// </summary> + /// <param name="signstr"></param> + /// <returns></returns> + private static string SignMD5Encrypt(string s) + { + byte[] sign = System.Security.Cryptography.MD5.Create().ComputeHash(Encoding.UTF8.GetBytes(s)); + string signstr = string.Empty; + foreach (byte item in sign) + { + signstr += item.ToString("X2"); + } + return signstr.ToLower(); + } + + /// <summary> + /// 鍩虹鏈嶅姟鐨勬帴鍙i兘瑕佹牎楠宻ign,璁$畻sign绛惧悕 + /// </summary> + /// <param name="i_BodyData">body鐨勬暟鎹�</param> + /// <returns></returns> + private static string GetSignRequestJson(string i_BodyData) + { + try + { + //1. 灏唌odel瀹炰綋杞负Dictionary<string, object> + var paramDictionary = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, object>>(i_BodyData); + //2. 璁$畻sign + if (paramDictionary != null) + { + paramDictionary.Add("appKey", APP_KEY); + paramDictionary.Add("timestamp", GetTimestamp()); + //2.1 瀛楀吀鍗囧簭 + paramDictionary = paramDictionary.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value); + //2.2 鎷兼帴鎸塙RL閿�煎 + string str = string.Empty; + foreach (KeyValuePair<string, object> item in paramDictionary) + { + if (item.Value == null) + { + //涓嶆牎楠� + continue; + } + string myValue = item.Value.ToString(); + if (myValue == string.Empty) + { + //绌哄瓧绗︿篃涓嶆牎楠� + continue; + } + if (item.Value is bool) + { + //浜戠閭e府娌欓洉璇碽ool绫诲瀷蹇呴』鐢ㄥ皬鍐� + myValue = myValue.ToLower(); + } + str += item.Key + "=" + myValue + "&"; + } + //2.3 鎷兼帴SECRET_KEY + str = str.Substring(0, str.Length - 1) + SECRET_KEY; + //2.4 MD5杞崲+杞皬鍐� + var signstr = SignMD5Encrypt(str); + paramDictionary.Add("sign", signstr); + return Newtonsoft.Json.JsonConvert.SerializeObject(paramDictionary); + } + else + { + return ""; + } + } + catch + { + return ""; + } + } + + #endregion + #region 鈻� 涓�鑸柟娉昣__________________________ /// <summary> @@ -711,6 +952,6 @@ Info.UpdateContent.AddRange(Arry); } - #endregion +#endregion } } -- Gitblit v1.8.0