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(GlobalParas._GlobalParas.LoginID); 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.Instance.GetByIdentifier(LoginType.SMS); if (loginType != null) { var isExist = await BLLFactory.Instance.IsExist(new IsExistUserLoginAccountInput { CorpID = GlobalParas._GlobalParas.CorpID, LoginTypeID = loginType.ID, Identifier = _smsTemplate, Credential = this.txtMobileNumber.Text.Trim() }); if (isExist) { TipFormHelper.ShowError("账户已存在!"); return; } var vmo = new Yw.Vmo.AddUserLoginAccountVmo(); vmo.CorpID = GlobalParas._GlobalParas.CorpID; vmo.UserID = GlobalParas._GlobalParas.UserID; vmo.LoginTypeID = loginType.ID; vmo.Identifier = _smsTemplate; vmo.Credential = this.txtMobileNumber.Text.Trim(); vmo.IfVerified = true; var bol = await BLLFactory.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.Instance.GetByIdentifier(LoginType.Wechat); if (loginType != null) { var tokenInfo = await BLLFactory.Instance.GetTokenInfo(code, _vxTemplate); if (tokenInfo == null) return; var isExist = await BLLFactory.Instance.IsExist(new IsExistUserLoginAccountInput { CorpID = GlobalParas._GlobalParas.CorpID, LoginTypeID = loginType.ID, Identifier = _vxTemplate, Credential = tokenInfo.openid }); if (isExist) { TipFormHelper.ShowError("账户已存在!"); return; } var vmo = new Yw.Vmo.AddUserLoginAccountVmo(); vmo.CorpID = GlobalParas._GlobalParas.CorpID; vmo.UserID = GlobalParas._GlobalParas.UserID; vmo.LoginTypeID = loginType.ID; vmo.Identifier = _vxTemplate; vmo.Credential = tokenInfo.openid; vmo.IfVerified = true; var bol = await BLLFactory.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.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; } } } }