HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2020-12-31 fe3b2466c68b5db70d38e78039703add3b8b1dfe
ZigbeeApp/Shared/Phone/ZigBee/Device/DoorLock.cs
@@ -6,6 +6,7 @@
using Newtonsoft.Json.Linq;
using Shared;
using Shared.Common;
using Shared.Common.ResponseEntity;
using Shared.Phone.UserCenter;
namespace ZigBee.Device
@@ -33,7 +34,7 @@
        public string currentUserDisplayMethod = string.Empty;//当前用户显示方式
        //本地所有账户列表
        public List<Shared.Phone.MemberInfoRes> localAllAccountList = new List<Shared.Phone.MemberInfoRes> { };
        public List<Shared.Phone.UserCenter.MemberInfoRes> localAllAccountList = new List<Shared.Phone.UserCenter.MemberInfoRes> { };
        /// <summary>
        /// 是否常开模式 
@@ -475,16 +476,15 @@
            return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<GetDoorLockTempPasswordDataRes>>)(async () =>
            {
                GetDoorLockTempPasswordDataRes listInfo = null;
                //☆マーク☆
                //var revertObj = await SendDoorLockToServer(RequestName, getDoorLockTempPasswordData);
                //if (revertObj != null && revertObj.ResponseData != null)
                //{
                //    var result = revertObj.ResponseData.ToString();
                //    if (result != null)
                //    {
                //        listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetDoorLockTempPasswordDataRes>(result);
                //    }
                //}
                var revertObj = await SendDoorLockToServer(RequestName, getDoorLockTempPasswordData);
                if (revertObj != null && revertObj.ResponseData != null)
                {
                    var result = revertObj.ResponseData.ToString();
                    if (result != null)
                    {
                        listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetDoorLockTempPasswordDataRes>(result);
                    }
                }
                return listInfo;
            }));
        }
@@ -597,16 +597,15 @@
            return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<GetDoorLockDataRes>>)(async () =>
            {
                GetDoorLockDataRes listInfo = null;
                //☆マーク☆
                //var revertObj = await SendDoorLockToServer(RequestName, getDoorLockData);
                //if (revertObj != null && revertObj.ResponseData != null)
                //{
                //    var result = revertObj.ResponseData.ToString();
                //    if (result != null)
                //    {
                //        listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetDoorLockDataRes>(result);
                //    }
                //}
                var revertObj = await SendDoorLockToServer(RequestName, getDoorLockData);
                if (revertObj != null && revertObj.ResponseData != null)
                {
                    var result = revertObj.ResponseData.ToString();
                    if (result != null)
                    {
                        listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<GetDoorLockDataRes>(result);
                    }
                }
                return listInfo;
            }));
        }
@@ -618,7 +617,7 @@
        /// <returns>获取从接口那里取到的ResponsePack</returns>
        /// <param name="RequestName">访问地址</param>
        /// <param name="obj">一个类</param>
        public static async Task<Shared.Phone.ResponsePack> SendDoorLockToServer(string RequestName, object obj)
        public static async Task<ResponsePack> SendDoorLockToServer(string RequestName, object obj)
        {
            try
            {
@@ -626,21 +625,21 @@
                var requestJson = JsonConvert.SerializeObject(obj);
                var byteData = System.Text.Encoding.UTF8.GetBytes(requestJson);
                byte[] result1 = null;
                //访问接口 //☆マーク☆
                if (Shared.Phone.HdlUserCenterResourse.ResidenceOption.AuthorityNo == 1)
                //访问接口
                if (UserCenterResourse.UserInfo.AuthorityNo == 1)
                {
                    //result1 = CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync(RequestName, byteData);
                    result1 = CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync(RequestName, byteData);
                }
                else
                {
                    //result1 = CommonPage.Instance.RequestZigbeeHttpsByAdmin(RequestName, byteData);
                    result1 = CommonPage.Instance.RequestZigbeeHttpsByAdmin(RequestName, byteData);
                }
                if (result1 != null)
                {
                    var result2 = Encoding.UTF8.GetString(result1);
                    if (result2 != null)
                    {
                        var result = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Phone.ResponsePack>(result2);
                        var result = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.ResponsePack>(result2);
                        return result;
                    }
                }
@@ -656,13 +655,19 @@
        /// <summary>
        /// 获取子账户信息
        /// </summary>
        static List<Shared.Phone.MemberInfoRes> DoorLockAccountList = new List<Shared.Phone.MemberInfoRes> { };
        public static async System.Threading.Tasks.Task<List<Shared.Phone.MemberInfoRes>> GetSubAccountByDistributedMark()
        static List<Shared.Phone.UserCenter.MemberInfoRes> DoorLockAccountList = new List<Shared.Phone.UserCenter.MemberInfoRes> { };
        public static async System.Threading.Tasks.Task<List<Shared.Phone.UserCenter.MemberInfoRes>> GetSubAccountByDistributedMark()
        {
            DoorLockAccountList.Clear();
            return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<List<Shared.Phone.MemberInfoRes>>>)(async () =>
            return await System.Threading.Tasks.Task.Run((Func<System.Threading.Tasks.Task<List<Shared.Phone.UserCenter.MemberInfoRes>>>)(async () =>
           {
               var listInfo = Shared.Phone.HdlMemberLogic.Current.GetMemberListInfo();
               var pra = new Shared.Phone.UserCenter.MemberListInfoPra();
               string result = UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
               if (result == null)
               {
                   return null;
               }
               var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Shared.Phone.UserCenter.MemberInfoRes>>(result);
               return listInfo;
           }));
        }
@@ -960,7 +965,7 @@
            /// <summary>
            /// 编程事件触发源
            /// 常用:
            /// 0:Keypad(键盘/密码);3:RFID(射频卡);15:指纹
            /// 0:Keypad(键盘/密码);3:RFID(射频卡);15:指纹 58:face  59:静脉
            ///不常用:
            /// 1:RF(Zigbee无线);2:Manual(手动);255:Indeterminate(不确定)
            /// </summary>
@@ -1245,27 +1250,26 @@
                var sbString = new System.Text.StringBuilder();
                foreach (var userId in userIdList)
                {
                    string temp = Convert.ToString(userId, 16);
                    switch (temp.Length)
                    var tempBytes = new byte[2];
                    for (int i = 0; i < 2; i++)
                    {
                        case 1:
                            userIdStr = "0" + temp + "00";
                            break;
                        case 2:
                            userIdStr = temp + "00";
                            break;
                        case 3:
                            var thirdBit = temp.Substring(temp.Length - 2, 1);
                            userIdStr = temp + "0" + thirdBit;
                            break;
                        case 4:
                            userIdStr = temp;
                            break;
                        tempBytes[i] = (byte)(userId >> (i * 8) & 0xff);
                    }
                    sbString.Append(userIdStr.ToString().ToUpper());
                    var curV1 = Convert.ToString(tempBytes[0], 16);
                    var curV2 = Convert.ToString(tempBytes[1], 16);
                    if (curV1.Length == 1)
                    {
                        curV1 = "0" + curV1;
                    }
                    if (curV2.Length == 1)
                    {
                        curV2 = "0" + curV2;
                    }
                    userIdStr = (curV1 + curV2).ToUpper();
                }
                data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
                   delUserTypeStr + sbString;
                   delUserTypeStr + userIdStr;
            }
            catch { };
@@ -1302,28 +1306,27 @@
                        delUserTypeStr = "21";
                        break;
                }
                var sbString = new System.Text.StringBuilder();
                string temp = Convert.ToString(userId, 16);
                switch (temp.Length)
                var tempBytes = new byte[2];
                for (int i = 0; i < 2; i++)
                {
                    case 1:
                        userIdStr = "0" + temp + "00";
                        break;
                    case 2:
                        userIdStr = temp + "00";
                        break;
                    case 3:
                        var thirdBit = temp.Substring(temp.Length - 2, 1);
                        userIdStr = temp + "0" + thirdBit;
                        break;
                    case 4:
                        userIdStr = temp;
                        break;
                    tempBytes[i] = (byte)(userId >> (i * 8) & 0xff);
                }
                sbString.Append(userIdStr.ToString().ToUpper());
                var curV1 = Convert.ToString(tempBytes[0], 16);
                var curV2 = Convert.ToString(tempBytes[1], 16);
                if (curV1.Length == 1)
                {
                    curV1 = "0" + curV1;
                }
                if (curV2.Length == 1)
                {
                    curV2 = "0" + curV2;
                }
                userIdStr = (curV1 + curV2).ToUpper();
                data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
                   delUserTypeStr + sbString;
                           delUserTypeStr + userIdStr;
            }
            catch { };