diff --git a/api/code.py b/api/code.py index 0c22baa..e94fcc4 100644 --- a/api/code.py +++ b/api/code.py @@ -23,7 +23,8 @@ from controller.login import LoginController from exceptions.exception import ServiceException, PermissionException from models import File, Code, QueryCode, QueryCodeLog from schemas.code import GetCodeInfoResponse, GetCodeListResponse, GetQueryCodeParams, \ - DeleteCodeListParams, QueryCodeResponse, AddCodeParams, GetQueryCodeLogResponse, GetQueryCodeLogDetailResponse + DeleteCodeListParams, QueryCodeResponse, AddCodeParams, GetQueryCodeLogResponse, GetQueryCodeLogDetailResponse, \ + GetCodeLogAllResponse from schemas.common import BaseResponse from utils.log import logger from utils.response import Response @@ -493,6 +494,66 @@ async def get_code_log_list(request: Request, }) +@codeAPI.get("/logList/all", response_class=JSONResponse, response_model=GetCodeLogAllResponse, + summary="查询所有编码日志列表") +@Log(title="查询所有编码日志列表", business_type=BusinessType.SELECT) +async def get_code_log_list(request: Request, + startTime: Optional[str] = Query(default=None, description="开始时间"), + endTime: Optional[str] = Query(default=None, description="结束时间"), + current_user: dict = Depends(LoginController.get_current_user), + ): + user_id = current_user.get("id") + if startTime and endTime: + startTime = float(startTime) / 1000 + endTime = float(endTime) / 1000 + startTime = datetime.fromtimestamp(startTime) + endTime = datetime.fromtimestamp(endTime) + count = await QueryCodeLog.filter(operator_id=user_id, del_flag=1, operation_time__gte=startTime, + operation_time__lte=endTime).count() + data = await QueryCodeLog.filter(operator_id=user_id, del_flag=1, operation_time__gte=startTime, + operation_time__lte=endTime).order_by("-operation_time").values( + id="id", + query_count="query_count", + result_count="result_count", + cost_time="cost_time", + operation_time="operation_time", + status="status", + request_params="request_params", + response_result="response_result", + create_time="create_time", + update_time="update_time", + operator_id="operator__id", + operator_name="operator__username", + operator_nickname="operator__nickname", + department_id="operator__department__id", + department_name="operator__department__name", + ) + else: + count = await QueryCodeLog.filter(operator_id=user_id, del_flag=1).count() + data = await QueryCodeLog.filter(operator_id=user_id, del_flag=1).order_by("-operation_time").values( + id="id", + query_count="query_count", + result_count="result_count", + cost_time="cost_time", + operation_time="operation_time", + status="status", + request_params="request_params", + response_result="response_result", + create_time="create_time", + update_time="update_time", + operator_id="operator__id", + operator_name="operator__username", + operator_nickname="operator__nickname", + department_id="operator__department__id", + department_name="operator__department__name", + ) + + return Response.success(data={ + "result": data, + "total": count + }) + + @codeAPI.get("/logInfo/{id}", response_class=JSONResponse, response_model=GetQueryCodeLogDetailResponse, summary="查询编码日志详情") @Log(title="查询编码日志详情", business_type=BusinessType.SELECT) diff --git a/schemas/code.py b/schemas/code.py index 6f9a6da..ced0590 100644 --- a/schemas/code.py +++ b/schemas/code.py @@ -172,3 +172,18 @@ class GetQueryCodeLogDetailResponse(BaseResponse): 查询编码日志详情响应 """ data: QueryCodeLogInfo = Field(..., description="查询编码日志详情") + + +class GetCodeLogAllResult(BaseModel): + """ + 查询所有编码日志结果 + """ + result: List[QueryCodeLogInfo] = Field(..., description="查询编码日志列表") + total: int = Field(..., description="总条数") + + +class GetCodeLogAllResponse(BaseResponse): + """ + 查询所有编码日志响应 + """ + data: GetCodeLogAllResult = Field(..., description="查询编码日志结果")