From bbaae33cad1dadaad27eeac712d30fff248bffa5 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期二, 17 三月 2020 17:46:25 +0800
Subject: [PATCH] 2020-03-17-2
---
ZigbeeApp/Shared/Phone/Device/Logic/Send.cs | 281 ++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 194 insertions(+), 87 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
old mode 100644
new mode 100755
index e82a359..c2fa1b9
--- a/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -5,12 +5,14 @@
using ZigBee.Common;
using Shared.Common;
using System.Collections.Specialized;
+using System.Net;
+using System.IO;
namespace Shared.Phone.Device.Logic
{
public class Send
{
- #region ----鑾峰彇Logic
+ #region ----Logic鎵�鏈夊彂閫佸懡浠�
/// <summary>
/// 鑾峰彇LogicId鐨勬柟娉�
/// </summary>
@@ -386,7 +388,7 @@
["Type"] = int.Parse(dictionary["Type"]),
["IsValid"] = int.Parse(dictionary["IsValid"]),
["AtHome"] = int.Parse(dictionary["AtHome"]),
- ["WhoSiteUId"] =dictionary["WhoSiteUId"],
+ ["WhoSiteUId"] = dictionary["WhoSiteUId"],
};
conditions.Add(diliInfo);
break;
@@ -508,6 +510,7 @@
{ "Relationship",logic.Relationship} ,
{ "LogicType",logic.LogicType} ,
{ "LogicCustomPushText",logic.LogicCustomPushText} ,
+ { "LogicIsCustomPushText",logic.LogicIsCustomPushText} ,
{ "TimeAttribute", timeAttribute} ,
{ "Conditions", conditions },
{ "Actions", actions },
@@ -574,6 +577,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 +625,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());
@@ -707,44 +713,6 @@
return listLogic;
});
}
- // <summary>
- /// 閫氳繃璁惧鎵惧埌鍖哄煙(鎴块棿)鍚嶇О
- /// </summary>
- /// <param name="btnregionname">Btnregionname.</param>
- /// <param name="device">Device.</param>
- public static void RoomNmae(Button btnregionname, CommonDevice device)
- {
- var room = new Common.Room();
- btnregionname.Text = room.GetRoomNameByDevice(device);
- }
-
- public static List<Common.Room> GetRoomList(string floorId)
- {
- return Common.Room.Lists.FindAll((obj) => obj.FloorId == floorId);
- //var list1 = new List<Common.Room>();
- /////鎵惧埌鏌愭ゼ灞傛埧闂村垪琛紱
- //var list = Common.Room.Lists.FindAll((obj) => obj.FloorId == floorId);
- //for (int i = 0; i < list.Count; i++)
- //{
- // if (str == "device")
- // {
- // if (list[i].DeviceUIList.Count != 0)
- // { ///杩囨护鎺夋病鏈夎澶囩殑鎴块棿
- // list1.Add(list[i]);
- // }
- // }
- // else
- // {
- // if (list[i].SceneUIList.Count != 0)
- // { ///杩囨护鎺夋病鏈夊満鏅殑鎴块棿
- // list1.Add(list[i]);
- // }
- // }
- //}
- /////杩斿洖鎴块棿鍒楄〃锛�
- //return list1;
- }
-
/// <summary>
/// 鑾峰彇鍦烘櫙淇℃伅鐨勬柟娉�
@@ -770,7 +738,7 @@
sceneui = new SceneUI();
sceneui.Name = jObjectdata["Data"]["ScenesName"].ToString();
sceneui.Id = int.Parse(jObjectdata["Data"]["ScenesId"].ToString());
-
+
}
};
var mainGateWay = ZbGateway.MainGateWay;
@@ -789,7 +757,7 @@
while ((DateTime.Now - dateTime).TotalMilliseconds < 3 * 1000)
{
await System.Threading.Tasks.Task.Delay(100);
- if (sceneui!=null)
+ if (sceneui != null)
{
break;
}
@@ -801,7 +769,7 @@
#endregion
#region ----鑾峰彇闂ㄩ攣
-
+
/// <summary>
/// 鑾峰彇鑷繁+鍏朵粬鎴愬憳淇℃伅
/// </summary>
@@ -852,7 +820,13 @@
if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3)
{
var pra = new UserCenter.MemberListInfoPra();
- string result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
+ string result = "";
+ if (AllUserIfon.Count != 0)
+ {
+ //鏈嶅姟杩斿洖鏉ユ病鏈夐棬閿佹垚鍛樹俊鎭紝娌℃湁蹇呰鍐嶅幓璇锋眰鎴愬憳鍒楄〃锛�
+ //鍘熷洜锛氳妭绾︽椂闂达紝浣撻獙鏁堟灉濂斤紱
+ result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
+ }
var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result);
for (int i = 0; i < listInfo.Count; i++)
{
@@ -943,7 +917,7 @@
{
string s = null;
var str = await WebClientAsync(0, CommonPage.RequestHttpsHost + "/App/GetHomePager");//涓嶅悓鍖哄煙鍩熷悕鍓嶇紑涓嶄竴鏍�
- // var str = await WebClientAsync(0, "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetHomePager");
+ // var str = await WebClientAsync(0, "https://global.hdlcontrol.com/HangZhouHdlCloudApi/App/GetHomePager");
var jObject = JObject.Parse(str);
if (jObject == null || jObject["StateCode"].ToString() != "Success")
{
@@ -1007,48 +981,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;
-
- }
-
+
public class Residential
{
/// <summary>
@@ -1157,6 +1090,163 @@
public static UserCenter.MemberInfoRes UserMemberInfoRes = null;
#endregion
+ /// <summary>
+ /// 鑷繁鐢ㄧ殑鍙戦�佺殑鏂规硶
+ /// </summary>
+ /// <param name="tag">鏍囪鏄偅鏉″懡浠�</param>
+ /// <param name="logic">閫昏緫瀵硅薄</param>
+ 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;
+ }
+ 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>
/// 鏂囦欢淇濆瓨
@@ -1191,5 +1281,22 @@
return System.Text.Encoding.UTF8.GetString(varByte);
}
#endregion
+
+ /// <summary>
+ /// 鍒ゆ柇瀛楀吀鏄惁瀛樺湪鐨勬柟娉�
+ /// </summary>
+ /// <param name="deviceConditionsInfo"></param>
+ /// <param name="Key"></param>
+ /// <param name="Value"></param>
+ public static void dictionary(Dictionary<string, string> deviceConditionsInfo, string Key, string Value)
+ {
+ if (deviceConditionsInfo.ContainsKey(Key))
+ {
+ deviceConditionsInfo.Remove(Key);
+ }
+ deviceConditionsInfo.Add(Key, Value);
+ }
+
+
}
}
--
Gitblit v1.8.0