From c6ff92e84b6cb2815cb98065ecb0ecf95d0689c3 Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期三, 15 一月 2020 09:42:29 +0800 Subject: [PATCH] 2020-01-15-1 --- ZigbeeApp/Shared/Phone/Device/Logic/Send.cs | 227 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 180 insertions(+), 47 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs index e82a359..85f556e 100644 --- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs +++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs @@ -5,6 +5,8 @@ using ZigBee.Common; using Shared.Common; using System.Collections.Specialized; +using System.Net; +using System.IO; namespace Shared.Phone.Device.Logic { @@ -477,6 +479,7 @@ { ["Type"] = int.Parse(dictionary["Type"]), ["Account"] = dictionary["Account"], + ["AccountName"] = dictionary["AccountName"], ["UserId"] = dictionary["UserId"], }; @@ -508,6 +511,7 @@ { "Relationship",logic.Relationship} , { "LogicType",logic.LogicType} , { "LogicCustomPushText",logic.LogicCustomPushText} , + { "LogicIsCustomPushText",logic.LogicIsCustomPushText} , { "TimeAttribute", timeAttribute} , { "Conditions", conditions }, { "Actions", actions }, @@ -574,6 +578,7 @@ date.Add("LogicName", logic.LogicName); date.Add("Relationship", logic.Relationship); date.Add("LogicCustomPushText", logic.LogicCustomPushText); + date.Add("LogicIsCustomPushText", logic.LogicIsCustomPushText); mainGateWay?.Send("Logic/ReviseAttribute", jObject.ToString()); //await System.Threading.Tasks.Task.Run(async () => //{ @@ -621,6 +626,8 @@ logic.LogicName = Logicifon["LogicName"].ToString(); logic.LogicType = int.Parse(Logicifon["LogicType"].ToString()); logic.Relationship = int.Parse(Logicifon["Relationship"].ToString()); + logic.LogicCustomPushText =Logicifon["LogicCustomPushText"].ToString(); + logic.LogicIsCustomPushText = int.Parse(Logicifon["LogicIsCustomPushText"].ToString()); logic.TimeAttribute = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.TimeAttributeObj>(Logicifon["TimeAttribute"].ToString()); logic.Conditions = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(Logicifon["Conditions"].ToString()); logic.Accounts = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(Logicifon["Accounts"].ToString()); @@ -708,7 +715,7 @@ }); } // <summary> - /// 閫氳繃璁惧鎵惧埌鍖哄煙(鎴块棿)鍚嶇О + /// 閫氳繃璁惧鎵惧埌鍖哄煙(鎴块棿)鍚嶇О /// </summary> /// <param name="btnregionname">Btnregionname.</param> /// <param name="device">Device.</param> @@ -717,7 +724,11 @@ var room = new Common.Room(); btnregionname.Text = room.GetRoomNameByDevice(device); } - + /// <summary> + /// 鎵惧嚭妤煎眰鎵�鏈夋埧闂� + /// </summary> + /// <param name="floorId">妤煎眰ID</param> + /// <returns></returns> public static List<Common.Room> GetRoomList(string floorId) { return Common.Room.Lists.FindAll((obj) => obj.FloorId == floorId); @@ -744,8 +755,6 @@ /////杩斿洖鎴块棿鍒楄〃锛� //return list1; } - - /// <summary> /// 鑾峰彇鍦烘櫙淇℃伅鐨勬柟娉� /// </summary> @@ -917,6 +926,7 @@ { var list = new List<User>(); var s = await ReadUserList(doorlockMac); + //var s = await Data("璇诲彇浜戠闂ㄩ攣鏁版嵁", "/DoorLock/GetDoorLockPager", "POST", doorlockMac); var jObject = JObject.Parse(s); if (jObject == null || jObject["StateCode"].ToString() != "Success") { @@ -1007,48 +1017,7 @@ lockifon.doorlockmac = residential.doorlockmac; return await WebClientAsync(2, lockifon.Url, lockifon); } - - /// <summary> - /// 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶 - /// </summary> - /// <param name="postValues">post鍙傛暟</param> - /// <param name="url"></param> - /// <returns></returns> - public static async System.Threading.Tasks.Task<string> WebClientAsync(int value, string url, Residential residential = null) - { - - NameValueCollection postValues = new NameValueCollection(); - - if (value == 0) - { - postValues.Add("RequestVersion", CommonPage.RequestVersion); - postValues.Add("ReqDto.LoginAccessToken", Config.Instance.Token); - postValues.Add("ReqDto.PageSetting.PageSize", Int32.MaxValue.ToString());// - - } - else if (value == 1) - { - postValues.Add("RequestVersion", CommonPage.RequestVersion); - postValues.Add("LoginAccessToken", Config.Instance.Token); - postValues.Add("MainAccountId", residential.MainUserDistributedMark); - postValues.Add("SharedHid", residential.Id); - } - else if (value == 2) - { - postValues.Add("RequestVersion", CommonPage.RequestVersion); - postValues.Add("LoginAccessToken", residential.Token); - postValues.Add("HomeId", residential.Id); - postValues.Add("DoorLockId", residential.doorlockmac);//闂ㄩ攣Mac+绔彛 - postValues.Add("IsOtherAccountCtrl", residential.IsOtherAccountCtrl.ToString()); - postValues.Add("PageSetting.PageSize", Int32.MaxValue.ToString()); - } - System.Net.WebClient webClient = new System.Net.WebClient(); - byte[] responseArray = webClient.UploadValues(url, postValues); - var s = System.Text.Encoding.UTF8.GetString(responseArray); - return s; - - } - + #region 瀹氫箟瑙f瀽闂ㄩ攣鐨勫璞� public class Residential { /// <summary> @@ -1142,7 +1111,6 @@ public bool IsFreezeUser; } - /// <summary> /// 闂ㄩ攣鍒楄〃 /// </summary> @@ -1156,6 +1124,171 @@ /// </summary> public static UserCenter.MemberInfoRes UserMemberInfoRes = null; #endregion + #endregion + + /// <summary> + /// 鑷繁鐢� + /// </summary> + public static void Zj(bool tag, Common.Logic logic) + { + new System.Threading.Thread(() => + { + if (logic.LogicId != 0) + { + if (tag) + { + Data("娣诲姞/鏇存柊", "/App/HomeLogicConfig", "POST"); + } + else + { + Data("鍒犻櫎", "/App/DelHomeLogicConfig", "POST"); + } + ///鍙敼鎺ㄩ�佸唴瀹癸紱 + LogicControlSwitch(logic); + } + + }) + { IsBackground = true }.Start(); + } + #region 璇锋眰鏈嶅姟鍣ㄦ柟娉�--- + /// <summary> + /// 璇锋眰鏁版嵁鐨勫皝瑁呮柟娉� + /// </summary> + /// <param name="command">璇嗗埆鍛戒护鍒ゆ柇瀛楃涓�</param> + /// <param name="url">璇锋眰鍦板潃</param> + /// <param name="method">璇锋眰鏂瑰紡涓篜OST/GET</param> + /// <param name="obj">瀛樺偍鍙戦�佹暟鎹殑瀵硅薄</param> + /// <returns></returns> + public static async System.Threading.Tasks.Task<string> Data(string command, string url, string method, object obj = null) + { + var getUrl = ""; + var jObject = new JObject(); + if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 1) + { + getUrl = CommonPage.RequestHttpsHost + url;//璇锋眰鍦板潃锛� + jObject.Add("IsOtherAccountCtrl", false); + jObject.Add("LoginAccessToken", Config.Instance.Token); + } + else + { + getUrl = Config.Instance.AdminRequestBaseUrl + url;//璇锋眰鍦板潃锛� + jObject.Add("IsOtherAccountCtrl", true); + jObject.Add("LoginAccessToken", Config.Instance.AdminRequestToken); + } + switch (command) + { + case "娣诲姞/鏇存柊": + { + jObject.Add("RequestVersion", CommonPage.RequestVersion); + //jObject.Add("LoginAccessToken", Config.Instance.Token); + jObject.Add("HomeId", Config.Instance.HomeId); + jObject.Add("LogicID", Common.Logic.CurrentLogic.LogicId); + jObject.Add("PushUserIds", new JArray { Config.Instance.Guid }); + jObject.Add("PushContent", Common.Logic.CurrentLogic.LogicCustomPushText); + } + break; + case "鍒犻櫎": + { + jObject.Add("RequestVersion", CommonPage.RequestVersion); + //jObject.Add("LoginAccessToken", Config.Instance.Token); + jObject.Add("HomeId", Config.Instance.HomeId); + jObject.Add("LogicID", Common.Logic.CurrentLogic.LogicId); + } + break; + case "璇诲彇浜戠闂ㄩ攣鏁版嵁": + { + jObject.Add("RequestVersion", CommonPage.RequestVersion); + jObject.Add("HomeId", Config.Instance.HomeId); + jObject.Add("DoorLockId", obj.ToString());//闂ㄩ攣Mac+绔彛 + jObject.Add("PageSetting.PageSize", Int32.MaxValue.ToString()); + } + break; + + } + return await HttpWebRequest(getUrl, jObject.ToString(), method); + } + /// <summary> + /// 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶(鏀寔璇锋眰鏂瑰紡涓篜OST/GET) + /// </summary> + /// <param name="getUrl">璇锋眰鐨勫湴鍧�</param> + /// <param name="str">璇锋眰鏁版嵁</param> + /// <param name="method">璇锋眰鏂瑰紡涓篜OST/GET</param> + /// <param name="second">瓒呮椂鏃堕棿</param> + /// <returns></returns> + public static async System.Threading.Tasks.Task<string>HttpWebRequest(string getUrl, string str, string method,int second= 3) + { + HttpWebRequest request = WebRequest.Create(getUrl) as HttpWebRequest; //鍒涘缓璇锋眰 + request.Method = method; //璇锋眰鏂瑰紡涓篜OST/GET + request.ContentType = "application/json"; + request.Timeout = second * 1000;//瓒呮椂鏃堕棿 + if (method == "POST") + { + byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str); + request.ContentLength = jsonbyte.Length; + Stream postStream = request.GetRequestStream(); + postStream.Write(jsonbyte, 0, jsonbyte.Length); + postStream.Close(); + } + //鍙戦�佽姹傚苟鑾峰彇鐩稿簲鍥炲簲鏁版嵁 + HttpWebResponse res; + try + { + res = (HttpWebResponse)request.GetResponse(); + } + catch (WebException ex) + { + res = (HttpWebResponse)ex.Response; + } + StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); + string content = sr.ReadToEnd(); //鑾峰緱鍝嶅簲瀛楃涓� + return content; + } + /// <summary> + /// 璇锋眰鏈嶅姟鍣ㄧ殑鏂规硶 + /// </summary> + /// <param name="value">鍖哄垎鍙戦�佸懡浠ょ殑鏁版嵁鍒ゆ柇鍊�</param> + /// <param name="url">璇锋眰鐨勫湴鍧�</param> + /// <param name="residential">瑁呮暟鎹殑瀵硅薄</param> + /// <returns></returns> + public static async System.Threading.Tasks.Task<string> WebClientAsync(int value, string url, Residential residential = null) + { + NameValueCollection postValues = new NameValueCollection(); + switch (value) + { + case 0: + { + postValues.Add("RequestVersion", CommonPage.RequestVersion); + postValues.Add("ReqDto.LoginAccessToken", Config.Instance.Token); + postValues.Add("ReqDto.PageSetting.PageSize", Int32.MaxValue.ToString());// + } + break; + case 1: + { + postValues.Add("RequestVersion", CommonPage.RequestVersion); + postValues.Add("LoginAccessToken", Config.Instance.Token); + postValues.Add("MainAccountId", residential.MainUserDistributedMark); + postValues.Add("SharedHid", residential.Id); + + } + break; + case 2: + { + postValues.Add("RequestVersion", CommonPage.RequestVersion); + postValues.Add("LoginAccessToken", residential.Token); + postValues.Add("HomeId", residential.Id); + postValues.Add("DoorLockId", residential.doorlockmac);//闂ㄩ攣Mac+绔彛 + postValues.Add("IsOtherAccountCtrl", residential.IsOtherAccountCtrl.ToString()); + postValues.Add("PageSetting.PageSize", Int32.MaxValue.ToString()); + } + break; + } + //PrintKeysAndValues2(postValues); + System.Net.WebClient webClient = new System.Net.WebClient(); + byte[] responseArray = webClient.UploadValues(url, postValues); + var s = System.Text.Encoding.UTF8.GetString(responseArray); + return s; + } + #endregion #region 瀛樺彇鏈湴鏂囦欢鐨勬柟娉� ---鏆傛椂涓嶇敤鍚堝苟璇ユ柟娉�--- /// <summary> -- Gitblit v1.8.0