tzy
2021-05-25 65bcedda4d8e3ff6500dbf59a4e607d96e469375
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -452,6 +452,18 @@
            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 住宅部分
@@ -696,6 +708,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>
        /// 添加分享
@@ -930,6 +960,9 @@
        {
            try
            {
                //先清空推送ID,避免使用缓存的PushId为其它账号的情况,导致查询到其它账号的推送记录
                OnAppConfig.Instance.PushId = "";
                string deviceType = PhoneDeviceType.Android.ToString();
#if __IOS__
                deviceType = PhoneDeviceType.IOS.ToString();
@@ -2387,7 +2420,7 @@
        #endregion
        #region 萤石云SDK相关接口
        #region ■ 萤石云SDK相关接口_________________________
        /// <summary>
        /// 河东获取萤石云子账号token的接口
        /// </summary>
@@ -2400,7 +2433,7 @@
        #endregion
        #region 可视对讲
        #region ■ 可视对讲_________________________
        /// <summary>
        /// 检查住宅是否绑定丰林,并获取门口机列表
        /// </summary>
@@ -2414,5 +2447,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
    }
}