using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CommonLib;
using System.Data.SqlClient;
using CommonLib.data;
using DevExpress.XtraEditors;
using Lskj.Main.main;
namespace Lskj.Main.App_Code
{
///
/// 登录基类
///
public partial class FrmLoginBase : FormBase
{
public bool pwdForceChange = false;
public FrmLoginBase()
{
InitializeComponent();
}
private void FrmLoginBase_Load(object sender, EventArgs e)
{
}
///
/// 获取软件打开模式
///
///
protected int GetSoftOpenMode()
{
object obj = SqlHelper.ExecuteScalar(CommandType.Text, "select SoftOpenMode from p_employeetab where EmployeeId=" + ERPInfo.Instance.EmployeeId);
if (obj != null)
{
int openMode = Convert.ToInt32(obj);
ERPInfo.Instance.SoftOpenMode = openMode;
return openMode;
}
return 0;
}
///
/// 用户登录
///
///
///
///
///
protected bool Login(string strEmployeeId, string strPwd, string strName, bool qzLogin)
{
if (strEmployeeId == string.Empty)
{
XtraMessageBox.Show("请输入用户名称!");
return false;
}
int EmployeeId = 0;
string sPwd = strPwd;
if (int.TryParse(strEmployeeId, out EmployeeId) == false)
{
XtraMessageBox.Show("操作人员数据错误请与管理员联系");
return false;
}
strPwd = PubUtil.EncryptPassword(strPwd);
try
{
if (EmployeeId == 0)
{
XtraMessageBox.Show("操作人员数据错误,请与管理员联系!");
return false;
}
//强制登陆
if (qzLogin)
{
string tmpsql = "delete from p_LoginHostInfotab where OperatorId=" + EmployeeId + "";
SqlHelper.ExecuteNonQuery(CommandType.Text, tmpsql);
}
SqlParameter[] cmdParams = new SqlParameter[]
{
new SqlParameter("@ReturnValue",SqlDbType.Int),
new SqlParameter("@operatorid",SqlDbType.Int),
new SqlParameter("@pwd",SqlDbType.VarChar,100)
};
cmdParams[0].Direction = ParameterDirection.ReturnValue;
cmdParams[1].Value = EmployeeId;
cmdParams[2].Value = strPwd;
SqlHelper.ExecuteNonQuery(CommandType.StoredProcedure, "P_Login_pr", cmdParams);
int iRet = int.Parse(cmdParams[0].Value.ToString());
switch (iRet)
{
case -1:
{
XtraMessageBox.Show("登录失败!");
break;
}
case 0:
{
ERPInfo.Instance.EmployeeName = strName;
ERPInfo.Instance.OperatorName = strName;
ERPInfo.Instance.EmployeeId = EmployeeId;
//设置delphi公用库参数
ERPInfo.Instance.SetDephiDllParams();
//检测密码为空则强制设置密码
if ((sPwd == "")&&(pwdForceChange))
{
FrmChangePwd frmPwd = new FrmChangePwd();
frmPwd.loginUser = strName;
frmPwd.loginId = EmployeeId;
DialogResult dr = frmPwd.ShowDialog();
if (dr != System.Windows.Forms.DialogResult.OK)
{
return false;
}
}
return true;
}
case 1:
{
XtraMessageBox.Show("密码不正确,请重新输入!");
break;
}
case 2:
{
XtraMessageBox.Show("已经有该用户登陆,请换用户登陆!");
break;
}
}
}
catch (Exception ex)
{
PubUtil.WriteError("登录失败", ex.Message);
XtraMessageBox.Show("登陆失败!");
}
return false;
}
}
}