添加登录按钮,点击基础数据验证账号权限

This commit is contained in:
~ Alone 2024-05-14 23:36:14 +08:00
parent 6f47fbc9b2
commit 824e596b9c
6 changed files with 175 additions and 41 deletions

View File

@ -5,6 +5,7 @@
#include "aike.h" #include "aike.h"
#include "afxdialogex.h" #include "afxdialogex.h"
#include "LogInDlg.h" #include "LogInDlg.h"
#include "aikeDlg.h"
// LogInDlg 对话框 // LogInDlg 对话框
@ -14,52 +15,113 @@ IMPLEMENT_DYNAMIC(LogInDlg, MyDialog)
LogInDlg::LogInDlg(CWnd* pParent /*=nullptr*/) LogInDlg::LogInDlg(CWnd* pParent /*=nullptr*/)
: MyDialog(IDD_LOGINDLG, pParent) : MyDialog(IDD_LOGINDLG, pParent)
{ {
m_Parent = pParent;
} }
LogInDlg::~LogInDlg() LogInDlg::~LogInDlg()
{ {
} }
//void LogInDlg::DoDataExchange(CDataExchange* pDX)
//{
// MyDialog::DoDataExchange(pDX);
//}
BEGIN_MESSAGE_MAP(LogInDlg, MyDialog) BEGIN_MESSAGE_MAP(LogInDlg, MyDialog)
ON_WM_PAINT() ON_WM_PAINT()
ON_NOTIFY(BCN_HOTITEMCHANGE, IDC_CHECK1, &LogInDlg::OnBnHotItemChangeCheck1)
ON_NOTIFY(NM_THEMECHANGED, IDC_CHECK1, &LogInDlg::OnNMThemeChangedCheck1)
ON_BN_CLICKED(IDC_CHECK1, &LogInDlg::OnBnClickedCheck1)
END_MESSAGE_MAP() END_MESSAGE_MAP()
// LogInDlg 消息处理程序
//BOOL LogInDlg::PreTranslateMessage(MSG* pMsg)
//{
// // TODO: 在此添加专用代码和/或调用基类
// myDlg->PTMessage(pMsg);
// return __super::PreTranslateMessage(pMsg);
//}
//
//
//void LogInDlg::OnPaint()
//{
// myDlg->PaintDlg();
// MyDialog::OnPaint();
//}
BOOL LogInDlg::OnInitDialog() BOOL LogInDlg::OnInitDialog()
{ {
__super::OnInitDialog(); __super::OnInitDialog();
//CImage img; CImage img;
//img.Load(_T("../aike/res/background.jpg")); img.Load(_T("../aike/res/background.jpg"));
//myDlg->SetBackground(img); //SetBackground(img);
//myDlg->PaintDlg(); PaintDlg();
// TODO: 在此添加额外的初始化 // TODO: 在此添加额外的初始化
//PaintDlg(); //PaintDlg();
FixedSize(); FixedSize();
CRect rt = {0,0,90,30};
/*480,325*/
rt.MoveToXY(120, 240);
AddButton(1, rt);
SetLClick(1, [this](int i) {LoginClick(i); });
rt.MoveToXY(270, 240);
AddButton(2, rt);
SetLClick(2, [this](int i) {CloseClick(i); });
return TRUE; // return TRUE unless you set the focus to a control return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE // 异常: OCX 属性页应返回 FALSE
} }
VOID LogInDlg::LoginClick(int id)
{
CString Name, Pass, tmp;
GetDlgItemText(IDC_EDIT1, Name);
GetDlgItemText(IDC_EDIT2, Pass);
BOOL sys = ((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck();
if (!sys)
{
if (Name == _T(""))
{
MessageBox(_T("请输入要登陆的账号"), _T("温馨提示"));
return;
}
}
CaikeDlg* dlg = (CaikeDlg*)m_Parent;
switch (dlg->CheckUser(Name, Pass, sys))
{
case 0:
MessageBox(_T("账号不存在"), _T("温馨提示"));
break;
case 1:
if(sys)
{
dlg->LogName = _T("系统管理员");
}
else
{
dlg->LogName = Name;
}
MyDialog::OnOK();
break;
case 2:
MessageBox(_T("密码输入错误"), _T("温馨提示"));
break;
default:
break;
}
}
VOID LogInDlg::CloseClick(int id)
{
MyDialog::OnCancel();
//return VOID();
}
void LogInDlg::OnBnHotItemChangeCheck1(NMHDR* pNMHDR, LRESULT* pResult)
{
// 此功能要求 Internet Explorer 6 或更高版本。
// 符号 _WIN32_IE 必须是 >= 0x0600。
LPNMBCHOTITEM pHotItem = reinterpret_cast<LPNMBCHOTITEM>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}
void LogInDlg::OnNMThemeChangedCheck1(NMHDR* pNMHDR, LRESULT* pResult)
{
// 该功能要求使用 Windows XP 或更高版本。
// 符号 _WIN32_WINNT 必须 >= 0x0501。
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
}
void LogInDlg::OnBnClickedCheck1()
{
GetDlgItem(IDC_EDIT1)->EnableWindow(!((CButton*)GetDlgItem(IDC_CHECK1))->GetCheck());
// TODO: 在此添加控件通知处理程序代码
}

View File

@ -18,11 +18,14 @@ public:
#endif #endif
protected: protected:
// virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP() DECLARE_MESSAGE_MAP()
public: public:
//virtual BOOL PreTranslateMessage(MSG* pMsg); CWnd* m_Parent = NULL;
//afx_msg void OnPaint();
virtual BOOL OnInitDialog(); virtual BOOL OnInitDialog();
VOID LoginClick(int id);
VOID CloseClick(int id);
afx_msg void OnBnHotItemChangeCheck1(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnNMThemeChangedCheck1(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnBnClickedCheck1();
}; };

Binary file not shown.

View File

@ -350,6 +350,21 @@ VOID CaikeDlg::MoveAllWin()
tt.MoveToX(rt.Width() - 25); tt.MoveToX(rt.Width() - 25);
MoveButton(4, tt); MoveButton(4, tt);
tt = { 0,0,180,180 };
CPoint pt = { (rt.Width() - 600) / 2,100 };
tt.MoveToXY(pt);
MoveButton(1000, tt);
tt.MoveToXY(pt.x + 200, pt.y);
MoveButton(2000, tt);
tt.MoveToXY(pt.x + 400, pt.y);
MoveButton(3000, tt);
tt.MoveToXY(pt.x, pt.y + 200);
MoveButton(4000, tt);
tt.MoveToXY(pt.x + 200, pt.y + 200);
MoveButton(5000, tt);
tt.MoveToXY(pt.x + 400, pt.y + 200);
MoveButton(6000, tt);
GetWindowRect(rt); GetWindowRect(rt);
rt.MoveToXY(-50, -50); rt.MoveToXY(-50, -50);
rt.left = 150; rt.left = 150;
@ -385,10 +400,8 @@ BOOL CaikeDlg::CheckAuthority(CString Authority)
if (LogName == _T("")) if (LogName == _T(""))
{ {
//MessageBox(_T("请先登录账号"), _T("温馨提示")); //MessageBox(_T("请先登录账号"), _T("温馨提示"));
ttttt = FALSE; LogInDlg dlg(this);
LogInDlg dlg; if (dlg.DoModal() != IDOK)
dlg.DoModal();
ttttt = TRUE;
return FALSE; return FALSE;
} }
if (LogName == _T("系统管理员")) if (LogName == _T("系统管理员"))
@ -412,12 +425,66 @@ BOOL CaikeDlg::CheckAuthority(CString Authority)
if (tmp.Find(_T("$") + Authority + _T("$")) == -1) if (tmp.Find(_T("$") + Authority + _T("$")) == -1)
{ {
MessageBox(_T("账号权限不足"), _T("温馨提示")); MessageBox(_T("用户没有此权限"), _T("温馨提示"));
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
} }
INT CaikeDlg::CheckUser(CString Name, CString Pass, BOOL isSystem)
{
CString tmp;
_RecordsetPtr m_pRecor;
_variant_t var;
if (Pass != _T(""))
{
string str = (CStringA)Pass;
AES aes;
Pass = (CStringA)(aes.EncryptionAES(str, "aikehotel1998092")).c_str();
}
if (isSystem)
{
AdoSql.QuerySql(_T("select * from config where vkey = 'passwords'"), m_pRecor);
int i = 0;
if (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("value");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
}
}
if (tmp == Pass)
{
return 1;
}
return 2;
}
else
{
tmp.Format(_T("select Passwords from staff where JobID = '%s' and Computer = '1'"), Name);
AdoSql.QuerySql(tmp, m_pRecor);
if (!m_pRecor->GetadoEOF())
{
var = m_pRecor->GetCollect("Passwords");
if (var.vt != VT_NULL)
{
tmp = (LPCTSTR)_bstr_t(var);
}
if (tmp == Pass)
{
return 1;
}
return 2;
}
else
{
return 0;
}
}
return 0;
}
//设置按钮 //设置按钮
VOID CaikeDlg::SetUpClick(int id) VOID CaikeDlg::SetUpClick(int id)
{ {

View File

@ -49,7 +49,7 @@ public:
CString UserName; //数据库用户名 CString UserName; //数据库用户名
CString AdoPass; //数据库密码 CString AdoPass; //数据库密码
CString LogName; //当前登录的账号 CString LogName; //当前登录的账号
BOOL ttttt = TRUE; char AesKey[18] = "aikehotel19980921"; //AES密钥
RoomSetUpDlg m_RoomSetUpDlg; //房间设置界面 RoomSetUpDlg m_RoomSetUpDlg; //房间设置界面
CommodityDlg m_CommodityDlg; //商品信息界面 CommodityDlg m_CommodityDlg; //商品信息界面
PaymentDlg PaymentDlg; //付款方式界面 PaymentDlg PaymentDlg; //付款方式界面
@ -59,7 +59,6 @@ public:
PrintSetUpDlg PrintSetUpDlg; //打印设置界面 PrintSetUpDlg PrintSetUpDlg; //打印设置界面
CouponDlg m_CouponDlg; //票券设置界面 CouponDlg m_CouponDlg; //票券设置界面
ParameterDlg m_ParameterDlg; //参数设置界面 ParameterDlg m_ParameterDlg; //参数设置界面
//MFC回调函数 //MFC回调函数
// virtual BOOL PreTranslateMessage(MSG* pMsg); //截获窗口消息 // virtual BOOL PreTranslateMessage(MSG* pMsg); //截获窗口消息
afx_msg void OnSize(UINT nType, int cx, int cy); //窗口大小发生改变 afx_msg void OnSize(UINT nType, int cx, int cy); //窗口大小发生改变
@ -80,6 +79,7 @@ public:
VOID MoveAllWin(); //移动所有窗口和按钮 VOID MoveAllWin(); //移动所有窗口和按钮
VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮 VOID HideAllBt(BOOL Hide = TRUE); //隐藏所有按钮
BOOL CheckAuthority(CString Authority); //检查权限 BOOL CheckAuthority(CString Authority); //检查权限
INT CheckUser(CString Name, CString Pass, BOOL isSystem); //检查账号密码
VOID SetUpClick(int id); //设置按钮 VOID SetUpClick(int id); //设置按钮
VOID HomepageClick(int id); //回到主页 VOID HomepageClick(int id); //回到主页
VOID RoomSetUpClick(int id); //点击房间设置 VOID RoomSetUpClick(int id); //点击房间设置

View File

@ -14,11 +14,13 @@
#define IDD_COUPONDLG 139 #define IDD_COUPONDLG 139
#define IDD_DISCOUNTDLG 140 #define IDD_DISCOUNTDLG 140
#define IDD_PARAMENTERDLG 141 #define IDD_PARAMENTERDLG 141
#define IDD_DIALOG1 142
#define IDD_LOGINDLG 142 #define IDD_LOGINDLG 142
#define IDC_LIST1 1000 #define IDC_LIST1 1000
#define IDC_BUTTON1 1001 #define IDC_BUTTON1 1001
#define IDC_BUTTON2 1002 #define IDC_BUTTON2 1002
#define IDC_EDIT1 1002
#define IDC_EDIT2 1003
#define IDC_CHECK1 1004
#define ID_32771 32771 #define ID_32771 32771
#define ID_32772 32772 #define ID_32772 32772
#define ID_SHOW_MENU 32773 #define ID_SHOW_MENU 32773
@ -30,7 +32,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 144 #define _APS_NEXT_RESOURCE_VALUE 144
#define _APS_NEXT_COMMAND_VALUE 32775 #define _APS_NEXT_COMMAND_VALUE 32775
#define _APS_NEXT_CONTROL_VALUE 1002 #define _APS_NEXT_CONTROL_VALUE 1005
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101
#endif #endif
#endif #endif