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