更改部分bug加入人脸识别锁机制

This commit is contained in:
冯佳
2025-09-15 11:37:37 +08:00
parent f12a289c57
commit babab70845
6 changed files with 183 additions and 51 deletions

View File

@ -57,24 +57,23 @@ def save_users_list(users):
w.writerow([u.get("user_id", ""), u.get("user_name", ""), u.get("created_at", "")])
def save_user(user_id: int, user_name: str) -> bool:
def save_user(user_id: int) -> bool:
users = load_users()
for u in users:
if str(u["user_id"]) == str(user_id):
return False
created_at = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
users.append({"user_id": str(user_id), "user_name": user_name, "created_at": created_at})
users.append({"user_id": str(user_id), "user_name": str(user_id), "created_at": created_at})
save_users_list(users)
return True
class UserManageDialog(QDialog):
def __init__(self, parent=None, send_func=None):
super().__init__(parent)
self.send_func = send_func
uic.loadUi(users_ui_file_path, self)
self.btn_delete.clicked.connect(self.delete_selected)
self.btn_refresh.clicked.connect(self.refresh)
self.btn_get.clicked.connect(self.get_from_device)
self.btn_del_all.clicked.connect(self.delete_all_users)
self.refresh()
@ -105,31 +104,15 @@ class UserManageDialog(QDialog):
QShortcut(QKeySequence(Qt.Key_Home), self, activated=self.key_escape_process)
QShortcut(QKeySequence(Qt.Key_Return), self, activated=self.key_enter_process) # 普通回车
def refresh(self):
users = load_users()
self.table.setRowCount(len(users))
for r, u in enumerate(users):
self.table.setItem(r, 0, QTableWidgetItem(str(u.get("user_id", ""))))
self.table.setItem(r, 1, QTableWidgetItem(u.get("user_name", "")))
self.table.setItem(r, 2, QTableWidgetItem(u.get("created_at", "")))
users = load_users()
self.table.setRowCount(len(users))
for r, u in enumerate(users):
self.table.setItem(r, 0, QTableWidgetItem(str(u.get("user_id", ""))))
self.table.setItem(r, 1, QTableWidgetItem(u.get("user_name", "")))
self.table.setItem(r, 2, QTableWidgetItem(u.get("created_at", "")))
def delete_selected(self):
row = self.table.currentRow()
if row < 0:
QMessageBox.warning(self, "提示", "删除选择用户")
return
uid = self.table.item(row, 0).text()
uname = self.table.item(row, 1).text()
try:
uid_int = int(uid)
self.send_func(build_delete_user(uid_int))
except:
pass
users = [u for u in load_users() if str(u["user_id"]) != uid]
save_users_list(users)
self.refresh()
QMessageBox.information(self, "提示", f"用户 {uname}(ID={uid}) 已删除")
def get_from_device(self):
self.send_func(build_get_all_userid())