120 lines
3.5 KiB
Python
120 lines
3.5 KiB
Python
"""系统使用统计 VO。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class UsageStatsOverviewVO(BaseModel):
|
|
loginUserCount: int = Field(0)
|
|
loginCount: int = Field(0)
|
|
activeUserCount: int = Field(0)
|
|
uploadDocumentCount: int = Field(0)
|
|
uploadAttachmentCount: int = Field(0)
|
|
auditRunCount: int = Field(0)
|
|
auditCompletedCount: int = Field(0)
|
|
auditFailedCount: int = Field(0)
|
|
lastUpdatedAt: str = Field("")
|
|
|
|
|
|
class UsageStatsTrendItemVO(BaseModel):
|
|
label: str = Field("")
|
|
value: int = Field(0)
|
|
|
|
|
|
class UsageStatsTrendVO(BaseModel):
|
|
granularity: str = Field("day")
|
|
metric: str = Field("audit")
|
|
items: list[UsageStatsTrendItemVO] = Field(default_factory=list)
|
|
|
|
|
|
class UsageStatsUserItemVO(BaseModel):
|
|
userId: int = Field(...)
|
|
username: str = Field("")
|
|
nickName: str = Field("")
|
|
departmentName: str | None = Field(None)
|
|
area: str | None = Field(None)
|
|
tenantCode: str | None = Field(None)
|
|
tenantName: str | None = Field(None)
|
|
loginCount: int = Field(0)
|
|
uploadDocumentCount: int = Field(0)
|
|
uploadAttachmentCount: int = Field(0)
|
|
auditRunCount: int = Field(0)
|
|
auditCompletedCount: int = Field(0)
|
|
auditFailedCount: int = Field(0)
|
|
lastLoginTime: str | None = Field(None)
|
|
|
|
|
|
class UsageStatsUserPageVO(BaseModel):
|
|
total: int = Field(0)
|
|
page: int = Field(1)
|
|
pageSize: int = Field(20)
|
|
items: list[UsageStatsUserItemVO] = Field(default_factory=list)
|
|
|
|
|
|
class UsageStatsDepartmentItemVO(BaseModel):
|
|
departmentName: str = Field("")
|
|
userCount: int = Field(0)
|
|
loginUserCount: int = Field(0)
|
|
loginCount: int = Field(0)
|
|
uploadDocumentCount: int = Field(0)
|
|
uploadAttachmentCount: int = Field(0)
|
|
auditRunCount: int = Field(0)
|
|
auditCompletedCount: int = Field(0)
|
|
auditFailedCount: int = Field(0)
|
|
|
|
|
|
class UsageStatsDepartmentPageVO(BaseModel):
|
|
total: int = Field(0)
|
|
page: int = Field(1)
|
|
pageSize: int = Field(20)
|
|
items: list[UsageStatsDepartmentItemVO] = Field(default_factory=list)
|
|
|
|
|
|
class UsageStatsAreaItemVO(BaseModel):
|
|
area: str = Field("")
|
|
tenantCode: str | None = Field(None)
|
|
tenantName: str | None = Field(None)
|
|
loginUserCount: int = Field(0)
|
|
loginCount: int = Field(0)
|
|
uploadDocumentCount: int = Field(0)
|
|
uploadAttachmentCount: int = Field(0)
|
|
auditRunCount: int = Field(0)
|
|
auditCompletedCount: int = Field(0)
|
|
auditFailedCount: int = Field(0)
|
|
|
|
|
|
class UsageStatsAreaPageVO(BaseModel):
|
|
total: int = Field(0)
|
|
page: int = Field(1)
|
|
pageSize: int = Field(20)
|
|
areaScope: str = Field("user")
|
|
items: list[UsageStatsAreaItemVO] = Field(default_factory=list)
|
|
|
|
|
|
class UsageStatsDetailItemVO(BaseModel):
|
|
time: str = Field("")
|
|
dataType: str = Field("")
|
|
userId: int | None = Field(None)
|
|
username: str = Field("")
|
|
nickName: str = Field("")
|
|
departmentName: str | None = Field(None)
|
|
area: str | None = Field(None)
|
|
tenantCode: str | None = Field(None)
|
|
tenantName: str | None = Field(None)
|
|
documentId: int | None = Field(None)
|
|
documentName: str | None = Field(None)
|
|
documentTypeId: int | None = Field(None)
|
|
documentTypeName: str | None = Field(None)
|
|
entryModuleId: int | None = Field(None)
|
|
entryModuleName: str | None = Field(None)
|
|
status: str | None = Field(None)
|
|
extra: dict = Field(default_factory=dict)
|
|
|
|
|
|
class UsageStatsDetailPageVO(BaseModel):
|
|
total: int = Field(0)
|
|
page: int = Field(1)
|
|
pageSize: int = Field(20)
|
|
items: list[UsageStatsDetailItemVO] = Field(default_factory=list)
|