From 47fbfe1cd58bb82b45dfc0a5398799bd856b1fb0 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期四, 25 十一月 2021 11:45:12 +0800 Subject: [PATCH] 2021-11-25=01 --- HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs | 134 ++++---- HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs | 3 HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs | 760 +++++++++++++++++++++++++------------------------- 3 files changed, 441 insertions(+), 456 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs index a260eab..ea0ee18 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs @@ -158,9 +158,8 @@ MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }); } - /// <summary> - /// 鍦扮悊鍥存爮View + /// 娣诲姞鍦扮悊鍥存爮 /// </summary> /// <param name="flMain">Fl main.</param> /// <param name="edit">If set to <c>true</c> edit.</param> @@ -170,9 +169,8 @@ ///閫氳繃璋冭瘯瀹濈粰鐨勭粡绾害<鏍囧噯GPS> double latitude = Entity.DB_ResidenceData.Instance.CurrentRegion.latitude;//绾害 double longitude = Entity.DB_ResidenceData.Instance.CurrentRegion.longitude;//缁忓害 - //WGS84鍧愭爣杞珮寰峰潗鏍� LogicMethod.CurrLogicMethod.WGS84_to_GCJ02(Entity.DB_ResidenceData.Instance.CurrentRegion.longitude, Entity.DB_ResidenceData.Instance.CurrentRegion.latitude, out longitude, out latitude); - int r = 500;//鍗婂緞 + int r = 500;//榛樿鍗婂緞 if (edit) { for (var i = 0; i < Logic.currlogic.input.Count; i++) @@ -192,18 +190,18 @@ //绂诲紑鍦扮偣 strname = Language.StringByID(StringId.likai); } - //鍐嶄竴娆$紪杈戝湴鐞嗗洿鏍�<鎺т欢鏆傛椂涓嶆敮鎸佹樉绀鸿褰曚笂涓�娆$殑鐘舵��> - //if (!string.IsNullOrEmpty(input.geo_fence.latitude) && !string.IsNullOrEmpty(input.geo_fence.longitude)) - //{ - // //绾害 - // var latitude1 = Convert.ToDouble(input.geo_fence.latitude); - // //缁忓害 - // var longitude1 = Convert.ToDouble(input.geo_fence.longitude); - // //鍗婂緞 - // r = int.Parse(input.geo_fence.radius); - // //WGS84鍧愭爣杞珮寰峰潗鏍� - // LogicMethod.CurrLogicMethod.WGS84_to_GCJ02(longitude1, latitude1, out longitude, out latitude); - //} + //鍐嶄竴娆$紪杈戝湴鐞嗗洿鏍� <鎺т欢鏆傛椂涓嶆敮鎸佹樉绀鸿褰曚笂涓�娆$殑鐘舵��> + if (!string.IsNullOrEmpty(input.geo_fence.latitude) && !string.IsNullOrEmpty(input.geo_fence.longitude)) + { + ////绾害 + //var latitude1 = Convert.ToDouble(input.geo_fence.latitude); + ////缁忓害 + //var longitude1 = Convert.ToDouble(input.geo_fence.longitude); + //鍗婂緞 + r = int.Parse(input.geo_fence.radius); + //WGS84鍧愭爣杞珮寰峰潗鏍� + //LogicMethod.CurrLogicMethod.WGS84_to_GCJ02(longitude1, latitude1, out longitude, out latitude); + } } } PublicInterface publicInterface = new PublicInterface(); @@ -237,37 +235,8 @@ ((BaseActivity)Application.Activity).SetPermission((result3) => { if (result3 == false) { return; } - //璋冪敤鏂规硶锛岃烦杞〉闈� - GDMapKit.Show((mLatitude, mLongitude, mRadius, name) => - { - //楂樺痉鍧愭爣杞琖GS84鍧愭爣(楂樺痉鍦板浘璁剧疆GPS) - double out_lng, out_lat; - LogicMethod.CurrLogicMethod.GCJ02_to_WGS84(mLongitude, mLatitude, out out_lng, out out_lat); - Input input = new Input(); - input.sid = LogicMethod.CurrLogicMethod.NewSid(); - input.condition_type = "8"; - Dictionary<string, string> dic = new Dictionary<string, string>(); - LogicMethod.CurrLogicMethod.dictionary(dic, "key", "direction"); - LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "="); - LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string"); - LogicMethod.CurrLogicMethod.dictionary(dic, "value", valueStr); - input.condition.Add(dic); - //绾害 - input.geo_fence.latitude = out_lat.ToString(); - //缁忓害 - input.geo_fence.longitude = out_lng.ToString(); - //鍗婂緞<鍗曚綅绫�> - input.geo_fence.radius = mRadius.ToString(); - AddCondition(input); - LogicMethod.CurrLogicMethod.RemoveAllView(); - AddLogic addLogic = new AddLogic(); - MainPage.BasePageView.AddChidren(addLogic); - addLogic.Show(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - - }, strname, Language.StringByID(StringId.save), true, latitude, longitude, r); - + Location(valueStr, strname, latitude, longitude, r); }, "android.permission.READ_PHONE_STATE"); }, "android.permission.WRITE_EXTERNAL_STORAGE"); @@ -275,40 +244,57 @@ #endif #if __IOS__ //璋冪敤鏂规硶锛岃烦杞〉闈� - GDMapKit.Show((mLatitude, mLongitude, mRadius, name) => - { - //楂樺痉鍧愭爣杞琖GS84鍧愭爣(楂樺痉鍦板浘璁剧疆GPS) - double out_lng, out_lat; - LogicMethod.CurrLogicMethod.GCJ02_to_WGS84(mLongitude, mLatitude, out out_lng, out out_lat); - - Input input = new Input(); - input.sid = LogicMethod.CurrLogicMethod.NewSid(); - input.condition_type = "8"; - Dictionary<string, string> dic = new Dictionary<string, string>(); - LogicMethod.CurrLogicMethod.dictionary(dic, "key", "direction"); - LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "="); - LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string"); - LogicMethod.CurrLogicMethod.dictionary(dic, "value", "arrive"); - input.condition.Add(dic); - //绾害 - input.geo_fence.latitude = out_lat.ToString(); - //缁忓害 - input.geo_fence.longitude = out_lng.ToString(); - //鍗婂緞<鍗曚綅绫�> - input.geo_fence.radius = mRadius.ToString(); - AddCondition(input); - LogicMethod.CurrLogicMethod.RemoveAllView(); - AddLogic addLogic = new AddLogic(); - MainPage.BasePageView.AddChidren(addLogic); - addLogic.Show(); - MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; - }, strname, Language.StringByID(StringId.save), true, latitude, longitude, r); + Location(valueStr, strname, latitude, longitude, r); #endif }); } + /// <summary> + /// 鍦扮悊鍥存爮View + /// </summary> + /// <param name="valueStr">杩涘叆(arrive)鎴栬�呯寮�(leave)</param> + /// <param name="strname"></param> + /// <param name="latitude">绾害</param> + /// <param name="longitude">缁忓害</param> + /// <param name="r">鍗婂緞(榛樿500绫�)</param> + private void Location(string valueStr, string strname, double latitude, double longitude, int r) + { + if (r == 0) + { + //鎸夐亾鐞嗚涓嶄細鍑虹幇 + r = 500; + } + //璋冪敤鏂规硶锛岃烦杞〉闈� + GDMapKit.Show((mLatitude, mLongitude, mRadius, name) => + { + //楂樺痉鍧愭爣杞琖GS84鍧愭爣(楂樺痉鍦板浘璁剧疆GPS) + double out_lng, out_lat; + LogicMethod.CurrLogicMethod.GCJ02_to_WGS84(mLongitude, mLatitude, out out_lng, out out_lat); + Input input = new Input(); + input.sid = LogicMethod.CurrLogicMethod.NewSid(); + input.condition_type = "8"; + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.CurrLogicMethod.dictionary(dic, "key", "direction"); + LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "="); + LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string"); + LogicMethod.CurrLogicMethod.dictionary(dic, "value", valueStr); + input.condition.Add(dic); + //绾害 + input.geo_fence.latitude = out_lat.ToString(); + //缁忓害 + input.geo_fence.longitude = out_lng.ToString(); + //鍗婂緞<鍗曚綅绫�> + input.geo_fence.radius = mRadius.ToString(); + AddCondition(input); + LogicMethod.CurrLogicMethod.RemoveAllView(); + AddLogic addLogic = new AddLogic(); + MainPage.BasePageView.AddChidren(addLogic); + addLogic.Show(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }, strname, Language.StringByID(StringId.save), true, latitude, longitude, r); + } /// <summary> /// 娣诲姞鏉′欢 /// </summary> diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs index 9a24726..9b788f2 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs @@ -864,7 +864,7 @@ { try { - //鑾峰彇閫昏緫ID鍒楄〃<澶囨敞:濡傛灉鍙拡瀵瑰綋鍓嶆墜鏈虹殑璇濓紝鍙互鐩存帴鎷跨紦瀛樻暟鎹嚜鍔ㄥ寲鍒楄〃閬嶅巻> + //鑾峰彇閫昏緫ID鍒楄〃锛岀洰鍓嶉拡瀵规墍鏈�<澶囨敞:濡傛灉鍙拡瀵瑰綋鍓嶆墜鏈虹殑璇濓紝鍙互鐩存帴鎷跨紦瀛樻暟鎹嚜鍔ㄥ寲鍒楄〃閬嶅巻> var idStr = Send.GetLogicIdList(); if (idStr.Code == "0" && idStr.Data != null && idStr.Data.ToString() != "") { @@ -905,6 +905,7 @@ //绂诲紑 direction = "leave"; } + ///閬嶅巻缂撳瓨鍒楄〃<涓嶄负绌鸿鏄庢暟鎹凡缁忔帹閫佽繃锛屼笉鍐嶆帹閫�> var isPush = pushList.Find((o) => o.homeId == HomeId && o.userId == UserInfo.Current.ID && o.userLogicId == logicDate.userLogicId && o.arriveOnLeave == direction); if (isPush == null) { diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs index 6019bb6..e52e8e3 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs @@ -8,408 +8,406 @@ namespace HDL_ON.UI.UI2.Intelligence.Automation { - public class Send + public class Send + { + + /// <summary> + /// 璋冪敤鑾峰彇浣忓畢瀛愯处鍙峰垪琛� + /// </summary> + public static List<ResidenceMemberInfo> GetResidenceMemberAccount() { - /// <summary> - /// 璋冪敤鑾峰彇浣忓畢瀛愯处鍙峰垪琛� - /// </summary> - public static List<ResidenceMemberInfo> GetResidenceMemberAccount() + var responePack = new HttpServerRequest().GetResidenceMemberAccount(); + if (responePack.Code == StateCode.SUCCESS) + { + return Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString()); + } + //澶辫触 + else + { + //鎻愮ず + IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code); + } + return new List<ResidenceMemberInfo>(); + } + /// <summary> + /// 鑾峰彇閫昏緫ID鍒楄〃 + /// </summary> + /// <returns></returns> + public static ResponsePackNew GetLogicIdList() + { + 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) + { + RefreshToken(); + GetLogicIdList(); + } + return responsePackNew; + } + /// <summary> + /// 鑾峰彇閫昏緫 + /// </summary> + /// <param name="listIdList">閫昏緫ID鍒楄〃</param> + /// <returns></returns> + public static ResponsePackNew GetLogic(List<string> listIdList) + { + var jArray = new JArray { }; + for (int i = 0; i < listIdList.Count; i++) + { + jArray.Add(listIdList[i]); + } + var jObject = new JObject { { "userLogicIds", jArray } }; + var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + GetLogic(listIdList); + } + return responsePackNew; + } + /// <summary> + /// 娣诲姞鑷姩鍖栧懡浠� + /// </summary> + /// <param name="logic"></param> + /// <returns></returns> + public static ResponsePackNew AddLogic(Logic logic) + { + ResponsePackNew responsePackNew = null; + try + { + var cycleJObject = new JObject { }; + var cyclevaluejArray = new JArray { }; + cycleJObject.Add("type", logic.cycle.type); + foreach (var dictionary in logic.cycle.value) { + cyclevaluejArray.Add(dictionary); + } + cycleJObject.Add("value", cyclevaluejArray); - var responePack = new HttpServerRequest().GetResidenceMemberAccount(); - if (responePack.Code == StateCode.SUCCESS) - { - return Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString()); - } - //澶辫触 - else - { - //鎻愮ず - IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code); - } - return new List<ResidenceMemberInfo>(); + var inputArray = new JArray { }; + foreach (var dictionary in logic.input) + { + var inputTypeJOb = new JObject { }; + inputTypeJOb.Add("sid", dictionary.sid); + inputTypeJOb.Add("condition_type", dictionary.condition_type); + + var conditionArray = new JArray { }; + foreach (var dic in dictionary.condition) + { + var conditionJOb = new JObject { }; + conditionJOb.Add("key", dic["key"]); + conditionJOb.Add("comparator", dic["comparator"]); + conditionJOb.Add("data_type", dic["data_type"]); + conditionJOb.Add("value", dic["value"]); + 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); } - /// <summary> - /// 鑾峰彇閫昏緫ID鍒楄〃 - /// </summary> - /// <returns></returns> - public static ResponsePackNew GetLogicIdList() + var outputArray = new JArray { }; + foreach (var dictionary in logic.output) { - 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) - { - RefreshToken(); - GetLogicIdList(); - } - return responsePackNew; - } - /// <summary> - /// 鑾峰彇閫昏緫 - /// </summary> - /// <param name="listIdList">閫昏緫ID鍒楄〃</param> - /// <returns></returns> - public static ResponsePackNew GetLogic(List<string> listIdList) - { - var jArray = new JArray { }; - for (int i = 0; i < listIdList.Count; i++) - { - jArray.Add(listIdList[i]); - } - var jObject = new JObject { { "userLogicIds", jArray } }; - var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) - { - RefreshToken(); - GetLogic(listIdList); - } - return responsePackNew; - } - /// <summary> - /// 娣诲姞鑷姩鍖栧懡浠� - /// </summary> - /// <param name="logic"></param> - /// <returns></returns> - public static ResponsePackNew AddLogic(Logic logic) - { - ResponsePackNew responsePackNew = null; - try - { - var cycleJObject = new JObject { }; - var cyclevaluejArray = new JArray { }; - cycleJObject.Add("type", logic.cycle.type); - foreach (var dictionary in logic.cycle.value) - { - cyclevaluejArray.Add(dictionary); - } - cycleJObject.Add("value", cyclevaluejArray); - - var inputArray = new JArray { }; - foreach (var dictionary in logic.input) - { - var inputTypeJOb = new JObject { }; - inputTypeJOb.Add("sid", dictionary.sid); - inputTypeJOb.Add("condition_type", dictionary.condition_type); - - var conditionArray = new JArray { }; - foreach (var dic in dictionary.condition) - { - var conditionJOb = new JObject { }; - conditionJOb.Add("key", dic["key"]); - conditionJOb.Add("comparator", dic["comparator"]); - conditionJOb.Add("data_type", dic["data_type"]); - conditionJOb.Add("value", dic["value"]); - 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); - } - - var outputArray = new JArray { }; - foreach (var dictionary in logic.output) - { - 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) - { - var statusJOb = new JObject { }; - statusJOb.Add("key", dic["key"]); - statusJOb.Add("value", dic["value"]); - statusArray.Add(statusJOb); - } - outputTypeJOb.Add("status", statusArray); - 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", 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", 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> - /// 缂栬緫鏇存柊閫昏緫 - /// </summary> - /// <param name="logic"></param> - /// <returns></returns> - public static ResponsePackNew UpdateLogic(Logic logic) - { - ResponsePackNew responsePackNew = null; - try - { - var cycleJObject = new JObject { }; - var cyclevaluejArray = new JArray { }; - cycleJObject.Add("type", logic.cycle.type); - foreach (var dictionary in logic.cycle.value) - { - cyclevaluejArray.Add(dictionary); - } - cycleJObject.Add("value", cyclevaluejArray); - - var inputArray = new JArray { }; - foreach (var dictionary in logic.input) - { - var inputTypeJOb = new JObject { }; - inputTypeJOb.Add("sid", dictionary.sid); - inputTypeJOb.Add("condition_type", dictionary.condition_type); - - var conditionArray = new JArray { }; - foreach (var dic in dictionary.condition) - { - - var conditionJOb = new JObject { }; - conditionJOb.Add("key", dic["key"]); - 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); - } - - var outputArray = new JArray { }; - foreach (var dictionary in logic.output) - { - 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) - { - var statusJOb = new JObject { }; - statusJOb.Add("key", dic["key"]); - statusJOb.Add("value", dic["value"]); - statusArray.Add(statusJOb); - } - outputTypeJOb.Add("status", statusArray); - 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", 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", 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) - { - RefreshToken(); - UpdateLogic(logic); - } - } - catch (Exception e) - { - var dd = e.Message; - } - return responsePackNew; - } - /// <summary> - /// 鍒犻櫎閫昏緫 - /// </summary> - /// <returns></returns> - public static ResponsePackNew DelLogic(Logic logic) - { - var jArray = new JArray { }; - jArray.Add(logic.userLogicId); - var jObject = new JObject { { "userLogicIds", jArray } }; - var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) - { - RefreshToken(); - DelLogic(logic); - } - return responsePackNew; - } - /// <summary> - /// 閫昏緫寮�鍏� - /// </summary> - /// <returns></returns> - public static ResponsePackNew SwitchLogic(Logic logic) - { - var jArray = new JArray { }; - var job = new JObject { { "userLogicId", logic.userLogicId } , { "enable", logic.enable } }; - jArray.Add(job); - var jObject = new JObject { { "logics", jArray } }; - var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Enable); - //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken - if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) - { - RefreshToken(); - SwitchLogic(logic); - } - return responsePackNew; + 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) + { + var statusJOb = new JObject { }; + statusJOb.Add("key", dic["key"]); + statusJOb.Add("value", dic["value"]); + statusArray.Add(statusJOb); + } + outputTypeJOb.Add("status", statusArray); + outputArray.Add(outputTypeJOb); } - /// <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) + 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) { - RefreshToken(); - GeoFenceStateReport(userLogicId, logicSid, direction); + accountArray.Add(account); } - if (responsePackNew.Code == "0") + pushConfigJob.Add("pushTarget", accountArray); + pushConfigsArray.Add(pushConfigJob); + } + } + + var logicjArray = new JArray { }; + var logicIfon = new JObject { }; + logicIfon.Add("sid", logic.sid); + 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", 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> + /// 缂栬緫鏇存柊閫昏緫 + /// </summary> + /// <param name="logic"></param> + /// <returns></returns> + public static ResponsePackNew UpdateLogic(Logic logic) + { + ResponsePackNew responsePackNew = null; + try + { + var cycleJObject = new JObject { }; + var cyclevaluejArray = new JArray { }; + cycleJObject.Add("type", logic.cycle.type); + foreach (var dictionary in logic.cycle.value) + { + cyclevaluejArray.Add(dictionary); + } + cycleJObject.Add("value", cyclevaluejArray); + + var inputArray = new JArray { }; + foreach (var dictionary in logic.input) + { + var inputTypeJOb = new JObject { }; + inputTypeJOb.Add("sid", dictionary.sid); + inputTypeJOb.Add("condition_type", dictionary.condition_type); + + var conditionArray = new JArray { }; + foreach (var dic in dictionary.condition) + { + + var conditionJOb = new JObject { }; + conditionJOb.Add("key", dic["key"]); + 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") { - //鎴愬姛 - return true; + ///鍦扮悊鍥存爮 + 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); } - //澶辫触 - return false; + } + inputTypeJOb.Add("condition", conditionArray); + inputArray.Add(inputTypeJOb); } - /// <summary> - ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� - /// </summary> - /// <returns></returns> - public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 3) + var outputArray = new JArray { }; + foreach (var dictionary in logic.output) { - var requestJson = HttpUtil.GetSignRequestJson(o); - return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); + 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) + { + var statusJOb = new JObject { }; + statusJOb.Add("key", dic["key"]); + statusJOb.Add("value", dic["value"]); + statusArray.Add(statusJOb); + } + outputTypeJOb.Add("status", statusArray); + outputArray.Add(outputTypeJOb); + } - } - /// <summary> - /// 璇锋眰鏈嶅姟鍣� - /// </summary> - /// <returns></returns> - public static ResponsePackNew RequestServer(object o, string api_Url) - { - var requestJson = HttpUtil.GetSignRequestJson(o); - return HttpUtil.RequestHttpsPost(api_Url, requestJson); + var noticeConfigJObject = new JObject(); + noticeConfigJObject.Add("enable", logic.noticeConfig.enable); + noticeConfigJObject.Add("noticeContent", logic.noticeConfig.noticeContent); - } - /// <summary> - /// 鍒锋柊Token - /// </summary> - public static void RefreshToken() + var pushConfigsArray = new JArray { }; + if (logic.pushConfigs.Count > 0) { - IMessageCommon.Current.StartRefreshToken(); + //聽鎺ㄩ�佹枃鏈� + 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", 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", 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) + { + RefreshToken(); + UpdateLogic(logic); + } + } + catch (Exception e) + { + var dd = e.Message; + } + return responsePackNew; + } + /// <summary> + /// 鍒犻櫎閫昏緫 + /// </summary> + /// <returns></returns> + public static ResponsePackNew DelLogic(Logic logic) + { + var jArray = new JArray { }; + jArray.Add(logic.userLogicId); + var jObject = new JObject { { "userLogicIds", jArray } }; + var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + DelLogic(logic); + } + return responsePackNew; + } + /// <summary> + /// 閫昏緫寮�鍏� + /// </summary> + /// <returns></returns> + public static ResponsePackNew SwitchLogic(Logic logic) + { + var jArray = new JArray { }; + var job = new JObject { { "userLogicId", logic.userLogicId }, { "enable", logic.enable } }; + jArray.Add(job); + var jObject = new JObject { { "logics", jArray } }; + var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Enable); + //濡傛灉鏄痶oken杩囨湡鍒欏埛鏂皌oken + if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) + { + RefreshToken(); + SwitchLogic(logic); + } + 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> + /// <returns></returns> + public static ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 3) + { + var requestJson = HttpUtil.GetSignRequestJson(o); + return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout); } + /// <summary> + /// 璇锋眰鏈嶅姟鍣� + /// </summary> + /// <returns></returns> + public static ResponsePackNew RequestServer(object o, string api_Url) + { + var requestJson = HttpUtil.GetSignRequestJson(o); + return HttpUtil.RequestHttpsPost(api_Url, requestJson); + + } + /// <summary> + /// 鍒锋柊Token + /// </summary> + public static void RefreshToken() + { + IMessageCommon.Current.StartRefreshToken(); + } + + } } -- Gitblit v1.8.0