From 7b60238359b94125d591678eff105ae2bf47843f Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 15 十一月 2019 13:16:21 +0800
Subject: [PATCH] 2019.11.15
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs | 208 ++++++++++++++++++++++++++++++++++++---------------
1 files changed, 147 insertions(+), 61 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
index 3c92302..b778f68 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/UserCenterLogic.cs
@@ -47,7 +47,7 @@
}
var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
//妫�娴嬫槸鍚﹀瓨鍦ㄩ敊璇俊鎭�
- return CheckNotEorrorMsg(revertObj, RequestName, listNotShowError);
+ return CheckNotEorrorMsg(revertObj, RequestName, listNotShowError, obj);
}
/// <summary>
@@ -114,7 +114,7 @@
}
var revertObj = JsonConvert.DeserializeObject<ResponsePack>(Encoding.UTF8.GetString(byteData));
//妫�娴嬮敊璇�
- bool notError = CheckNotEorrorMsg(revertObj, RequestName, listNotShowError);
+ bool notError = CheckNotEorrorMsg(revertObj, RequestName, listNotShowError, obj);
if (notError == false)
{
return null;
@@ -165,7 +165,7 @@
var data = JsonConvert.DeserializeObject<ResponsePack>(data2);
if (data != null && string.IsNullOrEmpty(data.StateCode) == false)
{
- bool notError = CheckNotEorrorMsg(data, RequestName, listNotShowError);
+ bool notError = CheckNotEorrorMsg(data, RequestName, listNotShowError, obj);
if (notError == false)
{
return null;
@@ -256,7 +256,8 @@
/// <param name="revertObj">浠庢帴鍙f帴鏀跺埌鐨勬暟鎹�</param>
/// <param name="RequestName">璇锋眰鎺ュ彛</param>
/// <param name="listNotShowError">涓嶉渶瑕佹樉绀洪敊璇殑閿欒绫诲埆(鎺ュ彛杩斿洖鐨勯敊璇被鍒�)</param>
- public static bool CheckNotEorrorMsg(ResponsePack revertObj, string RequestName, List<string> listNotShowError = null)
+ /// <param name="pra">璇锋眰鐨勫弬鏁�</param>
+ public static bool CheckNotEorrorMsg(ResponsePack revertObj, string RequestName, List<string> listNotShowError = null, object pra = null)
{
if (revertObj == null)
{
@@ -284,14 +285,17 @@
//濡傛灉鐢ㄦ埛宸茬粡閫�鍑轰簡鐧婚檰,鍒欎笉澶勭悊
return;
}
- string msg = IMessageCommon.Current.GetMsgByRequestName(RequestName, revertObj.StateCode);
- var control = new ShowMsgControl(ShowMsgType.Tip, msg);
- control.Show();
-
- //鏃犳晥鐧诲綍Token
- if (revertObj.StateCode == "NoLogin")
+ string msg = IMessageCommon.Current.GetMsgByRequestName(RequestName, revertObj.StateCode, pra);
+ if (msg != null)
{
- UserCenterLogic.ReLoginAgain(Config.Instance.Account, false);
+ var control = new ShowMsgControl(ShowMsgType.Tip, msg);
+ control.Show();
+
+ //鏃犳晥鐧诲綍Token
+ if (revertObj.StateCode == "NoLogin")
+ {
+ UserCenterLogic.ReLoginAgain(Config.Instance.Account, false);
+ }
}
});
@@ -305,7 +309,7 @@
/// </summary>
/// <param name="checkAuthority">鏄惁妫�娴嬫潈闄�</param>
/// <returns></returns>
- private static HttpConnectMode GetHttpConnectMode(bool checkAuthority)
+ public static HttpConnectMode GetHttpConnectMode(bool checkAuthority)
{
if (checkAuthority == false)
{
@@ -393,10 +397,32 @@
{
//璁剧疆褰撳墠婵�娲荤殑鐢婚潰ID
UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
- if (UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
+ //杩藉姞鏉′欢涓�:鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊欐墠澶勭悊
+ if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
{
- //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
- UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID]?.FormActionAgainEvent();
+ try
+ {
+ var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID];
+ if (Myform is EditorCommonForm)
+ {
+ //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
+ int value = ((EditorCommonForm)Myform).FormActionAgainEvent();
+ if (value == 1)
+ {
+ //Log鍑哄姏
+ HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
+ var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnknownErrorAndDataLost));
+ alert.Show();
+
+ //Log鍑哄姏
+ HdlLogLogic.Current.WriteLog(ex);
+ }
}
}
else if (actionForm != null && actionForm is UserView.UserPage)
@@ -406,10 +432,32 @@
{
//璁剧疆褰撳墠婵�娲荤殑鐢婚潰ID
UserCenterResourse.NowActionFormID = UserCenterResourse.listActionFormId[index];
- if (UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
+ //杩藉姞鏉′欢涓�:鍏抽棴鐨勭晫闈负EditorCommonForm鐨勬椂鍊欐墠澶勭悊
+ if ((form is EditorCommonForm) && UserCenterResourse.DicActionForm.ContainsKey(UserCenterResourse.NowActionFormID) == true)
{
- //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
- UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID]?.FormActionAgainEvent();
+ try
+ {
+ var Myform = UserCenterResourse.DicActionForm[UserCenterResourse.NowActionFormID];
+ if (Myform is EditorCommonForm)
+ {
+ //瑙﹀彂鐣岄潰鍐嶆婵�娲荤殑浜嬩欢
+ int value = ((EditorCommonForm)Myform).FormActionAgainEvent();
+ if (value == 1)
+ {
+ //Log鍑哄姏
+ HdlLogLogic.Current.WriteLog(1, Myform.FormID + " 琚縺娲�");
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ //鍑虹幇鏈煡閿欒,鏁版嵁涓㈠け
+ var alert = new ShowMsgControl(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uUnknownErrorAndDataLost));
+ alert.Show();
+
+ //Log鍑哄姏
+ HdlLogLogic.Current.WriteLog(ex);
+ }
}
}
}
@@ -494,7 +542,7 @@
/// <param name="all">true:鍏ㄩ儴鍒犻櫎(鐢ㄤ簬浣忓畢鍒犻櫎) false:閲嶈鐨勬枃浠朵笉鍒犻櫎</param>
public static void DeleteAllLocationFile(bool all = true)
{
- string dPath = UserCenterResourse.LocalRootPath;
+ string dPath = Config.Instance.FullPath;
if (System.IO.Directory.Exists(dPath) == false)
{
return;
@@ -532,11 +580,6 @@
//涓嶈兘鍒犻櫎Config鏂囦欢
return true;
}
- else if (fileName.StartsWith("DeviceUI_") == true)
- {
- //涓嶈兘鍒犻櫎璁惧UI鏂囦欢
- return true;
- }
else if (fileName.StartsWith("House_") == true)
{
//涓嶈兘鍒犻櫎浣忓畢鏂囦欢
@@ -556,17 +599,17 @@
/// <param name="noticeDb">鏄惁閫氱煡浜戠</param>
public static void ReLoginAgain(string account = "", bool noticeDb = true)
{
- UserCenterResourse.oldAccountId = string.Empty;
+ UserCenterResourse.Option.OldAccountId = string.Empty;
//鍏抽棴鎵�鏈夋帴鏀�
HdlDeviceAttributeLogic.Current.RemoveAllEvent();
//娓呴櫎鍗囩骇鍒楄〃
FirmwareUpdateResourse.dicDeviceUpdateList.Clear();
FirmwareUpdateResourse.dicGatewayUpdateList.Clear();
- new System.Threading.Thread(async () =>
+ HdlThreadLogic.Current.RunThread(async () =>
{
//妫�娴婣PP鏄惁鑳藉閫�鍑�
- while (UserCenterResourse.AppCanSignout == false)
+ while (UserCenterResourse.Option.AppCanSignout == false)
{
await Task.Delay(500);
}
@@ -580,7 +623,6 @@
try
{
ZigBee.Device.ZbGateway.RemoteMqttClient?.DisconnectAsync();
- ZigBee.Device.ZbGateway.RemoteMqttClient = null;
}
catch { }
@@ -589,7 +631,7 @@
//閫氱煡浜戠锛屽凡缁忛��鍑虹櫥闄�
var result = await CommonPage.Instance.RequestHttpsZigbeeBytesResultAsync("ZigbeeUsers/SignOut", null, "GET");
}
- Application.RunOnMainThread(() =>
+ HdlThreadLogic.Current.RunMain(() =>
{
//鍏抽棴鎵�鏈夋墦寮�浜嗙殑鐣岄潰
CloseAllOpenForm();
@@ -599,8 +641,7 @@
Shared.Common.CommonPage.Instance.AddChidren(formLogin);
formLogin.Show(account);
});
- })
- { IsBackground = true }.Start();
+ });
}
/// <summary>
@@ -677,7 +718,7 @@
/// <returns></returns>
public static string CombinePath(params object[] listNames)
{
- string rootPath = UserCenterResourse.LocalRootPath;
+ string rootPath = Config.Instance.FullPath;
if (listNames == null || listNames.Length == 0)
{
return rootPath;
@@ -748,22 +789,20 @@
public async static Task<bool> InitUserCenterMenmoryAndThread()
{
//APP缂撳瓨鍔犺浇寮�濮�
- UserCenterResourse.AppCanSignout = false;
+ UserCenterResourse.Option.AppCanSignout = false;
//寮哄埗鎸囧畾涓嶅叧闂繘搴︽潯
ProgressBar.SetCloseBarFlag(true);
//鍙湁鍦ㄤ綇瀹匢D涓嶄竴鏍风殑鏃跺�欐墠鍋氳繖涓搷浣�
- if (Common.Config.Instance.HomeId != UserCenterResourse.oldHomeStringId
- || Common.Config.Instance.Account != UserCenterResourse.oldAccountId)
+ if (Common.Config.Instance.HomeId != UserCenterResourse.Option.OldHomeStringId
+ || Common.Config.Instance.Account != UserCenterResourse.Option.OldAccountId)
{
- //鍙樻洿鏍圭洰褰曡矾寰�
- UserCenterResourse.LocalRootPath = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, Config.Instance.Home.Id);
- UserCenterResourse.UserPictruePath = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, DirNameResourse.UserPictrueDirectory);
-
//鍔犺浇璐﹀彿閰嶇疆淇℃伅
var optionInfo = UserCenterResourse.Option.Load();
UserCenterResourse.Option = optionInfo;
+ //鍙樻洿鏍圭敤鎴峰浘鐗囩洰褰曡矾寰�
+ UserCenterResourse.Option.UserPictruePath = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, DirNameResourse.UserPictrueDirectory);
//鍒濆鍖栫櫥闄嗚处鍙风殑淇℃伅
await InitUserAccoutInfo();
@@ -789,8 +828,8 @@
//淇濆瓨鐢ㄦ埛鐨勭櫥闄嗕俊鎭埌鏈湴
SaveUserInformationToLocation();
- UserCenterResourse.oldHomeStringId = Common.Config.Instance.HomeId;
- UserCenterResourse.oldAccountId = Common.Config.Instance.Account;
+ UserCenterResourse.Option.OldHomeStringId = Common.Config.Instance.HomeId;
+ UserCenterResourse.Option.OldAccountId = Common.Config.Instance.Account;
//鍚屾鏁版嵁(浜屾璋冪敤娌″叧绯�)
var result = await HdlAutoBackupLogic.SynchronizeDbAutoBackupData();
@@ -803,6 +842,9 @@
//鍚屾浜戠鐨勭綉鍏砳d锛屽鏋滄湰鍦版嫢鏈変簯绔笉瀛樺湪鐨刬d锛屽垯琛ㄧず搴旇琚崲缁戜簡锛岀洿鎺ュ垹闄�
HdlGatewayLogic.Current.SynchronizeDbGateway();
+ //鍒濆鍖栦綇瀹呭璞�
+ Common.Config.Instance.Home = House.GetHouseByHouseId(Common.Config.Instance.HomeId);
+
//鍒濆鍖栨埧闂�(閮洩鍩庨偅杈逛笉鍋氬鐞�,闇�瑕佽繖閲岀壒娈婃墽琛屼竴姝�)
Room.RefreshAllRoomByLocation();
@@ -813,17 +855,17 @@
ProgressBar.SetAppendText(string.Empty);
//0:宸茬粡鍚屾杩囷紝涓嶉渶瑕佸悓姝�,杩欎釜鏃跺�欓渶瑕佹彁绀哄浠�
- if (result == 0)
- {
- //寮�鍚嚜鍔ㄥ浠芥彁绀�
- //HdlAutoBackupLogic.ShowAutoBackupPromptedForm();
- }
+ //if (result == 0)
+ //{
+ // //寮�鍚嚜鍔ㄥ浠芥彁绀�
+ // HdlAutoBackupLogic.ShowAutoBackupPromptedForm();
+ //}
}
//鎭㈠鍙叧闂繘搴︽潯
ProgressBar.SetCloseBarFlag(false);
//APP缂撳瓨鍔犺浇瀹屾垚
- UserCenterResourse.AppCanSignout = true;
+ UserCenterResourse.Option.AppCanSignout = true;
return true;
}
@@ -840,7 +882,7 @@
{
//鑾峰彇鏈湴璁板綍鐨勭敤鎴蜂俊鎭�
UserCenterResourse.UserInfo = GetUserInformationFromLocation();
- UserCenterResourse.UserInfo.UserIconFile = System.IO.Path.Combine(UserCenterResourse.UserPictruePath, "Admin.png");
+ UserCenterResourse.UserInfo.UserIconFile = System.IO.Path.Combine(UserCenterResourse.Option.UserPictruePath, "Admin.png");
//鑾峰彇鐧诲綍璐﹀彿鐨勪俊鎭�
var pra = new AccountInfoPra();
@@ -911,7 +953,19 @@
}
UserCenterResourse.UserInfo = userInfo;
- UserCenterResourse.UserInfo.UserIconFile = System.IO.Path.Combine(UserCenterResourse.UserPictruePath, "Admin.png");
+ UserCenterResourse.UserInfo.UserIconFile = System.IO.Path.Combine(UserCenterResourse.Option.UserPictruePath, "Admin.png");
+ if (UserCenterResourse.UserInfo.HeadImage != null)
+ {
+ //鍐欏叆澶村儚鍐呭
+ Shared.IO.FileUtils.WriteFileByBytes(UserCenterResourse.UserInfo.UserIconFile, UserCenterResourse.UserInfo.HeadImage);
+ }
+ UserCenterResourse.UserInfo.HeadImage = null;
+ //鎵嬪娍瀵嗙爜
+ UserCenterResourse.Option.GestureAuthentication = UserCenterResourse.UserInfo.GesturePwd == null ? string.Empty : UserCenterResourse.UserInfo.GesturePwd;
+ UserCenterResourse.UserInfo.GesturePwd = null;
+ //瀵嗙爜楠岃瘉
+ UserCenterResourse.Option.PswAuthentication = UserCenterResourse.UserInfo.StringPwd == null ? string.Empty : UserCenterResourse.UserInfo.StringPwd;
+ UserCenterResourse.UserInfo.StringPwd = null;
//鍒濆鍖栫鐞嗗憳鎺у埗涓讳汉鐨勮繛鎺ュ湴鍧�(鍥犱负杩欎釜杩炴帴Token鏄笉浼氭敼鍙樼殑,鎵�浠ュ彧闇�瑕佸垵濮嬪寲涓�娆�)
await InitAdminConnectMainInfo();
@@ -926,12 +980,12 @@
private static UserInformation GetUserInformationFromLocation()
{
string fileName = CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.UserInfoFile);
- if (System.IO.File.Exists(fileName) == false)
+ var value = LoadFileContent(fileName);
+ if (value == null)
{
return new UserInformation();
}
- var varByte = Shared.IO.FileUtils.ReadFile(fileName);
- var info = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(System.Text.Encoding.UTF8.GetString(varByte));
+ var info = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInformation>(value);
return info;
}
@@ -940,12 +994,9 @@
/// </summary>
private static void SaveUserInformationToLocation()
{
- var data = Newtonsoft.Json.JsonConvert.SerializeObject(UserCenterResourse.UserInfo);
- var byteData = System.Text.Encoding.UTF8.GetBytes(data);
-
string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.UserInfoFile);
//鍐欏叆鍐呭
- Shared.IO.FileUtils.WriteFileByBytes(fullName, byteData);
+ SaveFileContent(fullName, UserCenterResourse.UserInfo);
//鎼炰竴涓嬩富浜虹殑榛樿澶村儚
string defultFile = IO.FileUtils.GetImageFilePath("Center/Admin.png");
@@ -953,13 +1004,12 @@
{
return;
}
- string nowFile = System.IO.Path.Combine(UserCenterResourse.UserPictruePath, "Admin.png");
- if (System.IO.File.Exists(nowFile) == true)
+ if (System.IO.File.Exists(UserCenterResourse.UserInfo.UserIconFile) == true)
{
return;
}
//澶嶅埗杩囧幓
- System.IO.File.Copy(defultFile, nowFile);
+ System.IO.File.Copy(defultFile, UserCenterResourse.UserInfo.UserIconFile);
}
#endregion
@@ -1114,10 +1164,14 @@
directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.DownLoadShardDirectory);
Global.CreateEmptyDirectory(directory);
+ //LOG鍑哄姏銆愭枃浠跺す銆�
+ directory = System.IO.Path.Combine(LocalDirectory, DirNameResourse.LogDirectory);
+ Global.CreateEmptyDirectory(directory);
+
//鐢ㄦ埛鍥剧墖鐩綍璺緞銆愭枃浠跺す銆�
- if (!System.IO.Directory.Exists(UserCenterResourse.UserPictruePath))
+ if (UserCenterResourse.Option.UserPictruePath != string.Empty && !System.IO.Directory.Exists(UserCenterResourse.Option.UserPictruePath))
{
- System.IO.Directory.CreateDirectory(UserCenterResourse.UserPictruePath);
+ System.IO.Directory.CreateDirectory(UserCenterResourse.Option.UserPictruePath);
}
}
@@ -1242,5 +1296,37 @@
return System.Text.Encoding.Default.GetString(ms.ToArray());
}
#endregion
+
+ #region 鈻� 鏂囦欢淇濆瓨鍜岃鍙朹____________________
+
+ /// <summary>
+ /// 鏂囦欢淇濆瓨(鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+ /// </summary>
+ /// <param name="fullName">鍏ㄨ矾寰�</param>
+ /// <param name="obj">闇�瑕佸簭鍒楀寲鐨勪笢瑗�</param>
+ public static void SaveFileContent(string fullName, object obj)
+ {
+ var data = Newtonsoft.Json.JsonConvert.SerializeObject(obj);
+ var byteData = System.Text.Encoding.UTF8.GetBytes(data);
+ //鍐欏叆鍐呭
+ Shared.IO.FileUtils.WriteFileByBytes(fullName, byteData);
+ }
+
+ /// <summary>
+ /// 璇诲彇鏂囦欢(鏂囦欢涓嶅瓨鍦ㄨ繑鍥瀗ull,鏁村ぉ蹇樿,鎵�浠ュ缓涓�涓嚱鏁版潵鐜╃帺)
+ /// </summary>
+ /// <param name="fullName">鍏ㄨ矾寰�</param>
+ /// <returns></returns>
+ public static string LoadFileContent(string fullName)
+ {
+ if (System.IO.File.Exists(fullName) == false)
+ {
+ return null;
+ }
+ var varByte = Shared.IO.FileUtils.ReadFile(fullName);
+ return System.Text.Encoding.UTF8.GetString(varByte);
+ }
+
+ #endregion
}
}
--
Gitblit v1.8.0