响应格式修改,原始数据查询修改
This commit is contained in:
@@ -168,7 +168,7 @@ class ComprehensiveDataService:
|
||||
}
|
||||
|
||||
def get_level_and_original_data(self, db: Session,
|
||||
account_id: int,
|
||||
account_id: Optional[int] = None,
|
||||
id: Optional[int] = None,
|
||||
bfpcode: Optional[str] = None,
|
||||
bffb: Optional[str] = None,
|
||||
@@ -180,7 +180,7 @@ class ComprehensiveDataService:
|
||||
|
||||
Args:
|
||||
db: 数据库会话
|
||||
account_id: 账号ID,必填
|
||||
account_id: 账号ID,可选。不填则查询所有分表
|
||||
其他查询条件...
|
||||
|
||||
Returns:
|
||||
@@ -193,7 +193,7 @@ class ComprehensiveDataService:
|
||||
linecode=linecode
|
||||
)
|
||||
|
||||
# 查询原始数据 - 传递account_id
|
||||
# 查询原始数据 - account_id可选
|
||||
original_data = self.original_service.search_original_data(
|
||||
db,
|
||||
account_id=account_id,
|
||||
|
||||
@@ -139,26 +139,48 @@ class OriginalDataService(BaseService[OriginalData]):
|
||||
logger.error(f"Failed to query data from {self._get_table_name(account_id)}: {str(e)}")
|
||||
return []
|
||||
|
||||
def get_all_original_data_tables(self, db: Session) -> List[str]:
|
||||
"""
|
||||
获取所有原始数据分表的表名
|
||||
|
||||
Args:
|
||||
db: 数据库会话
|
||||
|
||||
Returns:
|
||||
原始数据表名列表
|
||||
"""
|
||||
try:
|
||||
inspector = inspect(engine)
|
||||
all_tables = inspector.get_table_names()
|
||||
# 筛选出所有原始数据分表
|
||||
original_tables = [table for table in all_tables if table.startswith('original_data_')]
|
||||
logger.info(f"Found {len(original_tables)} original data tables: {original_tables}")
|
||||
return original_tables
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to get original data tables: {str(e)}")
|
||||
return []
|
||||
|
||||
def search_original_data(self, db: Session,
|
||||
account_id: int,
|
||||
account_id: Optional[int] = None,
|
||||
id: Optional[int] = None,
|
||||
bfpcode: Optional[str] = None,
|
||||
bffb: Optional[str] = None,
|
||||
nyid: Optional[str] = None,
|
||||
bfpl: Optional[str] = None) -> List[OriginalData]:
|
||||
bfpl: Optional[str] = None) -> List[Any]:
|
||||
"""
|
||||
根据多个条件搜索原始数据
|
||||
如果未提供account_id,则遍历所有分表查询
|
||||
|
||||
Args:
|
||||
db: 数据库会话
|
||||
account_id: 账号ID
|
||||
account_id: 账号ID,可选。不填则查询所有分表
|
||||
其他查询条件...
|
||||
|
||||
Returns:
|
||||
原始数据列表
|
||||
"""
|
||||
try:
|
||||
table_name = self._get_table_name(account_id)
|
||||
# 构建查询条件
|
||||
conditions = []
|
||||
params = {}
|
||||
|
||||
@@ -179,11 +201,34 @@ class OriginalDataService(BaseService[OriginalData]):
|
||||
params["bfpl"] = bfpl
|
||||
|
||||
where_clause = " AND ".join(conditions) if conditions else "1=1"
|
||||
query = text(f"SELECT * FROM `{table_name}` WHERE {where_clause}")
|
||||
result = db.execute(query, params)
|
||||
return result.fetchall()
|
||||
|
||||
# 如果指定了account_id,只查询该账号的分表
|
||||
if account_id is not None:
|
||||
table_name = self._get_table_name(account_id)
|
||||
query = text(f"SELECT * FROM `{table_name}` WHERE {where_clause}")
|
||||
result = db.execute(query, params)
|
||||
return result.fetchall()
|
||||
|
||||
# 未指定account_id,遍历所有分表
|
||||
all_results = []
|
||||
tables = self.get_all_original_data_tables(db)
|
||||
|
||||
for table_name in tables:
|
||||
try:
|
||||
query = text(f"SELECT * FROM `{table_name}` WHERE {where_clause}")
|
||||
result = db.execute(query, params)
|
||||
rows = result.fetchall()
|
||||
all_results.extend(rows)
|
||||
logger.info(f"Found {len(rows)} records in table {table_name}")
|
||||
except Exception as e:
|
||||
logger.warning(f"Failed to query table {table_name}: {str(e)}")
|
||||
continue
|
||||
|
||||
logger.info(f"Total found {len(all_results)} records from {len(tables)} tables")
|
||||
return all_results
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to search data from {self._get_table_name(account_id)}: {str(e)}")
|
||||
logger.error(f"Failed to search original data: {str(e)}")
|
||||
return []
|
||||
|
||||
def _check_settlement_exists(self, db: Session, nyid: str) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user