Selaa lähdekoodia

```
feat(database): 添加软删除控制参数

在CRUD类的deleteConditions方法中添加is_soft_delete参数,
用于控制是否执行软删除操作。当is_soft_delete为False时,
跳过软删除逻辑直接进行硬删除。

fix(api): 修复设备配置同步时的删除逻辑

在sync_action_configs方法中,将deviceConfigs.deleteConditions调用
的软删除参数设置为False,确保在同步操作中执行硬删除而非软删除。
```

rambo 4 viikkoa sitten
vanhempi
commit
072bd4fd5e
2 muutettua tiedostoa jossa 3 lisäystä ja 2 poistoa
  1. 1 1
      python/api.py
  2. 2 1
      python/databases.py

+ 1 - 1
python/api.py

@@ -1489,7 +1489,7 @@ def sync_action_configs(params: SyncLocalConfigs):
     if tabs:
         # 先删除再创建
         deviceConfigTabs.deleteConditions(session, {})
-        deviceConfigs.deleteConditions(session, {})
+        deviceConfigs.deleteConditions(session, {},False)
         batch_insert_device_configsNew(session, tabs, actions)
     else:
         all_actions = deviceConfigs.read_all(session)

+ 2 - 1
python/databases.py

@@ -139,6 +139,7 @@ class CRUD:
         self,
         session: Session,
         conditions: Optional[Dict] = None,
+        is_soft_delete: bool = True,
     ):
         query = select(self.model)
         if conditions is None:
@@ -159,7 +160,7 @@ class CRUD:
         
         # 检查模型是否包含 delete_time 字段
         model_columns = {column.name for column in inspect(self.model).columns}
-        if 'delete_time' in model_columns:
+        if 'delete_time' in model_columns and is_soft_delete ==True:
             # 软删除:更新 delete_time 字段
             for obj in objects_to_delete:
                 setattr(obj, 'delete_time', datetime.now())