fixed job列表增加分支来源条件查询

This commit is contained in:
“xxq250” 2022-08-15 13:51:03 +08:00
parent b22c5ae348
commit 3149a17212
2 changed files with 11 additions and 7 deletions

View File

@ -152,7 +152,7 @@ class Job(Controller):
self,
name: str = Query(..., description='同步工程名'),
search: Optional[str] = Query(None, description='同步工程搜索内容'),
orderby: Optional[str] = Query(None, description='排序选项'),
source: Optional[str] = Query(None, description='分支来源'),
pageNum: Optional[int] = Query(1, description="Page number"),
pageSize: Optional[int] = Query(10, description="Page size")
):
@ -161,14 +161,14 @@ class Job(Controller):
service = JobService()
if search is not None:
search = search.replace(" ", "")
answer = await service.list_jobs(project=name, search=search, page=pageNum, size=pageSize)
answer = await service.list_jobs(project=name, search=search, source=source, page=pageNum, size=pageSize)
if not answer:
return Response(
code=Code.SUCCESS,
data=DataList(total=0, list=[]),
msg="没有同步流"
)
count = await service.count_job(project=name, search=search)
count = await service.count_job(project=name, search=search, source=source)
return Response(
code=Code.SUCCESS,
data=DataList(total=count, list=answer),

View File

@ -79,7 +79,7 @@ class JobService(Service):
def __init__(self) -> None:
self._job_dao = JobDAO()
async def list_jobs(self, project: Optional[str] = None, search: Optional[str] = None, page: int = 1, size: int = 20) -> Optional[List[JobDTO]]:
async def list_jobs(self, project: Optional[str] = None, search: Optional[str] = None, source: Optional[str] = None, page: int = 1, size: int = 20) -> Optional[List[JobDTO]]:
cond = None
start = (page - 1) * size
if project is None:
@ -89,6 +89,9 @@ class JobService(Service):
if search is not None:
cond = text(
f"project = '{project}' and github_branch like '%{search}%'")
if source is not None:
cond = text(
f"project = '{project}' and LENGTH({source}) !=0")
all = await self._job_dao.fetch(cond, start=start, limit=size)
if not all:
return None
@ -124,16 +127,17 @@ class JobService(Service):
async def get_count(self, cond: Any = None) -> int:
return await self._job_dao._count(JobDO, cond)
async def count_job(self, project: Optional[str] = None, search: Optional[str] = None) -> int:
async def count_job(self, project: Optional[str] = None, search: Optional[str] = None, source: Optional[str] = None) -> int:
if not project:
return await self.get_count()
else:
cond = text(f"project = '{project}'")
if search is not None:
cond = text(
f"project = '{project}' and github_branch like '%{search}%'")
else:
if source is not None:
cond = text(
f"project = '{project}'")
f"project = '{project}' and LENGTH({source}) !=0")
return await self.get_count(cond, )
async def update_status(self, _id: int, _status: bool) -> bool: