mirror of
https://github.com/project-redbud/FunGame-Desktop.git
synced 2025-04-22 13:09:35 +08:00
Add forget password 第一部分 (#12)
* 添加找回密码,首次尝试使用DataRequest * 跟随Core修改 * 完成ForgetPassword 第一部分 * Remove Newtonsoft.Json * 跟随Core工厂方法的改动
This commit is contained in:
parent
ffb3561e30
commit
c1bfd1e106
@ -34,10 +34,6 @@
|
||||
<Content Include="Images\logo.ico" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FunGame.Implement\FunGame.Implement.csproj" />
|
||||
</ItemGroup>
|
||||
|
@ -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;
|
||||
|
@ -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,17 +66,14 @@ 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 user = await Task.Factory.StartNew(GetLoginUserAsync);
|
||||
// 创建User对象并返回到Main
|
||||
RunTime.Main?.UpdateUI(MainInvokeType.SetUser, new object[] { Factory.GetInstance<User>(ds) });
|
||||
RunTime.Main?.UpdateUI(MainInvokeType.SetUser, user);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
RunTime.WritelnSystemInfo(e.GetErrorInfo());
|
||||
@ -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<DataSet>(0);
|
||||
if (Work.Length > 0) user = Work.GetParam<User>(0) ?? General.UnknownUserInstance;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
RunTime.WritelnSystemInfo(e.GetErrorInfo());
|
||||
}
|
||||
ds ??= new();
|
||||
return ds;
|
||||
return user;
|
||||
}
|
||||
|
||||
private static new void SetWorking()
|
||||
|
@ -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<DataSet>(0);
|
||||
if (SocketObject.Length > 1) room = SocketObject.GetParam<DataSet>(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<User>(0) ?? General.UnknownUserInstance;
|
||||
if (SocketObject.Length > 1) room = SocketObject.GetParam<Room>(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<DataSet>(0);
|
||||
if (Work.Length > 1) DsUser = Work.GetParam<DataSet>(1);
|
||||
if (DsRoom != null && DsUser != null)
|
||||
{
|
||||
list = Core.Api.Utility.Factory.GetList<Room>(DsRoom, DsUser);
|
||||
}
|
||||
if (Work.Length > 0) list = Work.GetParam<List<Room>>(0) ?? new();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -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,22 +33,90 @@ namespace Milimoe.FunGame.Desktop.UI
|
||||
return;
|
||||
}
|
||||
|
||||
bool finding = false;
|
||||
string msg = "";
|
||||
bool success = false;
|
||||
|
||||
try
|
||||
{
|
||||
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)
|
||||
{
|
||||
finding = request.GetResult<bool>("finding");
|
||||
ShowMessage.TipMessage(finding.ToString());
|
||||
msg = request.GetResult<string>("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<string>("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);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
RunTime.WritelnSystemInfo(ex.GetErrorInfo());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user