Explorar el Código

检查重复 cardNo 并删除旧数据

AnlaAnla hace 5 días
padre
commit
ace46141a2
Se han modificado 1 ficheros con 10 adiciones y 0 borrados
  1. 10 0
      app/api/cards.py

+ 10 - 0
app/api/cards.py

@@ -29,6 +29,16 @@ def create_card(
     """创建一个新的卡牌实体,此时它不关联任何图片。"""
     try:
         with db_conn.cursor(dictionary=True) as cursor:
+            # 检查重复 cardNo 并删除旧数据
+            if cardNo:
+                cursor.execute(
+                    f"SELECT id FROM {settings.DB_CARD_TABLE_NAME} WHERE cardNo = %s",
+                    (cardNo,)
+                )
+                existing_rows = cursor.fetchall()
+                for row in existing_rows:
+                    # 调用已有的删除函数删除旧卡牌
+                    delete_card(row['id'], db_conn)
 
             query = f"INSERT INTO {settings.DB_CARD_TABLE_NAME} (card_name, cardNo, card_type) VALUES (%s, %s, %s)"
             cursor.execute(query, (card_name, cardNo, card_type.value))