From f14dcfd967404e197e7ec995ca8d6f2b090d3b7d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期五, 11 九月 2020 09:16:59 +0800
Subject: [PATCH] 优化多功能面板:绑定温湿度传感器目标,和设备列表回路显示。优化数据矫正功能温湿度度不设置的情况。优化门锁时间设置最后一天和最后最后一个月的时间显示等 细节

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs |   68 ++++++++++++++++++++++++++++-----
 1 files changed, 57 insertions(+), 11 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs
index 24b9780..3fade11 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlDeviceBindLogic.cs
@@ -76,7 +76,7 @@
             //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
             if (Common.Config.Instance.Home.IsVirtually == true)
             {
-                var listBind = ModelData.DeviceModelDataLogic.Current.GetDeviceBindList(device, "Bind/GetDeviceBind");
+                var listBind = TemplateData.TemplateDeviceDataLogic.Current.GetDeviceBindList(device);
                 return new BindObj.GetDeviceBindResponseAllData()
                 {
                     getAllBindResponseData = new BindObj.GetDeviceBindResponseData
@@ -177,7 +177,7 @@
             //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
             if (Common.Config.Instance.Home.IsVirtually == true)
             {
-                return ModelData.DeviceModelDataLogic.Current.AddDeviceBindList(addBindData, "Bind/GetDeviceBind");
+                return TemplateData.TemplateDeviceDataLogic.Current.AddDeviceBindList(addBindData, null);
             }
 
             var device = Common.LocalDevice.Current.GetDevice(addBindData.DeviceAddr, addBindData.Epoint);
@@ -191,8 +191,7 @@
             }
 
             //淇敼缂撳瓨
-            ModelData.DeviceModelDataLogic.Current.AddDeviceBindList(addBindData, "Bind/GetDeviceBind");
-
+            TemplateData.TemplateDeviceDataLogic.Current.AddDeviceBindList(addBindData, result.JsonData[0]);
             var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.AddedDeviceBindResponseData>(result.ReceiptData);
             return new BindObj.AddedDeviceBindResponseAllData() { addedDeviceBindResponseData = tempData };
         }
@@ -225,6 +224,53 @@
             jObject.Add("Data", data);
             return jObject.ToString();
         }
+
+        /// <summary>
+        ///璁惧缁戝畾銆愪竴瀵逛竴 缁戝畾锛屼竴涓寜閿洖璺彧鑳界粦瀹氫竴涓澶囥��
+        /// </summary>
+        public BindObj.AddedDeviceSingleBindResponseAllData AddDeviceSingleBindAsync(BindObj.AddSingleBindData addSingleBindData)
+        {
+            var device = Common.LocalDevice.Current.GetDevice(addSingleBindData.DeviceAddr, addSingleBindData.Epoint);
+            //鑾峰彇鍙戦�佺殑鍛戒护瀛楃
+            var sendData = this.GetAddDeviceListSingleBindCommandText(addSingleBindData);
+            //鍙戦�� 
+            var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway(device, "Bind/SetSingleBind", sendData, "Bind/SetSingleBind_Respon", 20);
+            if (result.ErrorMsg != null || result.ErrorMsgDiv == 0)
+            {
+                return null;
+            }
+
+            var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.AddedDeviceSingleBindResponseData>(result.ReceiptData);
+            return new BindObj.AddedDeviceSingleBindResponseAllData() { addedDeviceSingleBindResponseData = tempData };
+        }
+
+        /// <summary>
+        /// 鑾峰彇娣诲姞璁惧缁戝畾鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <param name="addBindData"></param>
+        /// <returns></returns>
+        public string GetAddDeviceListSingleBindCommandText(BindObj.AddSingleBindData addSingleBindData)
+        {
+            var jObject = new JObject { { "DeviceAddr", addSingleBindData.DeviceAddr }, { "Epoint", addSingleBindData.Epoint }, { "Cluster_ID", 0 }, { "Command", 5020 } };
+            var data = new JObject { };
+            var bindClusterList = new JArray { };
+            foreach (var cluster in addSingleBindData.BindClusterList)
+            {
+                bindClusterList.Add(cluster);
+            }
+            if (addSingleBindData.BindType == 0)
+            {
+                data = new JObject { { "BindName", addSingleBindData.BindName }, { "BindType", addSingleBindData.BindType }, { "BindClusterList", bindClusterList }, { "BindMacAddr", addSingleBindData.BindMacAddr }, { "BindEpoint", addSingleBindData.BindEpoint } };
+            }
+            else if (addSingleBindData.BindType == 1)
+            {
+                data = new JObject { { "BindName", addSingleBindData.BindName }, { "BindType", addSingleBindData.BindType }, { "BindClusterList", bindClusterList }, { "BindScenesId", addSingleBindData.BindScenesId } };
+
+            }
+            jObject.Add("Data", data);
+            return jObject.ToString();
+        }
+
 
         #endregion
 
@@ -420,7 +466,7 @@
             //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
             if (Common.Config.Instance.Home.IsVirtually == true)
             {
-                return ModelData.DeviceModelDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
+                return TemplateData.TemplateDeviceDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
             }
             var device = Common.LocalDevice.Current.GetDevice(delDeviceBindData.DeviceAddr, delDeviceBindData.Epoint);
             //鑾峰彇闇�瑕佸彂閫佺殑鏁版嵁
@@ -447,7 +493,7 @@
             }
 
             //淇敼缂撳瓨
-            ModelData.DeviceModelDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
+            TemplateData.TemplateDeviceDataLogic.Current.DeleteDeviceBindList(delDeviceBindData);
 
             return responseData;
         }
@@ -460,7 +506,7 @@
             //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
             if (Common.Config.Instance.Home.IsVirtually == true)
             {
-                return ModelData.DeviceModelDataLogic.Current.ClearDeviceAllBind(device);
+                return TemplateData.TemplateDeviceDataLogic.Current.ClearDeviceAllBind(device);
             }
 
             var jObject = new JObject { { "DeviceAddr", device.DeviceAddr }, { "Epoint", device.DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } };
@@ -472,7 +518,7 @@
             }
 
             //淇敼缂撳瓨
-            ModelData.DeviceModelDataLogic.Current.ClearDeviceAllBind(device);
+            TemplateData.TemplateDeviceDataLogic.Current.ClearDeviceAllBind(device);
 
             var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<BindObj.ClearBindInfoResponseData>(result.ReceiptData);
             return new BindObj.ClearBindInfoResponseAllData { clearBindInfoResponseData = tempData };
@@ -660,7 +706,7 @@
             //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
             if (Common.Config.Instance.Home.IsVirtually == true)
             {
-                return ModelData.DeviceModelDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, "SetWritableValue");
+                return TemplateData.TemplateDeviceDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, null);
             }
             //鑾峰彇鍙戦�佹暟鎹�
             var sendData = this.GetConfigureHdlKeyCommandText(device.DeviceAddr, device.DeviceEpoint, value, clusterID);
@@ -671,7 +717,7 @@
             }
 
             //淇敼缂撳瓨
-            ModelData.DeviceModelDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, "SetWritableValue");
+            TemplateData.TemplateDeviceDataLogic.Current.ConfigurePanelKeyModel(device, value, clusterID, result.JsonData[0]);
 
             var tempData = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.SetWritableValueResponData>(result.ReceiptData);
             return new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = tempData };
@@ -685,7 +731,7 @@
             //濡傛灉褰撳墠浣忓畢鏄櫄鎷熶綇瀹�
             if (Common.Config.Instance.Home.IsVirtually == true)
             {
-                return ModelData.DeviceModelDataLogic.Current.ReadPanelConfigureKeyModel(device);
+                return TemplateData.TemplateDeviceDataLogic.Current.ReadPanelConfigureKeyModel(device);
             }
 
             var JObject = new JObject {{ "DeviceAddr",device.DeviceAddr },{ "Epoint", device.DeviceEpoint },

--
Gitblit v1.8.0