HDL Home App 第二版本 旧平台金堂用 正在使用
hxb
2022-08-30 25429f085093d89d543a0b90e30d0d62d1b7dac9
ZigbeeApp/Shared/Phone/ZigBee/Common/Config.cs
@@ -6,8 +6,9 @@
    [System.Serializable]
    public class Config
    {
        static readonly string fileName = "Config.json";
        static Config config;
        private const string fileName = "Config.json";
        private static Config config = null;
        public static Config Instance
        {
            get
@@ -19,139 +20,6 @@
                return config;
            }
        }
        /// <summary>
        /// 账户登录成功的MqttKey
        /// </summary>
        public string MqttKey
        {
            get
            {
                if (Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2
                    || Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
                {
                    return AdminMqttKey;
                }
                return MeMqttKey;
            }
            set { MeMqttKey = value; }
        }
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接地址
        /// </summary>
        public string ZigbeeMqttBrokerLoadSubDomain
        {
            get
            {
                if (Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2
                    || Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
                {
                    return AdminZigbeeMqttBrokerLoadSubDomain;
                }
                return MeZigbeeMqttBrokerLoadSubDomain;
            }
            set { MeZigbeeMqttBrokerLoadSubDomain = value; }
        }
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接的ClientId
        /// </summary>
        public string ConnectZigbeeMqttClientId
        {
            get
            {
                if (Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2
                    || Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
                {
                    return AdminConnectZigbeeMqttClientId;
                }
                return MeConnectZigbeeMqttClientId;
            }
            set { MeConnectZigbeeMqttClientId = value; }
        }
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接的密码
        /// </summary>
        public string ConnectZigbeeMqttBrokerPwd
        {
            get
            {
                if (Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2
                    || Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
                {
                    return AdminConnectZigbeeMqttBrokerPwd;
                }
                return MeConnectZigbeeMqttBrokerPwd;
            }
            set { MeConnectZigbeeMqttBrokerPwd = value; }
        }
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接的密码
        /// </summary>
        public string ConnectZigbeeMqttBrokerName
        {
            get
            {
                if (Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2
                    || Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
                {
                    return AdminConnectZigbeeMqttBrokerName;
                }
                return Config.Instance.Account;
            }
        }
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接的密码
        /// </summary>
        public string ConnectGuid
        {
            get
            {
                if (Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2
                    || Phone.UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 3)
                {
                    return AdminConnectZigbeeMqttBrokerName;
                }
                return Config.Instance.Guid;
            }
        }
        /// <summary>
        /// 账户登录成功的MqttKey
        /// </summary>
        private string MeMqttKey = string.Empty;
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接地址
        /// </summary>
        private string MeZigbeeMqttBrokerLoadSubDomain = string.Empty;
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接的ClientId
        /// </summary>
        private string MeConnectZigbeeMqttClientId = string.Empty;
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接的密码
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        private string MeConnectZigbeeMqttBrokerPwd = string.Empty;
        /// <summary>
        /// 账户登录成功的MqttKey(管理员身份用)
        /// </summary>
        public string AdminMqttKey = string.Empty;
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接地址(管理员身份用)
        /// </summary>
        public string AdminZigbeeMqttBrokerLoadSubDomain = string.Empty;
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接的ClientId(管理员身份用)
        /// </summary>
        public string AdminConnectZigbeeMqttClientId = string.Empty;
        /// <summary>
        /// 应该是叫远程连接的名字吧
        /// </summary>
        public string AdminConnectZigbeeMqttBrokerName = string.Empty;
        /// <summary>
        /// 当前需要连接云端ZigbeeMqttBroker的连接的密码(管理员身份用)
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string AdminConnectZigbeeMqttBrokerPwd = string.Empty;
        /// <summary>
        /// 服务器注册ID
@@ -161,11 +29,11 @@
        /// <summary>
        /// 账户登录成功时的时间
        /// </summary>
        public DateTime LoginDateTime = DateTime.MinValue;
        public DateTime LoginDateTime = DateTime.MinValue;
        /// <summary>
        /// Gets a value indicating whether this <see cref="T:Shared.Common.Config"/> is login.
        ///
        /// </summary>
        /// <value><c>true</c> if is login; otherwise, <c>false</c>.</value>
        [Newtonsoft.Json.JsonIgnore]
        public bool IsLogin
        {
            get
@@ -173,16 +41,6 @@
                return (DateTime.Now - LoginDateTime).Days < 7;
            }
        }
        /// <summary>
        /// 账户登录成功的账户类型
        /// </summary>
        public int AccountType = 0;
        /// <summary>
        /// 账户登录成功的主ID
        /// </summary>
        public int MasterID = 0;
        public static void ReFresh()
        {
@@ -193,8 +51,23 @@
            {
                config = new Config { };
            }
        }
            if (config.PasswordEncrypt != string.Empty)
            {
                //解密
                config.Password = Phone.UserCenter.UserCenterLogic.DecryptPassword("hD1(La3o", config.PasswordEncrypt);
            }
            if (config.Md5pwdEncrypt != string.Empty)
            {
                //解密
                config.MD5PWD = Phone.UserCenter.UserCenterLogic.DecryptPassword("hD1(La3o", config.Md5pwdEncrypt);
            }
        }
        /// <summary>
        /// 账户登录成功的账户类型(此变量默认为0,并且不赋值)
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int AccountType = 0;
        /// <summary>
        /// 当前登录的帐号
        /// </summary>
@@ -202,57 +75,59 @@
        /// <summary>
        /// 当前帐号密码
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string Password = string.Empty;
        /// <summary>
        /// 加密密码
        /// </summary>
        public string PasswordEncrypt = string.Empty;
        /// <summary>
        /// 短信登录返回的md5后的密码
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string MD5PWD = string.Empty;
        /// <summary>
        /// 短信登录返回的md5后的加密密码
        /// </summary>
        public string Md5pwdEncrypt = string.Empty;
        /// <summary>
        /// 登陆账号的Guid
        /// </summary>
        public string Guid = string.Empty;
        /// <summary>
        /// 是否是管理员权限(为什么会声明这样变量,因为有些接口必须使用原来的Token)
        /// </summary>
        public bool isAdministrator = false;
        public string Guid = string.Empty;
        /// <summary>
        /// 成员请求控制主帐号此住宅时请求基地址
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string AdminRequestBaseUrl = string.Empty;
        /// <summary>
        /// 成员请求控制主帐号此住宅时请求基地址的LoginAccessToken的值
        /// </summary>
        public string AdminRequestToken = string.Empty;
        /// <summary>
        /// 固件名称
        /// </summary>
        //public string Name = string.Empty;
        ///// <summary>
        ///// 固件唯一标识
        ///// </summary>
        //public string DistributedMark = string.Empty;
        ///// <summary>
        ///// 固件版本
        ///// </summary>
        //public string FirmwareVersion = string.Empty;
        ///// <summary>
        ///// 固件备注
        ///// </summary>
        //public string Remarks = string.Empty;
        ///// <summary>
        ///// 固件ID
        ///// </summary>
        //public string Id;
        [Newtonsoft.Json.JsonIgnore]
        public string AdminRequestToken = string.Empty;
        /// <summary>
        /// 远程连接的Mqtt的客户端ID
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string ConnEmqClientId = string.Empty;
        /// <summary>
        /// 当前登录的账号是不是之前的账号
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public bool TheSameLoginAccount = false;
        /// <summary>
        /// 当前帐号的Token
        /// </summary>
        private string Token1 = "";
        [Newtonsoft.Json.JsonIgnore]
        public string Token
        {
            get
            {
                if (Shared.Phone.UserCenter.HdlExperienceAccountLogic.Current.IsExperience == true)
                {
                    //体验账号的Token
                    return this.TokenExperience;
                }
                string md5Password;
                if (string.IsNullOrEmpty(Password))
                {
@@ -271,17 +146,44 @@
                return Convert.ToBase64String(tokenBytes).Replace("=", "%3D");
            }
        }
        /// <summary>
        /// 体验账号的Token
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        private string m_TokenExperience = null;
        [Newtonsoft.Json.JsonIgnore]
        public string TokenExperience
        {
            get
            {
                if (m_TokenExperience != null) { return m_TokenExperience; }
                var result = System.Text.Encoding.UTF8.GetBytes("123456");
                var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                var output = md5.ComputeHash(result);
                var md5Password = BitConverter.ToString(output).Replace("-", "");
                var account_md5Pssword = "ceyir277@163.com:" + md5Password;
                var tokenBytes = System.Text.Encoding.UTF8.GetBytes(account_md5Pssword);
                m_TokenExperience = Convert.ToBase64String(tokenBytes).Replace("=", "%3D");
                return m_TokenExperience;
            }
        }
        /// <summary>
        /// 登录过的帐号信息
        /// 登录时Token(目前这东西没用)
        /// </summary>
        public List<string> AccountList = new List<string> { };
        public List<string> HomeFilePathList = new List<string> { };
        [Newtonsoft.Json.JsonIgnore]
        public string LoginToken = string.Empty;
        public string HomeId = string.Empty;
        /// <summary>
        /// 住宅文件列表
        /// </summary>
        public List<string> HomeFilePathList = new List<string>();
        [Newtonsoft.Json.JsonIgnore]
        private House m_Home = null;
        /// <summary>
@@ -297,7 +199,7 @@
                {
                    return m_Home;
                }
                m_Home = House.GetHouseByHouseId(HomeId);
                m_Home = Phone.UserCenter.HdlResidenceLogic.Current.GetHouseByHouseId(HomeId);
                if (m_Home == null)
                {
                    m_Home = new House();
@@ -329,9 +231,12 @@
        /// </summary>
        public void Save()
        {
            //加密,不能保存明码
            this.PasswordEncrypt = Phone.UserCenter.UserCenterLogic.EncryptPassword("hD1(La3o", this.Password);
            this.Md5pwdEncrypt = Phone.UserCenter.UserCenterLogic.EncryptPassword("hD1(La3o", this.MD5PWD);
            var bytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
            Shared.IO.FileUtils.WriteFileByBytes(fileName, bytes);
            ReFresh();
        }
    }
}