wxr
2021-07-01 43b0d5870d528f23ecd6aeceb6cfd4325188b46f
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -50,8 +50,8 @@
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("type", qType);
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("deviceId", new List<string>() { deviceId });
            d.Add("key", new List<string>() { deviceKey });
            d.Add("deviceId",  deviceId );
            d.Add("key",  deviceKey );
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_EnvironmentalSensorHistoricalData, requestJson);
@@ -74,8 +74,20 @@
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_ArmSensorHistoricalData, requestJson);
        }
        /// <summary>
        /// 读取最近一个月的数据
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetLastMonthHistory(string deviceId,string key)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("deviceId", deviceId);
            d.Add("key", key);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPost(NewAPI.Api_Post_SensorLastMonthHistoricalData, requestJson);
        }
        #endregion
@@ -452,13 +464,25 @@
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_UnbindWithAccount, requestJson).Code;
        }
        /// <summary>
        /// 根据账号,获取账号信息
        /// </summary>
        /// <param name="i_account">指定账号</param>
        /// <returns></returns>
        public ResponsePackNew GetMemberInfoByAccount(string i_account)
        {
            var pra = new { account = i_account };
            var requestJson = HttpUtil.GetSignRequestJson(pra);
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_GetMemberInfoByAccount, requestJson);
        }
        #endregion
        #region 住宅部分
        /// <summary>
        /// 获取住宅列表
        /// </summary>
        public string GetHomePager(HomeTypeEnum homeType = HomeTypeEnum.ALL)
        public string GetHomePager(HomeTypeEnum homeType = HomeTypeEnum.ALL,string homeId = "")
        {
            var requestJson = HttpUtil.GetSignRequestJson(new GetHomeListObj() { homeType = homeType.ToString() });
            var resultObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Gethomepager, requestJson);
@@ -473,28 +497,17 @@
                {
                    foreach (var home in homeList)
                    {
                        //var home = new RegionInfoRes()
                        //{
                        //    RegionID = mHome.Id,
                        //    Name = mHome.homeName,
                        //    IsOthreShare = mHome.IsOtherShare,
                        //    accountType = mHome.accountType,
                        //    isRemoteControl = mHome.isRemoteControl,
                        //    isBindGateway = mHome.isBindGateway,
                        //    longitude = mHome.longitude,
                        //    latitude = mHome.latitude,
                        //    deliverstatus = mHome.deliverstatus,
                        //    homeType = mHome.homeType,
                        //    regionUrl = mHome.regionUrl,
                        //    emqUrl = mHome.emqUrl,
                        //    homeRegionName = mHome.homeRegionName,
                        //    homeRegionId = mHome.homeRegionId,
                        //    Address = mHome.homeAddress,
                        //    isAllowCreateScene = mHome.isAllowCreateScene,
                        //};
                        if (home.isBindGateway)
                        {
                            UserInfo.Current.regionList.Add(home);
                            //新绑定的住宅,直接切换到新住宅
                            if (!string.IsNullOrEmpty(homeId))
                            {
                                if (homeId.Contains(home.id))
                                {
                                    DB_ResidenceData.Instance.CurrentRegion = home;
                                }
                            }
                        }
                    }
                    if(UserInfo.Current.regionList.Count== 0)
@@ -696,6 +709,24 @@
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Child_Update, requestJson);
        }
        /// <summary>
        /// 过户
        /// </summary>
        /// <param name="i_account">对方账号</param>
        /// <returns></returns>
        public bool TransferResidence(string i_account)
        {
            var pra2 = new
            {
                homeId = Entity.DB_ResidenceData.Instance.CurrentRegion.id,
                account = i_account
            };
            var requestJson = HttpUtil.GetSignRequestJson(pra2);
            var result = HttpUtil.RequestHttpsPost(NewAPI.API_Post_TransferResidence, requestJson);
            return result != null && result.Code == StateCode.SUCCESS;
        }
        #region 新数据分享
        /// <summary>
        /// 添加分享
@@ -885,8 +916,9 @@
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("debugPerm", debugPerm);
            string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_Post_Home_UpdateDebugPerm, jsonString);
            var jsonString = HttpUtil.GetSignRequestJson(d,d);
            var pack = HttpUtil.RequestHttpsPost(NewAPI.API_Post_Home_UpdateDebugPerm, jsonString);
            return pack;
        }
@@ -930,6 +962,9 @@
        {
            try
            {
                //先清空推送ID,避免使用缓存的PushId为其它账号的情况,导致查询到其它账号的推送记录
                OnAppConfig.Instance.PushId = "";
                string deviceType = PhoneDeviceType.Android.ToString();
#if __IOS__
                deviceType = PhoneDeviceType.IOS.ToString();
@@ -1010,7 +1045,8 @@
            var requestJson = HttpUtil.GetSignRequestJson(new GetMessageListObj()
            {
                pushId = OnAppConfig.Instance.PushId,
                pushType = pushType
                pushType = pushType,
                homeId = DB_ResidenceData.Instance.CurrentRegion.id,
            });
            return HttpUtil.RequestHttpsPost(NewAPI.API_POST_PushSerivce_Getpushmessagelist, requestJson);
        }
@@ -1275,6 +1311,9 @@
                            MainPage.cityInfo.pm25 = jt.GetValue("Air_Quality").ToString();
                            MainPage.cityInfo.windLevel = jt.GetValue("WindLevel").ToString();
                            MainPage.cityInfo.weather = jt.GetValue("Weather").ToString();
                            MainPage.cityInfo.lowestTemperature = jt.GetValue("lowestTemperature").ToString();
                            MainPage.cityInfo.highestTemperature = jt.GetValue("highestTemperature").ToString();
                            break;
                        }
                        catch (Exception ex)
@@ -1802,7 +1841,10 @@
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("productPlatform", productPlatform);
            d.Add("productBrand", productBrand);
            d.Add("networkConfig", true);
            if (productBrand != "MegaHealth")
            {
                d.Add("networkConfig", true);
            }
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieList, requestJson);
@@ -1821,10 +1863,29 @@
            d.Add("productBrand", productBrand);
            d.Add("networkConfig", true);
            
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Get3tyBrandDevcieList, requestJson);
        }
        /// <summary>
        /// 注册第三方设备
        /// </summary>
        /// <param name="productPlatform"></param>
        /// <param name="productBrand"></param>
        /// <returns></returns>
        public ResponsePackNew IndependentRegister3TyDevcie(string spk,string extDevId,string deviceName)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("spk", spk);
            d.Add("extDevId", extDevId);
            d.Add("name", deviceName);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_IndependentRegister3TyDevcie, requestJson);
        }
        /// <summary>
        /// 获取设备详情
@@ -2387,7 +2448,7 @@
        #endregion
        #region 萤石云SDK相关接口
        #region ■ 萤石云SDK相关接口_________________________
        /// <summary>
        /// 河东获取萤石云子账号token的接口
        /// </summary>
@@ -2400,9 +2461,9 @@
        #endregion
        #region 可视对讲
        #region ■ 可视对讲_________________________
        /// <summary>
        /// 检查住宅是否绑定丰林,并获取门口机列表
        /// 检查住宅是否绑定丰林
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew CheckFlVideo()
@@ -2414,5 +2475,142 @@
            return pack;
        }
        #endregion
        #region ■ 门锁相关____________________________
        /// <summary>
        /// 获取门锁历史记录(按日期降序)
        /// </summary>
        /// <param name="i_device">设备对象</param>
        /// <returns></returns>
        public List<Stan.DoorHistoryLog> GetDoorHistoryLogs(Function i_device)
        {
            //var dicPra = new Dictionary<string, object>();
            //dicPra.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            //dicPra.Add("deviceId", i_device.deviceId);
            //dicPra.Add("logType", "OPEN_DOOR");
            //dicPra.Add("pageSize", "200");
            //var requestJson = HttpUtil.GetSignRequestJson(dicPra);
            //var packData = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_DoorHistory, requestJson);
            //if (packData.Code != StateCode.SUCCESS)
            //{
            //    return null;
            //}
            //测试
            var listLog = new List<Stan.DoorHistoryLog>();
            for (int i = 1; i <= 3; i++)
            {
                var logInfo = new Stan.DoorHistoryLog { StrMsg = "电量低,请更换电池" };
                logInfo.Time = new DateTime(2000, 5, 6, 10, 45, 23).AddDays(i);
                listLog.Add(logInfo);
            }
            for (int i = 1; i <= 3; i++)
            {
                var logInfo = new Stan.DoorHistoryLog { StrMsg = "电量低,请更换电池" };
                logInfo.Time = new DateTime(2001, 5, 6, 10, 45, 23).AddDays(i);
                listLog.Add(logInfo);
            }
            for (int i = 1; i <= 3; i++)
            {
                var logInfo = new Stan.DoorHistoryLog { StrMsg = "电量低,请更换电池" };
                logInfo.Time = new DateTime(2002, 5, 6, 10, 45, 23).AddDays(i);
                listLog.Add(logInfo);
            }
            //按时间降序
            var listSortLog = new List<Stan.DoorHistoryLog>();
            foreach (var logInfo in listLog)
            {
                bool canAdd = true;
                for (int i = 0; i < listSortLog.Count; i++)
                {
                    if (logInfo.Time > listSortLog[i].Time)
                    {
                        //时间比当前的索引大,则插入到它的前面
                        listSortLog.Insert(i, logInfo);
                        canAdd = false;
                        break;
                    }
                }
                if (canAdd == true)
                {
                    //日期最小,则添加到末尾
                    listSortLog.Add(logInfo);
                }
            }
            //提示
            //IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
            return listSortLog;
        }
        #endregion
        #region ■ 音箱语言控制相关_________________________
        /// <summary>
        /// 获取已授权的音箱列表
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetSpeakerList()
        {
            var requestJson = HttpUtil.GetSignRequestJson(new GetSpeakerObj
            {
                homeId = DB_ResidenceData.Instance.CurrentRegion.id,
            });
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_List_Get, requestJson);
        }
        /// <summary>
        /// 编辑音箱授权备注
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew UpdateSpeakerRemark(UpdateSpeakerRemarkObj remarkObj)
        {
            var requestJson = HttpUtil.GetSignRequestJson(remarkObj);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_Remark_Update, requestJson);
        }
        /// <summary>
        /// 解除音箱绑定
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew UnbindSpeaker(string tokenId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("tokenId", tokenId);
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_Unbind, requestJson);
        }
        /// <summary>
        /// 获取音箱分配的设备和场景列表
        /// </summary>
        /// <param name="getType">0 是查询全部 1是查询设备 2是查询场景</param>
        /// <param name="tokenId"></param>
        /// <returns></returns>
        public ResponsePackNew GetSpeakerDeviceList(int getType, string tokenId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
            d.Add("tokenId", tokenId);
            if (getType > 0)
            {
                d.Add("isDevice", getType == 1);
            }
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_DeviceList_Get, requestJson);
        }
        /// <summary>
        /// 更新音箱控制的设备和场景目标
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew UpdateSpeakerDeviceList(UpdateSpeakerDeviceListObj updateSpeakerDeviceListObj)
        {
            var requestJson = HttpUtil.GetSignRequestJson(updateSpeakerDeviceListObj);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_Speaker_DeviceList_Update, requestJson);
        }
        #endregion
    }
}