我想实现同一本书再次借阅会借阅失败并弹出库存量不足的界面,我应该如何具体修改
功能实现
def add(self):
"""
添加图书信息
:return:
"""
bookName = self.bookNameInput.text()
if bookName.strip() == "":
self.x = show_custom_message_box("系统提示", "请选择借阅图书!")
return
ID = self.idInput.text()
if ID.strip() == "":
self.x = show_custom_message_box("系统提示", "图书编号不能为空!")
return
author = self.authorInput.text()
if author.strip() == "":
self.x = show_custom_message_box("系统提示", "图书作者不能为空!")
return
age = self.ageInput.text()
if age.strip() == "":
self.x = show_custom_message_box("系统提示", "年龄不能为空!")
return
sex = ''
if self.manRadio.isChecked():
sex = '男'
else:
sex = '女'
price = self.priceInput.text()
if price.strip() == "":
self.x = show_custom_message_box("系统提示", "图书价格不能为空!")
return
stock = self.stockInput.text()
if stock.strip() == "":
self.x = show_custom_message_box("系统提示", "借阅量不能为空!")
return
stock = int(stock)
if stock == 0 or stock > 10:
self.x = show_custom_message_box("系统提示", "同本书每人仅限十本借阅!")
return
TID = self.bookTypeComboBoX.currentData()
if bookName == -1:
self.x = show_custom_message_box("系统提示", "请选择图书类别!")
return
bookDesc = self.bookDescInput.toPlainText()
rbook = Book.my_construtor2(ID, bookName, author, age, sex, price, TID, bookDesc, stock)
if int(stock) > borrowDao.check1(rbook):
self.x = show_custom_message_box("系统提示", "借阅量超出,请重新借阅!")
return
if bookName == borrowDao.check2(rbook):
self.x = show_custom_message_box("系统提示", "禁止重复借阅!")
return
if borrowDao.add(rbook) > 0:
self.x = show_custom_message_box("系统提示", "借阅成功!")
self.resetForm()
self.initTable()
else:
self.x = show_custom_message_box("系统提示", "借阅失败!")
数据库模块
def check2(rbook: Rbook):
con = dbUtil.getCon()
cursor = con.cursor()
# 检查重复借阅
check_sql_book = f"SELECT bookName FROM borrow WHERE bookName='{rbook.bookName}'"
cursor.execute(check_sql_book)
con.commit()
count_book = cursor.fetchone()
print(count_book)
if count_book is not None:
return 0
dbUtil.closeCon(con)