wxr
2021-11-19 a170a2ecef6d5c87883ed552dbbc81cfb0358d13
HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -37,7 +37,7 @@
        /// <returns></returns>
        public static ResponsePackNew GetLogicIdList() 
        {
            var jObject = new JObject { { "homeId", LogicMethod.HomeId } };
            var jObject = new JObject { { "homeId", LogicMethod.CurrLogicMethod.HomeId } };
            var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List);
            //如果是token过期则刷新token
            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
@@ -106,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);
                }
@@ -114,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)
@@ -153,7 +162,7 @@
                var logicjArray = new JArray { };
                var logicIfon = new JObject { };
                logicIfon.Add("sid", logic.sid);
                logicIfon.Add("gatewayId", LogicMethod.GatewayId);
                logicIfon.Add("gatewayId", LogicMethod.CurrLogicMethod.GatewayId);
                logicIfon.Add("name", logic.name);
                logicIfon.Add("relation", logic.relation);
                logicIfon.Add("enable", logic.enable);
@@ -163,15 +172,14 @@
                logicIfon.Add("noticeConfig", noticeConfigJObject);
                logicIfon.Add("pushConfigs", pushConfigsArray);
                logicjArray.Add(logicIfon);
                var jObject = new JObject { { "homeId", LogicMethod.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);
                //如果是token过期则刷新token
                if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
                {
                    RefreshToken();
                    AddLogic(logic);
                }
                Console.WriteLine("添加逻辑===" + logicjArray);
            }
            catch (Exception e)
            {
@@ -210,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);
@@ -224,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)
@@ -243,7 +264,8 @@
                var pushConfigsArray = new JArray { };
                if (logic.pushConfigs.Count > 0)
                {   // 推送文本
                {
                    // 推送文本
                    foreach (var pushConfig in logic.pushConfigs)
                    {
@@ -263,7 +285,7 @@
                var logicIfon = new JObject { };
                logicIfon.Add("userLogicId", logic.userLogicId);
                logicIfon.Add("sid", logic.sid);
                logicIfon.Add("gatewayId", LogicMethod.GatewayId);
                logicIfon.Add("gatewayId", LogicMethod.CurrLogicMethod.GatewayId);
                logicIfon.Add("name", logic.name);
                logicIfon.Add("relation", logic.relation);
                logicIfon.Add("enable", logic.enable);
@@ -274,8 +296,10 @@
                logicIfon.Add("pushConfigs", pushConfigsArray);
                logicjArray.Add(logicIfon);
                var jObject = new JObject { { "homeId", LogicMethod.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);
                //如果是token过期则刷新token
                if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
                {
@@ -326,6 +350,38 @@
            }
            return responsePackNew;
        }
        /// <summary>
        /// 自动化地理围栏状态上报
        /// </summary>
        /// <param name="userLogicId">自动化云端id<备注:logicSid与userLogicId 不能同时为空></param>
        /// <param name="logicSid">自动化sid<备注:logicSid与userLogicId 不能同时为空></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);
            //如果是token过期则刷新token
            if (responsePackNew.Code == StateCode.TOKEN_EXPIRED)
            {
                RefreshToken();
                GeoFenceStateReport(userLogicId, logicSid, direction);
            }
            if (responsePackNew.Code == "0")
            {
                //成功
                return true;
            }
            //失败
            return false;
        }
        /// <summary>
        ///请求服务器(与住宅有关:例如;homeId) 
        /// </summary>