feat(usage-stats): add usage stats backend apis
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
"""系统使用统计 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)
|
||||
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("")
|
||||
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)
|
||||
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)
|
||||
Reference in New Issue
Block a user