This repository has been archived on 2024-06-23. You can view files and clone it, but cannot push or open issues or pull requests.
mathdeptv2/工具v4/删除使用记录.py

79 lines
3.2 KiB
Python

from PySide6.QtWidgets import QWidget, QApplication, QFileDialog
from Ui_删除使用记录 import Ui_Form
from database_tools_2 import *
class MyWindow_scjl(QWidget,Ui_Form):
def __init__(self,database_name):
super().__init__()
self.database_name = database_name
self.current_database_name = database_name
self.setupUi(self)
self.bind()
def setdbname(self,string):
self.database_name = string
self.pushButton_del.setDisabled(True)
self.pushButton_commit.setDisabled(True)
try:
self.db.close()
except:
pass
self.db = connect(hostname=db_host, port=db_port, username= db_user, pwd= db_pwd, db=self.database_name)
# print(self.database_name)
def bind(self):
self.pushButton_del.setDisabled(True)
self.pushButton_commit.setDisabled(True)
self.pushButton_find.clicked.connect(self.find)
self.pushButton_del.clicked.connect(self.delete)
self.pushButton_commit.clicked.connect(self.commit)
self.db = connect(hostname=db_host, port=db_port, username= db_user, pwd= db_pwd, db=self.database_name)
def find(self):
self.mycursor = self.db.cursor()
self.id = self.lineEdit_id.text().strip().zfill(6)
self.dateregex = self.lineEdit_dateregex.text().strip()
self.classregex = self.lineEdit_classregex.text().strip()
self.mycursor.execute("SELECT * FROM usages WHERE ID = %s;",(self.id,))
ret_list = self.mycursor.fetchall()
self.usage_list = []
for ret in ret_list:
if re.findall(self.dateregex,ret[1]) != [] and re.findall(self.classregex,ret[2]) != []:
self.usage_list.append(ret)
output = f"已找到 {len(self.usage_list)} 个使用记录:\n\n具体如下:\n"
for u in self.usage_list:
output += (f"题号: {u[0]}, 日期: {u[1]}, 班级: {u[2]}, 难度: {u[3]}\n")
self.plainTextEdit_result.setPlainText(output)
if len(self.usage_list) >= 1:
self.pushButton_del.setEnabled(True)
else:
self.pushButton_del.setEnabled(False)
def delete(self):
self.mycursor = self.db.cursor()
self.mycursor.execute("SELECT count(*) FROM usages;")
print(f"预删除前有 {self.mycursor.fetchall()[0][0]} 条使用记录.")
sql1 = "DELETE FROM usages WHERE ID = %s AND date = %s AND classname = %s AND diff = %s;"
sql2 = "INSERT INTO logs (DATE,TIME,username,action,id,db_content) VALUE (%s,%s,%s,%s,%s,%s);"
for u in tqdm.tqdm(self.usage_list,desc = "删除使用记录"):
self.mycursor.execute(sql1,u)
val = (GetDate(),GetTime(),get_git_username(),"删除使用记录",self.id,f"{u}")
self.mycursor.execute(sql2,val)
self.mycursor.execute("SELECT count(*) FROM usages;")
print(f"删除后将有 {self.mycursor.fetchall()[0][0]} 条使用记录.")
self.pushButton_commit.setEnabled(True)
def commit(self):
self.db.commit()
self.pushButton_del.setDisabled(True)
self.pushButton_commit.setDisabled(True)
if __name__ == '__main__':
app = QApplication([])
windows = MyWindow_scjl("tikutest")
windows.show()
app.exec()