返回数据总条数

This commit is contained in:
淮新 2024-05-09 11:49:30 +08:00
parent 21e7b680ec
commit 115a562fc6
3 changed files with 16 additions and 14 deletions

View File

@ -100,7 +100,6 @@ class SyncDirection(Controller):
)
return SYNCResponse(
code_status=Status.SUCCESS.code,
total=len(repos),
data=repos,
msg=Status.SUCCESS.msg
)
@ -131,7 +130,6 @@ class SyncDirection(Controller):
return SYNCResponse(
code_status=Status.SUCCESS.code,
total=len(branches),
data=branches,
msg=Status.SUCCESS.msg
)
@ -278,13 +276,14 @@ class SyncDirection(Controller):
if not data:
return SYNCResponse(
code_status=Status.NOT_DATA.code,
data=data,
total=data[0],
data=data[1],
msg=Status.NOT_DATA.msg
)
return SYNCResponse(
code_status=Status.SUCCESS.code,
total=len(data),
data=data,
total=data[0],
data=data[1],
msg=Status.SUCCESS.msg
)

View File

@ -4,7 +4,7 @@ from src.do.sync_config import SyncBranchMapping, SyncRepoMapping, LogDO
from .mysql_ao import MysqlAO
from src.utils.base import Singleton
from src.dto.sync_config import AllRepoDTO, GetBranchDTO, SyncRepoDTO, SyncBranchDTO, RepoDTO, BranchDTO, LogDTO
from typing import List
from typing import List, Optional
from src.do.sync_config import SyncDirect, SyncType
@ -283,18 +283,21 @@ class LogDAO(BaseDAO, metaclass=Singleton):
await session.execute(stmt)
await session.commit()
async def get_log(self, repo_name_list: list[str], branch_id_list: List[str], page_number: int, page_size: int, create_sort: bool) -> List[LogDTO]:
async def get_log(self, repo_name_list: list[str], branch_id_list: List[str], page_number: int, page_size: int, create_sort: bool):
async with self._async_session() as session:
async with session.begin():
_branch_id_list = [int(branch_id) for branch_id in branch_id_list]
if repo_name_list and branch_id_list:
query = select(LogDO).where(and_(LogDO.branch_id.in_(_branch_id_list),
base_query = select(LogDO).where(and_(LogDO.branch_id.in_(_branch_id_list),
LogDO.repo_name.in_(repo_name_list)))
else:
query = select(LogDO).where(or_(LogDO.branch_id.in_(_branch_id_list),
base_query = select(LogDO).where(or_(LogDO.branch_id.in_(_branch_id_list),
LogDO.repo_name.in_(repo_name_list)))
# 获取记录的总条数
total_count_query = select(func.count()).select_from(base_query.subquery())
total_count = (await session.execute(total_count_query)).scalar()
create_order = LogDO.created_at if create_sort else LogDO.created_at.desc()
query = query.order_by(create_order)
query = base_query.order_by(create_order)
query = query.offset((page_number - 1) * page_size).limit(page_size)
do_list: List[LogDO] = (await session.execute(query)).scalars().all()
datas = []
@ -310,4 +313,4 @@ class LogDAO(BaseDAO, metaclass=Singleton):
update_at=str(do.update_at)
)
datas.append(data)
return datas
return total_count, datas

View File

@ -211,7 +211,7 @@ class LogService(Service):
# else:
# await self.sync_log_dao.update_branch_log(repo_name, direct, branch_id, commit_id, log_content)
async def get_logs(self, repo_name_list: List[str], branch_id_list: List[str], page_num: int, page_size: int, create_sort: bool) -> Optional[List[LogDTO]]:
async def get_logs(self, repo_name_list: List[str], branch_id_list: List[str], page_num: int, page_size: int, create_sort: bool):
logs = await self.sync_log_dao.get_log(repo_name_list=repo_name_list, branch_id_list=branch_id_list,
page_number=page_num, page_size=page_size, create_sort=create_sort)
return logs