From a170a2ecef6d5c87883ed552dbbc81cfb0358d13 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 19 十一月 2021 16:43:53 +0800 Subject: [PATCH] Merge branch 'WJC' into newBranch1 --- HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs | 158 ++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 128 insertions(+), 30 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs index 494a69d..3097608 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs @@ -4,35 +4,31 @@ using HDL_ON.DAL.Server; using Newtonsoft.Json.Linq; using System.Collections.Generic; +using HDL_ON.Entity; namespace HDL_ON.UI.UI2.Intelligence.Automation { public class Send { + /// <summary> - /// 缃戝叧ID(鑾峰彇鍢変箰缃戝叧ID) + /// 璋冪敤鑾峰彇浣忓畢瀛愯处鍙峰垪琛� /// </summary> - public static string GatewayId + public static List<ResidenceMemberInfo> GetResidenceMemberAccount() { - get + + var responePack = new HttpServerRequest().GetResidenceMemberAccount(); + if (responePack.Code == StateCode.SUCCESS) { - if (Entity.DB_ResidenceData.Instance.HomeGateway == null) - { - return DriverLayer.Control.Ins.GatewayId; - } - return Entity.DB_ResidenceData.Instance.HomeGateway.gatewayId; + return Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString()); } - } - - /// <summary> - /// 浣忓畢ID - /// </summary> - public static string HomeId - { - get + //澶辫触 + else { - return Entity.DB_ResidenceData.Instance.CurrentRegion.RegionID; + //鎻愮ず + IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code); } + return new List<ResidenceMemberInfo>(); } /// <summary> @@ -41,7 +37,7 @@ /// <returns></returns> public static ResponsePackNew GetLogicIdList() { - var jObject = new JObject { { "homeId", HomeId } }; + var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List); //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) @@ -110,6 +106,14 @@ conditionArray.Add(conditionJOb); } inputTypeJOb.Add("condition",conditionArray); + if (dictionary.condition_type=="8") { + ///鍦扮悊鍥存爮 + var geo_fencejob = new JObject(); + geo_fencejob.Add("longitude", dictionary.geo_fence.longitude); + geo_fencejob.Add("latitude", dictionary.geo_fence.latitude); + geo_fencejob.Add("radius", dictionary.geo_fence.radius); + inputTypeJOb.Add("geo_fence", geo_fencejob); + } inputArray.Add(inputTypeJOb); } @@ -118,6 +122,7 @@ { var outputTypeJOb = new JObject { }; outputTypeJOb.Add("sid", dictionary.sid); + outputTypeJOb.Add("delay", dictionary.delay); outputTypeJOb.Add("target_type", dictionary.target_type); var statusArray = new JArray { }; foreach (var dic in dictionary.status) @@ -131,33 +136,55 @@ outputArray.Add(outputTypeJOb); } + + var noticeConfigJObject = new JObject(); + noticeConfigJObject.Add("enable", logic.noticeConfig.enable); + noticeConfigJObject.Add("noticeContent", logic.noticeConfig.noticeContent); + + var pushConfigsArray = new JArray { }; + if (logic.pushConfigs.Count > 0) + { //聽鎺ㄩ�佹枃鏈� + foreach (var pushConfig in logic.pushConfigs) + { + + var pushConfigJob = new JObject { }; + pushConfigJob.Add("pushMethod", pushConfig.pushMethod); + var accountArray = new JArray { }; + foreach (var account in pushConfig.pushTarget) + { + accountArray.Add(account); + } + pushConfigJob.Add("pushTarget", accountArray); + pushConfigsArray.Add(pushConfigJob); + } + } + var logicjArray = new JArray { }; var logicIfon = new JObject { }; logicIfon.Add("sid", logic.sid); - logicIfon.Add("gatewayId", GatewayId); + logicIfon.Add("gatewayId", LogicMethod.CurrLogicMethod.GatewayId); logicIfon.Add("name", logic.name); logicIfon.Add("relation", logic.relation); logicIfon.Add("enable", logic.enable); logicIfon.Add("cycle", cycleJObject); logicIfon.Add("input", inputArray); logicIfon.Add("output", outputArray); + logicIfon.Add("noticeConfig", noticeConfigJObject); + logicIfon.Add("pushConfigs", pushConfigsArray); logicjArray.Add(logicIfon); - var jObject = new JObject { { "homeId", HomeId }, { "logics", logicjArray } }; - responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add); + var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId }, { "logics", logicjArray } }; + responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add,5); //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) { RefreshToken(); AddLogic(logic); } - } catch (Exception e) { var dd = e.Message; } - - return responsePackNew; } /// <summary> @@ -191,10 +218,22 @@ { var conditionJOb = new JObject { }; conditionJOb.Add("key", dic["key"]); - conditionJOb.Add("comparator", dic["comparator"]); + var c1 = ""; + dic.TryGetValue("comparator", out c1); + c1 = string.IsNullOrEmpty(c1) ? "" : c1; + conditionJOb.TryAdd("comparator", c1); conditionJOb.Add("data_type", dic["data_type"]); conditionJOb.Add("value", dic["value"]); conditionArray.Add(conditionJOb); + if (dictionary.condition_type == "8") + { + ///鍦扮悊鍥存爮 + var geo_fencejob = new JObject(); + geo_fencejob.Add("longitude", dictionary.geo_fence.longitude); + geo_fencejob.Add("latitude", dictionary.geo_fence.latitude); + geo_fencejob.Add("radius", dictionary.geo_fence.radius); + inputTypeJOb.Add("geo_fence", geo_fencejob); + } } inputTypeJOb.Add("condition", conditionArray); inputArray.Add(inputTypeJOb); @@ -205,6 +244,7 @@ { var outputTypeJOb = new JObject { }; outputTypeJOb.Add("sid", dictionary.sid); + outputTypeJOb.Add("delay", dictionary.delay); outputTypeJOb.Add("target_type", dictionary.target_type); var statusArray = new JArray { }; foreach (var dic in dictionary.status) @@ -218,20 +258,48 @@ outputArray.Add(outputTypeJOb); } + var noticeConfigJObject = new JObject(); + noticeConfigJObject.Add("enable", logic.noticeConfig.enable); + noticeConfigJObject.Add("noticeContent", logic.noticeConfig.noticeContent); + + var pushConfigsArray = new JArray { }; + if (logic.pushConfigs.Count > 0) + { + //聽鎺ㄩ�佹枃鏈� + foreach (var pushConfig in logic.pushConfigs) + { + + var pushConfigJob = new JObject { }; + pushConfigJob.Add("pushMethod", pushConfig.pushMethod); + var accountArray = new JArray { }; + foreach (var account in pushConfig.pushTarget) + { + accountArray.Add(account); + } + pushConfigJob.Add("pushTarget", accountArray); + pushConfigsArray.Add(pushConfigJob); + } + } + var logicjArray = new JArray { }; var logicIfon = new JObject { }; logicIfon.Add("userLogicId", logic.userLogicId); logicIfon.Add("sid", logic.sid); - logicIfon.Add("gatewayId", GatewayId); + logicIfon.Add("gatewayId", LogicMethod.CurrLogicMethod.GatewayId); logicIfon.Add("name", logic.name); logicIfon.Add("relation", logic.relation); logicIfon.Add("enable", logic.enable); logicIfon.Add("cycle", cycleJObject); logicIfon.Add("input", inputArray); logicIfon.Add("output", outputArray); + logicIfon.Add("noticeConfig", noticeConfigJObject); + logicIfon.Add("pushConfigs", pushConfigsArray); + logicjArray.Add(logicIfon); - var jObject = new JObject { { "homeId", HomeId }, { "logics", logicjArray } }; - responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update); + var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId }, { "logics", logicjArray } }; + + string str = jObject.ToString(); + responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update,5); //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) { @@ -243,8 +311,6 @@ { var dd = e.Message; } - - return responsePackNew; } /// <summary> @@ -284,6 +350,38 @@ } return responsePackNew; } + + + /// <summary> + /// 鑷姩鍖栧湴鐞嗗洿鏍忕姸鎬佷笂鎶� + /// </summary> + /// <param name="userLogicId">鑷姩鍖栦簯绔痠d<澶囨敞锛歭ogicSid涓巙serLogicId 涓嶈兘鍚屾椂涓虹┖></param> + /// <param name="logicSid">鑷姩鍖杝id<澶囨敞锛歭ogicSid涓巙serLogicId 涓嶈兘鍚屾椂涓虹┖></param> + /// <param name="direction">arrive:鍒拌揪(杩涘叆) leave锛氱寮�</param> + /// <returns></returns> + public static bool GeoFenceStateReport(string userLogicId, string logicSid, string direction) + { + var jObject = new JObject(); + jObject.Add("homeId", LogicMethod.CurrLogicMethod.HomeId); + jObject.Add("userLogicId", userLogicId); + jObject.Add("sid", logicSid); + jObject.Add("direction", direction); + var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_GeoFenceStateReport); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + GeoFenceStateReport(userLogicId, logicSid, direction); + } + if (responsePackNew.Code == "0") + { + //鎴愬姛 + return true; + } + //澶辫触 + return false; + } + /// <summary> ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� /// </summary> -- Gitblit v1.8.0