wei
2021-08-27 eda3fb873e59544ff36301b51e05aef64f87b0f9
HDL_ON/UI/UI2/4-PersonalCenter/MemberManagement/MemberManagementPageBLL.cs
@@ -17,7 +17,6 @@
        }
        /// <summary>
        /// 加载获取住宅子账号信息线程
        /// </summary>
@@ -52,28 +51,26 @@
                            waitPage = null;
                        }
                    });
#if DEBUG
                    residenceMemberInfos.Add(new ResidenceMemberInfo()
                    {
                        Account = "测试数据-账号",
                        UserName = "测试数据-用户名",
                        Nickname = "测试数据-昵称",
                        SubAccountDistributedMark = Guid.NewGuid().ToString(),
                        DistributedMark = Guid.NewGuid().ToString(),
                        AccountType = 0,
                        IsAllowRemoteCtrl = false,
                    });
                    Application.RunOnMainThread(() =>
                    {
                        LoadMemberRow();
                    });
#endif
                }
            })
            { IsBackground = true };
            return thread;
        }
        /// <summary>
        /// 检测是否需要下载头像并保存到本地
        /// </summary>
        void CheckIfDownloadHeadImage(ResidenceMemberInfo residenceMemberInfo)
        {
            if (string.IsNullOrEmpty(residenceMemberInfo.memberHeadIcon)) return;
            var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(residenceMemberInfo.memberHeadIcon, false, residenceMemberInfo.childAccountRegionUrl);
            if (headImageBytes != null && headImageBytes.Length > 0)
            {
                residenceMemberInfo.headImagePagePath = residenceMemberInfo.memberHeadIcon;
                Utlis.WriteLine("子账号头像获取成功");
            }
        }
        /// <summary>
@@ -82,25 +79,21 @@
        bool LoadMethod_GetResidenceMemberAccount()
        {
            var result = false;
            ResponsePack responePack = new HttpServerRequest().GetResidenceMemberAccount();
            if (responePack.StateCode.ToUpper() == "SUCCESS")
            var responePack = new HttpServerRequest().GetResidenceMemberAccount();
            if (responePack.Code == StateCode.SUCCESS)
            {
                var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.ResponseData.ToString());
                var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString());
                foreach (var mInfo in responeObj)
                {
                    ResponsePack memberInfoResponePack = new HttpServerRequest().GetResidenceMemberAccountInfo(mInfo.Account);
                    var dataStr = JObject.FromObject(memberInfoResponePack.ResponseData);
                    FileStream fs = null;
                    try
                    {
                        var headImageString = dataStr.GetValue("HeadImage").ToString();
                        var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(headImageString);
                        var headImageBytes = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(jsonString);
                        var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/", mInfo.DistributedMark + ".png");
                        fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
                        fs.Write(headImageBytes, 0, headImageBytes.Length);
                        fs.Flush();
                        mInfo.headImagePagePath = filePath;
                        //设置用户昵称
                        if (string.IsNullOrEmpty(mInfo.nickName))
                        {
                            mInfo.nickName = mInfo.memberName;
                        }
                        //设置用户头像路径
                        CheckIfDownloadHeadImage(mInfo);
                    }
                    catch (Exception ex)
                    {
@@ -108,12 +101,7 @@
                    }
                    finally
                    {
                        if (fs != null)
                        {
                            fs.Close();
                        }
                        //-----------
                        LoadMethod_GetMemberSharedDataList(mInfo);
                    }
                    residenceMemberInfos.Add(mInfo);
                }
@@ -122,80 +110,53 @@
            //失败
            else
            {
                string tipStr = "Sever erorr";
                switch (responePack.StateCode)
                {
                    case "ValidCodeAndPhoneNoEqual":
                        tipStr = Language.StringByID(StringId.VerificationCodeError);
                        break;
                    case "USERNAMEORPWDERROR":
                        tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError);
                        break;
                    case "ACCOUNTNOEXISTS":
                        tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS);
                        break;
                    case "NoRecord":
                        tipStr = Language.StringByID(StringId.PlsGetTheVerificationCode);
                        break;
                    case "Self:Net_Error":
                        tipStr = Language.StringByID(StringId.NetworkAnomaly);
                        break;
                }
                //账号或者密码错误
                Application.RunOnMainThread(() =>
                {
                    waitPage.Hide();
                    //提示原因
                    var tip = new Tip()
                    {
                        Text = tipStr,
                        CloseTime = 3,
                        Direction = AMPopTipDirection.None
                    };
                    tip.Show(bodyView);
                });
                //提示
                IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
            }
            Application.RunOnMainThread(() =>
            {
                waitPage?.Hide();
                waitPage?.RemoveFromParent();
            });
            return result;
        }
        /// <summary>
        /// 获取住宅下子账号的共享数据列表
        /// </summary>
        /// <param name="info"></param>
        void LoadMethod_GetMemberSharedDataList(ResidenceMemberInfo info)
        {
            ResponsePack responePack = new HttpServerRequest().GetShareDataByMemberAccount(info.SubAccountDistributedMark);
            if (responePack.StateCode.ToUpper() == "SUCCESS")
            {
                var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ShareData>>(responePack.ResponseData.ToString());
                info.sharedDatas = responeObj;
                var sd = responeObj.Find((obj) =>  obj.HouseDistributedMark == DB_ResidenceData.residenceData.residecenInfo.RegionID );
                if (sd != null)
                {
                    LoadMethod_GetMemberSharedData(sd,info);
                }
                else
                {
                    LoadMethod_GetMemberSharedData(new ShareData(),info);
                }
            }
        }
        /// <summary>
        /// 获取住宅下子账号的共享数据
        /// </summary>
        /// <param name="info"></param>
        void LoadMethod_GetMemberSharedData(ShareData sd, ResidenceMemberInfo info)
        {
            ResponsePack responePack = new HttpServerRequest().GetShareData(sd.DistributedMark,sd.HouseDistributedMark);
            if (responePack.StateCode.ToUpper() == "SUCCESS")
            {
                info.CurShareData =  Newtonsoft.Json.JsonConvert.DeserializeObject<ShareData>(responePack.ResponseData.ToString());
            }
        }
        ///// <summary>
        ///// 获取住宅下子账号的共享数据列表
        ///// </summary>
        ///// <param name="info"></param>
        //void LoadMethod_GetMemberSharedDataList(ResidenceMemberInfo info)
        //{
        //    var responePack = new HttpServerRequest().GetShareDataByMemberAccount(info.childAccountId);
        //    if (responePack.Code == StateCode.SUCCESS)
        //    {
        //        var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ShareData>>(responePack.Data.ToString());
        //        info.CurResidenceShareDate = responeObj;
        //        //foreach (var sd in info.CurResidenceShareDate)
        //        //{
        //        //    LoadMethod_GetMemberSharedData(sd);
        //        //}
        //    }
        //    else
        //    {
        //        info.CurResidenceShareDate = new List<ShareData>();
        //    }
        //}
        ///// <summary>
        ///// 获取住宅下子账号的共享数据
        ///// </summary>
        ///// <param name="info"></param>
        //bool LoadMethod_GetMemberSharedData(ShareData sd)
        //{
        //    var shareDataBytes = new HttpServerRequest().GetShareData(sd);
        //    if (shareDataBytes != null)
        //    {
        //        sd.ShareDataBytes = shareDataBytes;
        //        return true;
        //    }
        //    return false;
        //}
        /// <summary>
        /// 修改昵称窗口
@@ -210,7 +171,7 @@
                    {
                        new Tip()
                        {
                            CloseTime = 3,
                            CloseTime = 1,
                            Text = Language.StringByID(StringId.NicknameCannotBeEmpty),
                            Direction = AMPopTipDirection.None,
                        }.Show(bodyView);
@@ -218,42 +179,24 @@
                    }
                    var waitPage = new Loading();
                    bodyView.AddChidren(waitPage);
                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
                    new Thread(() =>
                    {
                        try
                        {
                            var responsePack = new HttpServerRequest().EditSubAccountNickName(str,mInfo.SubAccountDistributedMark);
                            if (responsePack.StateCode.ToUpper() == "SUCCESS")
                            var responsePack = new HttpServerRequest().EditSubAccountNickName(str, mInfo.childAccountId);
                            if (responsePack.Code.ToUpper() == StateCode.SUCCESS)
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    btn1.Text = str;
                                });
                                mInfo.Nickname = str;
                                mInfo.nickName = str;
                            }
                            else
                            {
                                var tipStr = "Server erorr";
                                switch (responsePack.StateCode)
                                {
                                    case "NoLogin":
                                        tipStr = Language.StringByID(StringId.InvalidLoginCertificate);
                                        break;
                                    case "ParameterOrEmpty":
                                        break;
                                }
                                Application.RunOnMainThread(() =>
                                {
                                    //提示原因
                                    var tip = new Tip()
                                    {
                                        Text = tipStr,
                                        CloseTime = 3,
                                        Direction = AMPopTipDirection.None
                                    };
                                    tip.Show(bodyView);
                                });
                                IMessageCommon.Current.ShowErrorInfoAlter(responsePack.Code);
                            }
                        }
                        catch (Exception ex)
@@ -264,23 +207,26 @@
                        {
                            Application.RunOnMainThread(() =>
                            {
                                waitPage.Hide();
                                if (waitPage != null)
                                {
                                    waitPage.RemoveFromParent();
                                    waitPage = null;
                                }
                            });
                        }
                    })
                    { IsBackground = true }.Start();
                };
                new PublicAssmebly().LoadDialog_EditParater(StringId.ModifyMemberNickname, mInfo.Nickname, callBack, StringId.HouseNameCannotBeEmpty, 0, new List<string>());
                new PublicAssmebly().LoadDialog_EditParater(StringId.ModifyMemberNickname, mInfo.nickName, callBack, StringId.NicknameCannotBeEmpty, 0, new List<string>());
            };
            btn1.MouseUpEventHandler = eventHandler;
            btn2.MouseUpEventHandler = eventHandler;
        }
        /// <summary>
        /// 修改创建场景权限
        /// </summary>
        void LoadView_ChangeCreateSceneState(Button btn1,Button btn2, ResidenceMemberInfo mInfo)
        void LoadView_ChangeCreateSceneState(Button btn1, Button btn2, ResidenceMemberInfo mInfo)
        {
            EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
            {
@@ -288,36 +234,18 @@
                {
                    try
                    {
                        var responsePack = new HttpServerRequest().ChangeCreateSceneState(DB_ResidenceData.residenceData.residecenInfo.RegionID, mInfo.SubAccountDistributedMark);
                        if (responsePack.StateCode.ToUpper() == "SUCCESS")
                        bool isAllow = !btn1.IsSelected;
                        var responsePack = new HttpServerRequest().ChangeCreateSceneState(isAllow, mInfo.childAccountId);
                        if (responsePack.Code.ToUpper() == StateCode.SUCCESS)
                        {
                            Application.RunOnMainThread(() =>
                            {
                                btn1.IsSelected = !btn1.IsSelected;
                                btn1.IsSelected = isAllow;
                            });
                        }
                        else
                        {
                            var tipStr = "Server erorr";
                            switch (responsePack.StateCode)
                            {
                                case "NoLogin":
                                    tipStr = Language.StringByID(StringId.InvalidLoginCertificate);
                                    break;
                                case "ParameterOrEmpty":
                                    break;
                            }
                            Application.RunOnMainThread(() =>
                            {
                                //提示原因
                                var tip = new Tip()
                                {
                                    Text = tipStr,
                                    CloseTime = 3,
                                    Direction = AMPopTipDirection.None
                                };
                                tip.Show(bodyView);
                            });
                            IMessageCommon.Current.ShowErrorInfoAlter(responsePack.Code);
                        }
                    }
                    catch (Exception ex)
@@ -338,6 +266,5 @@
            btn2.MouseUpEventHandler = eventHandler;
        }
    }
}