using DevExpress.XtraEditors;
|
using DevExpress.XtraReports.Templates;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Net;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
using Yw;
|
using Yw.Auth;
|
using Yw.Dto;
|
using Yw.WinFrmUI;
|
using Timer = System.Windows.Forms.Timer;
|
|
namespace HStation.WinFrmUI
|
{
|
public partial class UserInfoPage : DocumentPage
|
{
|
public UserInfoPage()
|
{
|
InitializeComponent();
|
this.PageTitle.Caption = "个人中心";
|
this.PageTitle.SvgImageSize = new Size(24, 24);
|
this.Load += UserInfoPage_Load;
|
}
|
|
private const string _smsTemplate = "hzkw_sms_template";//手机号登录模板
|
private const string _vxTemplate = "hzkw_wx_template";//微信登录模板
|
private const string _software = "HStation_XHS_DESKTOP";//软件编码
|
|
//修改密码
|
private void BtnEditPwd_Click(object sender, EventArgs e)
|
{
|
var dlg = new UpdatePwdDlg();
|
dlg.SetBindingData(LoginUserInfo.LoginAccountID);
|
dlg.ShowDialog();
|
}
|
|
//初始化
|
private void UserInfoPage_Load(object? sender, EventArgs e)
|
{
|
this.txtEditUserName.Text = GlobalParas._GlobalParas.LoginName;
|
this.txtEditAdminType.Text = GlobalParas._GlobalParas.AdminType;
|
this.txtAccountName.Text = GlobalParas._GlobalParas.AccountName;
|
this.textAccountType.Text = GlobalParas._GlobalParas.LoginType;
|
}
|
|
//手机绑定
|
private async void PhoneBinding()
|
{
|
if (!IsValidMobileNumber(this.txtMobileNumber.Text.Trim()))
|
{
|
TipFormHelper.ShowError("手机号有误!");
|
return;
|
}
|
|
var loginType = await BLLFactory<Yw.BLL.UserLoginType>.Instance.GetByIdentifier(LoginType.SMS);
|
if (loginType != null)
|
{
|
var isExist = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.IsExist
|
(
|
Yw.WinFrmUI.LoginUserInfo.CorpID,
|
Yw.WinFrmUI.LoginUserInfo.UserID,
|
_smsTemplate,
|
this.txtMobileNumber.Text.Trim()
|
);
|
if (isExist)
|
{
|
TipFormHelper.ShowError("账户已存在!");
|
return;
|
}
|
var vmo = new Yw.Vmo.AddUserLoginAccountVmo()
|
{
|
CorpID = Yw.WinFrmUI.LoginUserInfo.CorpID,
|
UserID = Yw.WinFrmUI.LoginUserInfo.UserID,
|
LoginTypeID = loginType.ID,
|
Identifier = _smsTemplate,
|
Credential = this.txtMobileNumber.Text.Trim(),
|
IfVerified = true
|
};
|
var bol = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.Insert(vmo);
|
if (bol > 0)
|
{
|
TipFormHelper.ShowSucceed("绑定成功!");
|
}
|
else
|
{
|
TipFormHelper.ShowError("绑定失败!");
|
}
|
}
|
}
|
|
private bool IsValidMobileNumber(string mobile)
|
{
|
var regex = new System.Text.RegularExpressions.Regex(@"^1\d{10}$");
|
return regex.IsMatch(mobile);
|
}
|
|
//微信绑定
|
private void WechatBinding()
|
{
|
var dlg = new WechatBindingDlg();
|
dlg.SetBindingData();
|
dlg.CodeReloadData += async (code) =>
|
{
|
var loginType = await BLLFactory<Yw.BLL.UserLoginType>.Instance.GetByIdentifier(LoginType.Wechat);
|
if (loginType != null)
|
{
|
var tokenInfo = await BLLFactory<Yw.BLL.ToolWechat>.Instance.GetTokenInfo(code, _vxTemplate);
|
if (tokenInfo == null)
|
{
|
return;
|
}
|
var userInfo = await BLLFactory<Yw.BLL.ToolWechat>.Instance.GetUserInfo(tokenInfo.access_token, tokenInfo.openid);
|
if (userInfo == null)
|
{
|
return;
|
}
|
|
var isExist = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.IsExist
|
(
|
Yw.WinFrmUI.LoginUserInfo.CorpID,
|
loginType.ID,
|
_vxTemplate,
|
tokenInfo.openid
|
);
|
if (isExist)
|
{
|
TipFormHelper.ShowError("账户已存在!");
|
return;
|
}
|
|
var vmo = new Yw.Vmo.AddUserLoginAccountVmo()
|
{
|
CorpID = Yw.WinFrmUI.LoginUserInfo.CorpID,
|
UserID = Yw.WinFrmUI.LoginUserInfo.UserID,
|
LoginTypeID = loginType.ID,
|
Identifier = _vxTemplate,
|
Credential = tokenInfo.openid,
|
IfVerified = true,
|
ExtraInfo = JsonHelper.Object2Json(userInfo)
|
};
|
|
var bol = await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.Insert(vmo);
|
if (bol > 0)
|
{
|
TipFormHelper.ShowSucceed("绑定成功!");
|
}
|
else
|
{
|
TipFormHelper.ShowError("绑定失败!");
|
}
|
}
|
};
|
dlg.ShowDialog();
|
}
|
|
//重置密码
|
private async void BtnResetPwd_Click(object sender, EventArgs e)
|
{
|
if (XtraMessageBox.Show($"确认重置密码吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) != DialogResult.OK)
|
return;
|
if (!await BLLFactory<Yw.BLL.UserLoginAccount>.Instance.ResetSystemLoginPwd(GlobalParas._GlobalParas.LoginID))
|
{
|
MessageBoxHelper.ShowError("重置失败!");
|
return;
|
}
|
MessageBoxHelper.ShowSuccess("重置成功!");
|
}
|
|
private void buttonEditBinding_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
|
{
|
var tag_obj = e.Button.Tag;
|
switch (tag_obj)
|
{
|
case "Phone":
|
PhoneBinding();
|
break;
|
|
case "Wechat":
|
WechatBinding();
|
break;
|
}
|
}
|
}
|
}
|