|
|
@@ -4,7 +4,7 @@ from typing import Dict
|
|
|
from datetime import datetime
|
|
|
from typing import Optional
|
|
|
import json
|
|
|
-from sqlalchemy import and_, desc,asc
|
|
|
+from sqlalchemy import and_, desc, asc
|
|
|
|
|
|
from sqlalchemy.dialects import sqlite
|
|
|
from model import DeviceConfig, PhotoRecord, SysConfigs
|
|
|
@@ -22,9 +22,12 @@ engine = create_engine(
|
|
|
pool_recycle=1800,
|
|
|
)
|
|
|
|
|
|
+
|
|
|
# 创建表
|
|
|
def create_all_database():
|
|
|
SQLModel.metadata.create_all(engine)
|
|
|
+
|
|
|
+
|
|
|
# 创建会话
|
|
|
def __get_session():
|
|
|
with Session(engine) as session:
|
|
|
@@ -35,7 +38,7 @@ def __get_session():
|
|
|
|
|
|
|
|
|
def batch_insert_device_configs(session: Session, data_list: list):
|
|
|
- '''批量插入数据到设备配置表'''
|
|
|
+ """批量插入数据到设备配置表"""
|
|
|
for data in data_list:
|
|
|
device_config = DeviceConfig(**data)
|
|
|
session.add(device_config)
|
|
|
@@ -52,13 +55,16 @@ def batch_insert_sys_configs(session: Session, data_list: list):
|
|
|
session.close()
|
|
|
|
|
|
|
|
|
-def insert_photo_records(image_deal_mode: int, goods_art_no: str, image_index:int):
|
|
|
+def insert_photo_records(
|
|
|
+ image_deal_mode: int, goods_art_no: str, image_index: int, action_id: int
|
|
|
+):
|
|
|
session = SqlQuery()
|
|
|
"""批量插入数据到照片记录"""
|
|
|
data = {
|
|
|
"image_deal_mode": image_deal_mode,
|
|
|
"goods_art_no": goods_art_no,
|
|
|
"image_index": image_index,
|
|
|
+ "action_id": action_id,
|
|
|
}
|
|
|
device_config = PhotoRecord(**data)
|
|
|
session.add(device_config)
|
|
|
@@ -82,21 +88,28 @@ class CRUD:
|
|
|
return db_obj
|
|
|
|
|
|
def read(
|
|
|
- self,
|
|
|
- session: Session,
|
|
|
- conditions: Optional[Dict] = None,
|
|
|
- order_by: Optional[str] = None,
|
|
|
- ascending: bool = True,
|
|
|
+ self,
|
|
|
+ session: Session,
|
|
|
+ conditions: Optional[Dict] = None,
|
|
|
+ order_by: Optional[str] = None,
|
|
|
+ ascending: bool = True,
|
|
|
):
|
|
|
query = select(self.model)
|
|
|
if conditions:
|
|
|
- query = query.where(and_(*(getattr(self.model, key) == value for key, value in conditions.items())))
|
|
|
+ query = query.where(
|
|
|
+ and_(
|
|
|
+ *(
|
|
|
+ getattr(self.model, key) == value
|
|
|
+ for key, value in conditions.items()
|
|
|
+ )
|
|
|
+ )
|
|
|
+ )
|
|
|
if order_by:
|
|
|
if ascending:
|
|
|
query = query.order_by(asc(getattr(self.model, order_by)))
|
|
|
else:
|
|
|
query = query.order_by(desc(getattr(self.model, order_by)))
|
|
|
- data = session.exec(query).first()
|
|
|
+ data = session.exec(query).first()
|
|
|
session.close()
|
|
|
return data
|
|
|
|
|
|
@@ -109,20 +122,27 @@ class CRUD:
|
|
|
):
|
|
|
query = select(self.model)
|
|
|
if conditions:
|
|
|
- query = query.where(and_(*(getattr(self.model, key) == value for key, value in conditions.items())))
|
|
|
+ query = query.where(
|
|
|
+ and_(
|
|
|
+ *(
|
|
|
+ getattr(self.model, key) == value
|
|
|
+ for key, value in conditions.items()
|
|
|
+ )
|
|
|
+ )
|
|
|
+ )
|
|
|
if order_by:
|
|
|
if ascending:
|
|
|
query = query.order_by(asc(getattr(self.model, order_by)))
|
|
|
else:
|
|
|
query = query.order_by(desc(getattr(self.model, order_by)))
|
|
|
- data = session.exec(query).all()
|
|
|
+ data = session.exec(query).all()
|
|
|
session.close()
|
|
|
return data
|
|
|
|
|
|
def update(self, session: Session, obj_id: int, **kwargs):
|
|
|
db_obj = session.get(self.model, obj_id)
|
|
|
for key, value in kwargs.items():
|
|
|
- if value == None or value =="":
|
|
|
+ if value == None or value == "":
|
|
|
continue
|
|
|
setattr(db_obj, key, value)
|
|
|
session.commit()
|
|
|
@@ -131,10 +151,7 @@ class CRUD:
|
|
|
return db_obj
|
|
|
|
|
|
def updateConditions(
|
|
|
- self,
|
|
|
- session: Session,
|
|
|
- conditions: Optional[Dict] = None,
|
|
|
- **kwargs
|
|
|
+ self, session: Session, conditions: Optional[Dict] = None, **kwargs
|
|
|
):
|
|
|
query = select(self.model)
|
|
|
if conditions:
|
|
|
@@ -189,6 +206,7 @@ class CRUD:
|
|
|
def SqlQuery():
|
|
|
return next(__get_session())
|
|
|
|
|
|
+
|
|
|
# 使用示例
|
|
|
if __name__ == "__main__":
|
|
|
pass
|