Merge branch 'CJL' into NewFilePath
| | |
| | | 9048=使用账号密码登录 |
| | | 9049=密码连续输错次数已达到10次,用户已被锁定,请次日0点后再登陆 |
| | | 9050=验证面容ID |
| | | 9051=保存用户头像失败 |
| | | |
| | | 10000=无效登录密钥,请重新登录! |
| | | 10001=请求服务器失败,请稍后再试! |
| | |
| | | 9048=使用账号密码登录 |
| | | 9049=密码连续输错次数已达到10次,用户已被锁定,请次日0点后再登陆 |
| | | 9050=验证面容ID |
| | | 9051=保存用户头像失败 |
| | | |
| | | 10000=无效登录密钥,请重新登录! |
| | | 10001=请求服务器失败,请稍后再试! |
| | |
| | | |
| | | /// <summary> |
| | | /// 通过图片路径下载图片 |
| | | /// 针对住宅,使用住宅域名服务器 |
| | | /// </summary> |
| | | public byte[] GetImageDownloadUrl(string imageKey) |
| | | { |
| | |
| | | imageKey = imageKey, |
| | | }); |
| | | var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_GetImageUrl, requestJson); |
| | | if (revertObj.Code == StateCode.SUCCESS) |
| | | { |
| | | if (revertObj.Data != null) |
| | | { |
| | | if (!string.IsNullOrEmpty(revertObj.Data.ToString())) |
| | | { |
| | | var url = revertObj.Data.ToString(); |
| | | return HttpUtil.HttpsDownload(url); |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 通过图片路径下载图片 |
| | | /// 针对用户头像指定用户路径等 |
| | | /// </summary> |
| | | public byte[] GetImageDownloadUrlWithRegionUrl(string imageKey, string regionUrl) |
| | | { |
| | | var requestJson = HttpUtil.GetSignRequestJson(new GetImageUrlObj() |
| | | { |
| | | imageKey = imageKey, |
| | | }); |
| | | var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GetImageUrl, requestJson, regionUrl); |
| | | if (revertObj.Code == StateCode.SUCCESS) |
| | | { |
| | | if (revertObj.Data != null) |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取拼接用户头像的ImageKey规则 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public string GetHeadImageKey(string userId) |
| | | { |
| | | return "ON" + "_" + userId + "_" + HEADIMAGE; |
| | | } |
| | | // /// <summary> |
| | | ///// 获取拼接用户头像的ImageKey规则 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public string GetHeadImageKey(string userId) |
| | | // { |
| | | // return "ON" + "_" + userId + "_" + HEADIMAGE; |
| | | // } |
| | | |
| | | /// <summary> |
| | | /// 生成头像上传规则参数 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public UploadImageObj GetHeadImageUploadKeyObj(string userId) |
| | | { |
| | | return new UploadImageObj() |
| | | { |
| | | prefix = "ON", |
| | | uid = userId, |
| | | fileName = HEADIMAGE, |
| | | }; |
| | | } |
| | | ///// <summary> |
| | | ///// 生成头像上传规则参数 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public UploadImageObj GetHeadImageUploadKeyObj(string userId) |
| | | //{ |
| | | // return new UploadImageObj() |
| | | // { |
| | | // prefix = "Icon" + Utlis.GetTimestamp(), |
| | | // uid = userId, |
| | | // fileName = HEADIMAGE, |
| | | // }; |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// 下载用户头像 |
| | | /// </summary> |
| | | /// <param name="userId"></param> |
| | | /// <param name="ignoreCache">是否忽略缓存</param> |
| | | /// <param name="imageKey"></param> |
| | | /// <param name="ignoreCache">忽略缓存</param> |
| | | /// <param name="regionUrl">指定服务器域名,传空为使用当前用户地址</param> |
| | | /// <returns></returns> |
| | | public byte[] DownHeadImage(string userId, bool ignoreCache = false) |
| | | public byte[] DownHeadImageByImageKey(string imageKey, bool ignoreCache = false, string regionUrl = "") |
| | | { |
| | | try |
| | | { |
| | | var imageKey = GetHeadImageKey(userId); |
| | | if (string.IsNullOrEmpty(imageKey)) return null; |
| | | |
| | | byte[] imageBytes; |
| | | if (!ignoreCache && Exists(imageKey)) |
| | | { |
| | |
| | | else |
| | | { |
| | | //云端下载 |
| | | imageBytes = GetImageDownloadUrl(imageKey); |
| | | imageBytes = GetImageDownloadUrlWithRegionUrl(imageKey, regionUrl); |
| | | if(imageBytes != null) |
| | | { |
| | | //保存到本地 |
| | |
| | | /// 验证面容ID |
| | | /// </summary> |
| | | public const int VerifyFaceID = 9050; |
| | | |
| | | /// <summary> |
| | | /// 保存用户头像失败 |
| | | /// </summary> |
| | | public const int FailedToSaveUserImage = 9051; |
| | | |
| | | |
| | | #region 网络请求响应错误提示信息 |
| | |
| | | UserInfo.Current.userEmailInfo = info.memberEmail; |
| | | UserInfo.Current.userMobileInfo = info.memberPhone; |
| | | UserInfo.Current.userName = info.memberName; |
| | | |
| | | if (!string.IsNullOrEmpty(info.memberPhonePrefix)) |
| | | { |
| | | UserInfo.Current.areaCode = info.memberPhonePrefix; |
| | |
| | | //是否需要获取头像 |
| | | if (bGetHeadImage) |
| | | { |
| | | var imageKey = ImageUtlis.Current.GetHeadImageKey(info.memberId); |
| | | |
| | | var headImageBytes = ImageUtlis.Current.DownHeadImage(info.memberId); |
| | | //2020-12-15 修改头像方案 |
| | | if (!string.IsNullOrEmpty(info.memberHeadIcon)) |
| | | { |
| | | var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(info.memberHeadIcon); |
| | | |
| | | if (headImageBytes != null && headImageBytes.Length > 0) |
| | | { |
| | | //UserInfo.Current.headImagePageBytes = headImageBytes; |
| | | UserInfo.Current.headImagePagePath = imageKey; |
| | | UserInfo.Current.headImagePagePath = info.memberHeadIcon; |
| | | //UserInfo.Current.headImagePagePath = imageKey; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | /// 获取用户头像 |
| | | /// </summary> |
| | | /// <param name="userId"></param> |
| | | public void GetUserHeadImage(string userId) |
| | | public void GetUserHeadImageByKey(string imageKey) |
| | | { |
| | | var imageKey = ImageUtlis.Current.GetHeadImageKey(userId); |
| | | |
| | | var headImageBytes = ImageUtlis.Current.DownHeadImage(userId); |
| | | var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(imageKey); |
| | | |
| | | if (headImageBytes != null && headImageBytes.Length > 0) |
| | | { |
| | |
| | | ///// <summary> |
| | | ///// 更新用户头像 |
| | | ///// </summary> |
| | | ///// <param name="userName"></param> |
| | | ///// <returns></returns> |
| | | //public ResponsePackNew UpdateMemberHeadIcon(string memberHeadIcon) |
| | | //{ |
| | | // var requestJson = HttpUtil.GetSignRequestJson(new UpdateMemberHeadIconRes() |
| | | // { |
| | | // memberHeadIcon = memberHeadIcon |
| | | // }); |
| | | // return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_UpdateMemberInfo, requestJson); |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// 更新用户头像 |
| | | ///// </summary> |
| | | ///// <param name="vs"></param> |
| | | ///// <returns></returns> |
| | | //public string UpdataUserHeadImage(string fileName) |
| | |
| | | /// 登录名 |
| | | /// </summary> |
| | | public string loginName; |
| | | /// <summary> |
| | | /// 用户头像 |
| | | /// </summary> |
| | | public string memberHeadIcon; |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新个人头像 |
| | | /// </summary> |
| | | [System.Serializable] |
| | | public class UpdateMemberHeadIconRes |
| | | { |
| | | /// <summary> |
| | | /// 用户头像 |
| | | /// </summary> |
| | | public string memberHeadIcon; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定认证(手机/邮箱) |
| | |
| | | /// <summary> |
| | | /// 区域服务器 |
| | | /// </summary> |
| | | public string regionUrl; |
| | | public string childAccountRegionUrl; |
| | | /// <summary> |
| | | /// 是否允许远程控制 |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | public string childAccountPhone; |
| | | /// <summary> |
| | | /// 用户头像 |
| | | /// </summary> |
| | | public string memberHeadIcon; |
| | | /// <summary> |
| | | /// 用户账号 |
| | | /// 优先显示手机号,如果手机号为空则显示邮箱地址 |
| | | /// </summary> |
| | |
| | | //获取用户信息 |
| | | new Thread(() => |
| | | { |
| | | pm.GetUserHeadImage(revertData.userId); |
| | | pm.GetUserInfo(false); |
| | | pm.GetUserInfo(); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | |
| | | Control.Ins.SendWriteCommand(curtain, d); |
| | | }; |
| | | |
| | | btnStop.MouseDownEventHandler = (sender, e) => |
| | | //btnStop.MouseDownEventHandler = (sender, e) => |
| | | //{ |
| | | // btnStop.IsSelected = true; |
| | | // btnClose.IsSelected = false; |
| | | // btnOpen.IsSelected = false; |
| | | //}; |
| | | btnStop.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnStop.IsSelected = true; |
| | | btnClose.IsSelected = false; |
| | | btnOpen.IsSelected = false; |
| | | }; |
| | | btnStop.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnOpen.IsSelected = true; |
| | | btnClose.IsSelected = false; |
| | | btnStop.IsSelected = false; |
| | | curtain.trait_on_off.curValue = "stop"; |
| | | //curtain.percent = 0; |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | |
| | | /// </summary> |
| | | void CheckIfDownloadHeadImage(ResidenceMemberInfo residenceMemberInfo) |
| | | { |
| | | var imageKey = ImageUtlis.Current.GetHeadImageKey(residenceMemberInfo.childAccountId); |
| | | if (string.IsNullOrEmpty(residenceMemberInfo.memberHeadIcon)) return; |
| | | |
| | | var headImageBytes = ImageUtlis.Current.DownHeadImage(residenceMemberInfo.childAccountId); |
| | | var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(residenceMemberInfo.memberHeadIcon, false, residenceMemberInfo.childAccountRegionUrl); |
| | | |
| | | if (headImageBytes != null && headImageBytes.Length > 0) |
| | | { |
| | | residenceMemberInfo.headImagePagePath = imageKey; |
| | | residenceMemberInfo.headImagePagePath = residenceMemberInfo.memberHeadIcon; |
| | | Utlis.WriteLine("子账号头像获取成功"); |
| | | } |
| | | } |
| | |
| | | var waitPage = new Loading(); |
| | | bodyView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | //开始上传 |
| | | //1.开始上传 |
| | | new Thread(() => |
| | | { |
| | | try |
| | | { |
| | | var uploadImageObj = ImageUtlis.Current.GetHeadImageUploadKeyObj(userId); |
| | | uploadImageObj.content = imageBytes; |
| | | //生成上传头像参数 |
| | | var uploadImageObj = new UploadImageObj() |
| | | { |
| | | prefix = "Icon" + Utlis.GetTimestamp(), |
| | | uid = userId, |
| | | fileName = ImageUtlis.HEADIMAGE, |
| | | content = imageBytes, |
| | | }; |
| | | |
| | | var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj); |
| | | if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(userId)) |
| | | { |
| | | //上传成功 |
| | | //2.上传成功 |
| | | //2.1更新最新图片路径到云端 |
| | | var resultObj = UpdateMemberHeadIcon(imageUrl); |
| | | if (resultObj.Code == StateCode.SUCCESS) |
| | | { |
| | | //3.更新最新图片路径到云端成功 |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //Utlis.WriteLine("上传成功:" + imageUrl); |
| | |
| | | Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully)); |
| | | uploadSuccessAction?.Invoke(imageUrl); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //更新最新图片路径到云端失败 |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | //保存用户头像失败 |
| | | Utlis.ShowTip(Language.StringByID(StringId.FailedToSaveUserImage)); |
| | | }); |
| | | |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | catch { } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 更新用户头像 |
| | | /// </summary> |
| | | /// <param name="userName"></param> |
| | | /// <returns></returns> |
| | | public ResponsePackNew UpdateMemberHeadIcon(string memberHeadIcon) |
| | | { |
| | | var requestJson = HttpUtil.GetSignRequestJson(new UpdateMemberHeadIconRes() |
| | | { |
| | | memberHeadIcon = memberHeadIcon |
| | | }); |
| | | return HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_UpdateMemberInfo, requestJson); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | |
| | | ///// <summary> |
| | | ///// 获取用户信息 |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public void GetUserInfoNew() |
| | | //{ |
| | | |
| | | // new System.Threading.Thread(() => |
| | | // { |
| | | // try |
| | | // { |
| | | // var requestJson = HttpUtil.GetSignRequestJson(new NullObj()); |
| | | // var resultObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_Member_GetMemberInfo, requestJson); |
| | | // if (resultObj.Code == StateCode.SUCCESS) |
| | | // { |
| | | // var info = Newtonsoft.Json.JsonConvert.DeserializeObject<MemberInfoRes>(resultObj.Data.ToString()); |
| | | // UserInfo.Current.userEmailInfo = info.memberEmail; |
| | | // UserInfo.Current.userMobileInfo = info.memberPhone; |
| | | // UserInfo.Current.userName = info.memberName; |
| | | |
| | | // if (!string.IsNullOrEmpty(info.memberPhonePrefix)) |
| | | // { |
| | | // UserInfo.Current.areaCode = info.memberPhonePrefix; |
| | | // } |
| | | |
| | | // //2020-12-15 修改头像方案 |
| | | // if (!string.IsNullOrEmpty(info.memberHeadIcon)) |
| | | // { |
| | | // var headImageBytes = ImageUtlis.Current.DownHeadImageByImageKey(info.memberHeadIcon); |
| | | |
| | | // if (headImageBytes != null && headImageBytes.Length > 0) |
| | | // { |
| | | // UserInfo.Current.headImagePagePath = info.memberHeadIcon; |
| | | // } |
| | | // } |
| | | |
| | | // Application.RunOnMainThread(() => |
| | | // { |
| | | // btnUserName.Text = str; |
| | | // updataUserName(); |
| | | // }); |
| | | |
| | | // UserInfo.Current.SaveUserInfo(); |
| | | // MainPage.Log("获取用户信息成功。"); |
| | | |
| | | // //userHeadImageView |
| | | // } |
| | | // } |
| | | // catch { } |
| | | // finally |
| | | // { |
| | | |
| | | |
| | | // } |
| | | |
| | | // }) |
| | | // { IsBackground = true }.Start(); |
| | | //} |
| | | } |
| | | } |
| | |
| | | { |
| | | if (uCurtain.trait_on_off.curValue.ToString() == "stop") |
| | | { |
| | | bodyView.btnCurtainOpen.IsSelected = true; |
| | | bodyView.btnCurtainOpen.IsSelected = false; |
| | | bodyView.btnCurtainClose.IsSelected = false; |
| | | bodyView.btnCurtainStop.IsSelected = false; |
| | | bodyView.btnCurtainStop.IsSelected = true; |
| | | } |
| | | else if (uCurtain.trait_on_off.curValue.ToString() == "on") |
| | | { |
| | |
| | | DriverLayer.Control.Ins.SendWriteCommand(curtain, d); |
| | | }; |
| | | |
| | | btnCurtainStop.MouseDownEventHandler = (sender, e) => |
| | | //btnCurtainStop.MouseDownEventHandler = (sender, e) => |
| | | //{ |
| | | // btnCurtainStop.IsSelected = true; |
| | | // btnCurtainClose.IsSelected = false; |
| | | // btnCurtainOpen.IsSelected = false; |
| | | //}; |
| | | btnCurtainStop.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | //btnCurtainOpen.IsSelected = true; |
| | | //btnCurtainClose.IsSelected = false; |
| | | //btnCurtainStop.IsSelected = false; |
| | | btnCurtainStop.IsSelected = true; |
| | | btnCurtainClose.IsSelected = false; |
| | | btnCurtainOpen.IsSelected = false; |
| | | }; |
| | | btnCurtainStop.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnCurtainOpen.IsSelected = true; |
| | | btnCurtainClose.IsSelected = false; |
| | | btnCurtainStop.IsSelected = false; |
| | | curtain.trait_on_off.curValue = "stop"; |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", curtain.trait_on_off.curValue.ToString()); |
| | |
| | | { |
| | | if (uCurtain.trait_on_off.curValue.ToString() == "stop") |
| | | { |
| | | bodyView.btnCurtainOpen.IsSelected = true; |
| | | bodyView.btnCurtainOpen.IsSelected = false; |
| | | bodyView.btnCurtainClose.IsSelected = false; |
| | | bodyView.btnCurtainStop.IsSelected = false; |
| | | bodyView.btnCurtainStop.IsSelected = true; |
| | | } |
| | | else if (uCurtain.trait_on_off.curValue.ToString() == "on") |
| | | { |
| | |
| | | Control.Ins.SendWriteCommand(curtain, d); |
| | | }; |
| | | |
| | | btnCurtainStop.MouseDownEventHandler = (sender, e) => |
| | | //btnCurtainStop.MouseDownEventHandler = (sender, e) => |
| | | //{ |
| | | // btnCurtainStop.IsSelected = true; |
| | | // btnCurtainClose.IsSelected = false; |
| | | // btnCurtainOpen.IsSelected = false; |
| | | //}; |
| | | btnCurtainStop.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnCurtainStop.IsSelected = true; |
| | | btnCurtainClose.IsSelected = false; |
| | | btnCurtainOpen.IsSelected = false; |
| | | }; |
| | | btnCurtainStop.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnCurtainOpen.IsSelected = true; |
| | | btnCurtainClose.IsSelected = false; |
| | | btnCurtainStop.IsSelected = false; |
| | | curtain.trait_on_off.curValue = "stop"; |
| | | //Control.Send(CommandType_A.write, curtain); |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |