From 8dbd14952aa622587a92866dc01943869ea4f9dc Mon Sep 17 00:00:00 2001
From: LAPTOP-T815PCOQ\25526 <mr.liuyang@126.com>
Date: 星期三, 20 十一月 2024 11:28:02 +0800
Subject: [PATCH] 1. 添加系统运行记录表 2. 完善用户管理的部分细节

---
 SourceCode/Bond/BondEq/BondEqDlg.cpp |   42 ++++++++++++++++++++++++++++++++++--------
 1 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/SourceCode/Bond/BondEq/BondEqDlg.cpp b/SourceCode/Bond/BondEq/BondEqDlg.cpp
index 0735685..1a8a2ec 100644
--- a/SourceCode/Bond/BondEq/BondEqDlg.cpp
+++ b/SourceCode/Bond/BondEq/BondEqDlg.cpp
@@ -10,12 +10,10 @@
 #include "CBonder.h"
 #include "SettingsDlg.h"
 #include "UserManager.h"
+#include "SystemLogManager.h"
 #include "LoginDlg.h"
 #include "ChangePasswordDlg.h"
 #include "InputDialog.h"
-
-// test
-#include "AxisSettingsDlg.h"
 #include "UserManagerDlg.h"
 
 
@@ -184,6 +182,23 @@
 	SetTimer(1, 60000, nullptr);
 #endif
 	userManager.loadSession();
+	std::unique_ptr<BL::Database>& db = userManager.getDatabaseInstance();
+
+	// 设置日志模块的数据库连接
+	SystemLogManager& logManager = SystemLogManager::getInstance();
+	logManager.setDatabase(db);
+
+	// 初始化日志表
+	if (!logManager.initializeLogTable()) {
+		AfxMessageBox("初始化系统日志表失败!");
+		return FALSE;
+	}
+
+	std::string strUsername = userManager.getCurrentUser();
+	if (strUsername.empty()) {
+		strUsername = "SYSTEM";
+	}
+	logManager.log(SystemLogManager::LogType::Info, _T("BondEq启动..."), strUsername);
 
 
 	// 菜单
@@ -352,6 +367,12 @@
 	UserManager::getInstance().terminateIdleDetection();
 	KillTimer(1);
 #endif
+
+	std::string strUsername = UserManager::getInstance().getCurrentUser();
+	if (strUsername.empty()) {
+		strUsername = "SYSTEM";
+	}
+	SystemLogManager::getInstance().log(SystemLogManager::LogType::Info, _T("BondEq关闭..."), strUsername);
 }
 
 void CBondEqDlg::OnSize(UINT nType, int cx, int cy)
@@ -546,12 +567,10 @@
 		if (menuId == 0) {
 			CLoginDlg loginDlg;
 			loginDlg.DoModal();
-			UpdateLoginStatus();
 		}
 		else if (1 == menuId) {
 			CChangePasswordDlg changePasswordDlg;
-			if (changePasswordDlg.DoModal() == IDOK) {
-			}
+			changePasswordDlg.DoModal();
 		}
 		else if (2 == menuId) {
 			CUserManagerDlg dlg;
@@ -569,12 +588,19 @@
 
 			CLoginDlg loginDlg;
 			loginDlg.DoModal();
-			UpdateLoginStatus();
 		}
 		else {
+			CString cstrMessage;
+			cstrMessage.Format(_T("是否退出用户 [%s]?"), userManager.getCurrentUser().c_str());
+			int ret = AfxMessageBox(_T(cstrMessage), MB_OK | MB_ICONEXCLAMATION);
+			if (ret != MB_OK) {
+				return 0;
+			}
+
 			userManager.logout();
-			UpdateLoginStatus();
 		}
+
+		UpdateLoginStatus();
 	}
 
 	return 0;

--
Gitblit v1.9.3