以下是我的代码,我的期望是添加一个判断语句,使得索引到的书籍的库存量小于1或者库存量小于被借阅量时,图书无法借出的功能,该如何实现
def add(rbook: Rbook) -> int:
"""
图书借阅
:param rbook:
:return:
"""
# 检查是否存在同名书
con = dbUtil.getCon()
cursor = con.cursor()
check_sql = f"SELECT COUNT(*) FROM borrow WHERE bookName='{rbook.bookName}' AND author='{rbook.author}'"
cursor.execute(check_sql, (rbook.bookName, rbook.author))
count = cursor.fetchone()[0]
if count > 0:
return 0
# 插入记录
con = None
try:
con = dbUtil.getCon()
cursor = con.cursor()
borrow_date = datetime.date.today()
return_date = borrow_date + datetime.timedelta(days=7)
sql = "INSERT INTO borrow (TID,ID,bookName,author,age,sex,price,bookDesc,borrowDate,returnDate,stock) VALUES " \
"(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
params = (rbook.TID, rbook.ID, rbook.bookName, rbook.author, rbook.age, rbook.sex, rbook.price, rbook.bookDesc,
borrow_date, return_date, rbook.stock)
cursor.execute(sql, params)
con.commit()
return cursor.rowcount
except Exception as e:
print(f"插入数据时发生错误: {e}")
if con is not None:
con.rollback()
return 0
finally:
dbUtil.closeCon(con)
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:
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 borrowDao.add(rbook) > 0:
self.x = show_custom_message_box("系统提示", "借阅成功!")
else:
if bookName == bookName:
self.x = show_custom_message_box("系统提示", "请勿重复借阅!")