WJC
2019-10-31 276b14dffead08293e951cc761be87436bdcf921
ZigbeeApp/Shared/Phone/Device/Logic/Send.cs
@@ -715,6 +715,7 @@
        #endregion
        #region  ----获取门锁
        #region ---第1种
        public static List<LogicLock> ReadDoorLockIfon(string doorlockMac)
        {
            List<LogicLock> list = new List<LogicLock>();
@@ -881,13 +882,97 @@
            return list;
        }
        #endregion
        #region ---第2种
        /// <summary>
        /// 获取自己+其他成员信息
        /// </summary>
        /// <param name="doorlockMac">门锁Mac</param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<List<MembershipIfon>> AllMembers(string doorlockMac)
        {
            var userlist = new List<MembershipIfon>();
            ///判断APP登录进来用户身份(主人,管理员,成员)
            var doorlockifonlist = await ReadUserListIfon(doorlockMac);
            var membershipIfon = new MembershipIfon();
            membershipIfon.MembershipId = Config.Instance.Guid;
            if (string.IsNullOrEmpty(Config.Instance.Nmae))
            {
                membershipIfon.MembershipName = Config.Instance.Account;
            }
            else
            {
                membershipIfon.MembershipName = Config.Instance.Nmae;
            }
            foreach (var o in doorlockifonlist)
            {
                if (o.CloudAccountId == Config.Instance.Guid)
                {
                    LockMode lockMode = new LockMode();
                    lockMode.OpenMode = o.OpenLockMode;
                    lockMode.UserId = o.DoorLockLocalUserId;
                    membershipIfon.UserIdMode.Add(lockMode);
                }
            }
            if (membershipIfon.UserIdMode.Count != 0)
            {
                userlist.Add(membershipIfon);
            }
        public static async System.Threading.Tasks.Task<List<LogicLock>> UserListIfon(string doorlockMac)
            if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3)
            {
                var pra = new UserCenter.MemberListInfoPra();
                string result = await UserCenter.UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra);
                var listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UserCenter.MemberInfoRes>>(result);
                for (int i = 0; i < listInfo.Count; i++)
                {
                    var membership = new MembershipIfon();
                    var membershipifon = listInfo[i];
                    membership.MembershipId = membershipifon.SubAccountDistributedMark;
                    if (string.IsNullOrEmpty(membershipifon.UserName))
                    {
                        membership.MembershipName = membershipifon.Account;
                    }
                    else
                    {
                        membership.MembershipName = membershipifon.UserName;
                    }
                    for (int j = 0; j < doorlockifonlist.Count; j++)
                    {
                        ///查找成员以及成员门锁触发源(1按键/3卡/15指纹)
                        if (doorlockifonlist[j].CloudAccountId == membershipifon.SubAccountDistributedMark)
                        {
                            LockMode lockMode = new LockMode();
                            lockMode.OpenMode = doorlockifonlist[j].OpenLockMode;
                            lockMode.UserId = doorlockifonlist[j].DoorLockLocalUserId;
                            membership.UserIdMode.Add(lockMode);
                        }
                    }
                    if (membership.UserIdMode.Count != 0)
                    {
                        ///过滤掉重复数据;
                        var str = userlist.Find((c) => { return c.MembershipId == membershipifon.SubAccountDistributedMark; });
                        if (str == null)
                        {
                            userlist.Add(membership);
                        }
                    }
                }
            }
            return userlist;
        }
        /// <summary>
        /// 读取门锁所有成员信息
        /// </summary>
        /// <param name="doorlockMac">门锁Mac</param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<List<LogicLock>> ReadUserListIfon(string doorlockMac)
        {
            List<LogicLock> list = new List<LogicLock>();
            var s = await ReadUserList(doorlockMac);
@@ -984,7 +1069,7 @@
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<string> WebClientAsync(int value, string url, Residential residential = null)
        {
            NameValueCollection postValues = new NameValueCollection();
            if (value == 0)
            {
@@ -1011,6 +1096,9 @@
            byte[] responseArray = webClient.UploadValues(url, postValues);
            return System.Text.Encoding.UTF8.GetString(responseArray);
        }
        #endregion
        public class Residential
@@ -1080,9 +1168,23 @@
            public int OpenMode;
        }
        /// <summary>
        /// 自动化门锁成员信息作为条件列表
        /// </summary>
        public static List<MembershipIfon> UserList = new List<MembershipIfon>();
        /// <summary>
        ///联动事件门锁成员信息作为条件的列表
        /// </summary>
        public static List<MembershipIfon> LinkageventLockList = new List<MembershipIfon>();
        /// <summary>
        /// 当前门锁
        /// </summary>
        public static ZigBee.Device.DoorLock CurrentDoorLock = null;
        /// <summary>
        /// 当前用户的信息
        /// </summary>
        public static UserCenter.MemberInfoRes UserMemberInfoRes = null;
        #endregion
    }
}