lu
2025-01-20 bac46e3c57dbccb2daa9f3b796386ca9d65608fb
DevApp/Gs.DevApp/DevFrm/FrmLogin.cs
@@ -1,73 +1,50 @@
using Gs.DevApp.ToolBox;
using Newtonsoft.Json;
using System;
using System;
using System.Configuration;
using System.Linq;
using System.Windows.Forms;
using Gs.DevApp.Models;
using AutoUpdaterDotNET;
using DevExpress.XtraEditors;
using Gs.DevApp.Entity;
using Gs.DevApp.Properties;
using Gs.DevApp.ToolBox;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Data;
namespace Gs.DevApp.DevFrm
{
    public partial class FrmLogin : DevExpress.XtraEditors.XtraForm
    public partial class FrmLogin : XtraForm
    {
        public FrmLogin()
        {
            InitializeComponent();
            this.Text = lbVersion.Text = System.Configuration.ConfigurationSettings.AppSettings.Get("ProductName").ToString();
            if (ConfigurationManager.AppSettings["IsAutoUpdater"] == "1")
                _autoUpdate();
            else
                _getRemember();
            Text = lbVersion.Text = ConfigurationManager.AppSettings["ProductName"];
            btnLogin.Click += BtnLogin_Click;
            btnCancel.Click += BtnCancel_Click;
            getTree();
            getRemember();
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134)));
        }
        /// <summary>
        /// 读取组织
        /// </summary>
        private void getTree()
        {
            Models.PageQueryModel pgq = new Models.PageQueryModel(1, 999999, "factory", "asc", "", "and status=1");
            string json = JsonConvert.SerializeObject(pgq);
            string strReturn = "";
            try
            {
                strReturn = UtilityHelper.HttpPost("", "Organization/GetListPage", json);
                ReturnModel<PageListModel> rtn = UtilityHelper.GetTableByJson(strReturn);
                DataTable dt = rtn.rtnData.list;
                comOrg.DataSource = dt;
                comOrg.DisplayMember = "name";
                comOrg.ValueMember = "guid";
                comOrg.SelectedIndex = 0;
            }
            catch (Exception ex)
            {
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
                this.Close();
            }
        }
        private void BtnCancel_Click(object sender, EventArgs e)
        {
            if (MsgHelper.AskQuestion("确定要退出系统吗?"))
            {
                Application.Exit();
            }
            if (MsgHelper.AskQuestion("确定要退出系统吗?")) Application.Exit();
        }
        private void BtnLogin_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtUser.Text.Trim()))
            {
                Gs.DevApp.ToolBox.MsgHelper.Warning("登录账号不能为空!");
                MsgHelper.Warning("登录账号不能为空!");
                txtUser.Focus();
                return;
            }
            if (string.IsNullOrEmpty(txtPwd.Text.Trim()))
            {
                Gs.DevApp.ToolBox.MsgHelper.Warning("密码不能为空!");
                txtUser.Focus();
                return;
            }
            if (comOrg.SelectedValue == null || string.IsNullOrEmpty(comOrg.SelectedValue.ToString().Trim()))
            {
                Gs.DevApp.ToolBox.MsgHelper.Warning("组织机构不能为空!");
                MsgHelper.Warning("密码不能为空!");
                txtUser.Focus();
                return;
            }
@@ -75,49 +52,127 @@
            {
                accountPwd = txtPwd.Text.Trim(),
                accountNo = txtUser.Text.Trim(),
                orgGuid = comOrg.SelectedValue.ToString().Trim()
            };
            try
            {
                string strJson = UtilityHelper.HttpPost("", "User/UserLogin", JsonConvert.SerializeObject(_obj));
                ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson);
                var strJson = UtilityHelper.HttpPost("", "User/UserLogin",
                    JsonConvert.SerializeObject(_obj));
                var _rtn = UtilityHelper.ReturnToDynamic(strJson);
                JObject _login = _rtn.rtnData;
                if (_rtn.rtnCode > 0)
                {
                    Properties.Settings.Default.userName = (ckRemember.Checked ? txtUser.Text.Trim() : "");
                    Properties.Settings.Default.userPwd = (ckRemember.Checked ? txtPwd.Text.Trim() : "");
                    Properties.Settings.Default.orgguid = (ckRemember.Checked ? comOrg.SelectedValue.ToString() : "");
                    Properties.Settings.Default.remember = ckRemember.Checked;
                    Properties.Settings.Default.Save();
                    Settings.Default.userName = ckRemember.Checked? txtUser.Text.Trim() : "";
                    Settings.Default.userPwd = ckRemember.Checked ? txtPwd.Text.Trim() : "";
                    Settings.Default.remember = ckRemember.Checked;
                    Settings.Default.Save();
                    LoginInfoModel.CurrentUser.LoginUserGuid = _login["loginGuid"].ToString();
                    LoginInfoModel.CurrentUser.LoginOrgGuid = _login["loginOrgGuid"].ToString();
                    LoginInfoModel.CurrentUser.LoginTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm");
                    LoginInfoModel.CurrentUser.LoginFactory = _login["loginFactory"].ToString();
                    this.DialogResult = DialogResult.OK;
                    DialogResult = DialogResult.OK;
                }
                else
                {
                    ToolBox.MsgHelper.Warning("提示:" + _rtn.rtnMsg);
                    this.DialogResult = DialogResult.None;
                    MsgHelper.Warning("提示:" + _rtn.rtnMsg);
                    DialogResult = DialogResult.None;
                }
            }
            catch (Exception ex)
            {
                this.DialogResult = DialogResult.Cancel;
                ToolBox.MsgHelper.Warning("提示:" + ex.Message);
                DialogResult = DialogResult.Cancel;
                MsgHelper.Warning("提示:" + ex.Message);
            }
        }
        /// <summary>
        /// 读取记住密码
        ///     读取记住密码
        /// </summary>
        private void getRemember()
        private void _getRemember()
        {
            if (Properties.Settings.Default.remember)
            try
            {
                txtUser.Text = Properties.Settings.Default.userName;
                txtPwd.Text = Properties.Settings.Default.userPwd;
                comOrg.SelectedValue = Properties.Settings.Default.orgguid;
                ckRemember.Checked = true;
                if (Settings.Default.remember)
                {
                    txtUser.Text = Settings.Default.userName;
                    txtPwd.Text = Settings.Default.userPwd;
                    ckRemember.Checked = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void _autoUpdate()
        {
            var _version = ConfigurationManager.AppSettings["Version"];
            AutoUpdater.InstalledVersion = new Version(_version);
            AutoUpdater.Start(
                ConfigurationManager.AppSettings["AutoUpdaterXml"]);
            AutoUpdater.CheckForUpdateEvent += AutoUpdater_CheckForUpdateEvent;
        }
        private void AutoUpdater_CheckForUpdateEvent(UpdateInfoEventArgs args)
        {
            if (args == null || string.IsNullOrEmpty(args.DownloadURL))
            {
                MsgHelper.ShowError("读取自动更新失败,无法登录,请联系管理员!");
                Close();
                Application.Exit();
                return;
            }
            if (!args.IsUpdateAvailable)
            {
                return;
            }
            var _strMsg =
                string.Format(
                    $@"有新版本 {args.CurrentVersion} 可用,您使用的是 {args.InstalledVersion}版本,这是必需的更新,按“是(Y)”开始更新应用程序。");
            if (!MsgHelper.AskQuestion(_strMsg))
            {
                Close();
                Application.Exit();
                return;
            }
            try
            {
                if (AutoUpdater.DownloadUpdate(args))
                {
                    var config =
                        ConfigurationManager.OpenExeConfiguration(
                            ConfigurationUserLevel.None);
                    if (config != null)
                    {
                        var appSettings =
                            (AppSettingsSection)config.GetSection(
                                "appSettings");
                        if (appSettings.Settings.AllKeys.Contains("Version"))
                            appSettings.Settings["Version"].Value =
                                args.CurrentVersion;
                        else
                            appSettings.Settings.Add("Version",
                                args.CurrentVersion);
                        config.Save(ConfigurationSaveMode.Modified);
                        ConfigurationManager.RefreshSection("appSettings");
                    }
                    Application.Exit();
                }
                else
                {
                    MsgHelper.ShowError("读取自动更新失败,无法登录,请联系管理员!");
                    Close();
                    Application.Exit();
                }
            }
            catch (Exception exception)
            {
                MsgHelper.ShowError(exception.Message + ":" +
                                    exception.GetType());
                Close();
                Application.Exit();
            }
        }
    }