diff --git a/FunGame.Desktop/FunGame.Desktop.csproj b/FunGame.Desktop/FunGame.Desktop.csproj index fe502ab..4537ec6 100644 --- a/FunGame.Desktop/FunGame.Desktop.csproj +++ b/FunGame.Desktop/FunGame.Desktop.csproj @@ -34,10 +34,6 @@ - - - - @@ -76,4 +72,4 @@ - \ No newline at end of file + diff --git a/FunGame.Desktop/Library/Component/ShowMessage.cs b/FunGame.Desktop/Library/Component/ShowMessage.cs index 1c07fa8..405666f 100644 --- a/FunGame.Desktop/Library/Component/ShowMessage.cs +++ b/FunGame.Desktop/Library/Component/ShowMessage.cs @@ -210,7 +210,7 @@ namespace Milimoe.FunGame.Desktop.Library.Component public static string InputMessageCancel(string msg, string title, out MessageResult cancel) { object[] objs = { title, msg, 0, MessageButtonType.Input }; - ShowMessage window = new ShowMessage(objs); + ShowMessage window = new(objs); string result = window.InputResult; cancel = window.MessageResult; return result; diff --git a/FunGame.Desktop/Model/LoginModel.cs b/FunGame.Desktop/Model/LoginModel.cs index 1e35846..e498387 100644 --- a/FunGame.Desktop/Model/LoginModel.cs +++ b/FunGame.Desktop/Model/LoginModel.cs @@ -1,6 +1,4 @@ -using System.Data; -using System.Windows.Forms; -using Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Common.Architecture; using Milimoe.FunGame.Core.Library.Common.Network; @@ -68,13 +66,10 @@ namespace Milimoe.FunGame.Desktop.Model SetWorking(); if (Socket.Send(SocketMessageType.CheckLogin, CheckLoginKey) == SocketResult.Success) { - DataSet ds = await Task.Factory.StartNew(GetLoginUserAsync); - if (ds != null) - { - // 创建User对象并返回到Main - RunTime.Main?.UpdateUI(MainInvokeType.SetUser, new object[] { Factory.GetInstance(ds) }); - return true; - } + User user = await Task.Factory.StartNew(GetLoginUserAsync); + // 创建User对象并返回到Main + RunTime.Main?.UpdateUI(MainInvokeType.SetUser, user); + return true; } } } @@ -110,21 +105,20 @@ namespace Milimoe.FunGame.Desktop.Model return (key, msg); } - private static DataSet GetLoginUserAsync() + private static User GetLoginUserAsync() { - DataSet? ds = new(); + User user = General.UnknownUserInstance; try { WaitForWorkDone(); // 返回构造User对象的DataSet - if (Work.Length > 0) ds = Work.GetParam(0); + if (Work.Length > 0) user = Work.GetParam(0) ?? General.UnknownUserInstance; } catch (Exception e) { RunTime.WritelnSystemInfo(e.GetErrorInfo()); } - ds ??= new(); - return ds; + return user; } private static new void SetWorking() diff --git a/FunGame.Desktop/Model/MainModel.cs b/FunGame.Desktop/Model/MainModel.cs index 72026e9..928ad80 100644 --- a/FunGame.Desktop/Model/MainModel.cs +++ b/FunGame.Desktop/Model/MainModel.cs @@ -1,6 +1,4 @@ -using System.Collections; -using System.Data; -using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Library.Common.Architecture; using Milimoe.FunGame.Core.Library.Common.Network; using Milimoe.FunGame.Core.Library.Constant; @@ -223,11 +221,11 @@ namespace Milimoe.FunGame.Desktop.Model else if (SocketObject.SocketType == SocketMessageType.UpdateRoomMaster) { // 收到房间更换房主的信息 - DataSet? user = null, room = null; - if (SocketObject.Length > 0) user = SocketObject.GetParam(0); - if (SocketObject.Length > 1) room = SocketObject.GetParam(1); - Room r = Core.Api.Utility.Factory.GetRoom(room, user); - if (r.Roomid != "-1" && r.Roomid == Usercfg.InRoom.Roomid) Main.UpdateUI(MainInvokeType.UpdateRoomMaster, r); + User user = General.UnknownUserInstance; + Room room = General.HallInstance; + if (SocketObject.Length > 0) user = SocketObject.GetParam(0) ?? General.UnknownUserInstance; + if (SocketObject.Length > 1) room = SocketObject.GetParam(1) ?? General.HallInstance; + if (room.Roomid != "-1" && room.Roomid == Usercfg.InRoom.Roomid) Main.UpdateUI(MainInvokeType.UpdateRoomMaster, room); } else if (SocketMessageTypes.Contains(SocketObject.SocketType)) { @@ -332,13 +330,7 @@ namespace Milimoe.FunGame.Desktop.Model try { WaitForWorkDone(); - DataSet? DsRoom = new(), DsUser = new(); - if (Work.Length > 0) DsRoom = Work.GetParam(0); - if (Work.Length > 1) DsUser = Work.GetParam(1); - if (DsRoom != null && DsUser != null) - { - list = Core.Api.Utility.Factory.GetList(DsRoom, DsUser); - } + if (Work.Length > 0) list = Work.GetParam>(0) ?? new(); } catch (Exception e) { diff --git a/FunGame.Desktop/UI/Login/ForgetPassword.cs b/FunGame.Desktop/UI/Login/ForgetPassword.cs index f278c4e..cc05f7a 100644 --- a/FunGame.Desktop/UI/Login/ForgetPassword.cs +++ b/FunGame.Desktop/UI/Login/ForgetPassword.cs @@ -1,5 +1,7 @@ using Milimoe.FunGame.Core.Api.Transmittal; using Milimoe.FunGame.Core.Library.Constant; +using Milimoe.FunGame.Core.Library.Exception; +using Milimoe.FunGame.Core.Library.SQLScript.Common; using Milimoe.FunGame.Core.Library.SQLScript.Entity; using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library.Component; @@ -31,20 +33,88 @@ namespace Milimoe.FunGame.Desktop.UI return; } - bool finding = false; + string msg = ""; + bool success = false; - DataRequest request = RunTime.NewDataRequest(DataRequestType.GetFindPasswordVerifyCode); - request.AddRequestData(UserQuery.Column_Username, username); - request.AddRequestData(UserQuery.Column_Email, email); - request.SendRequest(); - if (request.Result == RequestResult.Success) + try { - finding = request.GetResult("finding"); - ShowMessage.TipMessage(finding.ToString()); + DataRequest request = RunTime.NewDataRequest(DataRequestType.GetFindPasswordVerifyCode); + request.AddRequestData(UserQuery.Column_Username, username); + request.AddRequestData(UserQuery.Column_Email, email); + request.AddRequestData(ForgetVerifyCodes.Column_ForgetVerifyCode, ""); + request.SendRequest(); + if (request.Result == RequestResult.Success) + { + msg = request.GetResult("msg") ?? ""; + if (msg.Trim() != "") + { + // 如果返回一个信息,则停止找回密码 + ShowMessage.ErrorMessage(msg); + } + else + { + while (!success) + { + request[ForgetVerifyCodes.Column_ForgetVerifyCode] = ""; + string verifycode = ShowMessage.InputMessageCancel("请输入找回密码邮件中的6位数字验证码", "注册验证码", out MessageResult result); + if (result != MessageResult.Cancel) + { + if (verifycode.Trim() != "") + { + request[ForgetVerifyCodes.Column_ForgetVerifyCode] = verifycode; + request.SendRequest(); + if (request.Result == RequestResult.Success) + { + msg = request.GetResult("msg") ?? ""; + if (msg.Trim() != "") + { + ShowMessage.ErrorMessage(msg); + } + else + { + success = true; + break; + } + } + else + { + RunTime.WritelnSystemInfo(request.Error); + } + } + else + { + ShowMessage.WarningMessage("不能输入空值!"); + } + } + else break; + } + if (success) + { + bool checkpass = true; + while (checkpass) + { + string newpass = ShowMessage.InputMessageCancel("请输入新密码", "新密码", out MessageResult result); + if (newpass.Trim() != "") + { + if (newpass.Length < 6 || newpass.Length > 15) // 字节范围 3~12 + { + ShowMessage.ErrorMessage("密码长度不符合要求:6~15个字符数"); + } + else checkpass = false; + } + } + // TODO. 等更新UpdatePassword + } + } + } + else + { + RunTime.WritelnSystemInfo(request.Error); + } } - else + catch (Exception ex) { - RunTime.WritelnSystemInfo(request.Error); + RunTime.WritelnSystemInfo(ex.GetErrorInfo()); } } }