feat(db): 优化表字段及其类型

This commit is contained in:
xingc
2025-02-22 11:33:17 +08:00
parent 2218fe8ae7
commit e35e97402f
3 changed files with 107 additions and 66 deletions

View File

@@ -32,7 +32,7 @@ class CRUD:
async def get_paginated(self, filters: dict, page: int = 1, page_size: int = 10) -> Tuple[List[Model], int]:
async with self.session.begin():
filter_conditions = self.build_filter_conditions(filters) if filters else []
query = select(self.model).filter(*filter_conditions).order_by(desc(self.model.insert_time))
query = select(self.model).filter(*filter_conditions).order_by(desc(self.model.created_at))
total_query = select(func.count()).select_from(self.model).filter(*filter_conditions)
total_result = await self.session.execute(total_query)
@@ -45,16 +45,10 @@ class CRUD:
return records, total
async def get_grouped_count(self, group_by_field: str, filters: Dict[str, Any] = None) -> Dict[Any, int]:
# 构建过滤条件
filter_conditions = self.build_filter_conditions(filters) if filters else []
# 确定分组字段
group_by = getattr(self.model, group_by_field)
# 构建查询
query = select(group_by, func.count()).filter(*filter_conditions).group_by(group_by)
# 执行查询并获取结果
async with self.session.begin():
result = await self.session.execute(query)
records = result.all()
@@ -98,7 +92,7 @@ class CRUD:
if any([
value is None,
value == getattr(record, key),
key in ['insert_time', 'update_time']
key in ['created_at', 'updated_at']
]):
continue
setattr(record, key, value)