From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码
---
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